Rolling.bike

Rolling.bike

A useful new web app for generating ride briefs is now available at the brilliantly named rolling.bike. Upload your GPX file, or sync your routes via Strava or Ride with GPS, provide some context and Rolling will generate a well structured ride brief.

Here’s a walked through example:

The GPX file
The GPX file

A quick summary of this route:

  • Start at Botanics
  • The hilly comb of First-to-Fifth Avenue
  • Hillview
  • Lorong Sesuai
  • Rifle Range Road
  • Finish at Dempsey at the bottom of the map

Information I provided to Rolling:

  • Route Name: Hills and Thrills
  • Category: Steady (2.0 - 2.8 W/kg)
  • Named Start and End points
  • Rider Notes:
  • New Rider Instructions: Lots of short and snappy hills.
  • Self sufficiency note: Two bottles. One gel.

With that information, Rolling can output various lengths of brief: Regular, Event, or WhatsApp, depending on your selection. In addition, you can pick your brief’s tone (I use cheeky). With the above information, the Regular output for this ride:

Hills and Thrills is exactly what it says on the tin, a fun steady-paced loop round some of the nicer parts of the island. It’s 35.2 kilometres with 635 metres of climbing spread across six proper little kicks, so you’ll get a proper workout but nothing that’ll have you gasping for air round every corner. This ride is for anyone who fancies a morning out with decent scenery and a few punchy climbs to keep things interesting. We’ve got regroup points dotted through the route, so you can catch your breath and stay together as a group. No heroics required. The climbs are all short and snappy. Haunted Hill at 14.7 kilometres in is probably the meanest of the lot at 8.7 per cent, but it’s still only 300 metres of pain. Lorong Sesuai later on is similarly spicy at 11 per cent but equally brief. First Avenue and Bukit Timah Road will warm you up early doors, nothing outrageous but enough to let you know your legs are switched on. You’ll be self-sufficient out there, so bring two bottles and a gel to keep the tank topped up. A spare tube and pump are non-negotiable, as is the usual common sense. We’re starting at Singapore Botanic Gardens Tanglin Gate on Saturday 7 March at 6am. It’s an early one but worth it for the cooler morning air and quiet roads. We finish at Burnt Ends Bar on Dempsey Road, where we’ll sort out proper breakfast and a coffee that’s actually worth drinking. Should be a cracking morning.

The Event brief:

This is a steady ride built around short, punchy climbs that’ll keep things interesting without requiring you to sell a kidney. We’re looking at 35 kilometres with 635 metres of elevation crammed in, which is basically Singapore’s way of testing whether you can handle variety on a bike. We’ll start at Tanglin Gate in the Botanic Gardens and head into familiar territory. The climbs here are properly bite-sized. You’ve got Jalan Dermawan, which is steep enough to remind you that you have legs, and Lorong Sesuai sits in there with a bit of attitude at 11 per cent average. Holland Road rounds out the main event near the end. Nothing’s long enough to really damage you, but they’re all short enough that you have to actually pedal properly. This isn’t a race, so we’ll regroup sensibly at the bottom of anything notable. Keep things social on the flats, push on the climbs, and try not to look too smug when you get to the top. We’re aiming for around two hours ten minutes of riding, which gives us time to chat, recover between efforts, and generally not take ourselves too seriously. The route loops us back through some nice sections, so there’s rhythm to it. Early on you’ll pass through Avenues One to Five before heading out toward the real climbing. Bukit Timah Road gets involved early, then we settle into the longer middle section where Jalan Dermawan and Lorong Sesuai are waiting to have their say. Bring two bottles and a gel minimum. There aren’t convenient shops along the way, so come prepared to look after yourself. Water stops are on you. We’re finishing at Burnt Ends Bar on Dempsey Road, which is a proper reward for a solid morning’s work. Coffee, food, legs that feel like they’ve done something worth doing. That’s the deal. See you Sunday morning. And no, you don’t need to be elite to ride this. Just show up with a bike that works and legs that are willing to go up hills a few times.

And finally, the WhatsApp brief:

Saturday 7 March, 6am sharp from Tanglin Gate. We’re doing Hills and Thrills, 35 km of the sort of climbing that keeps you honest. Plenty of short punchy hills that’ll test your legs but won’t bore you. Regroup spots at First through Fifth Avenue at the bottom, then Former Hillview and Lorong Sesuai at the top, plus Rifle Range Road at the end. Bring two bottles and a gel because we’re not messing about. Finish at Burnt Ends Bar, Dempsey Road.

The more you use Rolling the better it gets as it actually learns your tone!

It’s an extremely useful utility, and a bargain at $15 AUD a year.

Summer Plans

Summer Plans

Like other developers, I’ve spent a few weeks with Apple’s new Liquid Glass design language. In some areas, I think it’s tremendous: the macOS dock, iOS folders, text selection hover effects on iOS, and the new sidebars are standout elements. In other areas, it’s middling: toolbars and tab bars that don’t update quite in *real-time *as advertised leave the UI looking out-of-sync with the underlying content. And, the final bucket, where it’s rubbish: clear glass icons.

My working assumption is that the rough areas will be smoothed out over the next few months.

So, on to the plans:

Singapore Buses

  • Singapore Buses is currently on v2025.5. There may be a few summer updates to keep the bus stops and routes current.

  • Singapore Buses v2026:

  • Will target iOS 26

  • Will have Liquid Glass UI (I am experimenting with toolbars, tab bars, and more…)

  • Will have new server-side code (written in Python)

  • Will, tentatively, drop Core Data (which has been the biggest source of crashes)

NetNewsWire

  • Refresh the macOS and iOS UI.

  • No new features (except the NetNewsWire About panel on macOS)

Untitled Flag Quiz

  • A long time ago, in a coding language far far away (Objective-C), I wrote an app to teach my nephews about world flags
  • Said nephews are now adults, but I’ve been asked to bring back the app
  • Thing is, I don’t have the source code from that original app
  • Thus, build from scratch or build from prompts? Let’s see

Singapore Buses Year-in-Review 2024

Singapore Buses Year-in-Review 2024

It’s the last day of 2024! I launched this version of Singapore Buses in September 2023, so 2024 is the first full year of statistics I have available. The data below is captured through Firebase and App Store Connect.

  • Number of sessions: 133,000

  • Geolocation Alerts (to tell a user when they’ve arrived): 1,600

  • Live Activities: 627

  • Crashes: 48 (though 0 since October)

  • End of Year Ratings:

  • 4.6 ★★★★★ | 266 ratings (Singapore App Store)

  • 4.9 ★★★★★ | 34 ratings (Malaysia App Store)

  • 4.8 ★★★★★ | 11 ratings (US App Store)

  • 4.7 ★★★★★ | 10 ratings (UK App Store)

  • 4.9 ★★★★★ | 7 ratings (India App Store)

  • 4.3 ★★★★☆ | 6 ratings (Thai App Store)

  • 4.0 ★★★★☆ | 4 ratings (Australia App Store)

  • 4.8 ★★★★★ | 4 ratings (Japan App Store)

The Live Activity count is not as high as I would have hoped, but it is gated behind a (very small) in-app subscription so it is perhaps not surprising. The majority of the 48 crashes were caused by a daft programming error (i.e., my error) where I was trying to update the UI from a background thread. I haven’t seen a crash report since I fixed it in October.

Ratings-wise, I’m happy. (The overall 4★ rating from Australia is broken down to three 5★ ratings plus one 1★ rating, with no written review. I’m ignoring it.)

I’m happiest with the number of sessions. At 133,000 for the year, it averages at over 2,500 sessions-per-week.


On to the money:

  • Ad Revenue: S$167
  • App Store Revenue: S$77.00 (after Apple’s cut)
  • Server: (S$27.16)
  • Apple Developer: (S$134)
  • **SWEET PROFIT: **S$82.84

App development truly is a high-margin, high-profit, gold-rush business.

Here’s to 2025 ⌚️!

NetNewsWire 6.1 Released

NetNewsWire 6.1 is out now on macOS, and custom themes are the tentpole feature. Yes, custom themes, for your RSS reader. It’s not just changing the tint colour or the font, custom themes change the entire reading experience. It sounds nuts. It is nuts. It is also great fun.

From version 6.1, NetNewsWire will recognise .nnwtheme theme packages and install them automatically.

Two of my themes—Promenade and NewsFax—are included in the 6.1 release.

I also have a few others available for download for members:

  • Broadsheet — NetNewsWire as a quality newspaper
  • Illinois — NetNewsWire plus a little bit of classic macOS