ramblings of joe / posts

Write Once, Run Anywhere

Recently someone asked me: “what’s a hill in software that you’re willing to die on?”

After thinking for a minute, my answer was that “write once, run anywhere” solutions are almost never worth the compromises. When I first started writing iPhone OS apps (in summer of 2008), I was working with someone who was advocating for a javascript and HTML solution to writing mobile apps, that would allow us to get “near native” appearance and performance without the overhead of learning Objective-C, and the potential payoff of deploying the app to other mobile platforms if it was desired down the line.

Let’s break that down.

read more


M1 MacBook Air

I preordered an M1 MacBook Air as soon as they were available on Apple’s site. Those who know me weren’t surprised I bought one of the new machines – I buy most new Apple products – however, several of my friends asked me why I got the Air instead of the 13" MacBook Pro or even the Mac Mini. At the time, the main reason was to give the retina MacBook Air form factor a try. I was hopeful that the fanless performance of the M1 chip would be comparable to the other machines, but even if it wasn’t I didn’t intend to do much on it that required sustained high performance.

Wow have I been blown away.

read more


Write

When I can’t sleep, I write. When I need to think, I write. When I need to cope, I write.

Writing helps me in many aspects of my life. It slows down my thoughts to allow me to process information in a coherent way instead of thinking ten steps ahead and losing sight of the present.

read more


Twenty-twenty

2019 was a year of tremendous personal growth for me. As I look back on 2019 and back further over the last decade, I’m amazed by the things I have accomplished, the people I’ve had the good fortune of meeting, and the experiences I’ve had.

read more


Perfect

“Le meglio è l’inimico del bene.”1

– Italian proverb quoted by Voltaire

The pursuit of perfection can be crippling. I’ve been working on a post about mechanical keyboards off and on for over a year, and the other day I realized the reason I haven’t finished it is I want it to be perfect. I’ve built it up so much in my mind that anything less than my vision for it is inadequate.

Maybe it’s because I’m a little OCD, or that I like to impress people, or that I hold myself to high standards. While any of those (or all of those) could contribute, at the end of the day my desire to deliver the “perfect” post is standing in the way of me finishing that post at all.

I’m not sure what “the answer” is2, I know that at this point I need to set a deadline and publish my best effort. So by next Friday (June 21st), I’ll publish something about mechanical keyboards. It probably won’t be perfect, but it will be done.


  1. Translation: ”Perfect is the enemy of good”, or more literally “the best is the enemy of the good.” (Source: Wikipedia) ↩︎

  2. Here I go again, looking for the “perfect” answer to this dilemma of perfectionism. ↩︎

Next Page