Software Dev

“What you can see here is that I was learning…”

I love this post from swiftjectivec.com.

👉 Things I Made That Sucked

Not only does he detail the interesting stories of some old apps he made, but also the valuable lessons learned from each app that he shipped.

Highlights

Aim first, then shoot. “Ask yourself why you’re doing what you’re doing and channel your excitement into less action and more thinking before you fire away.”

Pace yourself and don’t complicate. “Take time to learn about design and holy moses don’t toss in an open source project just because it’s shiny.”

There is no overnight success. “Always remember that character is carved out rather than instantly created. Each of these misses can eventually add up to a win.”

My own lessons

Applying the same thought process to my own old sucky apps, here is what I come up with…

Where in the World is Santa Claus?

Ignorance is bliss. I genuinely thought it would be easy to make an augmented reality Santa tracker as my very first iPhone app. Who cared that built-in AR support on the iPhone was years in the future?

I understood that I’d have to learn Objective-C and Xcode as I went. However, I did not appreciate how much there was to learn about location APIs, motion APIs, audio APIs, audio editing, 2D animations, CoreData, the State Pattern, linear algebra 🤯, the terrors (at the time) of shipping in the App Store, plus legal/privacy matters. Also why not translate the app into six languages, starting with Spanish?

And all just to see Santa blink on your screen when you pointed your iPhone north. 😆

My blissful ignorance allowed me to jump in fearlessly and forced me to conquer a mountain of challenges as I went (or quit).

This app only ever sold a few hundred copies but was a goldmine of experience and made me a mobile developer.

Bedtime Balloons

Simpler is better. App #2 was more useful and less technically challenging than the AR Santa app. Bedtime Balloons let me get into some fun art and more interesting animations. Plus this app actually made a difference in at least a few people’s lives.

Third-party frameworks can kill your app. At the time, there was no standard 2D animation engine for iOS. SpriteKit was not a thing yet. 🤷🏻‍♂️ So just like the Santa app, I built the animations around the very nice Cocos2d engine, which would eventually morph and evolve and… break my app. 🤦🏻‍♂️ Yeah, I could have rewritten my app, but again only selling a few hundred copies, I chose to avoid all the sweat and tears and just move on.

Continuous Math Cards

Be practical. I never expected to sell many copies of my barebones but highly configurable math flashcards app for kids.

Written quickly in the new (at the time) Swift language, the app was alright. 🤷🏻‍♂️ But it worked for me professionally. My next step would be a full-time day job as an app developer, which had long been my dream.

Me

All the “Things” 2020

I’ve been using the Things app to track all my personal to-do’s and projects for a couple of years now. I love this Mac-assed Mac app and use it all the time.

I recently discovered how to get access to the Things database and took the chance to reflect on how I’m spending my time.

So here are some highlights of all my “Things” in 2020.

Lastly year, I completed 108 personal projects. Each project consists of a number of specific to-do items (tasks). A project can be something small like 🛳 Renew passport (6 tasks) or big like 🎸Convert guest room to a music studio (31 tasks).

I generally include an emoji in my project names because somehow they help motivate me. 🤷🏻‍♂️

Some favorite completed projects of 2020 were:

  • 🗳Vote (3 tasks)
  • 🤹‍♂️Plan for best self (7 tasks)
  • 🦠Corona (5 tasks), my most fitting “project” for 2020

I canceled 9 projects, such as:

  • 🌶Home gardening
  • 🥋Grav Maga
  • 🦃 Holiday family plans, the most fitting cancellation for 2020

I completed 11 projects to “fix” things, including:

  • 🐍Fix that gap under my door (3 tasks)
  • 🥁Fix drums (luckily only 2 tasks and zero dollars)
  • ✍️Blog fix up (6 tasks)

Top project in progress:

  • 📘Write a book (43 tasks completed, many more to go — and growing)

In 2020, I completed about 7 per day on average. This is useful because it tells me how to pace myself.

I canceled about 1.4 per day. Canceling isn’t a bad thing — it’s just the opposite. It’s a conscious choice not to do something you thought you needed to do.

Going into the new year, I have 62 projects in progress. Hmm, it already looks like a busy year coming up. 🤔


Here is one of the SQLite queries I used for this post. 👨🏻‍💻

SELECT title, date(creationDate, 'unixepoch') as start, date(stopDate, 'unixepoch') as stop from TMTask
WHERE type = 1
AND status = 3
AND date(creationDate, 'unixepoch') BETWEEN '2020-01-01' AND '2020-12-31'
ORDER BY creationDate

Software Dev

The Mac Developer’s Swiss Army Knife

I get so annoyed when I find myself using random websites 🤮 or all different apps 🤷🏻‍♂️ to do things like format JSON, test regex’s, encode/decode Base64, encode/decode URLs, or convert Unix time strings.

This nifty little Mac app does all the basic things any developer regularly needs natively, locally, and offline. And it’s free if you build it yourself. Or pay for the official build. Up to you.

👉 DevUtils.app – Developer Utilities for macOS

DevUtils.app screenshot

Via iOS Dev Weekly. See also: Mac-assed Mac Apps 😆

Practical · You

Things and the 5 Second Rule

I recently came across this book on Audible called The 5 Second Rule by Mel Robbins. I didn’t end up buying the book since I don’t want to send 7 hrs and 35 mins listening to a book about a 5-second strategy. The math just didn’t add up for me. 😆

But I saw there was a short TED talk on the 5 Second Rule plus an even shorter YouTube video on the topic.

The basic idea is that as you go through your day, you have things constantly popping into your head. These are fleeting things that you should do, would like to do, useful ideas, and so forth. Mel says you have 5 seconds to act on that idea or it’s gone, or at least you won’t do anything about it. And acting on those ideas is the difference between making the life you want and not. 🤯

I like that idea. But what can you actually do in 5 seconds? I mean, you’re probably driving or out for a jog or playing Wii. You can’t necessarily write down a note or call up your cousin right then and there and invite him to lunch. You can’t go adopt a dog in 5 seconds. And you sure as hell can’t write a book in 5 seconds.

Mel has other suggestions on how to handle this 5-second period, but I’ve been dumping things like this into the appropriately named Things app on my iPhone. It goes like this:

Hey Siri, using Things, remind me to invite my cousin to lunch

That’s it. Now it’s in your inbox. You can figure out the details later, but at least now you have a placeholder / reminder. My Things inbox has grown way too long to be useful in the past (way into the hundreds), but I eventually fought it down, gradually turning this list into projects or reference notes or calendar reminders. I’ve also turned more than 400 fleeting thoughts into a database of book ideas (thanks to Evernote).

The only way I keep my Things inbox under control is to clean out the inbox once a week on Sundays. Usually I have about 40 things for the week to act on, organize, file, or discard. It takes about an hour a week.

And by the way, both this very blog and this specific post came out of a 5-second thought. 🤓

Hey Siri, using Things, remind me to check out Mel Robbins and The 5 Second Rule

Apps · Fun

Dad Games

I’m a dad, and a big fan a dad jokes (ask me why I had to break up with my tennis-playing girlfriend…).

But as a dad and former serious gamer, I’ve been having trouble finding time to play serious games. So I was excited to see that Apple had published a list of top-notch casual “Dad games” just for me. 🤓

👉 Get Your Dad Into Games

The standouts for me seem to be Old Man’s Journey (“A game about life, loss & hope”) and Brawl Stars (“3v3 and Battle Royale”). 👍