Tag: Photography

  • Week 18.26

    Week 18.26

    We had a pretty good week in Tokyo and are now back with painful foot and leg muscles that haven’t been worked this hard in a while. There was one notable moment of weakness where a decision was made to take a taxi back to Ginza from Meguro, rather than deal with the evening crush in the train system. Surprisingly, it was only about S$30 — one more sign of prices equalizing between Singapore and Japan. You may have seen the same reports I have on the rising cost of living there, and how convenience store onigiri now starts around the ¥200 mark, nearly twice what it was a few years ago. But while the onigiri in Japan may soon cost nearly as much as the versions we get in Singapore 7-Elevens, the two are still incomparable in terms of quality.

    No surprises here, but alcohol continues to be significantly more affordable than in Singapore. I posted a picture on my Instagram of Buffalo Trace bourbon (750ml) going for about S$25 in Meidi-Ya, a nice supermarket. That’s about a third of the price you’ll find in Singapore, if you can even find Buffalo Trace at retail. I’m beginning to form an alcohol and lifestyle arbitrage theory that says if one earns in dollars AND drinks enough, it may make financial sense to live half of each year in Japan.

    Maybe one could sell an apartment in Singapore and fund two small apartments, one in Tokyo and the other in Thailand or Australia (depending on said value of initial apartment). Australia’s reverse seasons might make it possible to live in a perpetual fall/winter state, with an occasional summer when you get too depressed.

    Or when your skin gets too dry. I’m no good at moisturizing, so after just a week I’m beginning to feel my skin noticeably drier. However I’d take lotion any day over the stifling >80% humidity and gloominess that greeted us upon return. Apparently it rained most of the week we were gone; the kind of tropical heat that makes you feel sweaty in every crevice. “Why do we live here again?”, I asked Kim on the way home. Oh right, zero capital gains tax and responsible governance.

    It’s also been a week since I touched my MacBook so I may have broken the app development habit. I just have one tiny improvement I need to make to Crumbs now that I’ve used it to log my locations on this trip…


    Some things I remember doing:

    • I met Michael for lunch on Monday, and like a good friend he brought me to a Sapporo soup curry joint in Yotsuya. There’s always the risk of splashing and curry stains with soup curry, but I think he exaggerated the mess he made because I’ve seen people come into the office with far worse. I think we ended up talking for two hours, and we didn’t even get around to John Ternus and rumors about upcoming products.
    • Kim came out to meet me later and since we were already in the area, we decided to walk down to see the iconic steps featured in Your Name (2016). I cannot believe it’s been 10 years, by the way.
    • At the National Film Archive of Japan, which I might be visiting for the third time, we saw a small showing of Japanese film poster art. It was excellent, and just ¥250 including the permanent exhibition. I instantly recognized two of the earlier posters: Philip Glass’s score for Koyaanisqatsi (1984) was the inspiration for some of the music in my DataDeck project, and I just watched Cleo from 5 to 7 (1962) last week on MUBI.
    • We bought advance tickets to the Ron Mueck show at Mori Art Museum, his first showing in Japan in over 15 years iirc, which was a refreshingly tight collection of 11 sculptures. Some of his work is massive, like In Bed, and the level of detail is so astounding you can easily spend over an hour just looking at them.
    • I say refreshingly because there’s a tendency for exhibitions to pack so much in that your mind just goes numb. That’s what tends to happen when I visit the National Art Center in Roppongi. Still, I love the idea of a building with massive exhibition halls that are regularly rented out by “amateur” art and photography groups showing off their members’ works. I think having such a venue fertilizes the hobbyist landscape and reinforces the value of art. Singapore would do well to have more such places and encourage a forward-looking, arts-attuned society instead of, say, building yet another temple to our origin story.
    • The Tokyo Photographic Art Museum in Meguro is still one of the best. I’ve missed it the past few times we were in town, but there’s nothing like looking at great photos after too many paintings. The free exhibits at Fujifilm Square in Roppongi are also consistently excellent, even as their product lineup becomes more ossified and oversold.
    • We also visited the Snoopy Museum Tokyo in Machida which I will freely admit was a highlight for me. It’s the only official one outside of the Charles M. Schulz Museum in Santa Rosa, CA, and a very well-designed facility — exactly the right size, with something for all ages. When I told Michael we were going, he remarked that it was interesting how relevant and popular Peanuts remains, compared to the likes of Garfield (no shade). I said it was because of how much storytelling latitude it has built in, in no small part thanks to Snoopy’s flights of fancy. Whereas Garfield is reducible to a few things, like a love of lasagna and a hatred of Mondays. To which he observed how it’s weird Garfield hates Mondays at all, because he’s a cat without a job. He just says he hates them to be relatable!
    • Did you know that it was only after 20 years of the Peanuts comic strip that Snoopy stopped walking on all fours like a normal dog and started becoming the odd character he is? I learnt that off a little fact card at the museum, where Schulz is quoted as saying “It was one of the best things I ever did.”
    • I’m more of a cold shower and cold anything kinda guy, and my heat tolerance is very poor. Like some of the hotels we’ve stayed at before, the one we booked this time had a sento, a hot public bath, and after being urged to by Kim I thought I might as well try it. It was fine. Going by how it appears in film, I thought maybe people stayed in the water for quite awhile, but I was ready to get out after 10 minutes, and it seemed the same for other people. Funnily, one guy said goodbye to his wife as she went to the women’s side, and then spent 15 minutes washing himself in the stalls and never even got into the water. Maybe he was another anti-hot tub guy who just got tired of saying no and pretended to do it. Like those salarymen who get fired but don’t tell their families and sit in parks all day with their briefcases.
    • Speaking of the hotel, I’d initially booked us into the same hotel I stayed at back in 2012 when I went with a couple of colleagues from Sweden and the US. The day before our trip, we looked at recent photos online and decided it was probably not sufficiently well maintained, and booked a nicer place nearby. Free cancellations on Hotels.com are a fantastic feature. The new hotel was great, and although our corner room was billed as having 30 sqm of space — an almost suspicious amount for central Tokyo — a lot of it was used for a hallway area. Nevertheless, it was useful for keeping our suitcases out of the way and for the drying of umbrellas. I would definitely stay there again.
    • We had a nice walk through Yoyogi park and Kim used one of the famous transparent toilets. Despite having already conquered public nudity with the sento, I did not experience them myself (there was someone waiting and I didn’t need to go).
    • We were on our way to a coffee shop in Ginza one morning when we spied a line of people waiting to get into a tendon restaurant when it was due to open at 11am. Following the Singaporean/Lemming instinct of letting social signals decide what to eat, we abandoned our plan and joined the crowd. It was very good, foreigner friendly, and great value. ¥1,600 for a large bowl with conger eel, two shrimp, a squid/clam mix, half-cooked egg, shishito pepper, and seaweed.
    • Will told me about the Creative Museum Tokyo in Kyobashi, so we stopped by for the Sorayama retrospective that’s currently on. You may know him through his work designing the first Sony AIBO, and the cover art for Aerosmith’s Just Push Play. His work isn’t for everyone, but I loved how this guy just loved drawing naked female robots, did it all his life to the point of mastery, and now brands like Dior are just dying to collaborate with him. No selling out on his part, the dude just loves his gynoids.
    • At the above venue, I noticed the same phenomenon I saw many times over the week: a lot of people employed to do mindless, redundant work. Like standing at an obvious door to point you in a very obvious direction, or posted near a small bump telling you to mind your step. I hope that this is just what extra labor is deployed to do during downtimes, and that they actually have more to do most of the time, but I’m skeptical. Still, AI can’t take your job if your job wasn’t necessary in the first place!
    • Some time was spent revisiting shops I tend to drop by every few years, like the Nintendo Store in Shibuya, or Village Vanguard in Shimokitazawa, or Tsutaya books at Daikanyama T-Site. The latter two are always fun because there’s so much stuff I would buy if I could teleport them home immediately. If I ever buy that Japanese apartment someday, I fear it might be filled to the edges with magazines and useless tchotchkes.
  • 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 14.26

    Week 14.26

    An update on my app addiction

    On Wednesday morning I woke up and saw that my last app DataDeck was getting a bunch of likes and reposts on Bluesky, which was a nice surprise. If ever there was a place where people would appreciate a wacky, nerdy idea, I guess that would be it.

    My Instagram Story on Wednesday

    I made a couple of post-release updates to my magnetic poetry non-game, CommonVerse. There are now two new themes, one called Label Maker that resembles those little Dymo stickers we used to make, and another called Zine which is like a random note of cutout words. The UX has also been improved in subtle ways that might make it easier to manage making sentences.

    My “main” app project now is one that I can keep noodling on in the background, with no real endpoint — it’s done when I think it’s done — and the idea was that would help me slow down and spend less time with this vibe coding stuff. Guess what happened? That’s right, if you design something that can sit on the back burner, it will sit on the back burner. I started work on another app instead.

    Defying time and gravity

    I’ve known that the next step was to play with agentic coding tools like Codex or Google’s Antigravity. These are code editors with integrated AI that can look across all your project files and manage multiple agents working on simultaneous tasks. It’s a far cry from the way I’d been working: getting advice and instructions from a single chat, and then doing everything myself in a code editor. So I finally got started with Antigravity, and it blew my mind.

    The productivity increase is hard to describe. I could just describe stuff and it would get done without further work on my part. The tool can use the system’s terminal and Chrome browser to install packages, click around and test the app, figure out why things aren’t working, and fix it while you watch. Stuff that took me days over the last month could have been done in hours. It was automating so much of what little I, the non-programming human, was doing and considered my job, that it made me feel kinda redundant, to say nothing of real programmers.

    With Antigravity, the MVP of my app concept was done in three hours on a Friday. The good/bad news was that it blew through most of my token allocation for the week. So I went back to the “old” way of working and made subsequent changes manually. What I discovered was that I much prefer getting hands on with the project files, looking through the code to understand what was going on and what went where. I think I’ll use these agentic tools to get started fast and figure out a working architecture. After that, it’s more fun to get involved and make improvements slowly.

    Ate and left the Crumbs

    So the new app is called Crumbs, as in breadcrumbs, as in leaving a trail of them so you know where you’ve been. It’s a private location journal that lets you mark where you are on a map with a single button push. Over time, you can see the path of your journey(s).

    I made this because I’ve always wanted something like this for logging holidays, and no app really does what I want. Foursquare’s Swarm is based on Places, so you have to find the business listing or entry in order to check in. If you’re in the middle of a national park, or in a country where no one has created Places, or you can’t read the names, you’re out of luck. Google Maps has a Timeline, but it tracks your location all the time, and it only shows your trail on a day-by-day basis. Your data is also locked in their app and you can’t get it out to visualize in other ways.

    Crumbs is private, and you can take the data out in JSON format. It logs the time and weather along with your location, and you can write little notes. You can save an image of your map, or export a PDF of your journal.

    A big breakthrough (for me)

    Unfortunately, because it’s a web app and not a native iOS app, it can’t permanently store data on your device. The OS may decide to purge all your data if you haven’t used it in a week. That’s a dealbreaker for any app intended to be a life-logging tool. That really bummed me out, and I thought it would just have to be a personal tool that I couldn’t distribute to anyone else — since remembering to do manual backups/restores of the JSON file would be a massive PITA for any user.

    And then I had a Eureka moment! I thought of a possible solution and asked Gemini if it was feasible, to which it answered “Yes, this is an ideal solution”. I wanted to scream “Well, then why didn’t you suggest it all this time we’ve been discussing how to get around the problem!?”

    The answer was Dropbox integration. I can’t make a web app read/write files locally, but I can do it in the cloud. So now Crumbs is as useful as a “real app”, provided you connect a Dropbox account.

    As of Monday morning this post is late and I think Crumbs is ready, so here it is.


    Other thoughts

    • Here’s a free idea: I was inspired by this stamp journal that went semi-viral, and wanted to make some sort of digital Instax photo album. It’d be kinda nice to keep a virtual scrapbook of interesting images, right? Well, turns out you can just use Apple’s Freeform app and Dazz Cam. It’s as simple as making a board and dropping in images, then arranging them however you want. All stored locally and synced to iCloud, easy peasy. Just because you can vibe code it doesn’t mean you should.
    • My iPhone’s MOFT Snap Case developed a cut/tear in its faux leather surface, and so had to be replaced after just six months. Its replacement is a Caudabe Sheath, which fits my requirements of being neither silicone nor slippery, with full edge coverage and a Camera Control passthrough button. It’s a hard plastic material with a rough, pebbled texture that makes it feel secure when held. It also came in second in MobileReviewsEh’s roundup of the year’s best cases. I got the version with the ‘open’ cutout for the 17 Pro Max’s camera island, not the ‘precise’ covered design.
    • Kim managed to finish reading Project Hail Mary and we went to see the film on Sunday (non-IMAX). Apparently there’s a longer cut, nearly four hours, which will be released on streaming in August when it comes to Amazon Prime Video. Yes, this is billed as an Amazon original film from the very first frame, coming even before the MGM logo (which they own), and I don’t think that will ever stop being weird. The film is good, a mostly faithful adaptation of a fun but slightly flawed book. I just think they glossed over a lot of detail in the final act, which lowered the stakes and made it less exciting and rewarding than it could have been. Hopefully the extended cut’s extra run time is concentrated at the end.
  • 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 9.26

    Week 9.26

    • The featured image above is the result of having Geese’s Au Pays du Cocaine in my head all day. The line about a sailor in a big green boat and a big green coat made me think of Puffer Jacket Snoopy, and of course I had to realize the joke.
    • We got the sad news that Deliveroo is shutting down operations in Singapore. This comes on the back of an acquisition by DoorDash who must have run the numbers and decided that a 7% share of the local food delivery market after a decade wasn’t worth investing further in. We use it all the time and prefer it over Grab and Foodpanda — it is by far the better app and their subscription service is better value for money, but we’ve seen this movie before. It’s like how Uber lost out to Grab; the market doesn’t always choose efficiently.
    • I will probably switch to Foodpanda because Grab as a brand has the same icky halo as, say, Facebook or Spotify.
    • Google released Nano Banana 2, the new version of their hit image generation model. This one is cheaper to run and kind of almost as good as Nano Banana Pro, so they’re making it the default for everyone. Paid users can still access the Pro model, but it’s hidden behind some menus. It’s a regression in quality, a slight improvement in speed, and most importantly, a boost to Google’s bottom line. Since I only do silly things with these tools, it doesn’t bother me tremendously, but imagine the same happening at an enterprise level for more important work.
    Screen recording of an AI panorama
    • One of the new things Nano Banana 2 can do is generate very wide panoramic images, so I asked it to render some “panoramas taken with an iPhone” in various locations. I then upscaled those and opened them in my Apple Vision Pro. They don’t have the photorealistic quality of images from Nano Banana Pro, and the resolution leaves a lot to be desired, but they’re still immersive and impressive when viewed in this way. You can see where this might go.
    • There’s been a lot of talk lately about how AI vibe coding could upend the SaaS market, if not replacing dependable enterprise tools with individually created ones, then at least giving IT departments a billion more unapproved apps to worry about. A viral essay from last week posited that AI coding could kill DoorDash, though I’d say they did a good job of that themselves out here. The other oft-discussed idea is that AI could replace the App Store, and everyone will just make their own apps instead of buying them from developers. Michael has been blogging about vibe-coding his own to-do list app based on Clear. I’ve been wanting to try this myself, making more little tools of my own to solve niche problems, but the opportunities have been slow to materialize.
    • This week the right idea presented itself and I made a web app using Gemini: an album cover collage maker that searches for the artwork or lets you upload your own. I’ve looked online for something like this before but only found a few that were quite lacking. Making one to my own specifications took maybe five minutes of prompting and testing. Then I thought it would be nice if you could drag the images to different locations. Gemini added that feature like it was nothing. I’m pretty hyped that even someone like me with zero current coding knowledge could will this into existence. If you’d like to try it, I’ve deployed it at usecollagen.netlify.app.
    • Otherwise it was a sort of decompression week where I just read a lot, listened to the records I bought/ordered last week, and was regrettably glued to my phone watching day trading losses (Chekhov’s gun has fired!) and social media feeds.
    • It took a couple weeks of dawdling but I finished John Le Carré’s Call for the Dead, his first novel featuring the spy George Smiley. I may continue reading the series, seeing as his son Nick Harkaway (whose work I really enjoy) has decided to continue his father’s legacy and written one more already: Karla’s Choice. This one was a little dated and not particularly thrilling, but a fine introduction and scene setter.
    • It was immediately followed by Adrian Tchaikovsky’s The Expert System’s Champion, sequel to The Expert System’s Brother which I read at the end of last year. I recommend both as examples of sci-fi stories set so far in the future that humanity has looped back around to the beginning. It reminds me of the “middle chapter” in Cloud Atlas, if you remember that.
    • Then I read Hu Anyan’s I Deliver Parcels in Beijing, a modern memoir that reportedly did well in China when it came out in 2022. It details the author’s dual career as a writer and on-and-off gig economy worker, which is made more interesting by also being a portrait of what it’s like to live in the lower brackets of Chinese society today.
    • I also had time to tackle Rob’s recommendation of Marlen Haushofer’s The Wall, which was written in the 1960s but doesn’t feel that way, unlike Le Carré’s spy novels. He called it the best book he read last year, so I could hardly say no. It starts off like an intriguing sci-fi novel: a woman visiting friends in the Austrian alps wakes up one morning in the log cabin to discover she’s alone, and there’s an invisible wall separating her from the outside world. Things then focus on survival and what it means to live and be human in solitude, and in nature. Which, given that I’ll be home alone next week while Kim is away again for work, means I’m already in the appropriate headspace.
    Some of the better books I’ve read this year
  • Week 51.25

    Week 51.25

    I shot these photos on an iPhone 17 Pro Max and emulated three classic Chinese B&W film stocks with AgBr: Lucky SHD 100, Friendship 100 Pan Film, and Shanghai GP3 100. The idea was to get the look of road trip snapshots from the 1990s that a traveler then might have taken.

    11 greatly biased observations from a first trip to China

    • The Great Firewall does indeed block the majority of household internet names in the west. Imagine testing if you’re online, what would you type in the address bar of your browser? Google? Nope. Any Facebook property? All social networks and chat platforms don’t work, with the exception of iMessage. However, this only applies to hotel WiFi networks and those provided by local ISPs. If you’re roaming on a cell network while using a foreign provider’s SIM, things work as expected (albeit routed through Chinese servers). I decided not to bother with VPNs and just trusted in HTTPS 😬
    • Powerbank rental machines are ubiquitous, even in places where you should never leave a box full of lithium-ion batteries, like out on the street in direct sunlight. You pay a few cents per hour (via QR code), and because they’ve landed on a common battery design between the many operating brands, it seems you can return one anywhere else after you’re done charging your devices. It’s great not having to carry your own around, but even given a high degree of civic integrity, I think getting adoption in a country where everyone already has their own (like Singapore today) would be tough.
    (more…)
  • Week 38.25

    Week 38.25

    I type this while listening to Sam Fender’s last album, People Watching. I’ve been meaning to hear this through for awhile, but it got buried in my ever-growing library of new music. Thankfully, with the latest update to Apple Music in the OS26 series, you can now pin up to six albums or playlists to the top of your screen. I’ve wanted this sort of ‘Now Playing’ or ‘Heavy Rotation’ virtual shelf for the longest time — it’s the first feature I’d add if designing a music player app. So this album and five other neglected ones are now sitting up there, and I can give them the attention I want.

    I’ve been listening on both my new AirPods Pro 3 and an original pair of AirPods Pro, and dare I say the difference is quite obvious. Louanne asked me what I do with old pairs of headphones when I get new ones, and the answer was “put them in different rooms!”, of course. I’m fast running out of rooms. The new model sounds much more Beats-like than ever (modern Beats, not OG Monster Beats). That is to say, a bass-forward sound with a very clear, almost sparkling high end. It’s a fun sound, and I think they’ll be very popular for all kinds of music, if not audiophile-grade neutral. They appear to fit better than before too, and the difference in body shape will strike longtime AirPods users as soon as they pick them up.

    Then my new iPhone arrived, and before you judge, the old one is being returned to Apple’s Trade In partner in a few days, where it will hopefully be responsibly refurbished or at worst recycled. They’ve suggested that I’m likely to get nearly half the original cost back, which is an astounding deal for a two-year-old model! I’ll believe it when the deposit lands in my bank account.

    I’m very happy I decided to stick with the Pro Max size instead of switching to a Pro. The slight increases in height and width are visible if you put them together, but isn’t really noticeable in the hand. The increase in thickness IS, but combined with the new gentler corners on the seamless aluminum body, I think thicker is actually better? This might be the best feeling iPhone ever.

    I’ve yet to put the new camera system through its paces, but I’m excited and very pleased after a couple of days with it. Images look cleaner, and the redesigned front-facing camera is a revelation. I took a test selfie and could scarcely believe how presentable I looked. Coming from the iPhone 15 series, I’m also new to the new Photographic Styles that were introduced last year, and am getting a lot out of them. I compared photos shot in RAW with Halide and in HEIC with the default camera using a tweaked “Natural” style, and they’re extremely close in both SDR and HDR. This is a big deal! Along with the revised Photonic Engine this year, the dark days of overprocessed iPhone photos may be behind us.

    When reviews get creative

    One thing I’ve noticed this year is how bland and predictable the video reviews from the usual tech YouTubers and influencers have been. They go through the spec sheets while speaking to the camera, do a few test shots, and end without any thoughts you couldn’t have pulled out of ChatGPT. But then I saw a couple of videos from the Chinese-speaking side of the internet, and that’s when I realized Western civilization is well and truly finished.

    Take a look at these and tell me you’re not duly impressed by the storytelling creativity, production skill, points of view, and passion on display — even if you can’t understand a word (but most of them have English subtitles you can enable). They could just shoot the phones on a stand while swinging a light overhead, but they instead they go hard with CGI, costumes, sets, comedic sketches, and cinematic editing. And they do these in the WEEK they’ve given between the phones being revealed and launching.


    We visited a local art sales event for works based on the Ghost in the Shell: Stand Alone Complex franchise, just to have a look. The metal-printed pieces were going for upwards of S$4,000, so there was never any chance we’d buy one — but I got a little acrylic plate standee for my desk (S$25). Above are some snaps straight from the iPhone 17 Pro Max, using only Photographic Styles.

    Afterwards, we visited the SG60 Heart&Soul Experience which is being housed at the site of the old library@orchard. Supposedly it will be renovated and return as a downtown library next year, which is great news. From what I can gather, it’s meant to inspire people about what Singapore’s future might look like, and what place they’d have in it (employing lots of tech to personalize the journey). Criticisms I’ve heard are that it doesn’t go far enough, and the future shown looks kinda like the present: delivery drones, working in VR headsets, greenery everywhere. Visit and see for yourself. Bookings are required, but the tickets are free. It’s quite an involved production with each visitor being given a guide device (an encased Xiaomi smartphone) to wear around their necks, and human facilitators bringing them through the stations.

    Oh, speaking of cases, we went by Apple Orchard Road after the show to have a look at the iPhone Air, and I haven’t seen that store so packed in years. I picked up a rather loud Beats case in “Pebble Pink”, mostly because I really wanted a Beats case last year but they only made them for the iPhone 16 series. It’s hard plastic with a matte finish that’s slippery when your hands are dry but tacky enough if there’s a bit of moisture.

    Check out my reel with the Pink Panther theme:

    And while we’re on the subject of great directors, I finally sat down with Bernardo Bertolucci’s The Dreamers (2003) on MUBI. More explicit than I expected, it’s easy to see why people call it pretentious with its heavy callbacks to classic cinema, but it’s never boring and it sure knows how to use mirrors. I gave it 3.5 stars on Letterboxd, mostly because there’s “altogether too much time spent lying on floors for my liking”. There’s also one truly revolting moment where, out of money, they raid the apartment building’s trash for scraps of food and assemble the world’s grossest bento.

    Spike Lee’s Highest 2 Lowest (2025), now on Apple TV+, is a remake of Kurosawa’s High and Low (1963), which I’ll embarrassingly only get around to watching after this homage. But this is a fine film that stands on its own: a sharp, sometimes experimental exploration of class and morality, constantly playing on the gulf between generations — Motown vs. modern rap, film vs. digital, Kurosawa vs. Lee.