Sign in

stuartbreckenridge.net

@feed.stuartbreckenridge.net.ap.brid.gy
3 followers 0 following 24 posts

Independent iOS and macOS developer, cyclist, and blogger. 🌉 bridged from ⁂ stuartbreckenridge.net, follow @ap.brid.gy to interact

PostsRepliesMedia
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 07/03/2026
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: A quick […]
stuartbreckenridge.net
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 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 lengths of brief: Regular, Event, or WhatsApp depending on your selection. In addition, you can pick your _tone_(I use _cheeky_). With the above information, the Event output for this ride: > 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. 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. It's an extremely useful utility, and a bargain at $15 AUD a year.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 03/03/2026
Expanding What's New with What's Actually New.
stuartbreckenridge.net
What does “Updated Database” actually mean?
Every month or so I update Singapore Buses with the latest data from the Land Transport Authority. And every month the _What's New_ section on the App Store usually says something along the lines of: > Updated database and routes. What does that actually mean? Well, starting with 2026.3, which is _Waiting for Review,_ I've decided to include the month-to-month differences in the _What's New_ section. For this release, that means: ## New Stops (1) Code | Description | Road ---|---|--- 74951 | Blk 962A | Tampines St 96 ## Location Changes (7) Code | Description | Distance ---|---|--- 14521 | Village Hotel | 320m 28221 | Opp Intl Business Pk | 53m 28239 | Jurong Town Hall Int | 48m 28301 | Blk 131 | 21m 43081 | Opp St. Joseph's Ch (Bt Timah) | 112m 59069 | Opp Blk 757 | 74m 67759 | Compassvale Int | 13m ## Name Changes (4) Code | Old Name | New Name ---|---|--- 47749 | W'lands Health Campus | W'lands Hosp 52241 | Blk 105 | Bef Caldecott Stn/SAVH 65091 | BLK 301A | Blk 301A 67759 | COMPASSVALE INT | Compassvale Int ## Service Changes (20) Code | Description | Added | Removed ---|---|---|--- 74949 | Blk 961A | 18M | 74959 | Blk 969C | 18M | 74961 | Blk 966 | 18M | 74969 | Opp Blk 966 | 18M | 75341 | Opp The Clearwater Condo | 18M | 75349 | The Clearwater Condo | 18M | 84201 | Bedok Resvr Stn Exit A | 18M | 84209 | Bedok Resvr Stn Exit B | 18M | 84221 | Blk 109 | 18M | 84229 | Blk 111 | 18M | 84251 | Blk 99 | 18M | 84259 | Blk 88 | 18M | 84261 | St. Anthony's Cano Sch | 18M | 84269 | Blk 95 | 18M | 84271 | Aft Bedok Ind Pk E | 18M | 84279 | Aft Bedok Nth St 5 | 18M | 84521 | Blk 506 | 18M | 84529 | Blk 109 | 18M | 84591 | SBST Bedok Nth Depot | 18M | 84599 | Opp SBST Bedok Nth Depot | 18M | The biggest surprise to me was the number of bus stops moving around and how far they move. I mean _Village Hotel_ is almost half a kilometre away from where it was before — that'd be a shock in the morning if it was where you started your commute. Lost GIFfrom Lost GIFs
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 23/02/2026
Follow the White Rabbit
stuartbreckenridge.net
Matrix for NetNewsWire
0:00 /0:02 1× Matrix This theme is _Matrix-_ inspired and was built with the help of Claude (there's simply no way my CSS is this clean and tidy). This theme shines when your device is in dark mode. ## Features ### Visual Style * **Phosphor-green palette** — deep near-black background with glowing green text * **CRT vignette** — a radial gradient overlay darkens the screen edges for a vintage monitor feel (macOS only) * **Boot flicker** — the page and article animate in with a CRT power-on flicker effect * **Monospace throughout** — SF Mono ### Article Header * Feed name is prefixed with a shell prompt: `user@nnw:~$ cat` * Publish date is prefixed with `# timestamp:` * External link is prefixed with `# source:` * Feed icon is rendered in greyscale with a green tint and a pixel-art rendering mode ### Article Title * **Typewriter animation** — the title types out character by character in reading order, correctly handling titles that span multiple lines * **Blinking block cursor** (`█`) appears after the last character lands and blinks indefinitely ### Article Body * Separator line of `─` characters between the header and body * Headings prefixed with Markdown-style `##`, `###`, `####` markers * Blockquotes styled with a left border and faint green background * Code blocks include a fake terminal title bar (`● ● ● output`) and horizontal scroll on overflow * Inline code highlighted in amber with a subtle glow * Tables use uppercase headers, row hover highlights, and a green glow on the border * Figcaptions prefixed with `// ` * Images are desaturated and dimmed; hovering partially restores colour ### Platform Behaviour * **iOS** — uses dynamic type sizing, system hyphenation, and respects safe area insets; `html` background is set so native navigation and tab bar blur effects sample the correct dark colour * **macOS** — includes the CRT vignette, wider padding, and fixed text-size classes (`smallText` → `xxlargeText`) Add to NetNewsWire
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 15/02/2026
I've been experimenting with agents: Codex on a Python-to-ExpressJS conversion, and Claude in a Swift Package. The results have been impressive.
stuartbreckenridge.net
Experiments with the Codex and Claude Agents
I've been experimenting with agents: Codex on a Python-to-ExpressJS conversion, and Claude in a Swift Package. The results have been impressive. ### This post is for subscribers only Become a member to get access to all content Subscribe now
011
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 06/02/2026
The first major overhaul of NetNewsWire's iOS UI.
stuartbreckenridge.net
NetNewsWire 7 for iOS Out Now
<p>After <a href="https://stuartbreckenridge.net/netnewswire-6-out-now/" rel="noreferrer">five-ish years</a> of NetNewsWire 6—and many Summer, Autumn, and Winter nights of coding through 2025 and into 2026, and a sizeable TestFlight window—The <em>World’s Favourite Open Source RSS Reader</em><sup>TM</sup> has reached <a href="https://apps.apple.com/us/app/netnewswire-rss-reader/id1480640210" rel="noreferrer">version 7</a>. (Note: we discovered and fixed a lot of bugs during TestFlight, so thanks go to the testers!)</p><p>Similar to the <a href="https://stuartbreckenridge.net/netnewswire-7-for-mac-out-now/" rel="noreferrer">Mac release</a>, NetNewsWire 7 for iPhone and iPad:</p><ul><li>requires the OSs 26</li><li>adopts Liquid Glass</li><li>is a significant under-the-hood overhaul that adopts Swift Concurrency</li></ul><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.23.png" width="1769" height="3146" loading="lazy" alt="" srcset="https://stuartbreckenridge.net/content/images/size/w600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.23.png 600w, https://stuartbreckenridge.net/content/images/size/w1000/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.23.png 1000w, https://stuartbreckenridge.net/content/images/size/w1600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.23.png 1600w, https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.23.png 1769w" /></div><div class="kg-gallery-image"><img src="https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.38-2.png" width="1769" height="3146" loading="lazy" alt="" srcset="https://stuartbreckenridge.net/content/images/size/w600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.38-2.png 600w, https://stuartbreckenridge.net/content/images/size/w1000/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.38-2.png 1000w, https://stuartbreckenridge.net/content/images/size/w1600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.38-2.png 1600w, https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.58.38-2.png 1769w" /></div><div class="kg-gallery-image"><img src="https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.59.02.png" width="2000" height="1125" loading="lazy" alt="" srcset="https://stuartbreckenridge.net/content/images/size/w600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.59.02.png 600w, https://stuartbreckenridge.net/content/images/size/w1000/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.59.02.png 1000w, https://stuartbreckenridge.net/content/images/size/w1600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.59.02.png 1600w, https://stuartbreckenridge.net/content/images/size/w2400/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-06.59.02.png 2400w" /></div></div></div></figure><p>But, but, but...unlike the Mac release, which was quite easy, the iOS release has required a lot more work. On the latest episode of <em>The Talk Show, </em>Brent <a href="https://podsearch.david-smith.org/episodes/7902" rel="noreferrer">rightly pointed out that</a> <em>"iOS apps are just more complicated"</em>. </p><p>To summarise my <a href="https://stuartbreckenridge.net/tag/design-diaries/" rel="noreferrer">Design Diaries</a> and some additional items, NetNewsWire 7 makes 30 major changes:</p><ul><li><strong>[Sidebar] </strong>Converted from <code>UITableView</code> to <code>UICollectionView</code>. This was needed in order to adopt modern styling across iPad and iPhone. iPad uses the <code>.sidebar</code> style, and iPhone uses <code>.insetGrouped</code>. This is similar to the behaviour you see in Mail.</li><li><strong>[Sidebar] </strong>The current <em>Refresh </em>status is now located in the navigation bar as a subtitle, having previously been the footer.</li><li><strong>[Sidebar (iPad)] </strong>Like the Mac refresh, the Feeds view <em>floats</em> and allows Timeline content to slide underneath.</li><li><strong>[Sidebar] </strong>Smart Feeds and Account headers now adopt modern <em>secondary</em> styling.</li><li><strong>[Sidebar (iPad)] </strong>Selected feeds have a modern capsule background and the text is <strong>bold.</strong></li><li><strong>[Sidebar] </strong>Folders have been redesigned to match modern standards—they now have the same indentation as any other feed, but the enclosed feeds are indented further.</li><li><strong>[Sidebar] </strong>Folders will highlight when Feeds are being dragged and dropped into them.</li><li><strong>[Sidebar] </strong>Separators have been realigned.</li><li><strong>[Sidebar] </strong>Unread counts are larger and are no longer backed by a filled capsule.</li><li><strong>[Sidebar] </strong>Unread counts for folders are only displayed when the folder is closed.</li><li><strong>[Sidebar] </strong>Swipe actions reveal icons.</li><li><strong>[Sidebar (iPad)] </strong>Users can resize the sidebar (within reason).</li><li><strong>[Timeline] </strong>Converted from <code>UITableView</code> to <code>UICollectionView</code> (during TestFlight builds!) This was needed in order to adopt modern cell styling—e.g., selected and swipe status—across iPad and iPhone. </li><li><strong>[Timeline] </strong>Now uses <code>UICollectionViewDiffableDataSource</code>.</li><li><strong>[Timeline] </strong>Navigation bar images have been removed.</li><li><strong>[Timeline] </strong>Unread counts are now located in the navigation bar subtitle.</li><li><strong>[Timeline] </strong>Adopts hierarchical text colours for titles and summaries.</li><li><strong>[Timeline (iPad)] </strong>The search bar has been moved to the app-wide toolbar and behaves similar to search on the Mac.</li><li><strong>[Timeline (iPhone)] </strong>The search bar has been moved to the bottom toolbar.</li><li><strong>[Timeline (iPad)] </strong>The Timeline width is user adjustable (again, within reason).</li><li><strong>[Timeline] </strong>Timeline cells have been redesigned in Interface builder and now have the rounded corner selection style in addition to hierarchical text colours for title and summary.</li><li><strong>[Timeline] </strong>The Mark All as Read image (on both iPad and iPhone) has had alignment changes to make sure it sits in the middle of an <em>englassified</em> button.</li><li><strong>[Article (iPad)] </strong>Articles can be read in three-pane view without hiding the Sidebar.</li><li><strong>[Article (iPad)] </strong>The top toolbar inherits search capabilities.</li><li><strong>[Article] </strong>The bottom toolbar buttons have been grouped in a 2-1-2 formation with the <em>Next Unread </em>button sitting in the throne seat.</li><li><strong>[Sidebar, Timeline, Article]</strong> Visual state is restored on relaunch.</li><li><strong>[Widgets] </strong>Home Screen widgets have been redesigned to make better use of horizontal space.</li><li><strong>[Widgets] </strong>Added a new Lock Screen widget with Today, Unread, Starred counts.</li><li><strong>[Settings] </strong>Timeline Customiser has been redesigned and includes both icon and non-icon previews.</li><li><strong>[About] </strong>Tending to the dark corner of the garden, the About view on iOS has been redesigned and inspired by the Credits from <a href="https://www.macstories.net/reviews/vesper-review-collect-your-thoughts/" rel="noreferrer"><em>Vesper</em></a>.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-07.04.47.png" class="kg-image" alt="" loading="lazy" width="1769" height="3146" srcset="https://stuartbreckenridge.net/content/images/size/w600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-07.04.47.png 600w, https://stuartbreckenridge.net/content/images/size/w1000/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-07.04.47.png 1000w, https://stuartbreckenridge.net/content/images/size/w1600/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-07.04.47.png 1600w, https://stuartbreckenridge.net/content/images/2026/02/Simulator-Screenshot---iPhone-17-Pro-Max---2026-02-03-at-07.04.47.png 1769w" /><figcaption><span style="white-space:pre-wrap">The new About view.</span></figcaption></figure>
001
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 28/01/2026
Swift Concurrency, Liquid Glass, macOS 26.
stuartbreckenridge.net
NetNewsWire 7 for Mac Out Now
<p>NetNewsWire 7 for Mac is <a href="https://netnewswire.com" rel="noreferrer">out now</a>. </p><p>This release is significant: it adopts Swift Concurrency (which you shouldn't see), Liquid Glass (which, despite the transparency, you should see), and supports macOS 26 (as a minimum). From a UI perspective: </p><ul><li>The Sidebar adopts standard Liquid Glass behaviours which means it <em>floats</em> and allows timeline content to slide underneath</li><li>Unread indicators are no longer backed by a filled capsule. They are now just a simple unread count</li><li>The Toolbar has seen a minor reorganisation which moves the sidebar toggle from the timeline into the sidebar. In addition, toolbar buttons adopt the standard Liquid Glass button look-and-feel</li><li>Tending to the dark corner of the Lucida Grande garden, the About window has been redesigned</li></ul><p>Nick Heer, <a href="https://pxlnv.com/linklog/netnewswire-7/" rel="noreferrer">Pixel Envy</a>:</p><blockquote>This is a rather tasteful implementation of Apple’s new visual design language</blockquote><p>The iOS release is just around the corner. </p>
010
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 26/11/2025
stuartbreckenridge.net
A Triple-Negative Pretzel
Even LLMs struggle with triple-negatives.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 07/11/2025
stuartbreckenridge.net
Changes to tabViewBottomAccessory in iOS 26.1
iOS 26.1 introduced an infuriating change to the tabViewBottomAccessory behaviour.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 25/10/2025
stuartbreckenridge.net
Halo: Campaign Evolved
Wort Wort Wort
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 24/10/2025
stuartbreckenridge.net
Joining the Streaming Game
See you on YouTube.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 16/09/2025
stuartbreckenridge.net
Singapore Buses v2026
A look at some of the technical changes made to Singapore Buses.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 28/08/2025
stuartbreckenridge.net
Singapore Buses v2026 Beta
Your commute companion is ready for testing.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 27/08/2025
stuartbreckenridge.net
Adopting Liquid Glass, Part V (Singapore Buses, Finishing Touches)
Arrivals, Routes, Advertising, and Settings are the final few areas left to cover, in the last of this series of posts.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 26/08/2025
stuartbreckenridge.net
The Betas 8 Are Out
...and more on the subject of drunk UI.
101
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 22/08/2025
stuartbreckenridge.net
PADD for NetNewsWire
Bringing the 24th century to NetNewsWire.
002
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 19/08/2025
stuartbreckenridge.net
The Betas 7 Are Out
A release candidate seems close.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 17/08/2025
stuartbreckenridge.net
Adopting Liquid Glass, Part IV (Singapore Buses, Revisiting the Tab Bar)
The Tab Bar Strikes Back.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 16/08/2025
Pardon our dust if you see a few articles reappear. Apparently, setting articles to "Featured" reposts them!
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 15/08/2025
stuartbreckenridge.net
eSIMs as a Profit Centre
Rumours about an eSIM-only iPhone trigger a little rant on eSIM fees.
100
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 14/08/2025
stuartbreckenridge.net
'Blood Oxygen Feature Finally Returning to Apple Watch in the US'
Users in the US will be able to view blood oxygen measurements on their phone.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 14/08/2025
stuartbreckenridge.net
Apple Maps ‘Detailed City Experience’ Adds Singapore
A more detailed map for Singapore.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 13/08/2025
stuartbreckenridge.net
New Digs
A new start with a new design, Fediverse connectivity, membership, and private analytics.
001
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 13/08/2025
stuartbreckenridge.net
Adopting Liquid Glass, Part III (NetNewsWire iOS)
A look at Liquid Glass changes coming to NetNewsWire on iPad and iPhone.
000
stuartbreckenridge.net @feed.stuartbreckenridge.net.ap.brid.gy · 13/08/2025
stuartbreckenridge.net
Adopting Liquid Glass, Part II (NetNewsWire Mac)
A look at some of the changes coming to NetNewsWire on the Mac.
000