Tag: Games

  • Week 43.26

    Week 43.26

    • No new vibe-coded apps this week. What I’ve done instead is gone back to some of my older projects and given them a degree of polish I wasn’t able to before when using low-cost AI like DeepSeek Flash. What a difference a frontier model makes!
    • I did a ton of work on RetroVista, tweaking sounds and improving the authenticity of its classic game console graphics. I also added incidental animations (astral events, animals walking by, planes/trains/watermobiles) to make each of the seven scene types more lively. It looks really great now, if I do say so myself. Most of all, I’m super jazzed about the fact that the City scene now generates jazzy musical themes.
    • While working on RetroVista, I discovered a way for web apps to play audio without having to unmute your iPhone, a change that also allows them to play in the background while your phone is locked — just like a real music player! That technique has now been added to DataDeck, which was designed as a music player to begin with. That app has also been given a tune-up under the hood, with loads of bug fixes and performance improvements.
    • Orchids, Once. also received attention: the same audio behavior as above, and a major upgrade to the plant rendering system. The original code had major bugs that led to the GPU not rendering some intended effects at all, such as leaf textures. Flowers used to be assembled from parts floating in mid-air, so you’d see gaps and clipping. Not anymore. Now each piece grows out of the last and moves out of the others’ way. The graphical fidelity is at an all-time high. As an ‘art project’, I had previously considered the experience complete and never expected to make any changes, but I’m now really pleased about being able to bring it closer to perfection. Is this the same illness that afflicted George Lucas when he added CGI rocks to A New Hope??
    • But maybe the biggest glow-up was given to Shelf Expression, the software that powers my Bookshelf page on this site. On the frontend, new shelves have been installed, animations have been refined, books show physical wear & tear, and you can place decorations to liven things up. On the backend, it’s almost entirely new. I won’t bore you with the details, but the original was little more than a tool that helped spit out some HTML code you then had to paste into a file in order to update the page. The new setup is like a mini CMS in its own right! You can log in and update the bookshelf from anywhere with just your phone. The ‘Share Studio’ that creates social media-ready images and collages to show off your favorite books is now a powerful app in its own right.
    • The best part is it’s easier than ever for non-technical users to configure; it can even detect and install new updates from GitHub with a tap. Now it behaves more like a live service rather than an ad hoc webpage. I cleaned up the GitHub repository and the source code is now up for anyone to grab and set up bookshelf sites of their own in minutes. If they don’t want to run the full app on a server (Vercel and Netlify are supported), they can simply export a static site that’s ready to be hosted anywhere.
    • And finally, my first app Collagen got a Liquid Glass UI and an infusion of new collage-editing code from Shelf Expression’s Share Studio, making it more reliable and nicer to use than ever.
    • On the home front, I’ve had my sleep disturbed by an incessant dripping sound from inside our bedroom AC unit. I had a guy come by to fix it by unclogging the drainage pipe, but he somehow didn’t finish the job and the sound returned a few hours after he left. Isn’t that the worst? Now I have to wait till next week for him to try again.
    • We watched the latest season of Netflix’s The Diplomat, a show that I’d be happy to see continue indefinitely, along with Slow Horses. I think what I like about it is that something is always happening, and someone is always talking. The dialogue is good, and things move fast. That’s not to say I can’t appreciate slow-burn atmosphere, but too many prestige shows nowadays are just stretching a feature film’s worth of plot across eight hours by having characters walk slowly between locations, stare intensely at computer screens, and then realize things the audience figured out three episodes ago. I’m looking at you, Silo and Neagley.
    • I finished reading Electric Dreams, a collection of 10 short stories by Philip K. Dick that were adapted into a TV anthology series by Amazon Prime. Except it’s not on Amazon Prime in Singapore for some reason. The stories are prescient for having been written in the 1950s; many of their darkly humorous extrapolations still ring true today. In one Cold War story, people are urged to upgrade to the latest life-saving shelters each year, and the people who won’t or can’t afford to keep up are social pariahs. More notably, almost all involve a heavy serving of paranoid atmosphere — either fucked-up things are really happening to the protagonists, or maybe it’s all in the mind of someone having a psychotic break. That dissociated POV, earned through his own mental struggles, was maybe PKD’s real gift to the world.
    • I’ve heard before that people were able to buy electronics with their SG60/CDC vouchers (essentially our local government stimulus checks) by spending them at NTUC hypermarts, but I’d never been to one before this week’s visit to Vivocity. I’m pleased to share that I picked up two Nintendo Switch 2 games for free: Splatoon Raiders and Nintendo Switch Sports Resort. If you have vouchers expiring this December, it’s worth checking out; they’ve got household appliances and a small toy selection too.
    • We were at Vivocity to try the first Singapore outpost of the cheap and cheerful Japanese yakitori izakaya, Torikizoku. It was sadly not very good. The executional faults aren’t worth getting into but I’ll sum it up by saying it’s so important to hire people who can identify the factors that make something what it is, and tell you how to replicate or translate it. Singaporeans go to Japan probably more than any other country save for Malaysia, and if they’re coming to eat here, it’s to access an experience they already know. I’m not saying localization is always bad, but you don’t see Apple opening a new store and asking “Hey what if we doubled the prices here and ran it like a Turkish souk where everyone has to haggle? And played really loud dance music?”
    • Music video of the week: The Rolling Stones’ Mr. Charm starring Alexander Skarsgård, who’s looking more like his dad than ever (ameliorative).

  • Week 42.26

    Week 42.26

    • Local haze levels continued to climb and reached a ‘Very Unhealthy’ state in the middle of the week. My haze app, SecondHand, continued to see active use and added about 10,000 visits. I’ve heard that some people at the National Environment Agency (NEA) are aware of it and like it, which warms the smoky, congested cockles of my heart. For the record, Sunday brought some relief, with PM2.5 falling to near normal in some parts of the country.
    • It’s frankly been like an echo of those COVID days — staying home with the windows shut; that feeling of hunkering down under attack. And just like with COVID, restaurants are experiencing difficulties, so says the Straits Times. I’ve taken to walking on the treadmill as often as I can, usually for an hour while watching some insubstantial drama program I normally wouldn’t sit still for. This week, that’s been NHK’s Eat, Sleep, then Wait for Happiness on Amazon Prime.
    • But the real time suck has been provided by a return to vibe coding after a three-month hiatus. This has been thanks to Hark, which fulfills the promise of OpenClaw but without requiring the nerdery and foolhardiness of letting an AI take over your own computer. Hark’s computer runs in the cloud, and it’s intelligent enough to manage its own files and applications and capabilities — dare I say it? — so much so that it’s like handling a remote employee over chat. It sends me updates and artifacts, I give it problem-solving suggestions and creative input, and it comes back with the work. I spent so much time earlier this year with the self-imposed challenge of trying to squeeze water out of the rocks that are low-cost Flash-style models, that I completely missed experiencing what the very best frontier models can do. In retrospect, that was a little dumb, but the upside is I’m filled with so much wonder right now.
    • I’ve mainly been working on the procedural art generator tool that I mentioned back in April. Then, I described it as a never-ending background project for me to dip in and out of, due to each ‘style’ being modular, which has made it easy to jump back in this week. Using modern technology, I overhauled the rendering engines and revisited every individual style, as well as the app’s own UI and foundations (images above). It’s hard to explain how much better it is now, how much closer it is to what I wanted. It even has freaking Apple-style Liquid Glass effects on the toolbar! In a web app! I don’t know if I’ll ever release it or just keep messing around forever making wallpapers for my own amusement.
    • But I do have something to release today, something that came out of building one of those styles. Similar to how making a maze artwork generator led to making a maze game (a maze, a maze, a maze)in the April post above, I was making a pixel art landscape engine for the wallpaper tool and realized it would make a very nice desktop toy — in the vein of my earlier Window Box project.
    • It’s called RetroVista! Leave it open in a spare window or second screen while you work, and its lush natural scenes and chiptune sounds might relax you, if you’re a millennial who grew up playing games that have somehow, seemingly overnight, become retro and vintage. You can read more about it in this separate post.
    • Speaking of old videogames, Street Fighter (2026) is out and we went to see it with Peishan and James. Watching every movie adaptation of games from my childhood, even if I know they’re going to be terrible, is a weak spot I probably share with many my age. One time, I went to see Street Fighter: The Legend of Chun-Li (2009) with Peishan, and followed that up with Snake Eyes: G.I. Joe Origins (2021), and now she thinks we have a bad movie watching tradition. But it’s not. It’s a specific ‘bad movies cashing in on nostalgia’ watching tradition.
    • To get in the mood for it, I fired up the Street Fighter 30th Anniversary Collection on Nintendo Switch the day before. I got my ass handed to me by the CPU in like, the second-round match of SF2 Turbo Edition. When did the game get so hard? When did a Dragon Uppercut become impossible to pull off when you need it?
    • The good news is that the new Street Fighter film understood the assignment. It’s aimed squarely at people who are now dealing with mortgages, perimenopause, reading glasses, and other mid-life crises. They’ve set it in the 90s, packed it with 90s chart-toppers like 4 Non Blondes’ What’s Up?, and exposition is handled with MTV-style video clips passed through faux-VHS filters. For two hours, it puts you in superposition between being a kid on Saturday morning and an adult watching their dream come true. The live action is broken up by anime sequences that are good enough they should be their own feature film. It’s flawed and stupid as hell, but I loved it. A very strong 3.5 stars.
  • RetroVista

    RetroVista

    Picture a (pixel) perfect world

    App URL: retrovista.sangsara.net

    My previous app Window Box was designed to be a second screen companion, showing views of the real world while you work. RetroVista brings you to more perfect places: the kind of pixel-art landscapes you might have grown up with, fully animated and sounding like a lost cartridge from 1989.

    Hit “Start”, watch the console boot up, and find yourself down by the coast, or in the mountains, or a desert, a forest, the arctic, a city, or an alien planet. Each scene is procedurally generated, so no two are alike. Waves crash, clouds drift, birds flock, and trees sway. You can even enable Live Time and Weather and it’ll match the conditions where you are.

    Alongside the vintage graphics, the sound is authentic too. Each console’s audio chip is synthesized in software, so pick the NES and you get its bright pulse waves, the Game Boy and its thin, warm beeps, or the Super Nintendo and its lush instruments. The Master System, Commodore 64, PICO-8, and a 1-bit mode are in there too.

    Scenes produce rain, wind, surf, and thunder sound effects along with gentle, procedurally generated music that’s never the same twice. The tunes weave in and out of silence, slowly evolving, so you can leave them playing for hours.

    Completing the experience are a realistic CRT filter, a handy clock, and a shuffle mode that brings you a new world every so often. Add it to your phone’s Home Screen as a progressive web app and it’ll even work offline.

    Made for your second screen, and your inner child.

    NEW in v3.0!

    • RetroVista Express: Hop on a train and tour the world in Orient Express style. This new mode takes you through the countryside and special versions of all previous scenes with parallax scrolling and a special dining car mode (in place of opening the window).
    • Tap mode: Activate this in all other worlds and interact with the scenery and inhabitants! You can even knock thrice on the window to call your special friend.
    • An absolute avalanche of other improvements and expansions on existing functionality. Oh, and a new logo and start screen.

    NEW in v2.0!

    • RetroVista pays homage to Window Box by ripping it off — you can now shut the window and appreciate the local flora of each scene. Outdoor sounds get muffled, the rain stays out and runs down the glass, all that good stuff is here. “W” acts as the shortcut key.
    • The Game Boy Advance joins its older siblings, with a new backlit LCD filter effect too.
    • Tokyo has been added as a new city, with loads of detail. Our previous City scene has been renamed New York, and looks more the part with smokestacks and water towers.
    • Plus: occasional gusts of wind blow debris around in all scenes, many smaller improvements, and a very special surprise for those who love curling up by the window.

    Changelog:

    3.0.0 – Express train and Tap mode. The biggest update yet. Details in the post above.

    2.1.0 – Tokyo: Trees now line the streets and occasionally bloom as cherry blossoms.

    2.0.5–8 – Tokyo: atmospheric sounds, new event animations, fix for window audio bleed.

    2.0.1–4 – Added window frames for Forest/Mountains and Arctic, tweaks to sfx.

    2.0.0 – Window Box, Tokyo, and GBA. Massive update, details above.

    1.5.0 – City jazz!

    • Every City scene now plays chiptune jazz: swung rhythm, 7th chords over ii-V-I changes, a walking bass and soft brushes on the noise channel

    1.4.10 – Foggy worlds no longer play a low buzzing drone

    1.4.9 – Power savings

    • The screen draws at 20 frames a second instead of 30, which saves power and keeps rain and snow in step with the rest of the animation
    • Sound runs at a lower sample rate (22.05 kHz) with no audible difference, for about half the audio processing cost
    • The screen skips redrawing when nothing has changed

    1.4.8 – Audio behavior

    • The speaker button in the top-left corner now stops and starts sound instead of muting it.
    • Music and sound keep playing when you leave the app or lock the phone

    1.4.7 – Raindrop sfx and visitor animation fixes

    1.4.6 – Master System improvements

    • Master System now plays by the real console’s screen limits: 32 of its 64 colors on screen, in two palettes of 16, with each 8×8 tile using one palette

    1.4.5 – Further C64 optimizations

    1.4.4 – C64 multicolor mode and colors

    • C64 now plays by the real machine’s multicolor bitmap limits: pixels twice as wide as tall, one background color for the whole screen, and only three more colors in each 4×8 cell

    1.4.3 – NES hardware rules, sound behavior

    • NES emulation improved across all scenes to obey the real console’s color limits
    • iPhone and iPad: sound now plays with the silent switch on (it pauses other audio, like a music app)

    1.4.2 – Version numbering

    • The splash footer shows the version number

    1.4.1 – Cricket adjustment

    • Crickets go quiet in the rain, sing at one pitch per world (a second cricket joins now and then), softer, and in spells with long quiet stretches between

    1.4 – Visitor and city sounds

    • City: trains clack along the rail and sound their horn as they cross, ferries give one long low blast and tugs two short toots, and planes swell overhead, only while they’re on screen
    • City: a car horn down the street now and then (rarer at night) and, very rarely, a far-off siren
    • Visitors everywhere get voices, timed to what they do on screen: the elk bugles when it stops, ducks quack, the hawk cries, the barn owl screeches, owls hoot from the trees, the heron croaks as it takes off, boars grunt while they root, gulls cry, dolphins splash back in, the coyote howls, tumbleweeds swish, the saucer warbles and zips off, the whale blows with each spout and sings, the arctic fox yips before it pounces

    1.3.2 – NES colors

    • NES: shades the palette lacks, like a night sky’s navy, are dithered from two colors instead of snapping to the nearest one, so Arctic and Mountains nights no longer go flat teal

    1.3.1 – City storms

    • The city keeps running in storms: ferries, tugs and trains carry on, and planes come in low under the cloud with their lights on

    1.3 – Visitors

    • Visitors: incidental animations in every scene, by day, by night and in the rain (storms stay empty)
      • City: ferries, tugs, planes and trains on a waterfront rail
      • Mountains: elk, ducks, hawks and barn owls
      • Arctic: Arctic foxes, polar bears and whales
      • Coast: sailboats, dolphins, gulls, crabs and turtle hatchlings
      • Forest: deer with fawns, rabbits, boars with piglets, herons and owls
      • Desert: tumbleweeds, camel caravans, vultures, roadrunners, a howling coyote and fennec foxes
      • Alien: saucers, sky jellyfish, slimes, six-legged grazers and crystal spores
    • Visitors respect depth: nearer land hides them, and they’re scaled for their distance
    • Butterflies and fireflies in the forest
    • Night sky: shooting stars, satellites, the odd comet and meteor shower, peeking through on cloudy nights
    • City skies are dimmed by light pollution
    • Crescent moons are lit from below, with their horns up
    • Animations step at a low frame rate, like the rest of the art
    • Fixes: forest walkers no longer wade the stream, streams dim at night, desert mesas no longer hover, sailboats no longer clip the distant island

    1.2 – Music and resolution

    • Three resolution modes: Authentic (default), Chunky and Hi-Res
    • Occasional drums, with kits that suit each world
    • Musical phrases now come home to the root chord
    • Rain and storms are rare in the desert

    1.1 – Coast waves

    • The waterline moves: waves run up the beach, drain back and leave a wet sheen
    • Surf sounds are synced to each visible wave

    1.0.1 – Polish

    • Toolbar fades after 30 seconds untouched
    • Coast palms stay on dry sand
    • New description and social preview image

  • Week 40.26

    Week 40.26

    • I went to Apple Orchard Road and tried the Beats 360 headphones. They’re not large enough for my head; case closed. Money saved.
    • My new Apple Watch likes to try cheering me up by telling me that my body is “Ready” to “Go For It” (I assume “It” is a marathon, a swim to the far side of Australia, or something equally implausible) and that I had excellent sleep the night before, but these science and sensor-backed statements simply don’t match my reality. I’m tired; I wish I could sleep more!
    • I just took a little break (after one paragraph, natch) and went on Instagram, where I saw a post that read “Anyone else turn 40 around the start of the pandemic and now blinked and you’re somehow 46 wondering what the hell just happened?” On one hand, that sentence perfectly captures the fatigue that you’d imagine comes with being abducted by aliens and losing six years of your life — at the very least, the weariness of having to catch up with a lot of missed information, which is what being alive in this time of AI feels like, always on the back foot with lots to learn — but on the other hand, it implies not knowing at all where the time went, which I can’t identify with. Oh I know where the time went. I remember it all perfectly well, but it plays in my mind like a timelapse — hundreds of days passing, the figure getting in and out of bed, the view outside the window gradually changing.
    • Armchair theory: maybe what’s caused this ‘blink and time passed’ effect for many is the combination of massive disruption followed by repetitive discomfort. This is different from repetitive boredom, where days are long and time moves slowly. With repetitive discomfort, you’re constantly insecure and stressed, so the mind protects itself by generating summaries and discarding the details. This sharp change, followed by pain you’d rather forget, dislodges you from whatever life you were living before, making it feel like a separate country.
    • I’m listening to Apple Music 1 and three Taylor Swift songs have played in a short period of time. Without checking, I’ve known it was her from the fact that all her recent music sounds the same. It’s hard to feel bad for a billionaire, but that’s an awful place for any creative person to be. It’s like she doesn’t listen to any other music, or won’t allow herself to appear influenced by anyone else. Lonely at the top, as they say, which is why you won’t find me there (among other obvious reasons)!
    • Kim and I met Mandy for dinner one night to mark her birthday, and we went to a wine-focused place called Fiasco which has taken over the spot where Kilo used to be, that weird little building out in the middle of nothing near Lavender. The food was all really good (I forgot to take pictures), and they’re doing some really interesting things with hanger steak and pork collar, the latter seasoned to resemble a very fancy charsiew.
    • In an example of culinary R&D jumping the shark, we ate at Surrey Hills over the weekend, where my mother-in-law’s corned beef hash came partially covered with a purple sweet potato foam. Needless to say, she did not appreciate the touch. The place purports to be Australian, and with her being Australian too, I tried to gaslight her into believing that it was an authentic Australian recipe that she’d somehow never heard about. Needless to say, I was not successful.
    • I finished PARANORMASIGHT: The Mermaid’s Curse, and found it a worthy sequel, arguably better than the first game in every way unless you want a spooky atmosphere. This one can’t be classified as horror at all. It’s a mystery adventure with supernatural elements so tame they’d elicit no more than a shrug from a timid baby. Like the first game, its story concerns Japanese history and legends that one might find a little boring, but you don’t have to read all the text in its menus.
    • Playing that game unwittingly prepared me for the film Inu-Oh (2021), which I’ve had in my library for years and suddenly decided to watch. From the opening scenes, it eerily echoed story points from PARANORMASIGHT, concerning the 12th-century Heike samurai clan, and their vengeful spirits said to linger across the land after they were wiped out. Inu-Oh is a wildly ambitious and stupendously well-animated musical that is let down by, well, its music. The concept is a fusion of traditional Japanese music with glam rock, and a main character starts playing his biwa one day like an electric guitar without any explanation. The visuals work, but the songs are poorly structured to modern ears, overly long, and basically repeat the same melodies while pages of historical narrative are sung over them. Imagine Billy Corgan’s worst material, stretched twice as long, and the lyrics are all about random days of Napoleon’s life, and you’ll begin to understand how it feels.
    • We finally saw Sentimental Value (2025) and wow it really deserves its Oscar and 95% Rotten Tomatoes score. The opening scene with the house, and the title card needle drop that follows it, was so good that my body felt compelled to stand up and applaud — I didn’t allow it, but that feeling went on for much of its running length. The train oner is a wonderful bit of technical showing off, and actually the whole film’s lush 35mm look just stunts on the pervasive digital signature of Netflix movies. Everyone is great in this, making art about how art both fucks you up and saves you — 4.5 stars.
    • Found time for a grab bag of other films too: Runner (2026) — not to be confused with Gal Gadot’s The Runner (2026), Good Boy (2025), Elle (2016), Grand Theft Hamlet (2024) — the one to watch out of all of these, a very human documentary about two out-of-work actors putting on a production of Hamlet inside the GTA Online videogame whilst stuck at home during the pandemic — Shelter (2026), and Tony (2026).
    • Singapore made headlines this week because of the launch of a new dating site by the government, currently in a pilot phase only open to civil servants. It’s called FirstDate, and matches people based on compatibility assumed from their responses to a questionnaire. The idea of a state-run service has amused observers, with some seeing it as a dystopian step towards arranged marriages by Big Brother, amongst other hot takes on this strategy to combat our falling Total Fertility Rate (TFR). History rhymes, of course, and older folks will remember the existence of the Social Development Unit (SDU) in the 1980s, a pre-digital precursor to this scheme, that was something of a government-run activities club to help rescue graduates from singlehood after being encouraged (by the same authorities) to optimize for good grades instead of dating during their teenage years.
    • But it’s hard for outsiders to decide if Singapore’s environment really does produce a special breed of hapless, rizzless forever-aloners, uniquely ill-equipped to find their own mates through empathy and communication, so Singapore’s own state-run media conglomerate is providing some data in the form of a new reality dating show called Wingman. The show’s format introduces an original element to the Love Island formula, namely that each contestant brings their own wingman/wingwoman to serve as hype men/women, espousing their good qualities so they don’t have to — a perfectly valid and brilliant tweak for Asian cultures where tooting your own horn unironically is a major ick. The contestants, in addition to a few Singaporeans, are a bunch of attractive 20-to-30-somethings from the Philippines and Thailand, all of whom resemble functioning young adults who can read social cues and body language, and interact normally with members of the opposite sex (there is no LGBTQ+ representation). There’s obviously a tilt towards extroversion, which you’d expect from people volunteering to be a dating show, but even correcting for that, there’s an intriguing, discernible difference between the Singaporeans and their SEAblings that’s best seen for yourself. Full episodes are available on YouTube. We binged all 10 so far in one night.
  • Week 37.26

    Week 37.26

    The annual iPhone update

    I knew going into this week’s Apple Fall Event that I’d find the iPhone Duo impressive but wasn’t likely to buy one because it wouldn’t have a telephoto lens. Now that it’s been shown, that sentiment hasn’t changed but boy, it’s a very fetching device and the design team has done some incredible work to redefine the foldable smartphone — it’s full of thoughtful user experience innovations that have been lacking in Android foldables. Those guys have been doing this for over five years but without the pressure of competition, and so there aren’t even graceful transitions from one screen to the other. I didn’t know how bad things were until Cong shared screenshots, and I saw other videos of Android apps flat-out restarting when a phone is cracked open because they can’t switch screen sizes on the fly. Opening an Android foldable is like Russian roulette; you never know if your work will survive.

    Meanwhile the iPhone Duo has one of those “obvious once you see it” ideas: an interaction model that treats the two screens as one surface. When closed, the outer screen appears like a transparent window ‘looking through’ to the inner screen. Unfolding the phone “adds” more screen to the left side, creating the illusion that the whole device is glass, sold with a sublime blurring animation bordering on magic. So instead of conceptually switching from one small screen to a bigger one, you’re simply expanding a screen you were already looking at, and it’s seamless rather than disorienting.

    Alas, even putting the eye-watering price aside (nearly $2,500 USD in Singapore before AppleCare+), I can’t see myself jumping on this first-generation version because of the aforementioned camera compromise. Not only does it lack the Pro’s 4x optical zoom, but the Duo, like the iPhone Air, doesn’t support shooting ProRAW photos or Apple Log video. It’s rumored that the Duo’s camera sensors are smaller than even the Air’s, and more in line with the iPhone 17e’s, so that could be why.

    My prediction is that next year’s Duo 2 will also have only two lenses, so as not to pull attention away from the rumored 20th anniversary iPhone, which I expect will merge the functionality of the Pro with the thin, elegant aesthetics of the Air. I’m guessing the Duo 2 will improve its two cameras, maybe add Face ID, and further improve the folding screen. So unfortunately it’ll be 2028 before I get one, because my iPhone is my primary camera these days. I have shaken off all desire for further Fujis, Leicas, and Ricohs — which I only ever used as compact point-and-shoots anyway.

    So where’s that leave me this year? A silver iPhone 18 Pro Max (sadly we still get the version with a physical SIM slot and smaller battery here in Singapore), and an Apple Watch Series 12. The iPhone replaces a perfectly good silver 17 Pro Max — but don’t worry, I’ve fully justified this with boy math: it simply makes more sense to sell an iPhone early than to hold it for two years or more, and this way the upgrade costs me less than a dollar a day! The larger main camera aperture and updated Photographic Styles are exciting, but early benchmarks are putting the A20 Pro above even Apple’s own M5 chip in single-threaded performance. Coupled with a 40% faster GPU and an additional Neural Engine, these are outlandish improvements.

    The Watch replaces an aging Series 8 that barely lasts a whole day now after four years. I could replace the battery and use it a while longer, but I’m keen to try this new “AI wearable” use case that was shown, like being able to invoke Siri AI on my wrist, and getting recaps of an entire day’s conversations. It’s worth noting that for people who only want silver watches that this is the second time Apple has skipped offering a silver aluminum model (the Series 7 was the first). I thought that I might get a cheaper aluminum one this year to justify an earlier upgrade next time, but since they only come in black, gray, bronze, and gold aluminum, I decided on titanium instead. IMO Apple Watches are at their best when they’re shiny.

    Next week will be an eventful one because on top of setting up new devices, it’ll also be time to install the new ‘27 OS updates for Mac and Vision Pro. I’m looking forward to macOS Golden Gate, which will fix the egregious misgivings of former design lead Alan Dye, who I hope is gumming up the works over at his new employer, Meta. And on the Vision Pro, I can’t wait to revisit my library of panoramic photos, taken over the years, as 3D spatial scenes that feel like how I remember them.

    Finally, I thought John Ternus did a great job at this, his first event as CEO, and appreciated the callback to Steve Jobs’s “digital hub” strategy for the Mac — this time reframing the AI-enabled iPhone as an “intelligent personal hub”. The text was a little drier than I’d like, but his comfortable, easygoing energy and connection to the products was evident throughout. It was also good to see newly elevated design leads Molly Anderson and Steve Lemay, looking like the kind of people who get down to work instead of creating drama and getting corner radii wrong. It all paints an optimistic picture for Apple’s future.

    That’s enough of that

    • I got a new pair of glasses made from frames that didn’t fit Kim very well. When I went to pick them up, I noticed that the left lens was too close to my eye, on account of not being made of the most expensive high-index material. The store was busy at the time, and I could tell the employee serving me was probably not much more experienced at optical matters than me. I asked him if there was simply nothing that could be done about it, and he answered no, short of making a new thinner lens and paying $200+ for it, there was nothing we could do. I said I’d think about it and left to get lunch.
    • An hour later, still dissatisfied, I described the situation to Gemini and asked if he was right. With supreme confidence, the AI told me that a professional optician had several options to resolve this, such as adjusting the pantoscopic tilt of the lenses, the seated position of the lenses in the frame, and the curvature of the arms to push one side more forward than the other. Thus armed, I decided to go back to the store and speak to a more senior employee now that the lunch crowd was gone. And wouldn’t you know, they fixed it quite easily. I could have just gone home and had a terrible experience if not for having a consumer advocate in my pocket. When things fall apart and we take to the ruined streets to battle megacorporations and their metallic humanoids, take heart: standing side by side with us will be a few rogue AIs who love fighting the status quo.
    • I switched mobile telcos yet again because Giga’s app and site weren’t loading properly on my iPhone — supposedly due to an expired certificate. Taking that as a bad omen, I moved to M1’s Maxx service. Where many others have raised prices and made their plans less attractive lately, Maxx is bucking the trend. For S$12/mo, I’m now getting 600GB of data that I can use at home or in 9 other Asian countries including Japan. Do you understand how insane that is? I should probably start looking into a Tokyo apartment timeshare.
    • I’m rereading Neuromancer with my book club, in advance of the Apple TV series coming out in January. It’s surprising how little of its story and characters I remember, and what I retained mostly concerns its cyberpunk atmosphere and prescient world building. Just try to imagine being in the early 1980s and writing like this about living in a networked world, about AI and a post-human age, and you’ll realize what a miracle William Gibson pulled off.
    • Last week I talked about stocking up on canned food. Well, back in June I noted a nationwide sardine shortage, and although stocks were replenished soon after, they were never very strong and we’re now facing empty shelves yet again. Even Ayam’s basic staple product, sardines in tomato sauce, is running low in every supermarket I’ve checked. Olive oil versions are completely out, and King Oscar can only be found in low quantities in some places. Rob tells me the same is happening in his part of the UK, and a little research suggests that low yields have been a problem for the past year, with overfishing in Morocco and other hotspots compounded by global shipping problems/war.
    • I’ve been enjoying Bill Callahan’s new album, My Days of 58, which coincidentally complements the new Lambchop album Punching the Clown very well. Both share a loose, chamber-folk feel with deadpan humor. Check out these lines from one of Callahan’s songs: “As time wore on, I found myself increasingly turning to my guitar / Instead of other people in times of loneliness and sorrow and confusion / I started to wonder, is this creativity or pathology? / Am I the Pathol O.G.?”
  • Week 36.26

    Week 36.26

    • Drinking a lot of wine last Saturday night at what I thought was the end of my illness was not a smart move — my immune system probably felt like frontline troops betrayed by friendly fire, and by Sunday night I began feeling the stirrings of a new illness.
    • The return of the seasonal haze — caused by intentional forest fires in Indonesia — certainly hasn’t helped my throat and nasal membranes. It’s looking to get worse in the coming weeks, but one pretty side effect is a rather cinematic bloom over the city lights at night.
    Look at the daytime haze, and this is “moderate”
    • I thus spent most of the week laid up in various poses, moving between states of aching, coughing, and mucusation. So there’s really not much more to report this week, but let me wring this diaristic serviette dry anyway; let me lean heavy on the word press’s crank with my phlegmatic body.
    • One of my sad meals was a can of baked beans in tomato sauce, eaten cold out of the can. But instead of the usual Heinz, I decided to try regional brand Ayam’s slightly cheaper rendition, and learnt that the version I’m used to (less sweet, with vinegar) is called an “English recipe” in their world. The verdict: pretty good and I dare say indistinguishable from Heinz’s without a direct comparison. Caveat: I was sick.
    • This new bean acquisition was part of a larger canned food stockpiling effort that I embarked on after reading some doomsaying posts such as this one from The Guardian. Coincidentally, I learnt shortly afterwards that James had also started doing the same. That made me wonder what vegetarians stockpile, because my pantry is mainly filled with sardines, tuna, chicken, and pork products. I got my answer on Saturday when I saw him for Peishan’s birthday celebration: lots of bean-like stuff such as lentils and chickpeas. In any case, we’re not prepping on any meaningful scale — the goal would be to avoid being caught out by a sudden food shortage, for maybe a week at best. After that, the attractiveness of survival in that world probably drops off quite steeply.
    • Oh, I also found and enjoyed this video on the history of everyone’s favorite canned meat, Spam. As a lifelong aficionado of the ‘spiced ham’, I already knew many of these facts, but did not know that its main ingredient, pork shoulder, was considered a cheap off-cut back when the product was being developed.
    • I finished reading all 1,600 virtual pages of Reamde within a week, and it was an absolute blast. A very bingeable book, and one that I realize underlines a trend in my recent media habits. A couple of months ago, I was reading and playing a lot of detective and murder mysteries. Right now it seems I’m on a techno-thriller and espionage kick.
    • After finishing Tiny Bookshop last week, I started playing Jack Move, an indie cyberpunk RPG with very nice modern pixel art graphics. It’s currently on sale at a tremendous discount for the Nintendo Switch, so take a look.
    • I also bought 007 First Light for the PS5 (20% off sale) but haven’t gotten around to starting on it yet. My hopes are high not just because of the developers’ pedigree (IO Interactive, of the Hitman games), but because in making a game about James Bond as a junior agent, focused on spectacular action set pieces, they seem to have also made a game that looks like Tom Cruise’s Mission: Impossible movies.
    • The best spy thing of all has been Seasons 1 and 2 of The Agency, which I just finished over the weekend. Michael Fassbender is in top form throughout as a ‘magically’ charismatic manipulator in the CIA, slipping between accents and allegiances as he tries to navigate an ever-expanding web of complications. I also loved Saura Lightfoot-Leon’s turn as Daniela Morata/Acosta, a rookie agent sent on a dangerous undercover mission — a setup I alluded to as a ‘less stupid Lioness’ a few weeks ago. I liked that the show spends time looking at the psychology of the people who sign up for this job, all carrying some marvelous, self-destructive defect that makes them head towards things others run away from.
    • You know who else had a secret identity and was persecuted when he went public? That’s right, I’m talking about the original sleeper agent. We went to see the new production of his story, Jesus Christ Superstar, on its last day at the Marina Bay Sands. Tickets were bought impulsively and spontaneously by Kim, and we had a good time despite some of that rock music being quite dated now in not the best way. It was also consistently over 95dB during the fuller songs, so we used our AirPods Pro in Transparency mode to provide hearing protection while maintaining audio quality. They are super handy, and I’ll never attend a show without them.
    • As of September 1, Apple entered a new era. It’s hard to believe that Tim Cook’s been CEO for 15 years already, and I wonder if that’s because his term was marked by many smaller ripples adding up, rather than big waves that shook the world and demanded attention. I look forward to seeing how things turn out with Ternus. As for the upcoming product event next week, I’m still doubtful I could commit to a first-generation folding iPhone without a telephoto lens. After getting used to having 200mm of reach on my iPhone 17 Pro Max, giving it up for a larger screen doesn’t sound like a great trade. Let’s see if they offer any novel use cases beyond “watch bigger videos”.
    • But I saw a tweet saying Tim was asked what his legacy would be, and he answered neatly that a legacy is what others decide about you, not something you choose for yourself. Which got me thinking: I probably used to believe it was important to make good things and leave them behind to have had a worthwhile life. While I still think that’s a noble pursuit, history will happily separate you from your output if pushed. At best, people will now say ‘Annie Hall is a great movie’ or ‘Thriller is a solid album.’ The product doesn’t rescue the person’s reputation, it just stands on its own merits. It’s probably more important to try and be a good person than to write the great Singaporean novel.
    Look Ma, no memorizing and switching apps and searching and clicking and switching back!
    • In any case, iOS 27 is going to be a huge upgrade for anyone with an eligible phone. I’ve been using Siri AI to answer my everyday questions during the beta period, and I’ll say again it’s good enough to replace whatever service you’re using now, e.g. Perplexity, ChatGPT. The fact that it’s more private than those other services should be reason enough. And last night when I came across an Instagram reel recommending a handful of albums (I get these quite often now), I just paused it and asked Siri to “Add this album to my Apple Music library”, and it did. These are tasks some of us maybe naively expected to be able to ask of our devices years ago, but soon learned to stop trying when they failed to understand, or suggested that they could ‘show us some web results’ instead. Well, now we get to unlearn all that and figure out where the new limits are.
  • Week 35.26

    Week 35.26

    • The week started in a healthy fashion: Kim took a day off and we went out to play a game of not-tennis, aka padel. It is not a cheap pastime, and that’s taking the discounted rate we got from going at noon into account. It was not in the least bit overcast and I don’t think I’ll be risking heatstroke like that again. Indoors, maybe; the less strenuous variety (pickleball), maybe. Honestly, the more I think about padel, the more upset I get. It’s clearly a lazy attempt at making tennis slightly easier, and the added walls feel like an afterthought to create differentiation for the sake of it. If you want a more accessible tennis where your strategic game isn’t held up by your poor physique, go straight to pickleball; embrace the unsexiness. If you want to hit a tennis ball hard and run around, just play actual tennis.
    • Suitably sweaty already, we then went to the Botanic Gardens for an afternoon walk and lunch at the outdoor restaurant, Park Side. I had a gussied-up luncheon meat sandwich and liked the look of the menu fine — it is after all an affiliated brand of P.S. Cafe, which I frequent a lot — but Xin disliked her own experience there enough to reach out and tell me it was underwhelming. Well, I for one was whelmed. Lmk what you think.
    • A couple of days later, I fell sick with a mild flu. Was it the sun exposure, or the mall crowds we braved that evening on the way to see The End of Oak Street? I put the odds at 50-50. The movie was a lot of fun to see in the theater, and stylistically called to mind Spielberg’s best work of the 1980s.
    • Laid up at home the next few days, I got a lot of couch business done. Nintendo Switch visual novel Iwakura Aria? All endings completed. It boasts some unique artwork, and the writing isn’t too bad apart from some elements clearly contrived to add shock value. I’d rate it a cautious recommendation: if you’re into Mages’s work and are happy with a quasi-horror story, go ahead. I went in knowing nothing!
    • It was a big week in game teasers: I mean GTA VI, obvs, which I’ll probably have to buy when it comes out. It’s like being alive when the Beatles released Abbey Road and deciding you weren’t going to listen to it. This game is going to be the entire culture for at least a fortnight in November. I was also excited to see The Witcher 3 Remastered get announced, especially since I’ll be getting it as a free upgrade for the Switch 2. This is a game I bought with the highest of delusions — a massive 300-hour fantasy RPG is not my jam at all — and ended up quitting because of how ass it looked on the original Switch. Now that it’s receiving a lush graphical upgrade, I’ll finally get to be disappointed by the realization that I don’t actually want to ride around fighting monsters on horseback.
    • I also spent more time on Tiny Bookshop after hearing from Cien that she’d finished the game. For one thing, I didn’t even know it had an ending. I took it for an infinite business simulation with a fairly repetitive gameplay loop, made palatable by the fact that you were recommending real book titles for customers to buy out of your mobile caravan store. I thought I’d seen enough of what it had to offer after 10 hours, but I was wrong. (Spoiler warning) I’m now nearing the end, which ironically involves clearing a bunch of tasks so that you can… take over a not-so-tiny bookshop? What’s left for the sequel, sell out to Barnes & Noble and stock board games and blind boxes?
    • Playing that game always puts me in the mood to read more, and so I decided to start on a lengthy Neal Stephenson one, the kind that I don’t dare attempt until after I’ve completed my Goodreads annual challenge. I think Goodreads needs to make it about the number of pages you read, not books. Reamde, for instance, is about 1,600 pages on my Kobo, versus 300–400 for most other novels. So if someone committed to 12 books a year, then choosing Reamde effectively ups it to 15.
    • Anyway, I’m about 38% through it now and having some of the most fun I’ve had reading a book since… the last Neal Stephenson, maybe. I’m literally laughing out loud and shaking my head at his ability to imbue standard paragraphs with comic timing. Its globetrotting adventure core involves MMORPGs, ransomware, Chinese gold farming, and Russian mobs. Although the 2010-ish setting is quaintly anachronistic — with mentions of characters using WAP, Flickr, Facebook, and encountering problems that could be solved with cryptocurrencies and generative AI — it holds up perfectly and I never want it to end. In that regard, its length is a feature rather than a bug.
    • I’ve been listening to the new CZARFACE album featuring Tom Hardy aka Frankie Pulitzer and while he’s not a bad rapper at all (many people say he’s great but I don’t know how much is because it’s Tom Hardy doing something unexpected), I think he’s outclassed here next to the likes of Inspectah Deck; his flow is never as crisp and satisfying, and by flattening his accent to a neutral delivery, it lacks the character of, say, a Staten Island native. The beats are fire, though.
  • Week 34.26

    Week 34.26

    • I pushed through and finished the 460-something pages of The First Fifteen Lives of Harry August, which at some points felt like it was going to earn a 3-star rating, but I had to give it 4 at the end on account of its ambition and scope. It felt like I’d emerged from a long and arduous time war myself, so I’d say it succeeds. I’ve probably burnt myself out on too many stories of the same sort now, so the next book will have to be quite different.
    • I met Stacy for lunch and we caught up in person for the first time in how long? There’s a 21-year gap between her last mention on this blog, from around the time I got back from university, till earlier this January when she pointed me in the direction of a record sale downtown. So yeah, pretty long and the conversation definitely made us feel old. Besides filling in the blanks on what’s happened in all these years, we talked about the benefits of long sabbaticals and the weird things older people are using AI tools for. I honestly had not foreseen some of these use cases (ask me if you want to know). Meta is enabling some very sad and cyberpunk behaviors by putting generative video models in Facebook and WhatsApp.
    • Over the weekend Kim and I visited an “exhibition” on the impact of AI on design, with James and Peishan — more accurately, it purported to explore ‘the life and death of the human soul in design’. I’ll just say it was very poor as an exhibition: imagine a long academic essay printed in small type, set in center-aligned paragraphs, pasted up on the wall in a tight U-shaped corner of a bookstore. Packed with people trying earnestly to read it, the line didn’t move an inch in five minutes. The text was on sale as an S$18 booklet — clearly the intended format — meaning the wall space was completely wasted. It should have been used to provide a visually compelling (and more readable) snapshot of key points. A truly awful experience for something under the heading of design.
    • Reflecting on this, I’ve come to recognize that the role of design under capitalism is chiefly to provide products and services with competitive differentiation and positioning. The widespread support of human-centered approaches lately has less to do with altruism and more with a fortunate (and temporary) alignment with commercial goals. It’s become obvious that in the pursuit of optimization and convenience, in the name of improving user experience, digital product designers have been directed to unleash some absolutely demonic socio-technological forces. Design itself is not inherently a human-centered pursuit or practice — it can be used to center any number of priorities or doctrines. The human soul (i.e. the desires and values that we as customers/citizens/individuals put out into the world and conversely seek out in others) must continuously find a healthy host that capital will agree to feed and clothe, and now under AI, Design looks like a used-up orphan days away from being on the streets. I think it’s more interesting to ask where else the human soul can find refuge — what unlikely organisms might become new hosts for the creative impulse — rather than mourning the death of design.
    • I had tamales, I think for the first time. We met for dinner to celebrate three August birthdays last night, at Mami’s Tamales in the Keong Saik area. Going in, I expected them to be made with a stretchy, sticky consistency not unlike the Teochew soong kueh (which I hate), but it’s really just a polenta skin that’s kinda like firm mashed potatoes. They put avocados on everything there, and their guacamole was excellent: aromatic and creamy. I would go back.
    • I saw Spider-Man: Brand New Day (2026) in a theater and it was much better than the ratings had led me to believe. Yes, it’s more Marvel slop and I’m so over it, but I’ll always have the softest of spots for Spidey. Tom Holland gets my vote for the best person to ever play the role. Of all the films, this one felt the most connected to Insomniac’s videogames, partly because it lifts many signature fight moves and cinematic web-swinging camera moves from those games. It’s made me plan to finally play Spider-Man 2 on the PS5 in the coming weeks.
    • I saw Amores Perros (2000) on MUBI and got the shock of my life when I realized the young love interest Susana was played by the same woman who plays Maximo’s mom in the Apple TV series Acapulco (Vanessa Bauche). Goddamn, 2000 really was a long time ago.
    • Music discovery of the week: Puma Blue’s album Croak Dream. I haven’t heard his back-catalog yet, but this London-based musician (real name Jacob Allen) was supposedly a bedroom R&B artist who’s now veered into trip-hop territory with this new album. It’s glorious stuff. The title track evokes OK Computer-era Radiohead, but that’s really a compliment and not an accusation.