The Story of WidgetSmith

I know him from his podcast Under the Radar and this story has been shared on air but David “Underscore” Smith’s tale of how building an iOS app changed his life is a fantastic story you shouldn’t miss. It even made me want to be an indie developer.

David Smith on what it feels like to win the App Store lottery:

The initial response to the app was warm but nothing out of the ordinary. Widgetsmith was the 59th app I had launched so I’d been through this process a lot over the preceding twelve years of indie app development. Typically you see a little swell of interest in the first few days. Then things settle down into a stable level and you move onto the maintenance and gradual improvement of the app.

This was what I thought would happen with Widgetsmith and the indications for the first few days were that this was exactly what would happen.

[…]

It wasn’t until we got back from our walk that I had my first indication that something was up. Someone reached out to me on Twitter saying they’d seen Widgetsmith getting mentioned on TikTok. I click through to the video they linked to and discovered that there was a walkthrough video by Katarina Mogus which was going viral at the moment.

Widgetsmith now has around 131 million downloads.

What Happened When Piers Gelly Tried to Replace Himself with ChatGPT in His English Classroom.

I loved this article by Professor Piers Gelly on “what happened when I tried to replace myself with ChatGPT”:

“Like many teachers at every level of education, I have spent the past two years trying to wrap my head around the question of generative AI in my English classroom. To my thinking, this is a question that ought to concern all people who like to read and write, not just teachers and their students. Today’s English students are tomorrow’s writers and readers of literature. If you enjoy thoughtful, consequential, human-generated writing—or hope for your own human writing to be read by a wide human audience—you should want young people to learn to read and write.
[…]
At the end of the semester, they would decide by vote whether AI could replace me.”

I’ve upgraded the N-dashes in the blockquote above to M-dashes. I’m told this has become a tell-tale sign of the use of large language models. I take it as a sign that even if my writing isn’t the greatest, at least I’m doing something right.

See also Why Did a $10 Billion Startup Let Me Vibe-Code for Them—and Why Did I Love It?1

(via Kottke)

  1. News+ Link[]

List of Random Posts Widget

I wanted to create a home for my new Random Posts Widget — and so I guess this post is it. I created it with the help of AI and I’m pleased with the result. There are some other WordPress plugins that do the same thing but this one uses modern code1.

It’s pretty straightforward, it just picks between one and 10 random posts and displays them on your WordPress site. That’s it.

Download the List of Random Posts plugin, unzip it, upload it to your wp-content/plugins/ directory and then activate it from your WordPress admin -> plugins page. After it’s live, you’ll find it in your collection of widgets which can be added on your site anywhere widgets are supported.

See the sidebar for the plugin in action.

PHP code after the jump: Continue reading “List of Random Posts Widget”

  1. At least according to ChatGPT[]

Solving “FriendFace” – 100 Days of SwiftUI Day 60 Challenge

Last Thursday I officially joined Apple’s App Developer Program so although I’m anxious to start rolling out some of the apps that I’ve started putting together for now I’m still developing my skills.

I’ve been learning iOS app development through Paul Hudson’s wonderful 100 Days of SwiftUI and I just finished the Day 60 Challenge — Friend Face. I’m posting my work here in order to share my process and solidify my thinking.

Continue reading “Solving “FriendFace” – 100 Days of SwiftUI Day 60 Challenge”

Fortune

MacBook running the manual for Fortune

I’ve been learning Terminal commands from a new book that I got, “Tweak Your Mac Terminal“.

Reading through the first chapter, I discovered a simple command-line utility called “Fortune”. When it’s installed and run at the command-line, Fortune displays random quotations or proverbs. It is often used to provide a humorous or thought-provoking message to users when they log in or open a terminal session. I noticed within the fortune manual (man fortune) that there were some offensive fortunes that had been relegated to only operating when one entered the -o flag (fortune -o) but then discovered that the offensive quotations had actually been removed altogether from the home-brew repository because, well, it includes explicitly racist, homophobic, ethnically insensitive and other offensive content that directly conflicts with the Homebrew’s code of conduct.

Curiosity killed the cat and I found them online. Needless to say, they are at least pretty crass if not outright offensive. But finding them led me down the path to discovering how one creates their own quotations to add to the library of possible fortunes.

To add your own quotations or messages to the fortune database, you’ll need to create a custom fortune file and then compile it into a .dat file. Here are the steps:

Create a Fortune File:
  • Open a text editor, such as bbedit, nano, vim, or gedit.
  • Add your quotations or messages, one per line, to the file. Each message should end with a % character. For example:
This is my first custom fortune message.
%
Here's another custom fortune message.
%
Add as many messages as you like.
%
  • Save the file with a .txt or .dat extension (e.g., my_fortunes.txt).
Convert the Fortune File:
  • Use the strfile command to convert your text file into a .dat file. The .dat file is used by the fortune program to provide random messages efficiently. Run the following command:
strfile my_fortunes.txt my_fortunes.dat
  • Replace my_fortunes.txt with the actual name of your text file and my_fortunes.dat with the desired name for your .dat file.
  • Install or Copy to Fortune Directory:
  • If you want to make your custom fortunes available system-wide, you can copy the .dat file to the system’s fortune directory. On most Unix-like systems, this directory is typically /usr/share/games/fortunes/ or /usr/local/share/games/fortunes/. You may need to use sudo to copy the file:
sudo cp my_fortunes.dat /usr/share/games/fortunes/

Scrumdinger

scrumdinger card color not working

I’ve been dabbling with Xcode since I got my first Macbook back in 2016. I’ve wanted to learn how to make an iPhone app and especially how to make one that uses SwiftUI, the user interface is growing in popularity and by all accounts is Apple’s recommended choice. Last month I started on this tutorial from Apple’s developer site and last week I finished it! The app is called Scrumdinger and it helps keep track of speaking turns and time limits during a meeting.

A screenshot of the Scrumdinger app.

One problem that needed to be sorted out happened within the section titled, “Creating a card view“. I ran into this warning:

Because I had followed the first section perfectly, I assumed I didn’t need to download the Scrumdinger “starting project” because if that was the case, then how would I be able to make an app myself? Eventually I discovered I would need to add color assets to Xcode in order to avoid needing the “starting project” files.

After eventually figuring out how to do it manually, I made this video showing a quick look at the process:

Then repeat for the remaining 15 colours or just download the “starting project”. I can see why the writers of the tutorial opted to skip the tedious operation of adding each colour manually but it’s nice to know how to do it.