Undulate (Paradise Marsh)

An Hour of Crickets and Music.

Play the game to hear it undulate forever. Apologies for leaving the cursor out to dry.

Outta Dodge (Soundodger 2)

A track written for Soundodger 2. Here's a nice playthrough of the level.

Computer Productivity

update : I no longer use these solutions, as I've tried to move away from prioritizing e-mail usage. But I've left them up in case someone finds them useful !

I've spent a lot of time over the years tinkering with my computer workflow. While I can safely say I developed a particular fondness for creating these little solutions, generally I think it's saved me considerable time.


I've found that using my inbox as a sort of a 'to-do desk' has worked well for me. I snooze, archive or delete anything that isn't relevant to me for the day. I also send myself e-mails, which I use as reminders, and I will often snooze those to the appropriate date as well. I've spent a lot of time customizing the way my inbox looks and behaves so that it only has and responds to the essential things that I need.

My customized g-mail.

You Snooze You Win

The default way to snooze and send yourself emails in gmail requires a few steps, so I created workflows that cut the time these tasks take. In hindsight, this was probably gratuitous and unnecessary, but it was fun, so 🤷‍♂️️ !

I set up an Alfred + Keyboard Maestro workflow that lets me snooze emails to specific dates and times using shorthand syntax. So, assuming I have one or more emails selected in Gmail, I will toggle Alfred and use the keyword z.

Some examples:

z 2tue : snooze two Tuesdays from now
z w    : snooze 1 week in the future

! go to store, 8h : create a new reminder (sending an email to myself) to go to store and snoozing it for 8 hours.

z 11a  : snooze to the next instance of 11 am, which may be tomorrow.
z 2mo  : snooze for 2 months
z d20  : pick a random time to snooze to within the next year (my personal favorite)

I built the syntax parsing in node.js, on top of a pre-existing natural language date parser called chrono, so it also takes more verbose commands, days of the week, full dates, etc. I just added custom syntax where I thought it could be more efficient and suit my workflow better.

Once the date parser figures out what date and time you're requesting and spits it out in a format that is then passed from Alfred to a Keyboard Maestro macro via osa/AppleScript. Then Keyboard Maestro handles all the keyboard input steps necessary to open the snooze window, input the date etc.

This workflow is available to use to your heart's content on github.

Go on Vacation, Everyday

I also set up a gmail script that simulates the 'hold mail' service offered by post offices. I find that knowing that my inbox only gets new messages in bursts helps me spend less time compulsively checking for new mail.

Using this in tandem with the trigger service, you can have this run only at set times. For me I like having new mail only come in once a day in the morning. If I really need to look for something new coming in, it's still there for me, just outside of my inbox, in a label for held mail.

You can find the script here.