my monthly newsletter
I enjoy the form of a newsletter.
Code
Edition Ten: Boggle, AI Psychosis, and Make It Up Club
Hey Web Surfer.
If you don’t want the Ava Dinh-Vu magic ruined, I’ll ask you to stop reading because I’m going to pull back the curtain. I was aware when I bought the domain for my website, Beat Me At Boggle Dot Com, that it looks like it says Beat Meat Boggle. When people have brought this up with me I’ve been feigning ignorance—but it’s true: I am a pervert.
I did toy with hyphens to spell beat-me-at-boggle.com, or even changing it to beat-ava-at-boggle.com. But I knew I made the right choice after I verbally told my friend Sarah that she should visit Beat Me At Boggle Dot Com. It was only when she punched the domain into her phone did she die laughing. Since policy changed in the 2010s, there have been so many new top level domains, you can buy .game, .live, .sexy, .blue, or .bingo. I considered them all, but you really can’t beat the classics.
Beat Me At Boggle, by the way, is my new daily word game. It’s not really mine, it’s just Boggle, but the twist is that I play the day before and you try and beat my score. I’ve been surprised at how playing Boggle every morning hasn’t felt like a chore, and how genuinely competitive I am. I get for-real mad whenever someone sends me that stupid “I beat Ava at Boggle!” text. And I’m technically the one who wrote it.
Anyway, play it now at beatmeatboggle.com

April
BM\@B.com has not been the only programming project I’ve undertaken this month. Really, April has been a month defined by coding, in every shape and form. Especially my live-coding performance at Make It Up Club, and the AI-assisted work I’ve been doing.
Code Jam
People often assume coding is similar to writing; after all, you “write” code in a programming “language.” But the words I’d use to describe quality writing—words like “surprising”, “clever”, “interesting”, or “funny”—are all words I’d use to describe really bad code. Good code is procedural, readable, straightforward, simple. Really, good code is boring.
On March 31st, me and two other people got on stage in front of an expecting audience and wrote code. This was my first foray into live-coding, the practice of writing code live to create fully improvised electronic music and procedurally generated visuals.
I had some idea of what I wanted to write before going on stage, but it was still improvised. It was only 15 minutes before I went on that I decided I was going to do two-step kicks rather than four on the floor. I was in charge of drum programming, Rita was doing melody and sampling, and Mel was doing visuals. We also had Vidya in Sydney joining into the performance virtually. The wonders of modern technology.
This performance was the culmination of Code Jam: a six week live-coding crash course at the Melbourne Electronic Sound Studio, ran by Nū and Melanie Huang who handled audio and visual instruction respectively. Before Code Jam, I had convinced myself myself that live-coding was a very efficient DAW. It just felt like a very unnatural way to create music. Rather than live instrumentation or a visual piano roll, you had to give the computer textual instruction.
You want sixteenth note high hats? You need to say sound("hh*16"). You want to change the volume of each high hat? Well, you can’t select each one like you would in a DAW, but you can cycle the gain of each sample in a group of four: .gain("<1 0.4 0.8 0.3>*16").
Writing all that out makes it sounds really inefficient, but once it clicks you feel like a genius. More importantly, there are lots of things you simply can’t do with traditional music making software that’s trivial with live-coding (Code Jam was taught using strudel.cc, which is free and completely in-browser). You want to chop a drum break into 16 slices, alternating between playing playing it back 8 or 16 times, while also applying a distortion every other beat? .slice(16, run("8 16")).when("<0 1>", x => x.dist(2)). Bang bang.
Any obfuscation created by using code as your interface is really part of it. You necessarily experiment because it’s not always obvious how tweaking a few numbers is going to change the output.
Code Jam was really cool. Everyone involved was so awesome and lovely. I look forward to more of this kind of thing in the future.
If you’d like to hear a brief snippet of our performance, you can listen here.

The Med Student and the Oil Painter
I was at a party this month, sat next to an oil painter and a med student. Both honourable careers, they reflected, and both careers that attract a certain type of person. The type of people to spend hours painting in a poorly ventilated atelier, or memorising a few thousand Anki cards in a basement library. Obsessives, in other words. From my precarious employment status, it was clear that art-making and healing were also both activities that humans have been doing since the beginning of time. My chosen career, programmer, less so.
Programming was always my safe bet. I’m good at it, it’s something that I enjoy doing, and at one point in the recent past it felt like there was an insatiable demand for programmers. With the advent of AI capable of code generation, I am less certain that programming was the safe bet.
I’m not a complete fatalist. I don’t think AI will completely destroy the profession of programmers, but it’s already had profound effects on the work programmers do. I see a sea change on the scale that 19th century oil painters experienced with the invention of photography. It affected what was painted and how they painted it. No longer did you need someone to sit still for hours to capture their image, you could work from a photograph. And no longer did you need an oil painter to capture convert reality to still image. But as evidenced by the oil painter at the party, the profession still exists.
The meaning of a code is changing. You can now have a hard crafted website. You can also have vibecoded websites, a new coinage for a new school of shoot-from-the-hip programming. The coder, maybe someone not trained in programming, gesturing vaguely to a chatbot at what they want to see built. My father is one of these vibecoders, and my experience making a website for him has completely changed how I feel about AI.
My Father
As part of my last birthday party, I had a friend do a stand-up comedy set. I’m a bit of a stand-up consenseur, but my motivation was much more cynical: I was calling his bluff. He had always said that he wanted to give comedy a go, and I thought I might as well give him a captive—and rather drunk—audience to whet his appetite.
I thought he did quite well—although he did rather narrowcast his set to jokes that I would find funny. For example, his first joke was about my dad. My dad was the first to get a TiVo, and the original iPhone, and a hoverboard in 2015; he even installed a BlueTooth lock on the door. My friend joked: He’d always wanted a smart home—and then he gestured to me and my brother—but he got saddled with these chuckle heads! Ha! I laughed.
I sometimes wonder about how my bumbling dad manages to be on the cutting edge of so many amazing new technologies. He seemed to Forrest Gump his way into early adoption of the internet, smartphones and video streaming. My dad is not really a technologist or a futurist. He doesn’t have a grand vision or any ideology really. He once declared himself to be a democratic socialist with the same tone he used to declare his favourite film was 2009’s Aliens in the Attic. Sure dad, why not?
But he loves gadgets. That’s why his excitement around AI is not really a canary in the coal mine of anything. There can be a lot said of generative AI, but what I can tell you for certain is that AI is a stellar gadget.
Turtles all the way down
Isn’t the sci-fi promise of a digital assistant magical? I want to ask you to put the politics aside, and just think about the pitch of an AI chatbot, but that feels like asking you to put politics aside and appreciate the enormity of the British Raj.
That metaphor springs to mind because of Karen Hao’s book Empire of AI, where she explicitly compares the creation of AI to the extractivismo practices of the great colonial empires—down to the labour exploitation in the developing world. Even in it’s most benign use-case, the technology that underpins chatbots, Large Language Models, required theft to be built. She recounts stories of underpaid Kenyans, picked for their high English literacy and low wages, being traumatised by thousands of graphic images in order to categorise them for OpenAI’s censors.
Code generation is only possible because of the bad faith use of open source software, and that language generation is only possible because of the mass copyright infringement of the internet. I’m neglecting to mention the energy and water use of AI because sometimes I sleep with the air conditioner on, but also because that issue could hypothetically be fixed if Google funded enough nuclear power plants. That is all to say, the DNA of this tech is weird and ugly and murky.
But putting politics aside, the sci-fi promise of a digital assistant is magical. There exists an option in most code editors nowadays to have an AI “autocomplete” your code. That is, as you are typing it will try and predict what you are going to write and finish it for you. When it works, it’s like having your mind read. It’s such a great little gadget. Like a robot that cleans your house.
Code autocomplete is only the tip of the iceberg for modern AI capabilities. Code editors now have built-in agentic AI, that can commandeer the project directory and do everything from create new files to opening a Chrome tab to test visually if its implementation was correct.
The deftness of some of these AI’s can make you contemplate if they have any intellegence underpinning them. But even the most advanced AIs still rely on the same Large Language Model (LLM) tech that ChatGPT uses, and all an LLM is doing is predicting the most likely next word in a sequence. It’s akin to a chess-bot, but rather than trying to beat you at chess, it’s goal is a find a likely string of English words.
This fact is easy to forget when you are using one of these AIs. But then you look inside it’s ‘brain’, and see that it’s text prediction all the way down. The AI will start:
I will update
app/controllers/individuals_controller.tsto include theuserIdI will apply this change now.
But then it’ll stop itself: Wait, I should check if I need to handle uniquenes. Then it will ramble on about requirements and checks, and it’ll start up again: Let's do the replace. Before stopping itself:
Wait, looking at
individuals_controller.ts, the parameter names are:subdomainUser, response, requestI will usereplace_file_contentOne more check —
I’ve abbreviated the actual text greatly, because there is a lot of rambling generation in every query. In some ways, it’s impressive that the tech has gotten this far with such a simple premise: text generation. In other ways, it’s clear no one understands the technology. OpenAI recently apologised for the extremely high number of references to goblins and gremlins that their most recent model kept making. They had some more technical solutions, but part of their fix was just telling the model pretty please can you shut up about the goblins.
Never talk about goblins, gremlins, raccoons, trolls, ogres, pigeons, or other animals or creatures unless it is absolutely and unambiguously relevant to the user’s query.
AI Psychosis
My father has entered what some might call “AI Psychosis.” He has become obsessed. I should note that my father is a programmer: he has a degree in Computer Science from when they were still learning on punchcards and writing COBOL. He’s spent the second half of his career in a role closer to project manager, but he tells me he’s written enough C code for a lifetime.
For the better part of six months his main gig has been writing an app for a Chilean fitness company looking to expand into the Australian market. I only hear bits, but I heard Pinochet’s name mentioned, as well as an ex-wife character somewhere in the picture. It’s messy and the pay is infrequent enough for it to be worrying, but he’s managed to rope little old unemployed me into the equation to make the company’s lander website.
My father’s been working on the app, writing it from scratch in a language he has never used before. At one stage he flew to Hong Kong to consult a team to create the app, but they quoted too high so he’s writing the entire thing himself from his home study. That’s part of the psychosis. It really feels like you have an army of servants writing code for you, and sometimes one experienced project manager and an army of servants can do the same work that an entire team could do.
So, I’d say I’ve softened some of my AI-skepticism, and I’ve slowly been integrating the technology into more of my work, lest I be left in the past. And yet, it’s not like the work of a programmer has disappeared, just the kind of work is changing. Because, well, writing code was never the expensive or difficult part of a programming. That’s why it’s junior software engineer jobs that are drying up: because the people actually writing the code are slowly being replaced by more pliable machines.
I too entered a brief bout of AI based psychosis. My much alluded to “secret project” is currently on hold, as the realities of software development sink in. Generative AI helped speed up the process greatly, and got me to a pretty satisfying point after not that much work. What’s stalling progress is—you know—everything else. In computer science, you learn of the seven layers of the internet: from the undersea copper wire at layer one, to HTML and other high-level stuff at layer seven. There exists another layer above layer seven: the users. It is me, Ava, who is the bottleneck, and no matter how many code generators you throw at it, you are going to run into the messy nature of the real world.
This is not an indefinite hiatus, just a reflection of the realities of maintenance. Suburble and Beat Me at Boggle didn’t take that long to make, but they are games that people play daily, and therefore require need constant maintenance. Suburble will occasionally just not work. Like, you can’t enter a suburb. There’s no error message, it doesn’t happen with any consistency, I’ve never been able to replicate it.
My secret project is significantly more involved than either Suburble or Beat Me At Boggle, and no matter how sophisticated an LLM gets, it will never be able to do that kind of boring maintenance. Just like with AI image generation or AI writing, it feels like another case of AI taking the fun work, and leaving the admin to the rest of suckers.
The Internet
Bread Head 4
My friend Xavier has been getting really into the 1999 competitive first person shooter Quake 3. This video (short film, really) is a post modern masterpiece. You will feel the in-between emotions you aren’t sure if you’re allowed to feel.
HufflePuff, dir. Burnermunde
Are you a vape virgin fam?
It’s like Uncut Gems but if the uncut gem in question was a vape with a touchscreen
Meet the Young Wikipedians Writing the Front Page of Music History – Pitchfork
Wikipedians are supposed to self aware about their status as record keepers. They are not as journalists are, the first drafts of history—instead they are meant to sit back and record only what has been well established to be true (See WP:CRYSTALLBALL). Still, when it comes to current events and niche subjects, a Wikipedia article can have rippling impact. I’m glad my fellow Wikipedians are thinking about that.
dany.works
Visit this website and press your S key. You will feel a fresh sense of tranquility.
Music
The Femcels – I Have To Get Hotter and Worldpeace DMT and Rowan Please – The Velvet Underground & Rowan Please
I’ve been wondering why the music I make never sounds very cheeky, despite my cheeky nature. Maybe I take music-making too seriously, or maybe I’m less cheeky than I think. It’s been nice this month to hear true cheek. The Femcel’s new album, I Have To Get Hotter, is awesome, as is Rowan’s spin off project, The Velvet Underground & Rowan Please.
What I love about JavaScript is you can do anything with it
You can make anything with JavaScript, JavaScript is beautiful
You can make FFT Analysis, you can make websites
You can make anything, I love JavaScript The Femcels - Please Don’t Stab Yourself (Like Elliott Smith)
The Beths at The Forum
I had two musical events on the night the Beths were playing at the forum. The other event would have been very fun, but it was the kind of chin-scratching thinking-man’s type 2 fun that I wasn’t in the mood for. I wanted to sing and I wanted to dance and I wanted to cry. And I could do all of that surrounded by a sea of millennials at the Beths.
Crosswords
April 11th — For Saturday Quiz Time
This weeks crossword is sponsored by the letter P! Every clue starts with a very special letter! That’s right, every single clue starts with the letter P! With no exceptions!