Tag: Apple

  • 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.
  • 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.
  • 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.

  • Week 17.26

    Week 17.26

    By the time this goes live, I should be in Tokyo. We picked this week to go because Kim thought that there would be a lull at work. That did not turn out to be true, nor is it particularly good timing by any measure: it will be Japan’s Golden Week holidays, a notoriously busy and crowded domestic tourism season, plus there was just a massive 7.7 magnitude earthquake off the northeast coast this week. I believe the Japanglish phrase would be Ohwellganai.

    24 hours until take off and I still haven’t packed a single item. That’s either a sign I’m becoming a seasoned traveler (not likely) or that I’m taking this trip more casually than usual. Maybe it’s the fact that the weather is pretty mild and won’t require a different wardrobe than what I usually wear. I hope Tokyo is ready for my basic-ass black t-shirt and baggy jeans look. Compared to last year’s month-long stay, stopping by for a week this time feels really breezy.

    I’ll often obsess over what camera to bring on a trip, but this time the decision is much easier. For one thing my top pick, the Ricoh GR III, has decided to completely lock up, physically. All its critical buttons are stuck and gummed up either with dust or crystallized substances — not for the first time, but worse than ever. This doesn’t happen to any other line of camera I’ve owned. The GRs are brilliant little things but their build quality and reliability has sadly been a weak spot.

    Secondly, the cameras in the iPhone 17 series are the best they’ve been in years. I’m okay just shooting with the native app in HEIC and editing photos with its “next-generation Photographic Styles”. Or I could shoot ProRAW and edit them in Halide Mk3 too, but it’s mostly extra work and not essential like it was a couple of years ago when Apple’s Smart HDR lost the plot.

    This week was also a birthday week so there was altogether too much eating and that’s never a great idea before a holiday where you’re already destined to put on a few kilos. This week has involved too many curry puffs, pizzas, roast lamb, pastas, and patés. I didn’t buy myself anything more than a 10th anniversary copy of To Pimp A Butterfly on vinyl. I decided that since I’m managing to get a lot done with my M1 MacBook Air, upgrading to an M5 isn’t something that would really excite me at all. Making the most of this five-year-old machine is more satisfying, so I could conceivably wait for the M6 model.

    This week I once again repurposed existing parts to make more new things. Last week’s work on the orchids was too intricate to use only once (pun unintended). So I ported the math to my procedural artwork generator to create a new style called Orchids Forever, where I can stage them with different lighting conditions and make wallpapers.

    Because Cien said she enjoyed having the music from Orchids, Once. in the background as she worked, I started to think about making a thing that was designed to sit in the background of a workday. The first idea that came to mind was sadly too complex for me to pull off (for now), so I started on another that places a few orchids in a flower box outside a window, looking out over the Singapore skyline. The idea is that it lets people anywhere pretend they’re in Singapore, looking out over a scene that changes with the time of day and actual weather.

    The day after I made it, my ex-colleague Tobi over in Germany said he misses Singapore, so I sent this over to help. Rather than reuse the procedurally generated music from Orchids, Once., which would be completely stripping that work for parts, I integrated a free Apple Music Radio player, which makes me happy because more people should hear their live stations.

    While reflecting on all this, I’ve started to think there are three camps of people making things with AI. The first, like me, wants to design experiences and outsource the coding. The second wants to code and outsource the design. The third just wants to see things made and don’t care much about either.

    This is an enthusiast market, and people are even buying curated Markdown prompt files that promise to enforce design and/or development “best practices,” trying to compensate for not knowing what good looks like. But I’m still skeptical that the general public will want to generate their own custom apps. Most people might create a widget or two to solve a personal problem, but that’s it.

    The real unlock for wider consumer vibe coding will be raising the quality of AI-generated UX design. Nobody scrutinizes generated code, but bad design can be felt instantly. Better design defaults might increase the numbers in camps two and three: the people who just want a thing made and don’t particularly have an idea how it should look or work, but would still notice if it was ugly or confusing.

    Claude Design, released this week, might be a trojan horse for exactly this. Although seemingly positioned as the anti-Claude Code, with a focus on front-end design and visual prototyping rather than coding (making it a tool for the first camp), it’s still going to make design more accessible for all makers, even the code-oriented ones. It’s worth noting Figma’s stock fell 7% after the announcement.

    The secondary effect — already playing out in layoffs I keep hearing about — is a devaluation of designers for common production tasks. This drum is being banged by every dimwit on LinkedIn so you know it’s well underway. Most designers will have needed to start burrowing deeper into their organizations yesterday, into strategy and human-centered decision making roles. Service and business designers should have had a head start, but this is a game of musical chairs and someone’s taking out half the chairs.


    • I watched the Sphere (1998) movie with my book club and while I expected it to be possibly racist or sexist, I didn’t think it would be as offensive as it was. It’s godawful. I didn’t hesitate to give it 1 star on Letterboxd. There must be an interesting story behind how Barry Levinson came to direct an undersea horror film based on a sci-fi hit novel by Michael Crichton, starring Dustin Hoffman and Sharon Stone among others, and have it come out so unwatchable and incoherent. The effects, both practical and computer generated, are laughable. And this was just a year before The Matrix.
    • We finished Company Retreat, the new hidden camera show from the makers of Jury Duty. The premise is that a normal person is chosen to temp at a company that’s going on their annual team-building retreat, except everyone else is an actor. They put him through absurd situations that test his character, and like in the first show, the mark turns out to be an unbelievably good human being. The scale of the con is much larger this time, and the behind the scenes content is as interesting as the main story (if not more so). I think they went just a little too far with some of the characters this time, to the point where you think he must have known this wasn’t normal.
    • I’m currently reading another goddamned Japanese cozy novel, except this one seems to be worth the paper it’s printed on. Letters from the Ginza Shihodo Stationery Shop seemed like an appropriate choice given that district is where we’ll be staying. Like some of these other trash tomes, it’s a bunch of intersecting short stories centered around a titular shop. This time, the stories are actually kinda interesting and have emotional cores that work — stories of everyday people trying to write letters to resolve personal issues. Rob asked if it was appropriate for his 12-year-old (that’s about the reading grade for these books), and I said yes, as long as you can explain the concept of a hostess club to him.
    • I’ve also begun reading Oliver Burkeman’s Four Thousand Weeks, a book that appeared on my radar awhile back but whose apparent premise — life is only 4,000 weeks long, so what are you going to do about it? — scared me off. Then Ted mentioned it when we met up a couple of weeks ago and thought that I’d find its concepts familiar, and in line with how I’m already living. I took that as a tremendous compliment and permission to get started. I read the intro and first chapter on the plane, and they deal with the idea that you should embrace that life has time limits, and accept you’ll never be able to do everything. Not only is that okay, it’s how all people lived before our clock-watching, productivity-obsessed era. I couldn’t help but wonder if I was taking away the wrong conclusions, though, because when I think about how short life is, I think of how Whose Line Is It Anyway? is played. You may recall it’s the show “where everything is made up and the points don’t matter”.
    • It’s Sunday night in Tokyo and I’m in bed rewatching Lost In Translation (2003) on local TV.
  • Week 15.26

    Week 15.26

    I’m looking through my camera roll to remember what happened this week and it’s mostly a bunch of “artworks” I’ve been making. Wait, let me step back: I’ve had an interest in procedurally generated graphics (GenArt) for awhile, and it peaked with the NFT boom of 2021–22, where I spent a relatively obscene amount of money minting and collecting artworks I really liked (not the monkeys). I’m mostly drawn to the idea of mathematically rigid routines producing organic beauty — the contrasts in that, and the unpredictability of what you get when you roll the RNG dice.

    So after my recent experiments in making apps, I wondered if I could get AI to write me code that would generate images based on concepts I described. The answer is, of course, yes! It’s important to note this isn’t prompting for images (like when you use Midjourney or DALL-E), it’s prompting for the math behind making images. And once you’ve created the rules by which it draws different art styles, you can create a nearly infinite number of unique artworks by dialing different variables up and down.

    One example is a “style” I made called Labyrinth, which produces actual, solvable mazes. Depending on the variables you adjust, you can make mazes ranging from tiny to massive, with just one solution, or many. If you asked an image generation AI to draw a maze, it would likely lack the coherence of a real maze, because of the way it operates — focusing on the superficial appearance and not the integrity of its paths. But an AI model can make the math to draw a maze.

    I start most of these by thinking up an artistic production approach, say “take sheets of colored cardboard or acrylic, and punch holes of varying shapes into them, then layer them on top of each other so the holes line up (or not), and randomly spray contrast-colored paint on some of them”. Then I describe the possible variations and variables I want to control to the AI, such as the density of shapes, the thickness of the borders, the ratio between angular and organic lines, and we iterate after seeing some of the results. Just think of all the methods and ideas you might want to play with, and how this lets any old idiot model them on their computers!

    The meta project is that I’ve made a modular app that handles all these different styles for me, whether they require a 2D canvas or WebGL. The app provides a common UI layer that all “styles” can plug into, which allows me to control them. Now that it’s done, I can just focus on experimenting and having fun making new artworks. I daresay a few of these are executed as well as any of those I spent money on.

    I’ll probably release it as a wallpaper generator once I have enough styles built in, if anyone’s interested. But mostly I love having this as a background project that I can dip into, on and off. It allows me to take on other app ideas as momentary “side quests”.

    While making Labyrinth, I showed a maze to Cong, who said “You should do a puzzle maker”. To which I said, “Nah.” And then a minute later… “Although, a daily maze game. Hmm.” It made sense that I could save time by taking CommonVerse’s daily random generation mechanic and combining it with Labyrinth’s logic to make a daily maze challenge. But would it even be fun to trace a 2D maze with your finger and try to solve it? No… so what if it was a 3D maze you had to escape?

    The first prototype took a couple of hours, and I’ve been polishing it for the last few days. I think it’s coming along nicely. I’ll put it out soon, once I balance the difficulty and get more feedback from testing.

    The development of a maze, a maze, a maze… was hampered by a rare bar crawl with Howard and Jussi on Thursday night that gave me a massive hangover lasting into Friday afternoon. When I got home, I was too plastered to care that my vinyl copy of J Dilla’s Donuts had arrived from Amazon US protected by nothing more than a flimsy paper envelope. By the clear light of day I was amazed that they would even do such a thing. The discs are intact, but the sleeve has a bent corner. If I’d ordered from Amazon Japan, I would bet a major internal organ that it would come wrapped in four layers of stiff cardboard, bubble wrap, and a handwritten apology for their carelessness.

    Did I mention we’re going to Japan again? It’ll be a short vacation, in a couple of weeks’ time. Not much on the agenda, just checking in on the state of curry rice and egg sandwiches. Maybe see some nice art. Take some photos.

    Which brings me to the latest betas of Halide MkIII, which I’m very much looking forward to using on the trip. They’ve been progressing the app nicely, and it might be enabling the Holy Grail of iPhone photography workflows for me. Ironically it involves using Halide not as a camera app, but just as a photo editor. You can shoot compact (lossy, JPEG-XL compressed) ProRAW photos up to 48mp with the default camera app, then edit them in Halide to have the same look as their Process Zero photos! What this means: you get all the benefits of computational photography at time of capture, including noise reduction and night mode, but you’re also free to dial it back and get natural, “real camera” photos in post if the scene calls for it.

    As much as I like these side quests, I think making my own photo editor would be biting off entirely too much to chew, so I’m still rooting for these guys to crack it.

    While writing this post, I got the news that an elderly aunt passed away at the age of 93. She had been in reduced health since the Covid years, but by all accounts she went very peacefully and I guess you can’t ask for much more than that after a long life. The extended family’s Chinese New Year routines fell apart in recent years after she pulled back from organizing them, so it was fitting that some of us got to reconnect at her wake on Sunday evening.

    See you next week.

  • Week 12.26

    Week 12.26

    Another busy week, and I’ve been like a caffeinated creature hunched over its keyboard with bloodshot eyes. You may notice I’ve updated the navigation bar on this site to point to a dedicated page listing all my apps. This takes the place of a page that pointed to all my custom GPTs on ChatGPT (that never really took off, did it?) and before that, my NFT experiments. Those are still around, though!

    You may call it AI slop but I’ve generated key images for each of the apps on that page, which I like to think of as analogous to game box cover art, those evocative artistic representations that used to stretch truths to their breaking points, back in the days when games looked like Lego.

    Here they are, just so you can admire them.

    The latest for now is CommonVerse, my daily magnetic poetry app. Give it a go!


    I’m writing this paragraph on Thursday after another failed attempt to stop vibe coding and focus on other pursuits. So far I’ve mostly finished one project and started on another that I meant to leave aside until next week. What is this feeling? This need to actualize a new ability that I’ve always wanted but never had to worry about not having?

    Instead of being able to recognize that I’ve already accomplished a lot, and “taking the rest of the week off” to go watch movies or something, I’m sucked into continually iterating and improving upon these apps like I’m on a deadline. It’s that paradox (mentioned here last May) where new technologies don’t decrease our workloads but only make us busier instead.

    Productivitymaxxers will say this is fine. This is how it’s supposed to be: you can do more, so you work just as hard and get twice as much out of it. Why would you want to work half as much? And they’re not wrong — that’s the engine of progress. But it’s also how you end up making six apps in three weeks and treating it as some kind of baseline rather than a miracle. As predicted, my capability has grown but I got desensitized to the satisfaction.

    The discomfiting shock to the system as I struggle with this resetting of scale, and feeling addicted to realizing more ideas, is an adaptation crisis. Adapting to life at a new speed and learning to balance capability with sensibility. Astronauts and pilots have to train to handle G-forces, in which the G stands for gravitational. I’m suggesting that working with AI has its own G-force, where the G is gratification. You can suddenly manifest many of the things you can think of. That’s a very powerful impulse to get under control. How do you engage with life’s responsibilities, appointments, or your growling stomach, when there’s always just one more prompt and revision to make? After getting home from a few drinks on Friday night, I found myself on my laptop in bed after midnight, fighting with a procedural audio generation engine that wouldn’t trigger drum sounds for any obvious reason.

    The next night I did the same, staying up to 3:30 AM because I had some new ideas that just could not wait. My Apple Watch sleep score is in shambles. But App #6 is certainly shaping up to be my best work. I’m going to sit on it for a whole week and keep polishing, instead of putting it out and moving on to the next one. That’s my strategy for slowing this down — it’s all I’ve got.


    Over the weekend, I also attended an Apple Store photo walk activity on a sweltering afternoon (up to 36°C next week) with Cien and Peishan. I hadn’t done one of these in years, but always keep meaning to. This one was conducted by the staff at Apple Orchard, and was a walking tour of Emerald Hill — which in reality is just a tiny street off Orchard Road. I’ve been there dozens of times over the years, but never saw the details just sitting there in tiles, old paintwork, and ornamental doorframes. Going to a small area with the intention of taking photos, and giving it more time than you’d normally allocate, can be a really fun and creative exercise.

    There’s no reason one couldn’t do this themselves any time, anywhere, of course. But these free ‘Today At Apple’ sessions are a good excuse to get off the couch. The other two local stores have their own programs, and I might check them out someday: Apple Jewel Changi Airport looks at the indoor waterfall, and Apple Marina Bay Sands has a night photography focus.

    Another nice touch is that they’ll lend you an iPhone 17 or 17 Pro if you don’t have one, and they’re incredibly relaxed about handing them out. No paperwork to fill out or deposits to pay. That’s the great thing about Find My protection, I guess. A comment was made that in the UK, those phones would disappear the instant the group left the store — even if just for parts. But they must do these sessions worldwide, so I’d love to know how it’s dealt with.

  • Week 11.26

    Week 11.26

    If you thought I was going to stop after last week’s two apps, I wouldn’t blame you. I’ve been having poor luck staying focused on new hobbies and pursuits over the past year; they all just seem like too much work for too little payoff and I drift off. Vibe coding seems different so far because it lets me start making weird things that I want to see, without being dependent on anyone else’s time or generosity.

    If you think in terms of music albums/careers, then Collagen was the mixtape that I put together to see if I could be a real musician. Urban Jungles was a big leap forward, the debut album, if you will. It had way more polish and was usable by almost anyone (whereas Collagen had what you might call a niche audience).

    Which brings us to the sophomore curse or slump. The second album tends to be over-ambitious, myopically conceived, and underwhelms audiences looking for more of what made the debut good. There are exceptions to this mythical rule, like Radiohead’s The Bends, Lorde’s Melodrama, and D’Angelo’s Voodoo. By this logic, my next app was statistically going to “fail” by being a harder one to get into.

    I ended up making two apps again this week: SkySpotter and Library Supercollider. Each one has a separate page on this site that shows and explains what they are, so you should stop here and go read them before coming back.

    Like a sophomore album, SkySpotter probably reached a little too far. It took the real-time weather data angle from Urban Jungles, added the more complex dimension of real-time air traffic data, and then threw in rendering a first-person 3D world as a bonus challenge. I started refining the concept and prototyping it on Sunday afternoon, and then worked on it for two full days on Monday and Tuesday. I literally forgot to eat lunch, and was still messing with it at 11pm both nights. It was like a job.

    Gemini 3 struggled. The Canvas chat became so long and convoluted that it won’t even load now in the iOS apps — I have to use the web interface. It hallucinated making changes, and introduced new bugs each time I made an improvement. It built planes with reversed wings and nose cones pointing backwards. Working with bugs in a 3D app was so blood-boilingly frustrating that I wanted to give up.

    I actually did give up… on implementing a VR mode for Apple Vision Pro. We got it to half work but the skybox sphere was too far away and would keep turning black. Rather than risk corrupting the working regular version any further, I decided to cut it.

    I’m proud of SkySpotter because it’s pretty damned cool to lie in the virtual grass and watch real planes go by. Even as someone who doesn’t care about planes more than the average person! But it was a technical challenge first and a passion project second. So if that was my over-produced sophomore studio album the label breathed down my neck for, then the next release would be its opposite: a scrappy, self-funded back-to-roots project recorded directly to tape in a Nashville studio over an inspired couple of days.

    Library Supercollider was an idea that came to me all of a sudden after I’d finished SkySpotter. I’d been interested in the concept of cut-up poetry since I was in university (popularized by Brion Gysin and William Burroughs around the 1960s), and I believe it occurred to me back then that someone could make a computer program to cut up and mash two classic texts. I just didn’t know it would be me, twenty years later.

    I expected it would take me the next couple of days to get working, being that it requires the somewhat complex-sounding downloading and processing of entire ebooks in the background of a web app. I didn’t know if it could even be done. So imagine my surprise when I had a working prototype by lunchtime on Wednesday. But between polishing the experience and overcoming download limits with Project Gutenberg servers, I wouldn’t be done until Saturday morning, making it a longer project with different challenges — comparatively less frustrating, more educational.

    I understand that it’s not an app for everyone — you might read a page and conclude that it’s worthless gibberish. Maybe it takes the sort of person who likes abstract art and free jazz. But personally I’m so pleased with this project that I’ve bought two domain names to go with it: librarysupercollider.com and the superior smashmybooksup.com, which I’ll retain for a year as a ‘marketing URL’.

    In all seriousness, I think this is the finest work of my two-week career as a builder of software! The user experience for remixing and reading the resulting texts is brilliant, if I do say so myself. The steampunk UI and animations are completely unnecessary but bring me joy (notice the moving gears in desktop view). I had to come up with caching and proxy solutions to make the app more reliable under load. I even got a little into the weeds: installing node.js and Vite on my Mac, running scripts in the terminal, trying to compile a macOS port to get around problems (eventually unnecessary).

    Even if I were a skilled and experienced developer, I can’t see how I would have made these apps in two weeks; from writing to designing and coding them up, plus preparing documentation and website copy (plus one very dubious video ad). Deploying Library Supercollider to its own domain made the reality click for me, a feeling kinda like publishing your first thing on the App Store. It says: this thing is now real and can be used by real people.

    Then I came across this article in the NYT Magazine, entitled “Coding After Coders: The End of Computer Programming As we Know It”. It notes an interesting inversion of what we’re seeing in other fields — AI is taking away the drudgery of programming and leaving the human, soulful (and fun) parts.

    “The work of a developer is now more judging than creating.”

    In that way, I may not have magically joined the ranks of coders overnight, but I could probably say I’m developing. At my job, I used to direct the form of apps in a way so removed that I could only claim the role of design, but not the larger making. Part of the handwringing in design circles today is precisely about how designing and developing are merging, and soon only making will remain.

    Not everyone will bother to turn their ideas into reality, and fewer still have the experience and vocabulary to prompt polished apps distinct from the models’ averaged-out defaults, but those who persevere will be bringing tools and toys into existence the likes of which you may have been waiting decades to see.

    What’s next? Well, I might have a couple of ideas…

    One thing all this app-making has done is bring me back to my Mac. I usually spend most of my computing time on my iPhone and iPad, but there’s no substitute for a Mac when it comes to managing local files, running scripts and compiling code. I’ve had coders like Michael make this point to me before, but I never got it because I never needed to sync a local repo with GitHub or anything before.

    So a side effect of spending long stretches of time on my five-year-old and long-neglected M1 MacBook Air is that I’m wondering “Why did I ever stop? This thing is great!”

    It’s worth noting that this week Apple’s newly released MacBook Neo has been getting a ton of praise on my social feeds for being an affordable and all-round capable machine at an unbelievable $599 price point. I got a tear in my eye as I read this essay by Sam Henri Gold: “This Is Not The Computer For You” — it perfectly encapsulates what it was like to grow up on computers and teach yourself things, even on PCs.

    Too much screen time is awfully bad for you, so on the weekend I touched some metaphorical grass by taking our niece out to Disney on Ice at the Singapore Indoor Stadium. It’s extremely well-timed, with the world still coming down from Alysia Liu’s gold medal, and Singapore being in the midst of a Disney craze — a Disney Cruise offering has launched after delays and is now at the local docks, with fireworks and drone shows along the bay at night.

    These were Live Photos of some stunts

    I have no deep affection for Disney IPs but appreciate the amount of effort and coordination that goes into making magic, and it clearly works with so many adults into this stuff. What’s interesting is that while ice-skating can get pretty boring after awhile — it’s all the same moves over and over, around a static rink — adding a layer of characters and storytelling works to keep it fresh over an hour and a half.

    Oh, and our niece is 9, and by way of introducing her to the MacBook Neo, I asked her what computer she uses. I swear, her response was not far off the punchline in that Apple ad that everyone but me seems to hate, in which a girl who’s been using her iPad all day for creative things is asked what she’s doing on her computer, and she responds “What’s a computer?” Will iPads become open enough to support kids learning to (vibe) code? Or will nature heal in a post-post-PC revival led by the MacBook Neo? In any case, that ad was prescient.

    Bonus: Steve asks the same question in a different context (around 1:30). You must watch this video, it’s breathtaking. He’s 28 at this point. In addition to confidently describing things like Street View, mobile wireless computing, LLM chatbots, and the App Store, there’s a part near the end where he says “What we need to do is get away from programming. People don’t want to learn programming, they want to use computers.” He was talking about providing more finished software products to customers, because writing custom software was the norm then, but it’s an eerily relevant quote!