Episode: 1987 Title: HPR1987: Pomodoro Timer - The Evolution of a Script (pt 1) Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1987/hpr1987.mp3 Transcribed: 2025-10-18 12:53:34 --- This in HBR episode 1987 entitled, Promoder O Timer, the Evolution of a Crypt, PT1, and in part of the series, Bash Crypting. It is hosted by Acho Jordan and in about 22 minutes long, the summer is a different change of a Bash Crypt that one created accidentally. This episode of HBR is brought to you by an Honesthost.com. At 15% discount on all shared hosting with the offer code HBR15, that's HBR15. Better web hosting that's Honest and Fair at An Honesthost.com. Hello everybody, this is Nacho Jordi, one more time recording a podcast for Hacker Public Radio. And in this occasion, the name of this podcast is Promoder O Timer, the Evolution of a Crypt. I'm going to do a two podcast series because otherwise the matter is a bit dense, perhaps. And maybe it's an issue that is not interesting to everybody. I think the people who can profit the most from this podcast is the people who's starting writing Bash scripts. It's about a very basic Bash script I made. I'll provide the script at the in its current state and the initial notes at the second episode. But most of all these podcasts, it's not about coding in itself, but about something like coding philosophy or something like that. I want to talk about this script among all the scripts I've done in my geek life. Because there's something peculiar about it. The thing is, this is a Bash script I wrote in a somewhat accidental manner. I didn't intend to write a Bash script. I was forced by the circumstances and I think it's something very peculiar, something that was born of itself and then developed according to its needs and my expense. So I thought it would be an original issue for a podcast. The script in question is a very simple one. In fact, it's been coding 101. It's very interesting for, in fact, I wasn't even questioning if you need the actual code because it's very obvious. But anyway, I'll provide it in the next episode. What does the script do? It's a timer I use for a Pomodoro technique. For those that don't know it, it's a productivity technique created by an Italian guy called Francesco Cyrilo. I think he created it in the 80s. I'm going to describe the technique for those who don't know it. Basically, it's a time-boxing technique in which you alternate periods of work by pauses and that creates a cadence that helps you maintain your focus and avoid mistakes. The typical periods for a Pomodoro, a Pomodoro, it's an Italian world that means tomato by the way, because the original way of measuring time was with one of those kitchen timers that have the classical timers that have the shape of a tomato. The unit of measure of this technique is a Pomodoro. A Pomodoro is usually a 25-minute period. The pacing in the Pomodoro technique, the standard pacing, let's say, goes like this. One Pomodoro will work 25 minutes, followed by a 5-minute pause, and then in the fourth of those poses, instead of 5, you do 10 minutes instead. All of this, as Francesco Cyrilo explains, is highly customizable. It's not a fixed rule. There's research that shows that 25 minutes is the longest time period that you can focus on a matter before your mind drifts away. But as Cyrilo explains, you have to look at your mood, your current energy, and the time you have available for a day, for example, is not the same doing a sprint than a marathon. But the way to start the pacing model is like this, 25 minutes of work, 5 minutes pause, 25 minutes works, 5 minutes pause, 25 minutes works, 5 minutes pause, 25 minutes works, 10 minutes pause, and then it repeats. That's a basic Pomodoro technique. I had tried this technique before, and it worked quite well for me, but for some reason it didn't stick. This time, maybe the different thing is that I read Francesco Cyrilo's book, which is a PDF that is freely available in his website. I'll put a link in the show notes. And this time I was really looking for something to optimize my work and my flow, and I decided to be very disciplined about it and replay rewards. So I read Cyrilo's book, he says that all you know, all you need to know is what I already told you about the technique is those 25-minute periods for 5-minute periods, but in fact, you can go beyond that basic technique and find a lot more about it, all the things you can customize, and also I found the book very recommendable because of its philosophy about what work means meaningful work means, and the way we work, the patterns we have of work, leisure, and all the rest is a very interesting read in my view. So I read Cyrilo's book, and then I intended to apply it mostly to my computer work, most of my work is knowledge work and happens in my laptop. So to do that, I needed to decide which Pomodoro timer I was going to use. I wanted a tool that got out of the way as much as possible, I didn't want to tinker, fancy buttons, etc. So that's a little world about my personal relationship with computers. For some reason I'm not completely geek, not being a regular user, I find that I move between poles, between extremes, I'm half of the time a geek tinker, that's for sure I like to modify things and see the results and try stuff, I pop up in my mind and see all kinds of crazy ideas, and I'm sure many of you who are listening all of you identify with this, we're hackers. But at the end of half of the time, it's like I'm done with computers and I don't want to look under the hood, I just want things to work. It's a delicate balance sometimes, but in this period when this script kind of happens, I was exactly in the second kind of mood, I didn't want at all to tinker or to look for apps or anything like that, I just wanted to find a simple tool that worked for me, a measure of seconds and it's a very elementary thing, get the Pomodoro system right, take it out of the way and start doing actual real stuff. So then I started to look for what was available out there, I first tried finding an Android application and what did I find? Well in Android there are a lot of Pomodoro timers, I tried most of them, and most of them I found they had a very fancy US user interfaces, but they failed short in functionality. Because I don't know for some reason the alarm in Android sometimes fails and it's happened to me with the alarm clock too and sometimes it just doesn't sound or just sounds for a tiny second, I don't know, I don't know why that happens, but it's unreliable. And also those apps were very complicated because I guess the people who like the Pomodoro technique, the developers I wanted to do a Pomodoro timer, the only way they could implement their personal flavor was like doing strange graphic things or allowing extra configuration, but I just wanted the basic plain vanilla model to the 5 minutes, follow by 5 and then the 4th pose, 10 minutes. So then I moved and tried to look for online resources and there I found a few suitable candidates and I finally settled with one called Tomato Timer, the www.tomato-timer.com. I like it because it had a good rendering, other Pomodoro timers where did crazy stuff when I tried to reduce the size of the window. I also liked it because the interface was very simple, you had an account in minutes and seconds, I think. And then also another great thing of it was that it worked with key bindings. I always prefer key bindings better than mouse. This one I think it was like Alt S for start the Pomodoro and then Alt L to do a long Pomodoro 25 minutes, then Alt S to do a short no, no, no. Well I don't remember but it had a different, it was like 3 key bindings for the 3 kinds of countdown you need. So at any moment I heard the bleeping signal and I just pressed the key binding and there I could forget about the Pomodoro Timer until the next signal came. So I added this online timer to my arsenal, my daily arsenal. I always had it on one corner and I opened it first thing in the morning. And yeah really I don't know for those who haven't tried a Pomodoro technique, it really does something to you that that pacing, it really creates a pattern that it even goes on. Once you get used to it, it follows with you. Continues with you even after when you're not longer using the timer, it's like you get like a timing, okay I have to do this and then I have to move to another mode and then I have to get back to this mode. And even when the strange things happen you always go back to that pace. And also the estimation of 25 minutes for concentration, as concentration period in my case, I cannot speak for everybody but in my case it's very accurate. I cannot tell how many times I was about, I was losing my concentration and about to make a mistake when the Pomodoro rang, I took my five minute breaks and then I looked at the problem with fresh eyes and go on with a lot of productivity. Unless I had that break I would have probably made some kind of mistake. So I really encouraged you to give it the Pomodoro technique a try because in my case it really worked. Up to this date maybe in some periods, for example, now I'm recording a podcast, I'm not running a Pomodoro timer. But in other periods when you're going to, you know you'll have like a lot of hours available, it's good to make small chunks like steaks on the ground that help you. It gives you a pace, a rhythm, a cadence. Okay, so well, I was with my tomato timer.com timer, I was cranking out staff, life was good. But then one day something happened, tomato timer disappeared, it was no longer available online. At that time what I saw was that the web had been closed. Later in some time I found that it's available online. So I don't know if they were doing some kind of maintenance or whatever. But it wasn't available and all the signs were that tomato timer no longer existed. So the day that happened, again I couldn't lose a lot of time. I just wanted to start cranking out staff, no desire or opportunity whatsoever of starting tweaking. I needed a solution, quick in the moment and start in my usual production mode. So that's the moment where the script was born. I did what I would call a minimum viable script. What's the minimum thing I need this computer to do? And it took me like three to five minutes, I think. Basically it was a while loop in BUSH with a command sleep one. You know I do wait for one second. And while loop, I did calculations and a pomodoro 25 minutes is 1,500 seconds. So the while loop to 1,500 seconds. And to warn me about the break, again, it was so a choice in the moment. The first thing I couldn't think of. So what I did was using a sound I usually use for all my testing. When I need, for example, to determine if a part in a code is being executed, the computer reaches it. I make it play a sound with a command A play. And this file is called ok.wav. It's a sound I took from the open office sound library. And it's a male voice, I say it's ok. I used it to test all my scripts and it was handy. So I used it to warn when the while loop ends. The computer emitted this ok sound. And that was the proto script I used, the first version. Then when I had to do the process, I simply edited the script. And instead of the 1,500 seconds, I put 300 for the 5 minutes pause and 600 for the 10 minutes pause. So as primal, as simply as rough, as gorilla, as guerrilla, as it gets. I just wanted to go on with my day and not to worry anymore about bash scripting. Nothing I had all to do and nothing could be farther from my mind than bash scripting. So this tiny bash script did me a good service. I used it in that state for 2 or 3 weeks. But maybe has to do with my cycles, the geek kicked in a bit at some moment. Or the user in me just wanted more functionality. And I once heard in a podcast that a program is only finished when its last user dies. Once you have a piece of code that minimally runs, it's like the code starts to ask you for things. And when you are a computer official, you cannot wait to have this kind of what if moments when you say, hey, with very little effort just changing these two lives, nothing, an echo command, I couldn't get a lot of benefit and new functionality. And that's what happened to me from the script existed and it's like with that first seed, it started to ask for things to me. I resisted for a while, like I say, but in the end it was a bit like that movie, a little sharper horror, I don't know if you remember, you've seen that movie. I like the Roger Corman version better, but the one with Rick Moran is some musical version, it's also funny. It's about a flesh eating plant that speaks to its owner and asks it to bring it big teams. With what's a bit like this, it was like asking me if it me, if it me, and I started too much stuff to it, I tried to do it in also in a very sustainable way, just adding small changes, keeping a good backup in case something got broken, which is what we think, because even with the minimal changes, when that happens to you, a couple of thousands of times you learn, that no change is small enough that can break something in an echo command, you can forget, I don't know, a box slash or a quote and then and suddenly everything screws. So that's how the script was born, and from that point I started too, to add improvements, and so far this is the, I want to stop here, the first part of the Pomodoro Timer story, and in the next episode, stay tuned, and I will tell you about the next evolution of this small, minimal script. Thank you everybody for listening, and have a great day, bye. You've been listening to Hacker Public Radio at HackerPublicRadio.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. Hacker Public Radio was founded by the Digital Dove Pound and the Infonomicon Computer Club, and is 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, the contribution, share a light 3.0 license.