Remy Sharp
remysharp.com.web.brid.gy
Remy Sharp
@remysharp.com.web.brid.gy
Books I read in 2025 [blog]
This post is mostly data driven (from my own web site's data) to give me a sense of the quality of the books I've read, otherwise individual reviews are all linked in this post or available on my books page. Longest book: Butter - 464 pages Shortest book: The Time Machine - 80 pages Quickest read: 3 days - The Radleys by Matt Haig (336 pages) Longest read/slog: 2 months each Butter by Asako Yuzuki (464 pages) Empire of AI: Dreams and Nightmares in Sam Altman's OpenAI by Karen Hao (496 pages) The Left Hand of Darkness by Ursula K. Le Guin (290 pages) Diversity of authors: Women: 9 Men: 5 Rated books 5 stars Minority Rule: Adventures in the Culture War - 319 pages 4 stars Empire of AI: Dreams and Nightmares in Sam Altman's OpenAI - 496 pages In Bloom - 432 pages Sweetpea - 368 pages The Radleys - 336 pages The Man Who Died Twice - 422 pages The Echo Wife - 240 pages Books by decade 1890 1895: The Time Machine by H.G. Wells 1960 1969: The Left Hand of Darkness by Ursula K. Le Guin 2010 2010: The Radleys by Matt Haig 2015: Sweetpea by C.J. Skuse 2018: In Bloom by C.J. Skuse 2019: Reasons to Be Cheerful by Nina Stibbe 2020 2020: Butter by Asako Yuzuki 2020: The Man Who Died Twice by Richard Osman 2021: The Echo Wife by Sarah Gailey 2022: The Satsuma Complex by Bob Mortimer 2022: Spike Milligan: Man of Letters by Spike Milligan 2023: Making a Killing by Cara Hunter 2024: Empire of AI: Dreams and Nightmares in Sam Altman's OpenAI by Karen Hao 2025: Minority Rule: Adventures in the Culture War by Ash Sarkar
remysharp.com
January 1, 2026 at 1:18 AM
Butter [book]
Made me hungry and could even smell the foods, but took me a long time to read which made it feel extremely stretched and disconnected. I really don't know why this book took me nearly 60 days to read, but it did which makes the events at the start of the book feel so utterly far away from the end. I'm not sure what drew me to the book but I picked it up with zero expectations. It discusses feminism, the pressure society puts on women to behave and appear certain ways (though this is Japanese culture, I do think a lot of this applies/is experienced by western white women too). There's a strong feature of food and butter in particular (as you'd expect from the title) - and the author (and translator) does an excellent job of writing in a way that left me reading late at night and really wanting to taste the food (and I'm not a foodie). There's also a story of friendship and support through those connections. This part of the book was really lovely to read, but seemed to all be crammed in at the end. The story also includes a very manipulative character, Kajii, and whilst I read I felt sorry (and frustrated) for the protagonist, Rika, that she couldn't see the obvious manipulation (but perhaps that's the point, when we're close up to manipulation, we can't see the wood for the trees). There really is a lot (of meaty subjects) in this book, and perhaps this contributed to my slow reading but it did leave me struggling to carry all the ideas through to the end of the book. I've written about urgency in writing, and that's what helps me turn the page. This book doesn't have that, which isn't bad, but doesn't help me. I suspect I would have enjoyed this more had I been able to digest it a little faster than two months.
remysharp.com
December 7, 2025 at 1:16 AM
Handing over to the AI for a day [blog]
Context: back in March 2025 I decided to put aside my scepticism and try AI driven development for the day. I appreciate that in 8 months, the AI landscape, particularly around agentic software dev has moved along, and perhaps this should have been posted originally back in March. All the same, maybe this is useful to some degree, if only to capture what it was like in time. Whilst I sit squarely in my AI-sceptic seat, I was recently prompted to try a different tact by two post I read a few weeks back. The first was Bruce's colonoscopy post, yes, that one. It was in fact that he was using a local LLM to create a generative image to commemorate his visit. I'd been using chatgpt (for code and electronics, basically a NLP version of a search engine), and hadn't considered that perhaps I could host myself to take some responsibility for one of the two problematic aspects of LLMs today (first being power consumption, second being the global theft). The second post was Simon Willison's post on how he created a mini tool (the post is much broader than that, a useful read). It wasn't the post so much but the tool he was using: Claude Code. So far with chatgpt I'd copy back and forth errors and tweaks when it was helping me. Although I also have copilot enabled in VS Code it really holds down to autocomplete at a pretty junior level. I'll often have typescript errors (for work) that copilot claims it can help fix, only resulting in even more typescript errors - so as a rule, I tend to avoid generating code fixes with copilot. But what Simon showed with a shared transcript between himself and Claude Code was the software making the changes and offering diffs. So that was what prompted a mini journey, and here's how it went. Offline LLMs Previously I had installed command line tools and even Ollama on my Mac without having the faintest idea how to use them effectively - so they sat idle and unused. I'm not sure how, but I came across Msty, a tool that purported to make using local LLMs very easy. For a change, that seems to be true. Since I still had Ollama running (though I should have probably ejected it), Msty quickly linked up to this and discovered (though I'd forgotten) that the DeepSeek R1 model was loaded already. I figured since I was primarily using LLMs for software development, it made sense to find a model that suited those requirements. Not quite that simple, or certainly not if you (ie. me) doesn't have the LLM lingo and terminology down. I did some searching online, found a few articles, which themselves read as if they had been generated by AI, offering feature reviews of LLM models, but I couldn't find anything that said "model X is excellent for Y software development". Additionally, I found some models on huggingface.io, and figured that 7B was going to be easier/more viable to run than a 70B (big numbers need big machines? I was guessing…). However putting the name of the model into Myst yielded a lot of results and I couldn't really tell you what the difference was. More importantly, I couldn't quite be sure of the provenance (and whether that even matters…I'd assume it did). I ended up installing the following models: llama 3.2 (2gb) deepseek coder v2 (which blew up) codellama (3.8gb) codellama 13b WizardCoder (I think the 3gb one?) (it just didn't reply on the query) Wavecoder-ultra-6.7b (literally never worked for me) I tried a number of technical problems without much success and did capture the output for a number of these models to try to solve a Home Assistant automation process (which you can see here). It's entirely likely there's better models out there for what I wanted to do. I did know I didn't need a model to know everything, so some focus (and thus: reduced size) would make sense. However, not one of these gave useful replies to my questions. My favourite (fail) was giving code-llama a question that read: this query gets all the lessons matching these lesson slugs (I gave it the actual SQL query), how do I get a list of all the slugs that didn't match?. The LLM happily reported that I was trying to learn Spanish: The provided code contains a list of sentences that are written in Spanish, and the goal is to translate them into English. However, there are some errors in the provided code that need to be fixed before it can function properly. Here are some issues with the current code: Missing curly braces around the translate function definition: The translate function should be defined as a separate named function expression, like this: { translate } = require("google-translate");. This will ensure that the function is properly closed and can be used in other parts of the code. For some reason it was using the slugs in the query as the most important part and completely ignoring the technical query. For the most part, the responses I got were fairly hand wavy, text heavy (which I didn't want since I was asking about code), and in most cases irrelevant to my task. I think em0ry42 on BlueSky sums up what I was seeing: Smaller self hosted models will always under perform the larger ones. I think your experience and those of the other commenters are consistent with the current reality of these technologies. They can't do what people are promising. Yet. I'm sure there are people who can tune the hell out of their setup, but sadly, running any decent LLM locally as a useful code assistant, is just not here for the rest of us. So I parked that for a while, and turned my attention to Claude Code. Coding without touching code I've no clue how new Claude Code was at the time, though I've gathered it's fairly new. It's a solid product from my experience (where I even managed to lose track as to which company owns which weirdly named AI thingy). Setup and interface is entirely on the command line, so already we're speaking my language. I'd seen demos of developers who've been able to join up their entire codebase to the LLM but each time I'd dabbling, I would quickly get lost and give up. Claude Code does exactly this without the walls I'd experienced in the past. I am however, acutely wary that Claude is running on a remote machine, and likely to be chonking through so much power that we're just throwing away water to keep machines from burning up. Let's stick a pin in that (and gosh, I loath myself already for that). The very first problem I wanted it to solve was where I was trying to download 1,000s of videos and they all needed to be added to one massive tarball (context: this is for work, to allow users to bulk download our assets). I'd hit a problem where the tar process kept throwing an unhelpful exception the evening before and no amount of documentation on the library I was using helped me. Overnight I had a suspicion as to the cause and it gave me an idea to try - but I thought I'd let Claude try first, see what it does. Without any specific direction (ie. my idea for the fix), and only the name of the file and the function the problem happened, Claude Code suggested the same solution I had in my head. The UI then offered a syntax highlighted diff of the change it wanted to commit to disk. I was able to review it (very much how I'd approach a code review) and all I then needed to do was hit enter to accept. I tested the code in a separate terminal and indeed the change worked. Given this positive start, I then spent most of the working time split between the Claude Code UI and in the terminal to run the main program (which was sequencing a very large dataset). The code changes for the most part were always good and code that I accepted. The experience was…weird. I'd heard of LLMs being referred to as junior developers but when I was going back and forth between chatgpt and vscode (again, for me, copilot never really came in useful), because of the amount of interaction that was required from me, it felt even less than working with a junior. But this was a much closer experience. I'd describe the change and logic, sometimes pointing to filenames that would offer useful context, and Claude would spend some time (and money) thinking, then it would ask me to check a diff. Weirdly I spent more time sitting and staring out the window waiting for code to come back than I did looking at code. It was a weirdly hands off experience. I can't tell where I sit on that. The main criticism that I had is that, because we use specific rules for typescript (no any and types are defined, which I think seems okay), Claude wouldn't really follow those strict rules, so I needed to go in at the end to clean that part up. The secondary criticism is more a matter of taste. The code (and logging) was verbose to my taste. Additionally, being outside the code for the majority of the work period felt really strange. Sort of like a self-driving car took me the majority of my journey, deciding itself the navigation, for me only to be needed for the final arrival through some tight country lanes. Or something! A cost Since I was freestyling my way on Claude Code, I did manage to rattle through $5 of credit. I did think this was (somehow) linked to my Google business account, but I'm now suspecting it was free credit to introduce me to their API. After running through this credit now twice (I switched to my personal account for a second run) I've discovered there's tools to help manage that sprawling cost (such as /compact and /clear to reduce how much context the LLM is fed before giving me a result). I'd like to play with this more to get an idea of how much I'm really prepared to pay. Also after writing (most of) this post, I came across an interesting project that takes the Claude UI and lets you connect up your own backend. I've not tried it yet, but I'd be interested to see if I can connect to a local LLM and try out results (though going by the current experience, it's going to have a hard time competing). Since it was conversational... I decided to hack together a simple keyboard keycap (I had spare) with an ESP32 board to emulate a keyboard. Then this would send a (fairly) unique keycode that then launched a python command which started a whisper based script that let me talk, then pasted the text into whatever was focused. This meant I had: press button, say the thing, press the button, wait for it to be done. It wasn't great because it was a little clunky, but it definitely felt futuristic! How I felt afterwards (I'm now writing this 8 months late, but I remember how it felt on the day). Even though I was surprised at the progress of the work, both for how terrible the local code solving was and how impressed I was with Claude Code - it did leave me with a feeling of disconnect. There's certainly the issue with the maintainability of pure vibe-coded software, but this was something more. There's a creative input that I put into my coding process. A sense of purpose and achievement in solving some complicated problem, or writing a line of code that I'm particularly pleased with. There wasn't really of that feeling of connection with the output. Having written this retrospectively I know that my perspective has changed somewhat, but I do remember have this weird dissonance between the outcome and the experience of getting there.
remysharp.com
November 30, 2025 at 1:14 AM
Empire of AI: Dreams and Nightmares in Sam Altman's OpenAI [book]
I'd recommend anyone who wants to understand the emergence of AI and OpenAI in particular to read this book. I do struggle reading non-fiction, and this book was no different. It took me nearly 2 months to finish reading (in my evening snippets) - but it was definitely worthwhile. It was this 90 minute interview by Novara Media with Karen Hao that made me immediately purchase the book. I don't think I can fully review this book and do it justice, but I can share what I learnt from the book where my original assumptions were wrong about AI and AI companies. The book is focused primarily around OpenAI and Sam Altman, and in particular how his ousting in November 2023 came to be, through hundreds of interviews and documents, and paints a very insightful picture of the messiah complex (though not in her words) that Altman has. Here's a short summary of things I didn't know but learnt through reading this: Altman and friends started conversations (and business, albeit initially as a non-profit, though that didn't last) in 2015 because they were going to build AGI and that it was inevitable. The company was formed with scientific researchers originally, again as an open company with the intent of sharing, though spoiler alert: this all changed I had always assumed it was cowboy bro developers working on the code, but it was, originally, academic based engineering AI safety was constantly there and initially significant - but as we all know now, eventually lost a battle to make an impact, left "hobbled" and thrown rather to the wayside. The training data was, after GPT-2, ingested wholesale and attempt to clean/sanitise would happen on the results coming from prompts - i.e. the inputs were not cleaned, which means applying dizzying array of filters to catch on the output and edge cases. Common Crawl was introduced at GPT-3 - which is also where the input filtering stopped happening AI, or Western AI companies including OpenAI (but also Google and Microsoft) put their data centres in the Global South, additionally sourcing their data annotators from the poorest countries allowing them to pay (via third parties) literal pennies per hour for the work (which could also come with terrible mental health side effects as the worker would read and view the generative content that AI could come up with based on the unfiltered dark corners of the web) Sam Altman lies. Little lies, but from a great deal of documentation, a lot and often to tell people what they want to hear whilst (we guess?!) having some ulterior motive The path that OpenAI decided to take to head towards what they believe will be AGI, effectively requires unlimited compute power, when in reality, there are lots of different applications of AI that don't need that level of power, Stable Diffusion being one such example trained using 256 GPUs (still not a desktop computer, but not hundreds of thousand GPUs either) OpenAI's approach, to close off it's scientific findings, close it's source and refusing to share methods means that there's no way to verify any of their progress, but more importantly is stripping the academic scientific community of it's researchers (as someone who has visited CERN on two occassions, seeing science being shared is incredible and incredible for society) My only complaint about the book (and it's likely to be my own fault) is I had trouble with the jumping backwards and forwards in time - I'd often be unsure where we were in the timeline. If you work in tech, I'd absolutely recommend this book. If it's not possible, then definitely the interview I linked above.
remysharp.com
October 14, 2025 at 12:08 AM
Signal Pollution [blog]
Very recently I was forced to sign up to Meta due to a product purchase (don't at-me!) and I had forgotten what it was like to be part of the algorithms. Our entire family browse the internet (the web and internet) from behind a DNS proxy that blocks a lot of social media including Facebook/Meta/Insta/whatever it's actually called. Unblocking these different services just to get a physical product to work (naively I thought it worked mostly offline) felt like I was exposing myself to a pretty gross network. Then had to make an account for my child, whom if there were over the age of 10 and under the age of 13, could be managed under my account. Once they turned 13 (in the eyes of Meta) they were completely unrestricted (which I've got A LOT to say about, but I digress). This combined with having already having to lift the protection I had in place was too much. I quickly deleted both accounts and parked the problem for the day. After some reflection, I decided that I would create a single account, that we'd all share that way at least I could monitor all activity and the data Meta collected would be (hopefully) extremely mixed due to different people using the account. Which reminded me of a story I heard about years ago where villagers in some areas of Africa (and likely other places in the Global South) were sharing a single device to visit Facebook and the like, which made it nigh impossible for algorithms to profile the user and made targetting and ads effectively useless. Why don't we do this now? Why don't we share accounts to large social media sites to pollute the signal we're putting out? I understand if you want to create an account so you can build your brand or post what you're up to, this doesn't really work. But if you're visiting these sites to keep in touch with your communities and post short comments or questions - then it seems to me that this is a viable solution. If I were to propose implementing this, it would be that each shared-user would have 10-20 real people using the account, I can see how it might be chaotic with more people - plus there's an aspect of trust required in your group. If someone decides to change the password you're all of a sudden blown up. Funnily enough, I've written about this same thought some 6 years ago, prompted by this fun pollution tool. What do you think? What downsides am I missing here?
remysharp.com
October 8, 2025 at 12:04 AM
Spike Milligan: Man of Letters [book]
A book of letters…kinda made me want to write letters… I picked this up based on "funny books" though I'm really not sure how I landed on this book. I know, sort of, Spike Milligan's work, but only from TV. I didn't know he was an author, particularly from funny war stories so I missing considerable context. Arguably I'm not sure why I read this book. The back cover quotes appeared almost immediately at the start of the book and it was pretty clear that this read like a bottom-of-the-barrel book, just printing every letter that could be found. There was the odd occasion that the correspondence was funny, but unfortunately not laugh-out-loud-funny, just a bit of a snicker. In the last part of the book (part 4: words of support), the letters are about mental health (dating back to the late-60s), which was interesting to read as it feels like in the real world we've only started to talk openly about mental health in the last decade or so. Milligan would write letters offering support to others, and would often talk about how the NHS support was missing the love and understanding and rather delivered pills (which he says helps, but only as a band-aid). It was these last group of letters, mostly about sending out love and positivity to the world that brought this up from 2 stars to 3. It definitely made me want to actually write words down to people rather than the usual email, and it was nice to see some silly humour throughout his decades.
remysharp.com
June 29, 2025 at 11:05 PM