218 lines
18 KiB
Plaintext
218 lines
18 KiB
Plaintext
|
|
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
|