• Week 25.26

    Week 25.26

    • Howard mentioned that he was using Claude or Codex to remake an old game called Little Computer People for his own amusement. That gave me a sudden brainwave: I could remake High Seas Solitaire, a simple Windows-based game I used to love. I’ve tried several times in the last decade to find something like it, or get it running on my Mac — one attempt involved setting up Boot Camp and installing/patching Windows, which took up most of a day.
    • It’s actually simpler and more fun to just make a whole damned game than to deal with Windows. Here’s a post about Island Solitaire, my recreation of the same game mechanics with some of the vibes. Or you can play it directly at solitaire.sangsara.net.
    • Tim Cook spoke to the WSJ and set expectations for Apple to raise prices because of the rising cost of RAM and chips. I took that as a sign that this is the year for me to finally upgrade my 2020 M1 MacBook Air. The order has been placed, and I hope to welcome an M5 model next week. The irony that this is indirectly happening because of people making shit with AI is not lost on me.
    • I was thinking about AI art while in the shower yesterday and came out with some thoughts I figured I should write down, so here’s a little interlude.

    A shower thought on valuing human art against AI art

    When we buy human-made art, we’re not just buying someone’s vision. We’re buying the time put in — a slice of their life that can never be recovered. It’s the process of trying to put a price on a year spent realizing and perfecting a single idea. This much is already obvious.

    AI art works from a different equation. It’s less produced with time than with compute — GPUs, data centers, and electricity. We pay for electricity constantly without a second thought; as an input, it carries no inherent meaning. But when you pay for human art, you are purchasing the accumulated experience of a life. The conversations they had with their parents as a child. The mistakes they made in their twenties. Every influence, decision, and accident that shaped their way of thinking and seeing.

    Generative AI models “think and see” through a distillation of civilization’s digitized products. One process is organic and irreproducible, while the other is probabilistic and derivative. Both are magnificent in their own ways, but we more deeply value the one that speaks to how we are built.

    Collecting art satisfies two deeply human impulses: the urge to possess and the desire to appreciate. When you purchase a work, you are claiming a piece of someone while simultaneously declaring, “This life had meaning.” Even in AI-generated work, the most interesting component is the human intent — the prompter’s editorial choices. An idea is only a nucleus. Yet an entirely human-made work is a whole atom: not just the nucleus, but the colossal mass of time that surrounds it — years of practice and application. An artist may emerge who creates AI works so intricate they’ll take years to complete. That would be a different story because the effort imparts the value.

    When an artist makes many things, we call it a body of work. Each piece informs the next, and narratives emerge; some are easier to see than others. It is a curious coincidence that art uses the word “cycle” to describe a sequence of related works sharing a purpose. But in AI generation, cycles run in the opposite direction: millions of GPU cycles are spun up to produce a single output. Human cycles accumulate meaning through experience over time, while machine cycles search for probabilities through brute force.


    • We watched Alice and Steve on Disney+, a six-episode comedy about what happens when one 50-something man starts dating the 26-year-old daughter of his 50-something female best friend. It’s uncomfortable but funny, which I suppose is the kind of setup for which you cast Jermaine Clement as the older friend. I’d say it’s worth watching although they never quite sell the mutual May–December attraction, and it doesn’t end as satisfyingly as I’d hoped.
    • I went out to see The Furious (2025) with Jose and Reg. This is a martial arts film you cannot help seeing mentioned online this month, in part because the legendary Jet Li talked about it on his podcast (what a world we live in). It’s a Hong Kong production with a Japanese director, and is set in an unnamed South East Asian city that mashes up the entire region. The streets look like they’re in Thailand, but you hear characters speaking Tagalog, Bahasa, English, and Mandarin. It’s designed for maximum relatability, although, as someone pointed out, most of the baddies are brown and the good folks are Chinese coded.
    • I ate two hot pot-based meals and got food poisoning from the sukiyaki (I suspect their handling of “Japanese raw eggs”), but the Chinese one was fine. Coincidence?!
    • It’s the middle of June, which means I listened to Glass Animals’ 2020 song, Heat Waves, quite a few times. This of course is because it contains the line, “Sometimes all I think about is you / Late nights in the middle of June”. I’ll bet it’s a very good week for their global streaming royalties.

  • Island Solitaire

    Island Solitaire

    For many years, I’ve wanted to go back and replay this old freeware Windows PC game called High Seas Solitaire. It was there for me when I had hours to pass at my desk job in the military and then later in college, over two decades ago.

    The charm of HSS for me was its simple and relaxing gameplay, accompanied by a sparse soundtrack of wave sounds, bird calls, and the creaking of your wooden ship. Its variation on pyramid solitaire was also unique: matches are made up of cards with the same number, or numbers adding up to 14. I’ve never found a similar game mechanic since.

    It was supported by advertising, and is now considered abandonware. Its creator, ZapSpot, has long vanished. Even if any of the copies online were still working, they wouldn’t run on a Mac.

    Island Solitaire is my reimagining of this little-known gem.

    I decided not to recreate HSS’s presentation, but pay homage with a similar nautical and nature theme. Where HSS had a predetermined set of puzzles to clear, Island Solitaire randomly generates layouts each time, using a full deck of cards. You are given a draw pile of 26 extra cards to help you make matches.

    A concise “How to Play” panel can be found in the bottom-right corner, and I guarantee it will make perfect sense once you start. I hope this is half as fun for you as the original was for me in those simpler millennium days.


  • Week 24.26

    Week 24.26

    It was WWDC week. Apple made good on their promise of a smarter, generative AI-powered Siri two years after first describing the concept. Enough has been said about that slipped deadline, but the verdict on social media this time is that they’ve actually delivered. I was tempted by all the reports of how stable the first developer beta is, and installed it on my M1 iPad Pro. I hope I don’t regret it, but so far so good.

    It’s no surprise that the first beta is in good shape, because this year’s OS updates are looking to repeat the feat of Mac OS X Snow Leopard, where effort was expended on optimizing performance and fixing longstanding issues rather than adding new features. There’s a list of nearly 300 improvements, and I’m looking forward to many of them, especially the faster loading of items in Apple Music. There are also very welcome refinements to the controversial new unified design language system colloquially known as Liquid Glass. Steve Lemay, may this life bless you and yours with happiness and good health.

    There was so much to discuss and dissect this week that Michael and I spent over four hours across two FaceTime calls. Okay, some of that time was spent talking about his new collaborative crossword puzzle game, Crossmate. I’ve played a couple of games and it’s a lot of fun, like how we used to play the NYT crosswords at the office on a big screen. It’ll be on TestFlight soon for wider testing and I’m excited to see how people like it.

    But the next generation of Apple Intelligence was the headliner and the thing most people will hear about. While I expected most of the things announced, there were a few I didn’t. The new Spatial Reframing capability, for one, is a brilliant use of image generation to enhance an existing photo beyond the removal of objects — one that treads very close to contradicting Apple’s earlier stand that photos should be documents of things that did happen. This new take technically does ‘respect’ a real moment in time, with the exception of the camera’s position in space. I wonder if this is as far as they’ll go, or if the line will continue to be redrawn over time (turning a photo into a video, for example).

    I also did not expect Apple’s AI to offer text generation from scratch, helping you to fill a blank page, much like what ChatGPT or any other consumer chatbot has done since the beginning. I thought their initial approach of only proofreading or editing existing text was the right one, but it’s clear that market forces are guiding their hand and features like this and photorealistic generation in Image Playground are simply table stakes now.

    After the presentation, I thought it was super obvious that the new Siri AI will make ChatGPT, Claude, Perplexity, etc. unnecessary for many casual users of AI, and many commentators on Twitter have also since shared this opinion. For people using chat interfaces to look up quick answers, do a spot of online research, brainstorm ideas, and generate text documents and images, there’ll be no quicker or more cost-effective way than to ask Siri on one of their Apple devices. On an iPhone, just swipe down from the Dynamic Island and the prompt field appears. Or hold down the power button and speak.

    It appears that the combination of on-device and cloud models will handle a normal amount of requests for no charge, and subscribers to iCloud+ storage will get more generous limits. Why would anyone pay USD$20 a month for third-party AI unless they also needed it for coding? And that’s before you even add in the advantages of having all your personal context available for Siri to work with, privately. I’ve long held off on connecting my email, Dropbox, and other services to ChatGPT and Claude, even if it would make them more useful. Once you open the gates for data to flow out, there’s no getting it back in. Apple is the only company I’d trust with all of it, precisely because their approach doesn’t require me to trust them.


    • Remember how I complained a few weeks ago that Amazon Fresh was ceasing local operations? One positive side effect of that emerged this week, in the form of a push notification arriving around 9:30 AM saying that some alcohol products were on 60% clearance sale. I jumped on that with a quickness, and received 20 bottles of wine later the same afternoon. If we lived in Australia, we’d be paying those prices on an everyday basis, but we don’t. I should have gotten twice as much.
    • Japanese konbini inspire all sorts of media, and I’ve read the books Convenience Store Woman and The Convenience Store by the Sea (which is now a live-action series). They’re… okay. This week I played the game InKonbini on Switch 2, which simulates a week of running a countryside store in 1993. I’ve had this indie game on my radar for a couple of years, but initially resigned myself to never playing it because they’d only planned to release for PC/Windows. It’s now on every major platform, and a very chill and cozy game, albeit short enough to finish in a couple of days. I spent a lot of my time straightening out the shelves and making sure every can, bottle, and sandwich faced outwards.
    • John Scalzi’s “Old Man’s War” series of books continues to be a very fun sci-fi adventure. I’ve finished Book 4: Zoe’s Tale, and it pulls off a rare Rashomon move across two installments. It essentially retells the entire story of Book 3, but from another character’s (Zoe’s) perspective, while somehow managing to be additive rather than repetitive. That’s quite a feat.
    • If you’d asked me what films I’m looking forward to this year, Disclosure Day would have topped the list. I’ll watch Nolan’s The Odyssey but I’m not in any hurry. We saw DD this weekend and I had a good time throughout. Nobody puts a scene together like Spielberg; everything is dynamically shot and immersive. But I was left afterwards with the feeling of too many plot holes, and too much exposition of the film’s values through monologues rather than action. Wait, I forgot that I would have also put The Drama on that list, and I’d been dying to know what the awful “secret” alluded to in the trailer was. We also saw that this weekend and had a lot of fun, even if it didn’t fully live up to my high expectations either. Both films get 3.5 stars.
    • I watched Empire Records (1995) for the first time, because Netflix said it was leaving their catalog soon. This was a film I’d always sort of believed I’d seen, but it turns out that I just knew the soundtrack really well and seen a couple of scenes. What a glorious document of its time. Immaculate vibes, and probably more entertaining today than it was at the time because of how much there is to appreciate — not just the lighting, set design, and music, but the whole nostalgic idea that a giant, two-storey record store could be the cultural center of a community, and that people would fight to protect it. Killing them was a tragic error.
    • While talking about it, Cien said the film dates itself by virtue of its message that selling out is bad and uncool, which I didn’t quite understand. Isn’t selling out still uncool!? And then Michael said the same thing on an unrelated topic — that selling out was something only us senior millennials and Gen Xers shunned. Everyone after sees it as a sign you’ve made it. I think they meant this on an individual level, which is jarring enough. But the film is about independent spaces being consumed by soulless chains, and I worry even that’s an alien idea to younger generations raised on influencer culture and brand collaborations. I haven’t been the same since.

  • Week 23.26

    Week 23.26

    • Summer is suddenly upon us. Like an overbaked Instagram filter stacked on top of an already eye-searing Photoshop edit, the heat in Singapore has been turned up to unglamorous levels. It is impossible not to be sweaty; we are at SWEATCON 1; omnisweat, eversweat, permasweat; we have always been in sweat in Eurasia. It was 31.5ºC and 79% humidity in my living room one afternoon, according to my HomePod. Somebody on Reddit worked out how much it costs to run the AC, in a bid to justify their own use. They say it might last till October.
    • It’s WWDC next week and I’m looking forward to seeing what Apple’s AI story has evolved into. I don’t envy their position — if I were in charge of a billion devices owned by all sorts of users, I wouldn’t want to put an AI assistant across all their data either. I doubt it’s possible to get 100% accuracy at scale understanding people’s appointments and emails in all their permutations, to say nothing of more complex use cases. The result is someone somewhere will lose something important and learn that their phone can’t be trusted. Is that worth it? Should everything AI have a permanent “(beta)” tag?
    • Even when it comes to writing code with AI, you have to be willing to accept bugs or only build simple, generic things. I think letting AI generate small pieces of functional code for people has some promise. Google and the ‘Nothing’ company are doing vibe-coded widgets on Android, so it would be nice if Apple copied that feature along with the long-rumored Shortcuts upgrade (the idea being that a more capable Siri would use Shortcuts and App Intents to control the system under the hood).
    • I was minding my own business this week when an idea for a website suddenly hit and I started to see if I could make it. Within four hours, I had a working version and decided to just publish it and walk away. Big mistake to think that, of course. I spent the next two days fixing bugs, expanding its data sources, and adding more features. What is it? It’s called Chinese Era and it creates random pairings of classical Chinese art and poetry. Some combinations are fittingly beautiful, others make you work to find a connection. I think that challenge makes the poetry even more powerful. I’m very happy with it, because it has the feel of a museum visit, albeit one curated purely by chance. I have no idea where the idea came from — did I see some Chinese artwork recently or read a Chinese poem? Not that I can remember.
    • How does it work? I read some translated Tang Dynasty poetry from Project Gutenberg many years ago, so I knew books were out there in the public domain for the taking. I didn’t know if I could access the necessary paintings, but it turns out institutions like The Smithsonian happily provide their collections via APIs. There’s also a free radio livestream of traditional Chinese music that I was able to incorporate for more atmosphere. Appropriately, the app was created with an open-source Chinese AI model: DeepSeek V4 Flash.
    • In terms of media activity, it’s been a week of tying up loose ends. I finished a bunch of shows that have been lying about half-watched for months: Lioness S1 on Amazon (S3 starts in August), Drops of God S2 on Apple TV, and the anime Tengoku Daimakyo (Heavenly Delusion) on Disney+. I even attempted to finish Carole & Tuesday, a Netflix show I remember watching back in 2019 (!) on my iPhone 11 Pro Max hooked up to my hotel room’s TV in Manila. But it’s just not very good.
      • Later edit: I spoke too soon. C&T has some really prescient stuff going on, with a police squad called MICE (Mars ICE) violently deporting illegal immigrants, and the central plot is about AI artists replacing human musicians? This was in 2019!
    • Keeping with the theme of unfinished business, I started Yakuza Kiwami 2 on the PS5, a game I bought during my first sabbatical in 2021 and never got around to playing before I went back to work. I hope this time I finish it before the next paycheck lands.
    • Speaking of unemployment, Peishan had an afternoon off and we went to the IKEA restaurant I wrote about last week so she could see the situation for herself. This time it was like a full-on retirement village. People sat there in their groups for hours, chatting over bottomless cups of tea and the remnants of their salmon and meatball lunches. Apart from worrying about whether this is actually sustainable, I found it shameful that a Swedish furniture company might be subsidizing a better community center for our seniors than the government’s organizations. More imagination is needed.
    • I read (re-read?) There is No Antimemetics Division, in its proper final form — the first version of the book I read last year was self-published, and it was completely rewritten for release by Penguin Random House. The old version can hardly be found now, which is very fitting for a story about disappearing memories and unknowable artifacts. The new version reads very well, and it’s much clearer what’s happening at all times. However, I rated the original 5 stars on Goodreads and this one felt like 4 stars. It’s undoubtedly a better version for mainstream release, but I enjoyed the original because its concepts were so vaguely sketched, its images so hazy, its atmosphere so oddly suspended between science, fantasy, and eldritch horror.

  • Chinese Era

    Chinese Era

    Begin your journey at chinese-era.sangsara.net


    Ancient Chinese poetry exists in a handful of books — a small number of landmark English translations that have defined how the Western world reads Eastern verse. Whereas classical Chinese paintings are scattered around the world: in the collections of private owners, but also museums like the Met, the Smithsonian, and the Cleveland Museum of Art. Chinese Era brings them together into the same space, just to see what happens.

    Each pairing is a poem and a painting from the past, two treasures in conversation. The random engine produces combinations that no curator would make, creating associations that couldn’t be planned. You can inspect the full artwork, or turn on a live stream of traditional Chinese music — providing a third randomized vector for a truly unrepeatable experience. When you’re ready, hit the ‘next’ arrow for a fresh pairing. If you find one worth sharing, a custom URL can be produced to lock them in.

    The poems draw from four translated volumes — by Waley, Giles, Ayscough/Lowell, and Bynner — 631 in total, each translator bringing their own instincts about what Chinese poetry should sound like in English. The number of artworks on display currently runs into the thousands, for over two million possible combinations. It’s a novel way to enjoy these classic poems. If you’re new to these works, congratulations, this just might be the start of your Chinese era.


  • Week 22.26

    Week 22.26

    I finished reading The Refusal of Work and immediately afterwards saw that Pope Leo had published an encyclical (first time encountering this word) on AI that included some of the anti-work sentiments I’d just read about. I found the following in this tweet:

    Among these ideologies, I consider particularly insidious the one that suggests that every person must earn or justify his or her own worth, to the point of attributing greater value to those who are more efficient or effective. From this perspective, persons end up being reduced to a means of achieving results, a resource to be used and exploited, and are no longer recognized as a proper end in themselves who should never be instrumentalized. The value of persons, however, does not depend on what they achieve or produce. There are rights that apply to everyone simply by virtue of being human, and no human power can legitimately deny or arbitrarily limit them.

    I suppose it makes sense for the Catholic Church to attack a core tenet of protestant belief. But I find it impossible these days to disagree with the idea that working hard and making money isn’t the thing that defines us as human beings. By that logic, we can let AI have the jobs — work justifies their existence, but not ours. What we need is meaning outside of work (and maybe religion).

    I’m now in the middle of David Pogue’s new encyclopedic record of Apple: The First 50 Years, still during the Steve Jobs era. I think it’s a good way to get ready for this year’s WWDC, which will be Tim Cook’s last as CEO before handing it over to John Ternus in the fall. The one thing I’ve taken away so far is that many of the conventions we now enjoy were slapped together by borderline burnt-out teams during hellish crunch periods. Apple’s best years were built on sleep deprivation, divorces, and denigration from their leader. He, of course, paid dearly too. Pogue’s book is the first I’ve seen to draw a faint line between the turnaround year of 1997, when Jobs himself was stressed to his limits and suffered kidney stones, and the eventual pancreatic cancer that would kill him.

    But there’s a great part where Apple’s board tries to convince Jobs to stay on as permanent CEO during his iCEO (interim CEO) period, offering him a million Apple shares and six million more as options. Jobs maintained during this period that he had no wish to stay on, because he was just beginning to enjoy time with his family and running Pixar, saying, “This is not about money, I have more money than I’ve ever wanted in my life.” It’s a bit of a tragedy that he eventually changed his mind and gave so much of the rest of his life to Apple.

    One of the people I used to listen to on my iPod was Sonny Rollins, who passed away this week at the age of 95 (NYT gift article). I think the first time I really took notice of his music was with the recording of his 9/11 concert, which I probably got from eMusic at the time. It amazed me then how he played with such strength at the age of nearly 80, so it’s no surprise he lived that long and only put the saxophone down a few years ago. I’ve been putting his music on all week.

    Side note: I just discovered eMusic is still around?? I discovered a lot of great music in my college days through their subscription plan, where I think I got like 40 tracks to download as MP3s each month. It was like having a budget to buy only two CDs, so you had to choose wisely. Those iPod days were great, and we cherished the ability to carry our entire music collections around. Now we “carry” nearly all recorded music around and don’t appreciate it as much.

    I’m still holding out on paying for “real” AI model access and making do with free DeepSeek for coding. It really works! I added a new Custom mode to Window Box that lets you pop in any YouTube video URL to use as a background scene. So you’re no longer limited to the three mostly static backdrops I made; thousands of live camera streams are fair game. The alignment and perspective may not match exactly, but hey, you get to see moving people and scenery. Here’s one in Venice, and one of Tokyo Station (above), if you need examples to try out.

    Generating code isn’t the only thing you can do for free. I popped by an IKEA for lunch on a weekday and stumbled onto what must be a hack that every retiree knows: you can hang out at the air-conditioned cafeteria for ages and the drinks cost nothing. The place was packed with seniors. When I tried to pay the 50-cent asking price of my coffee (not pictured), I was told that it’s free for members. What’s crazier is that the cups are refillable. So I ended up sitting there reading for an hour instead of going to a Starbucks like I’d planned. Between two mediocre ultra dark-roasted coffees that taste like ashtrays, I’d pick the one that doesn’t cost $5.

    Speaking of food prices, I’ve noticed something alarming recently. The country is running out of sardines in extra virgin olive oil. Leading regional brand, Ayam, only has sardines in tomato sauce — their premium varieties are out of stock everywhere. I’ve checked this across online and physical supermarkets and it’s the same story. There are a few cans of King Oscar still out there, but not many. Shelves are actually empty! NTUC FairPrice has John West brand brisling in EVOO but I can’t recommend them on account of their mushiness. I suppose it’s down to the rising cost of ingredients or shipping difficulties due to war. Hopefully temporary, but I’ve started a stockpile just in case.


  • Shelf Expression

    Shelf Expression

    Find it on GitHub


    Shelf Expression is the system I use for bookshelf.sangsara.net. It produces a responsive microsite displaying a shelf of up to twenty books, with cover art and synopses automatically pulled from online sources. It supports linking out to Goodreads for more information. It offers a choice of two themes: Minimal, with a simple grid and subtle animations; and Vitsoe, with a skeuomorphic shelf and playful “pick up” animations.

    You can use it to add a curated page to your personal site — recommendations for visitors (like I’ve done), a personal bibliography, or maybe a book club’s seasonal reading list. It is ready to fork from GitHub; if you use an agentic coding tool, point it at the repo and have it adapt the header and navigation for your own site. There is also a built-in tool (Shift-Ctrl-U) for updating the book selection without having to write any code.

    You may optionally supply Google Books and Gemini API keys to prevent rate limiting and summarize retrieved synopses.

    Shelf Expression is free for non-commercial use. Credit is appreciated but not necessary, though I’d love to hear from anyone who uses it.

    You can navigate books with buttons, arrow keys, and swipes.
    The hidden editor screen lets you easily update the shelf.

  • Week 21.26

    Week 21.26

    Someone suggested that maybe I’ve got ADHD because of how I tend to (over)do things in big phases and then move on to something else. Case in point, this week I focused on reading, and somehow got through about six and a half books. It was Speaker for the Dead that unclogged the system, it was so engrossing that I didn’t feel the usual distractions: the urge to scroll a feed, or switch to a TV show, or check the chat apps. The ability to focus on long-form writing is like a muscle that loses its strength really fast if you’re not constantly training it.

    Here are this week’s books.

    This last book is a fairly academic sort of essay + research project on how modern life is unhealthily tilted towards work — has been colonized by it, even. How work dominates our worldviews, is seen as a source of virtue, and supposedly gives life meaning. It references some incredible antiwork bangers from Bertrand Russell and others, and made a good case way back in 2015 for how we as a (presumably Marxist-leaning) society could make life better for everyone if we just stopped centering work and thought about what else we could do. And that was before generative AI.

    Viewed through the lens of today’s technologies, it’s hard not to see the chance that AI offers for us to rethink society: we could sustain current economic outputs while letting everyone spend less time earning, giving more people the freedom to pursue other things. It’s a Charlie Brown football that’s been offered and yanked away by capitalism many times before, but we can still hope. You may think you have a life today, he writes, but aren’t you really spending that time recovering from work? Are you really able to do the things you want, or have you already been limited to the options that fit neatly into evenings and weekends?

    I plugged this into Claude and it pointed out that I’ve been on sabbatical for months and made a dozen apps, which might be the echoes of work ringing through my bones, a ritual I can’t unremember. I disagree. Work may have been the first to put the tools in my hands, but what I do with them now is self-expression, possible because work isn’t at the center of my thoughts and time.

    It was with this in mind that I attended a talk on Thursday organized by my friend QQ, featuring my former boss, Olof, and a guy named Phil who heads up an innovation office in the government.

    The event’s topic was “Human-Centered AI” — broad enough to go in many directions. Olof gave a preview of the book he’s working on, which argues that play is the future of work: something humans do naturally and joyfully, and therefore a genuine creative advantage over AI. But he remained firmly focused on work as an indispensable part of life, which made Phil’s contribution useful as a counterweight — he suggested to the audience that AI could help them in creative pursuits outside of work.

    I ran into a lot of people that I knew at the event. Many were ex-colleagues from the last couple of companies I was at. It’s times like these that Singapore makes you feel how small (or perhaps how tightly knit) its communities are. Quite a few of them have gone on to work with each other elsewhere, and a significant number have now landed in roles at the Government Technology Agency of Singapore (GovTech). As if to underline the point, one of the people I met at the post-event drinks was someone that YJ told me — just three days prior! — that he wanted me to meet. He was right; I enjoyed our chat and there might be an opportunity to do some fun stuff in AI together.


    If you thought that all that reading meant less vibe coding, you’d be partly right. The bigger constraint was self-imposed: I’m currently not paying for any AI subscriptions, and have made it my mission to see how much I can do with free models. It’s like completing Doom with just the basic pistol, or Jason Bourne beating a guy to death with a book (I tell myself). Any idiot can ship an app with Claude Opus — but can they do it with DeepSeek V4 Flash?!?

    (I’ll probably last another week before caving and resubscribing.)

    Using only free access to Qwen 3.6 Plus, I managed to update Window Box with a slew of upgrades: transition animations between locations, better caching of assets for performance, accurate daylight timings, realistic sunlight movements from dawn to dusk (correctly oriented to the camera angles in each city!), and better handling of wind effects and sounds.

    I also updated a maze, a maze, a maze to address a request I’ve gotten several times: the ability to see your path and the calculated optimal route after solving the puzzle.

    During this time, Google released their new Gemini Flash 3.5 model and made some outrageous claims, such as how it rivals their own 3.1 Pro model in coding ability. After putting it through its paces and wasting quite a bit of time, I can say it’s currently nowhere as smart or reliable (at least when working in chat).

    I wanted to add a page to this site containing a curated “bookshelf” of the best books I’ve read recently. I first made the page using a basic WordPress template, just a gallery of book covers that linked to Goodreads, but found it depressingly old-fashioned. Then I tried to use Gemini Flash 3.5 and DeepSeek V4 Flash to build a modern web app, with a stack of 3D books you could pull out to inspect, and ended up losing an entire afternoon’s work due to hallucinations and corruption.

    The next day, I restarted the project from scratch and got something I was happy with. Only to test it with Cien, who gave me the feedback I knew in my heart but didn’t want to admit — all this faffing around with a fake 3D bookshelf wasn’t any better than simply seeing a grid of book covers. It was actually more annoying. So I redesigned it again, and you can see the results through the Bookshelf link in the site’s navigation.

    Or at bookshelf.sangsara.net.

    And because I didn’t want to wade into code or ask an AI agent each time I need to update the list of books, I built in a visual tool to generate the very code it needs! I’ve named this project Shelf Expression, and will open-source the code on GitHub once it’s sufficiently kink-free. Other people should then be able to just point their AI agents at it and repurpose this to add bookshelves to their own sites.

    It’s becoming hard to remain satisfied with traditional, restrictive CMS systems like WordPress.com when you can vibe code custom pages like this, but I’ll stick with them for now on the basis of boring = stable. I’ve got too much history here to risk a migration at this point, but the day will come, so this really is an existential risk for many companies unless they update their services.