Episode: 3132
Title: HPR3132: Keeping track of where I am
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3132/hpr3132.mp3
Transcribed: 2025-10-24 17:31:45

---

This is Hacker Public Radio Episode 3132 for Tuesday 4 August 2020. Today's show is entitled,
Keeping Track Of Where I Am A Seer It Is Hosted by MrX
and is about 23 minutes long
and carries an explicit flag. The summary is,
How I Keep Track Of Where I Am.
This episode of HPR is brought to you by An Honest Host.com.
Get 15% discount on all shared hosting with the offer code
HPR15. That's HPR15.
Better web hosting that's Honest and Fair at An Honest Host.com.
Hello and welcome Hacker Public Radio audience. My name is MrX
and welcome to this podcast.
As usual I'd like to start by thanking the people HPR for making this service available to us all.
There's truly an invaluable service in this year into troops.
HPR is a community-led podcast provided by the community for the community.
That means you can get you a bit too.
Why not pick up a microphone, maybe your mobile phone, your PC, anything you can record with and send a show.
And I've gone to a great deal of effort to streamline the process. It's really quite easy.
If I can do it, so can you.
When I give it a go I'm sure you must have something with all for the interesting to hear.
So, this episode is how I keep track of where I am.
So, how do I do that?
Well, first of all, I get my Android tablet and I open it up and I go to Google Maps.
No, no, no, not that kind of thing.
What I really mean is, where I am in my podcast, podcast listening.
How do I keep track of where I am within the podcast list that I'm listening to?
I've got a queue of episodes I'm listening to and I want to know where the hey comma.
When I last left off sort of thing, you know.
And when I was actually thinking about this, I had to relook back.
I mean, I almost ever produced this podcast because I discovered really that I'd covered a lot of this in my, in a previous episode,
you know, describing how I was in the podcast part 2, HBR 2889.
I'm quite conscious that I've got tendency to repeat myself in real life.
I think this is because I have such a rubberish memory.
But anyway, despite this, I decided to continue with the episode.
I might be going to the, how I went about doing it in a bit more detail.
It's kind of evolved over time sort of thing.
And I don't use it a heck of a lot, but it's something I've kind of developed anyway.
I haven't used some time to time.
So as I previously mentioned, I use cordless headphones to listen to my podcast and audio book,
audio books, whatever.
And the headphones come with a bass transmitter, which was originally plugged into my old compact home server.
So the server was generally turned on when I came home from work and turned off before going to bed each night.
Each night I had to remember which track I was listening to.
I've heard about in the track I was.
I often forgot I had to try and find the place again.
This quickly became quite tiresome.
My first solution was to use some Bash Confuge agree bookry to create a list of files,
which I placed in each podcast folder.
And that way I could just open up and look to see all right.
That's where I'm on this particular show, you know.
In the process of doing this, I learned a wee bit about Bash commands and whatnot.
So I had a look at some of these lists because they're still existing to folders today.
And, you know, use something like, pardon me, that's my four-legged companion,
who's something loyally by my side, not so loyally.
So the command of a user would be something like ID3 V2, dash L, so that lists the ID3 tag information.
Start at MP3.
Pick that to grep.
Look for the string TIT2, title 2.
Pick that to cut.
Cut between column 44 and the end.
And redirect that to the readme file to readme.txt file,
which I generated in each podcast folder.
I actually used a double arrow to append it to the readme.txt file.
And then, of course, as things got on, I used grep or e-grep with regular expressions,
yeah, to try and filter out what I was wanting to send to the readme.txt.
You wanting out?
You better not cry if I let you out.
All right, here you go.
Bye-bye.
I bet you will.
Oh, all right.
It was a...
Hmm.
So, for example, I've got a privy.pim.
I've got an example of this sort of...
...file it to create.
So, first line in that says hpr006.
Because that's going back a long way.
Don't MP3.
Got that to go back that far.
And then a dash and a dustman.
And then after that, I've got the word to complete.
So, I'll just listen to that one.
Next one is hpr0010.
I don't know what happened to 789.
The next group process, part one.
That was complete as well.
So, I think if it wasn't complete, I would sort of say, you know,
five minutes, 23 seconds or whatever.
So, the downside of this was that at the end of each night,
I had to remember to update my file lists,
recording where I had listened to,
and what position I was in within the track.
From time to time, I had to update this list
by pending the latest episodes sitting on my server
using the previous ID3 V2 command.
I just mentioned that, yeah.
As you can imagine, this took up a ferment of time
and became very tiresome.
I would sometimes forget to do it.
This would cause me a headache.
Next time, I started listening to my podcast.
My next solution involved creating a bass grip
that attempted to persuade my music player, Mark,
to find the track I was previously listening to.
The script sometimes worked, but it was a bit flaky
and didn't always work.
I recall it sort of...
I think I had recorded the track it was listening to previously.
And then, step through each track at a time
until the current track was matching
the track I recorded previously.
But it was very, very clunky and often didn't work.
So that was awfully, awfully great.
So my final solution is in multiple parts.
It's a kind of clutch that works for me.
Whether anyone will find it useful
or do something similar, I don't know.
So the first part consists of a bass grip
and a log file.
It was a handy way of checking the last podcast episode
and last position.
This information is recorded to the log file
when the front end of Mark is exited
by hitting the Q command.
Of course, this doesn't work if Mark P closes
for any other reason.
I, if I forgot to hit Q or my Pi crashed,
which it never does, by the way.
But anyway, that's by the by.
So the script...
I've got scripts folder in my home folder,
home directory,
and the script is called podcast.
So I was a quick lash up script
created in 2012, no less.
I created to keep track of last position
of the listened podcast.
So from the...
I've got comments within the script
that from the script and it says,
script displays the last four lines
of log file, log file, podcast.text.
The four lines consist of a dashed line separator,
the last recorded track title,
the last recorded file name,
and that last recorded position.
The script then pauses
and displays a message saying,
there's any key to continue,
that runs mock P.
So that's...
Basically, it does a lot,
and then runs mock P.
And when the front end up,
at once I've finished playing mock P
and listening to all my shows and whatnot,
where I'm going to do that day,
when I hit Q to exit mock P,
the script gets a current track file name.
If the result is empty,
I know file name,
saying mock was not playing anything.
If not empty,
it depends a dashed line separator
to the log file.
The current track title,
the current file name,
the current track position,
all to the log file.
It then displays,
it then displays the last four lines
of the log file at exit's script.
So in essence,
I get a reminder of the track composition
I'm listening to every time I start
and stop the front end of mock.
The log file is located at,
just for just sake,
homepy scripts,
podcast.text,
or TXT.
Just for general interest,
podcast.txt,
as of the 4th of October 2019,
is 168 kilobytes in size,
and currently has
4904 lines.
As each entry has four lines,
this means it currently contains
1226 entries,
fast knitting, I'm sure.
The second script,
how are we doing for time?
11 minutes.
The second script I use
runs as a cron job every night
at 1101pm.
1101pm.
The script keeps track
of all the files copied
to the MP3 directory of my Raspberry Pi.
This is where I put my podcast
that I want to listen to.
I can then rep the log file to see
the latest version
of a particular show
that's been copied to my MP3 directory,
and some time to time I delete the episodes
I have listened to before copying new ones in.
So this script
is stored in scripts.
A tilde, I should say,
in my home directory,
scripts,
update podcast episode log,
and the comments from a script
are
wrote at the time.
Created to keep track
of the latest podcast episode I've listened to,
it does this by logging the contents
of the MP3 directory
on the Raspberry Pi.
The script checks the log file exists,
then checks a podcast
and then uses the find command
to list the files named
MP3 directory,
and sends the listing to a log file.
A date stamp is added
at the beginning of the listing.
So that was
version 1 was created
in the 11th of July 2015.
By the way, I will include all these scripts
with a show
in case you're interested.
The log file
is created at home Pi file
with the latest podcast
episode log.
As of the 4th of October 2019,
the log file
is an impressive
698 kilobytes.
It contains a whopping
28,150 lines.
The first entry was dated
to 15th July 2013.
So of course, you know,
I can go,
it's probably a very
wasteful way of doing things
from day to day.
That folder will not change.
So it's basically
writing the same information day
after day,
appending it to a text file,
a log file.
But still, at least that way,
I can still find out
what the last episode
of a particular
show that I'm listing to
was. So I can say,
what was the last
to finish off? And I deleted that
with all the files by mistake
for that show.
What was the last one I listened to?
I don't know where the heck I'm
with that show.
I can grip it and say, oh yeah,
it was episode 23 or something.
So that's a general idea
of that particular script.
Well, you know,
it's,
what did I say? What size did I say was
688 kilobytes.
Oh, you know, you could make that
so much more, yeah,
loads of duplicates and stuff in the file.
And I should maybe do log rotation,
and all that sort of stuff.
Well, it's 688 kilobytes
these days, you know.
We're also wasteful nowadays.
So that's my excuse anyway.
It works.
And I just, um,
God, that's what size it
lined up eventually.
But that was since 2013, remember.
The third script,
um, what it does,
uh, subscripts also runs as a
growing job, uh, every night
at 11 o'clock.
Um, and it's in Home Pie
scripts,
update, broadcast,
position, log.
And below the comments,
take it directly from the script.
Created to log current
position of current podcast.
The script checks, the log
then checks that mock
P is installed on the system.
And then writes a time stamp
and track position information
to a log file,
uh, using mock with the dash Q
flag, uh, to get the current
track position track title
and final name.
Version 1 was created in July 2015.
Um, yeah, you can use a Q command
and that way you can
tell it out mock
or spout information,
depending on how, how you
what you actually have.
I can't remember exactly how you use it.
Is it a percent?
And then, uh, you can look at the
modern page and mock to see how you use
a Q dash, uh, dash,
capital Q command.
Uh, the log file is located at Home Pie, uh,
files, logs,
podcast, position,
log.
So it's 140 kilobytes
currently has 1495 lines.
The first entry was dated to
15th of July 2013.
So an example, um,
log out, we have got
1509062301.
So, uh,
I know Dave like it.
I know Ken likes us this year,
month, day, hour, minute.
And then a pipe symbol
and then the track position
which gives you, uh,
minute and second.
So I'm one minute 12 seconds
on this, for example.
The other, the other pipes,
pipe symbol to separate the fields.
And this time, the third entry
is ID3 track type,
ID3 track title.
So in this case,
Steve Morris, uh,
HPR1811
Life and Times of a Geek
Part II hacker public radio.
And finally,
the last field,
separated by a pipe, uh,
the vertical bar, I should say,
is the final name.
And that's HPR1811.mp3.
Um, so yes, uh,
so that, that,
that means I can look at the, uh,
at that log and see
basically where I'm,
because every night at 11 o'clock
it records that.
So, you know, if my pipe was to crash
or something was to happen,
the very, you know,
by the end of that day,
that tends to be, by that point,
I won't have listened to anymore.
So it'll be pretty much bang up today,
or at the very most, only one day out.
So it's quite easy to,
to work out where,
where I am basically.
Um, so that's, that's the idea that script.
Um, the fourth script
is a previous script,
but it uses, uh,
it's used to update the current
audio book position to log file.
Like the previous script,
it runs as a cron job every night.
And that's HomePieScripts
update audio book position log.
And, uh,
the final script,
uh, the fifth part is, uh,
HomePieScript Logs.
It was created to easily view,
uh, the,
podcast and audio, audio book logs.
The script first checks
that the log files exist.
Then displays the last three lines
of my podcast and audio books logs.
So I can quickly see
the most recent episode positions
that were stored by the cron job
is around 11 p.m.
Uh, the logs are stored
at HomePieFilesLogs.
The version was created
in July 2015.
Version 2 was in August 2015.
Uh, this added the option
to search for a string
in my episode position logs.
Uh, it's easily found out
what the latest episode they listened to
of particular book or podcast.
The output is pepped
too less as
you can see.
If more than one argument is given
then this plays an error
and a usage message.
Version 3 of the script,
uh, another retweet
in July 2017.
Um, so if a single argument is
given the numbers to do
to search for a string,
then it now jumps
to the end of the list
rather than the beginning.
The default option for
less is to jump
to the beginning of the, uh,
file.
Uh, I've discovered
that you can make it jump
to the end of the file
by using the plus G
plus capital G flag.
Um, so that's, that's quite handy.
Um, I mean,
if I'm not, if I'm not searching
for a string and I'm not,
in other words, if I'm not using any, um,
arguments with the script,
then it just uses, uh,
tail
to display the last few lines.
So I don't know to worry about that.
But it's when you're using less,
it doesn't say defaults to the top,
the top of the file is supposed to
end. So I hope that makes sense.
Um, so yeah, there's a script
that displays the contents
of the following logpiles,
homepy, files, logs,
podcastprison.log
and homepy files logs
audiobookposition.log
Phew.
Does that all make sense?
I don't know.
Um, I don't very often need to use
this facility because, uh,
or these facilities, because my pie
is, I've seen before, pretty, pretty damn stable
and, uh, you know, it doesn't crash.
Um,
but, um,
I've seen me going and holding,
and I'm shutting it down or
it has been, uh, I remember,
on one hand, many times, I've actually
needed to use this, uh,
but it is a handy way to, um,
to get back to where I was, you know,
and not to look at a, uh,
a playlist on, on, on what can I think?
God, where the heck was on, uh,
where these 50 shows that,
in a playlist, what episode was on?
And now that I've found the episode,
where on earth was out, within the episode.
It does greatly, um,
simplify things.
I don't know how, how,
the rest you keep track of these sort of things,
maybe you use your phone or,
I think a bit of most people these days
just use a phone, uh, to, uh,
to the podcast.
I don't have a smart phone and,
I don't fancy carrying a big,
tablet type thing on the back,
my back pocket or whatever.
Anyway, I guess I could use a name, uh,
my Sansa Clipper or whatever.
Uh, when I'm, uh,
outside obviously.
But this is very convenient when, uh,
in the house. Um, so yeah,
I've been interested to hear how,
uh, other listeners said,
do this sort of thing. Um,
so anyway, I, I think that's just
about all I've got to say on the subject.
I hope I haven't bored you all to tears.
I haven't spoken too quickly.
Uh, but, uh, there we go.
So, thanks very much for the last thing.
And, uh,
only just remind, it just remains for me to say,
if you want to contact me,
I can be contacted at MrX
at HPR
at googlemail.com.
That's MRX
80
HPR
the At symbol
googlemail.com.
So until next time,
thank you and goodbye.
You've been listening to HECA Public Radio
at HECA Public Radio.org.
We are a community podcast network
that releases shows every weekday
Monday through Friday.
Today's show, like all our shows,
was contributed by an HPR listener
like yourself.
If you ever thought of recording a podcast,
then click on our contributing
to find out how easy it really is.
HECA Public Radio was founded
by the digital dog pound
computer club,
and it's part of the binary revolution
at binwreff.com.
If you have comments on today's show,
please email the host directly,
leave a comment on the website
or record a follow-up episode yourself.
Unless otherwise stated,
today's show is released on the
Creative Commons,
Attribution, share a life,
3.0 license.
