eSIMs as a Profit Centre

The rumours surrounding the upcoming *iPhone Air *suggest it will not have a physical SIM tray and will rely entirely on eSIM technology. Fine. I like eSIMs. My primary line uses an eSIM and when I’m travelling outside of Southeast Asia I use Airalo to get a local eSIM for data purposes.

My problem with the eSIM-only model is the behaviour of the networks. A few of the networks in Singapore treat eSIMs as a profit centre (and I’m sure they’re not the only ones):

  • M1: *You will be able to retain your 5G eSIM number however you will need to remove your eSIM profile from the current device and re-download into the new intended device (a fee of **$5.45 *applies for the re-download).
  • Singtel: Chat with us to get another eSIM. Each replacement costs $10.90.

$10.90 for a *physical *sim is expensive, but for eSIM it is downright outrageous. If an eSIM is roughly 50 kilobytes and a new/replacement is $10.90, that’s ~22 cents per kilobyte (or, inflation adjusted, 20x more expensive per KB than initial AOL dial up). Luckily, $5.45 is exactly half the price — bargain!

Here are just a few scenarios where these fees could apply, which highlights their absurdity:

  • Buying a new phone, deleting your old eSIM, and downloading a new eSIM
  • Losing your phone, buying a new phone, deleting your old eSIM (via the network’s app), and downloading a new eSIM
  • Erasing all content and settings, deleting your old eSIM (via the network’s app), and downloading a new eSIM

In the olden days, you just moved your SIM card between devices. It was free and easy to do.

'Blood Oxygen Feature Finally Returning to Apple Watch in the US'

'Blood Oxygen Feature Finally Returning to Apple Watch in the US'

Hartley Charlton, for MacRumors:

Apple says that its blood oxygen monitoring feature has been “redesigned” for the Apple Watch Series 9, Apple Watch Series 10, and Apple Watch Ultra 2 in the United States. The new solution involves measuring sensor data from the Blood Oxygen app on the Apple Watch and sending it for calculation to a paired iPhone, with the results to be viewable in the Respiratory section of the Health app.

My SpO₂ readings only dipped below 98% when I was ill a few months ago, and returned to 98%+ once I recovered. That’s the only time I’ve really noticed the feature. As such, I doubt blood oxygen monitoring (or its absence) has had much influence on Apple Watch purchasing decisions or Apple’s bottom line.

That said, this is a clever workaround that’s been 19 months in the making, and one that’s sure to irritate Masimo. Where do they go from here?

Apple Maps ‘Detailed City Experience’ Expands to Singapore

Apple Maps ‘Detailed City Experience’ Expands to Singapore

Over the last week or so, the ‘Detailed City Experience’ in Apple Maps has expanded to Singapore. The result is a more detailed map with improved road markings and highly detailed landmarks.

Marina Bay Sands (left), National Stadium (centre), Lau Pa Sat + Road markings (right)

Singapore Buses’ routes should benefit from a more detailed map!

New Digs

New Digs

It turns out that my stint on WordPress was short-lived. One month, to be exact. I’ve restarted my blog on Ghost 6 with all the bells-and-whistles of Federation, built-in membership management, and native analytics from TinyBird.

Design

I’m using a new theme, Thesis*, *from Priority Vision, which reminds very much of a particular three-column Mac app that I’ve worked on. The pièce de résistance: the little satellite icon in the sidebar (from lucide.dev) representing NetNewsWire.

Federation

The website has its own Fediverse persona/mind of its own:

Membership

You can join as a member. It’s free. You get the ability to comment and access to some member’s only content (e.g., easy theme installs for NetNewsWire). I might send you the occasional email.

Miscellaneous

Most of the redirect work is done, so WordPress-style URLs (yyyy/mm/<post_title>) should redirect to the new Ghost URL. There’s no JSON feed with Ghost, so you’ll need to resubscribe to the new RSS feed.

Adopting Liquid Glass, Part III (NetNewsWire iOS)

Adopting Liquid Glass, Part III (NetNewsWire iOS)

NetNewsWire has an experimental branch with work-in-progress Liquid Glass changes. These changes cover the Mac, iPad, and iPhone apps. This post covers changes to the iPad and iPhone app.

iPad

The Sidebar (Feeds view) has had a significant refresh.

What was previously a UITableView is now a UICollectionView. While this gives more flexibility in terms of custom layout, it was a change that was needed in order to adopt modern styling across iPad and iPhone. iPad uses the .sidebar style, and iPhone uses .insetGrouped. This is similar the behaviour you see in Mail.

Modern Sidebar (left), Classic Sidebar (right)

From top-to-bottom, the following modernising changes have been made:

  • The current *refresh *status is now located in the navigation bar as a subtitle, having previously been the footer
  • Toolbar buttons follow Liquid Glass standards
  • Like the Mac refresh, the Feeds view floats and allows Timeline content to slide underneath
  • Smart Feeds and Account headers now adopt modern secondary styling
  • Selected feeds have a modern capsule background and the text is **bold **(note: there is little consistency in Apple’s apps—Files makes text bold while Reminders doesn’t)
  • Folders have been entirely redesigned to match modern standards—they now have the same indentation as any other feed, but the enclosed feeds are indented further
  • Folders will highlight when Feeds are being dragged and dropped into them
  • Separators have been removed
  • Unread counts are larger and are no longer backed by a filled capsule
  • Unread counts for folders are only displayed when the folder is closed
  • Swipe actions reveal icons instead of named labels due to space constraints
  • Users can resize the sidebar (within reason 😃)

When side-by-side, you can see that there are less feeds on screen as the modern cells have larger vertical margins.

Timeline

Modern Timeline (left), Classic Timeline (right)

Again, from top-to-bottom:

  • Navigation bar images have been removed
  • Unread counts are now located in the navigation bar subtitle
  • The search bar has been moved to the app-wide toolbar and behaves similar to the Mac search
  • The Timeline width is user adjustable (again, within reason 😄)
  • Timeline cells have been redesigned in Interface builder and now have the rounded corner selection style
  • 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 englassified button

Articles

Modern Article (left), Classic Article (right)

There aren’t many changes to the Article view:

  • Articles can be read in three-pane view without hiding the Sidebar
  • The top toolbar inherits search capabilities
  • The bottom toolbar buttons have been grouped in a 2-1-2 formation with the *Next Unread *button sitting in the throne seat

iPhone

Similar to the iPad, the iPhone *Feeds view *has had a significant lick of paint.

Modern Feeds (left), Classic Feeds (right)

As mentioned above, the overall design adopts an .insetGrouped style. Comparatively:

  • Inline navigation titles are used
  • The latest refresh status has moved to the navigation bar subtitle from the bottom toolbar
  • Smart Feeds and Account headers now adopt modern styling
  • Disclosure indicators have moved from left to right
  • Similar to the iPad updates:
  • Folders will highlight when Feeds are being dragged and dropped into them
  • Unread counts are larger and are no longer backed by a filled capsule
  • Unread counts for folders are only displayed when the folder is closed
  • Swipe actions reveal icons instead of named labels due to space constraints

Timeline

Modern Timeline (left), Classic Timeline (right)

Timeline changes on the iPhone are slightly different to those of the iPad:

  • The navigation bar makes use of the subtitle to display either the current unread count or, if the unread count is zero, the latest refresh time
  • Images and capsule-backed unread counts have been removes from the navigation bar
  • The search bar has been moved to the bottom of the screen and is no longer hidden under the navigation bar
  • Cells have modern rounded corner selection style

Articles

Modern Article (left); Classic Article (right)

There are almost no changes to the iPhone’s Article view other than adopting modern bar and button styling. Phew!

Adopting Liquid Glass, Part II (NetNewsWire Mac)

Adopting Liquid Glass, Part II (NetNewsWire Mac)

NetNewsWire has an experimental branch with work-in-progress Liquid Glass changes. These changes cover the Mac, iPad, and iPhone apps. This post covers changes on the Mac, which, in comparison to the iPad and iPhone app, are relatively minor.

The Sidebar adopts standard Liquid Glass behaviours which means it floats and allows timeline content to slide underneath.

0:00
/0:05

Unread indicators are no longer backed by a filled capsule. They are now just a simple unread count.

Old (left), New (right)

Toolbar

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.

NetNewsWire Toolbar

Timeline and Article Views

The Timeline and Article view have seen no changes other than to remove code that is no longer required.

Context Menus

Context Menus have been updated with icons where appropriate.

Old (left), new (right)

About NetNewsWire

Lastly, the About NetNewsWire panel has been modernised in full:

  • Changed from a vertical to horizontal layout
  • Changed font from Lucida Grande to San Francisco
  • Adopts a *glass effect *background

The Betas 6 Are Out

The Betas 6 Are Out

Juli Clover, MacRumors:

There are changes to Liquid Glass, tweaks to navigation, new ringtones, and more.

Importantly, the issues I have been experiencing in the previous betas are all fixed:

  • FB18767040: Hiding a tabViewBottomAccessory resulted in a view not extending into the safe area (fixed in beta 5)
  • FB19194379: Label text not responding to dark mode changes
  • FB19041811: Leading Swipe Actions in a Supplementary Controller are Offset by the Primary Controller’s (Sidebar) Width

I Can't Get Ghost 6 ActivityPub To Work When Using Ghost(Pro)

I Can't Get Ghost 6 ActivityPub To Work When Using Ghost(Pro)

A quick follow-up to yesterday’s post about the issues I faced getting Ghost’s ActivityPub—Network—functionality up and running: I’m now trying with Ghost(Pro) on my normal domain, and I’m still running into problems.

This time, the issue is slightly different: Network is enabled in Ghost’s settings, but when I open the Network tab I get an “Account suspended” warning. Looking in the Web Inspector, I see a host of 403 errors in the console, and using RapidAPI I get the following error:

{"error":"Forbidden","code":"SITE_MISSING"}

My current theory is that this is happening because my site was previously hosted on WordPress, which had ActivityPub enabled. If that’s the case, this could be an issue for anyone migrating between platforms.

Here’s hoping Ghost support can sort this out next week.

I Can't Get Ghost 6 ActivityPub To Work When Self-Hosting

I Can't Get Ghost 6 ActivityPub To Work When Self-Hosting

I love Ghost, but I simply can’t get their ActivityPub functionality to work in a self-hosted configuration.

I have done extensive testing:

  • using the New Install (i.e., Docker) option
  • on both Digital Ocean and Vultr
  • with this domain and fresh domain
  • using self-hosted and Ghost’s own ActivityPub infrastructure
  • using a Ghost admin domain at site.tld/ghost and admin.site.tld
  • proxying and not proxying using Cloudflare

Nothing works.

When using Ghost’s infrastructure, I receive Policy Violation errors. When I use my server’s own ActivityPub service at :8080 I get HTTP 403 errors. It’s a little disappointing.

However, when self-hosting, the native analytics with TinyBird worked as advertised and were really well presented, though not as in-depth as Plausible.

When not self-hosting I tried one of the fresh domains above with Ghost(Pro) and the ActivityPub functionality worked. It was marvellous.

I’m really hoping these issues are just early 6.0 bugs for self-hosters.

Some credit to Cathy Sarisky for helping the community.

The Betas 5 Are Out

The Betas 5 Are Out

Juli Clover, MacRumors:

Apple seeded the fifth developer beta of iOS 26 today, and while the number of significant changes has dropped, there are quite a few smaller tweaks. Apple is continuing to refine button placement, animations, and design in preparation for launching ‌iOS 26‌ in September.

Disappointingly, I am still seeing the same issues that I had in betas 3 and 4.