Episode: 1990
Title: HPR1990: Pomodoro Timer - The Evolution of a Script part deux
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1990/hpr1990.mp3
Transcribed: 2025-10-18 12:56:39

---

This is HPR Episode 1990 entitled, PromoderOtimer, the evolution of a script part U, and is part
of the series Bash-Cripting.
It is hosted by H.O.D. and is about 29 minutes long.
The summary is further evolution of a PromoderOtse script that got life of its own.
This episode of HPR is brought to you by AnanasThost.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 AnanasThost.com.
Hi everyone, this is Natudervey, broadcasting one more time for Hacker Public Radio, and welcome
to the second part of PromoderOtimer, the evolution of a script part U.D.
First of all, for those who haven't heard the first part of this series, I'm going
to make a brief summary of what is it about.
Previously, in PromoderOtimer, the evolution of a script, the PromoderOt technique could
improve my productivity, but I need some kind of timer.
You check the internet to make the timer.com is a way to go for me, but what happened
today?
Oh my god, it's disappeared, now I'll have to write some kind of code.
So there I was, I had just done my first minimal bash script, it was a simple loop showing
me how many seconds were left of the PromoderOtimer or of the break.
And from that point on, as I mentioned in the end of the previous podcast, the scripts tend
to grow once you start them.
So for the script, the basic philosophy, I took for a long time, I resisted to making
the effort in it, but as you get more stuff done, you get more ideas and more enthusiasm
to what stuff.
The initial idea was using for the architecture of the program, just copying the things that
I had liked of the tomato timer, a program that as I mentioned in the previous podcast,
I had used after a long elimination of other PromoderOtimers that I liked.
So I took it very, very slowly, at first, like I say, I spent two or three weeks with
the initial script, just not wanting to touch anything, just doing my stuff.
And then the first changes were very incremental, very small baby steps.
One of the first things I did, because it had a great return on the time in Bench investment,
was adding the hour.
I noticed that I was checking the hour all the time.
In my window manager, which is rat poison, there isn't per se a program bar where you
can check the hour, you have to use a key press.
So as I had to check the PromoderOtimer, I thought to gather those two pieces of information
in the same screen to save a lot of key presses, that's what I did.
In the end, with PromoderOt, you are having a relative measure of time.
How many PromoderOs of work you've done?
PromoderOtimer again is a 25-minute period of uninterrupted work.
But the hour, it's like the in a way, like the absolute time, where you know you have
until 3pm to work, that's like the container within which you can put your PromoderOs or
your breaks or whatever, it's like you need both pieces of information.
So this first change in my script was very easy to do, just with a command date and one
of its options with its weird syntax that requires the person's sign, that would be tricky,
but you see to find in the internet how to do stuff with a date command and it was like
I say a very easy thing to do, it took me like 5 minutes and then it's on the screen,
it gives you a different feel, you feel like your script has already taken a huge step
which encourages you to do the next thing.
And the next thing, after 3 weeks of watching seconds, I felt that a countdown in seconds
caused a lot of disorientation, it's difficult to know when you have in front of you 1,327 seconds,
you don't get a real idea of how much time you have left, you need to see a time conversion
to minutes and seconds.
So luckily in itself it's a more difficult thing to do, in general time arithmetic it's
a nightmare for encoding, but luckily I had a code snippet, I had researched for another
project of mine taken from the internet, so again it was very straightforward to implement
and again it was a substantial improvement, it started to look nice and neat and presentable
in society, well else, again what makes me, I find surprising all those changes, it's
like they were suggested to me, each of them were like the obvious next thing to do.
The next one was also very obvious, like I say my first option for to get a warning of the end
of the Pomodoro periods and of the end of the break periods was a sound okay voice that said
okay taken from the open office sound library, I chose this option because I used headphones,
I most of the time in that period I worked in a library and I used headphones, but more on one
location I forgot to switch the headphones to plug them in and it gave place to quite embarrassing
moments with a strange voice that said okay in the middle of library, so I decided that a good
alternative would be using a visual, some kind of visual bell instead, always looking for the
first simplicity and the easiest thing to do, I decided to use the X-LOG command, the X-LOG command,
many of you will use that program, it's a screen saber with a lot of options like
you can use passwords to lock the screen and different effects, I always use this just to
put the screen in to blacken it with all effects, that's the way I like it better, I think
we live in an age full of distractions, I have enough flickering screens and five second messages
and I try to take away as much of that information out of my life and that's why I already knew
how to blacken the screen with the X-LOG command, you'll find the exact command because I don't
remember it, you'll find it in the script which I'm going to provide in the show notes for anybody
interested, and yeah when I did that anyways as I was in it I didn't want to throw away the code
or the option for the sonic bell because sometimes it's still useful in other contexts, for example when I'm
working in a more private environment than a library and maybe I'm doing something by a computer
but not at a computer and it's nice to have that signal that tells you that the Pomodoro period
has ended, so it took me then having two options, it took me to create some kind of menu,
again the script was like telling me what to do, and the simplest menu option one can build in
bash is using the echo command to print that text in screen to print the options, do you want a
visual bell or a sonic bell, and then the read command that asks for text input and puts it in
variable which you can later check, so that's how I have the Pomodoro script, it became interactive,
the first time it became interactive, I don't know if I if I mentioned it before,
I was at that point I don't know if I remember what came first but of course instead of changing
at first I when I wanted that Pomodoro I changed the second scouts in editing the script and
then running it, or if I wanted a break I edited the number of seconds I wanted and run the script,
I made another interactive menu for that, again trying to be very very straightforward and not
taking too much time of my workday and being very careful with the backups even though
any other changes seemed pretty straightforward and they always do, don't they?
okay so the next change I faced was just making available another piece of information that
the script was running and I thought I could use a good benefit from it was simply showing which
Pomodoro we're at, well in fact this is a new piece of information that the script didn't and I
mistaken here, the thing with this is that I counted my Pomodoro's with physical tokens,
with coins or little stones or something like that, it's as the reminder that after four Pomodoro's
you have to take an extra long break but having the physical items sometimes it was not very practical,
it was like another thing I had to remember to bring and also it was easy to get confused,
especially after a whole day of Pomodoro's or when you get interrupted in the middle of Pomodoro,
so the next improvement of my script was that a just a number showing which Pomodoro are we
running at no, no more interaction was required because I think that would have like constraints
my options too much like if they Pomodoro the script had guessed that okay you just did your
your force Pomodoro so now I'm going to run a long break, that wouldn't be practical because
sometimes my Pomodoro series following series of stitching they changed
in function of the workload, the kind of stuff I was working on, maybe sometimes I could
start a work session with 25 minutes of break simply because I came from the street and I needed
to chill out before I entered computer mode, so I wanted a bit of structure but just the exact
amount of structure no, no too much constraint, I didn't want to do a complex script just to find
that it was too stiffling, it was stiffling my behavior, so yeah a number saying what Pomodoro
you're at was very useful for me sometimes depending of things I had to do maybe I could
shut the script and start a new from Pomodoro number one because I was doing something else,
I mean Pomodoro gives you a structure but you are not married with the structure sometimes
you have to be creative depending of what your work, your strengths, your priorities, the time
available, etc. It's a great help, a great clutch but you have to you are not allowed to
discourage your brain for having a Pomodoro, you have to value more stuff,
okay so the next thing I found, the next difficulty I found with this timer
is that sometimes for doing certain stuff I needed to get out of X
and then I felt resistance because getting out of X stopped the Pomodoro timer in the middle
so on those occasions most of the time what I did was okay I'll do this after Pomodoro ends
to not to break the Pomodoro halfway but maybe if you have to if I wanted to
if I needed to get out of X and there were like 12 minutes left of Pomodoro it was like I did
absurd and I was becoming in those occasions like you become the servant of the program instead
of the other way around so the solution I found to this kind of problems was creating a new
option called a interval defined by the user very simple to understand I think if
if I had to get out of X and therefore interacting with the Pomodoro I could simply
check okay this Pomodoro still have the 12 minutes to finish I could go to X do my stuff
and then run the Pomodoro timer with a personalized customized
minutes interval of 12 and then I was continuing the Pomodoro in the place where I left it
that was great to keep on the cadence the flow that you establish with Pomodoro in the end what you
want it's like a machine like together like a tempo within which you do your stuff that can be
whatever can be combined a lot along the time but if you have a standard pattern it helps a lot
also this this option the filter box defined by the user was turned out to have other uses for
for example no no Pomodoro uses sometimes I just need a regular countdown timer and I can use
my Pomodoro timer like that or things like what I mentioned before if I wanted a different
break period for example 25 minutes of break at some point I could do that and the
interval defined by a user is not considered a Pomodoro it doesn't increase the Pomodoro count
and this option took me to the next one which is the idea of modifying which Pomodoro we're at
and I found this near because the user defined interval that's an advance as like I said the
the Pomodoro count so sometimes you need to modify which Pomodoro you're at because something that
you've considered a Pomodoro hasn't been computed or the other way around is this is one of those
things that it's easier to see it in action than explaining it but it was a a great enhancement and
very easy to implement too so at this point the Pomodoro my Pomodoro timer has become like a
beast it's been a while since I don't modify it because it's a very stable form and
it's a part of my workflow and it's quite invisible by now I started most of most of the times
when I restart my computer I start my Pomodoro timer first thing
and like the Tao taking says everything that is complex started being simple I think this script is a
good demonstration of that I was paying perhaps my bad karma of a lot of bus scripts that I did that
were completely useless and they used look like a good idea but then I used them like once or twice
and I had the like a banjoan's bus programming when this thing happens and then it's it's
funny because I don't see I could have planned a Pomodoro timer this
this consistent bus but it's funny how it's it has turned out in with life of its own just
responding to everyday need and each the solution of each problem to you to the next level and to
the next problem that you were able to solve and I'm pretty proud of it's like I always think that
in the in the elder times people built their own houses or built their own tools
now we don't do that anymore but we built we build scripts and I always feel a great
satisfaction when I can use in my everyday life something that I built I've programmed myself I
think it's something that is deep within our DNA we human beings we like to make stuff
and yeah I love it when I make a script that is fruit of my brain and it's useful for me and
hopefully sometimes for others so that's how things are in my Pomodoro
life which is alive and well it's I do me it's I haven't found anything better for my productivity
and I'm not I'm not really thinking of possible modifications for the future like for example
one thing that probably probably the first thing I will do which is I think I think at very trivial
is being able to change the kind of bell from visual to to sonic between Pomodoro's I mean maybe
there's you can find yourself in a situation where you've done something in the computer
the Pomodoro has sent it and then you want you want to do something in the room
and and then you need to the bell to be sonic because you're not looking at the screen
and so that maybe that's an exception I will implement I think it's very trivial just one menu entry
with the echo one read power dynamic duo of the bash menus and well and also in the future
another thing I I like to do is making the Pomodoro screen to pop on in to pop in the screen
when the time is over what happens now is that the screen blackens or they or they okay sounds
but there's a period there which is an opportunity forever because sometimes when anybody
tired maybe I jump straight ahead into break more and sometimes I forget to set the the Pomodoro menu
to do a five or ten minutes break I just take the break and at some moments on the break I'm
taking some superficial stuff in the internet and then I see hey I haven't this break is like
lasting forever and then I realize I didn't send the countdown so we would be here if the the
Pomodoro screen just jumped in front of me when the when the Pomodoro is over and maybe
maybe keeping the sound or some kind of black for for for redundance but this way if you have
the menu in front of you it's very difficult to miss it and then another option I want to
I've missed it sometimes but this could take some time before I do it because
I'm I'm afraid of making things too complicated and making a twist script of something that started
so simple but sometimes we have found useful disruption the thing is really reading the Pomodoro
technique book it really goes as far as to say that in the 25 minutes of the Pomodoro there's
like an inner cycle in which you should take the five first minutes to plan what you're doing what
you're going to do in the Pomodoro then 15 minutes to do what you've planned and then the last
five minutes of the Pomodoro to reflect and revise and go again over what you've done during the
Pomodoro I'd like I'd like to include these three faces within the Pomodoro and I but I'd like to
be it to be very simple and intuitive I one idea I thought this would be like using like color
indicators the screen for example in red for the planning face in general for doing face and then
in green for for the reflection of face and I still have to think the best way of of doing it
but I sometimes I've missed it because yeah again it's it's about the dividing setting putting
stakes on the ground of the work you're doing otherwise it's like you are if you don't
divide time in pieces it's like you're facing the unlimited it's you need like create standard
units for your work and this kind of precision can see a bit obsessing when you when you pin
through I don't know many maybe 600 Pomodoro's I guesstimate and guesstimate here and maybe I
feel like 600 Pomodoro's by now or something like that it's like you naturally are going to
feel you have automated the the basic Pomodoro and you can go one step further onto this kind of
fancy stuff but I don't know when will I add it to the script there are the the features are there
and they they will come when the moment comes I guess they will tell me when their moment comes
as it has happened before by the moment I'm very happy with the ways things have turned
with the script you'll find a person in the show notes for those who are interested again
in spas 101 and a very clunky script if you use it I encourage you to improve it in
in any way you you feel like that's that's good for your part process
and well that's the state of things in the Pomodoro lamp thank you everybody for listening
to this series I hope you got something out of it and see you in the next podcast thank you bye
you've been listening to hecka public radio at hecka public radio dot 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 hbr listener like yourself if you ever thought of recording a podcast
then click on our contributing to find out how easy it really is hecka public radio was found
by the digital dog pound and the infonomican computer club and it's part of the binary revolution
at binrev.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 comments attribution share a light 3.0 license
