About this site (・◇・)
I would say that I designed this whole site, all of the details, the look, the way it works, but I wrote very little of the code. Most of the HTML, CSS, and JS was written by an LLM, mostly Claude, plus Gemini for the HTML5 Canvas pieces. The weird thing about designing with an LLM is that it's probabilistic, it's not like it just translates what you ask for into code, it guesses, and often has its own taste it keeps reaching for. So a lot of building this was pulling it away from that default Claude sheen it tends towards, to what I had in mind. If using LLMs took the fun out of it I wouldn't do it, but for me, describing something, making it, and reworking it over and over again until it's exactly my vision is the part that I love. I'm sharing all this because I think the assumption is that a personal website is written by a person, and I want to be clear about my role in the site.
I don't think LLMs are going to fundamentally change the world, but they seem like an increasingly useful new way to make software. The whole thing comes from an architecture Google built almost a decade ago to translate languages, the transformer, which was also used to improve Google search semantic understanding, which eventually turned into models that generate text by guessing the next word. I actually watched the Google I/O keynote in 2021 where they unveiled LaMDA (Language Model for Dialogue Applications), a very early large language model.
The other reason I wanted to mention it is because I'm still figuring out what it means to build with tools that break your words into pieces called tokens (there are around 100,000 of them, little fragments like " the", "is", or "th") and turn each piece into a vector (a list of a few thousand numbers). Each number of the vector places the token somewhere along one axis of meaning, and with that many axes a piece can sit close to another along one direction and far from it along a completely different one.
For example, "shark" sits right next to "dolphin" in shape and habitat, but far away in terms of taxonomy. Also how both "bark" (dog) and "bark" (wood) can be stored with unique meanings. Thousands of independent ways to be similar and different at once, and nobody designed or planned them. The dimensions don't even have set meanings, it's not like one dimension is size, another is color, all of the context is embedded in an oblique nebulous system of brute-forced word associations based on proximity from an unfathomable amount of training text.
Every token inputted becomes a point in that space, and to choose the next piece the model multiplies all previous points through matrix after matrix, thousands of matrix multiplications, billions of arithmetic operations, each pass blending them together so context and word order are taken into account mathematically, until every one of the 100k possible tokens has a score. The scores become probabilities which are then sampled to find the most likely next token (with some variation) which is then added to the text and the process starts over for the next piece. Every line of code on the website that I didn't type myself got built this way, one likeliest-token at a time.
The photo carousels are a modified implementation of GLightbox. The emoticons are from Wikipedia, Japanese Emoticons dot me, and Kaomoji dot you.