Jan 8, 2013

Forcing myself to take Pomodoro breaks

I’m awful at taking breaks once I get in the zone, but I’ve noticed that this is counter-productive by the end of the day.  What’s “in the zone” earlier in the day ends up being staring at the screen by the end of the day.

So today, I hacked together a solution. At the end of each Pomodoro, my Pomodoro software loads calm.com in full screen, and starts the 2-minute mediation thingy. What a wonderful way to break away!

  • Update: Much simpler way!

You can run this little AppleScript, which gives you a 10 and 20 minute warning in Growl, then runs Calm.com after 25 minutes.

Copy this into AppleScript Editor. Modify the script if you like. Then File -> Export and save it as an Application called Countdown. You can run Countdown whenever you start a Pomodoro.

-- Wait 10 minutes before the first warning (change this if you want) delay 10 * 60 growlNotification("10 minutes elapsed.") -- Wait another 10 minutes for another warning delay 10 * 60 growlNotification("5 minutes to go.") -- After 25 minutes, load calm.com delay 5 * 60 makeMeCalm()

on makeMeCalm()
do shell script “open ‘/Applications/Google Chrome.app’ http://calm.com"
tell application “Google Chrome” to activate
tell application “System Events”
keystroke “f” using {command down, shift down}
delay 8
keystroke tab
keystroke tab
keystroke tab
keystroke tab
delay 1
keystroke return
end tell
end makeMeCalm

on growlNotification(message)
tell application “System Events”
set isRunning to (count of (every process whose bundle identifier is “com.Growl.GrowlHelperApp”)) > 0
end tell

if isRunning then
    tell application id "com.Growl.GrowlHelperApp"
        -- Make a list of all the notification types 
        -- that this script will ever send:
        set the allNotificationsList to ¬
            {"Timer", "Another Timer"}
        
        -- Make a list of the notifications 
        -- that will be enabled by default.      
        -- Those not enabled by default can be enabled later 
        -- in the 'Applications' tab of the Growl preferences.
        set the enabledNotificationsList to ¬
            {"Timer"}
        
        -- Register our script with growl.
        -- You can optionally (as here) set a default icon 
        -- for this script's notifications.
        register as application ¬
            "Growl Timer" all notifications allNotificationsList ¬
            default notifications enabledNotificationsList ¬
            icon of application "Script Editor"
        
        --       Send a Notification...
        notify with name ¬
            "Timer" title ¬
            "Timer" description ¬
            message application name "Growl Timer"
        
    end tell
end if

end growlNotification

What am I up to these days?

I’m a new parent, and prioritising my attention on our new rhythms as a family.

Work-wise, I’m trekking along at a cozy pace, doing stuff that doesn’t require meetings :)

I have a few non-exec/advisory roles for engineering edu programs. I’m also having fun making a few apps, going deep with zero-knowledge cryptography, and have learned to be a pretty good LLM prompt engineer.

In the past, I've designed peer-learning programs for Oxford, UCL, Techstars, Microsoft Ventures, The Royal Academy Of Engineering, and Kernel, careering from startups to humanitech and engineering. I also played a role in starting the Lean Startup methodology, and the European startup ecosystem. You can read about this here.

Contact me

Books & collected practices

  • Peer Learning Is - a broad look at peer learning around the world, and how to design peer learning to outperform traditional education
  • Mentor Impact - researched the practices used by the startup mentors that really make a difference
  • DAOistry - practices and mindsets that work in blockchain communities
  • Decision Hacks - early-stage startup decisions distilled
  • Source Institute - skunkworks I founded with open peer learning formats and ops guides, and our internal guide on decentralised teams