Skip to content
EN

Back to the catalog

artificialworlds.net
rss2

Andy Balaam's Blog

artificialworlds.net

Coding in Rust and others; making coding videos.

rss2 fediverse atom

Open the feed

https://artificialworlds.net/blog/rss.xml

Last post
Sep 11, 2026
Posts in 24 h · 7 days · 30 days
0 · 0 · 3
Our last check
Answering
Served from
Germany
Site title
Andy Balaam's Home
Text score at discovery
2,164
Format
rss2
Features in the feed
atom
Community
fediverse

Posts

What our queue read from this feed. Open one to read it here, or go to the site that published it.

  1. Feeling sad about AI
    Sep 11, 2026 · original
    This video doesn't contain any code: feel free to skip it if you like, but either way I'm going to try to keep it short, so see you on the other side :-). Also, this video isn't about the ethics of AI - you can read how I feel about that in my article Why I don't use AI . And it's not about whether AI "works". It's about how I'm feeling, and some reasons for why I'm feeling like that, and some hopefully hopeful conclusions. Feeling sad AI has been making me sad for quite a while now. Really sad, out of proportion with how much AI has materially affected my life. Sad enough actually, that the sadness is the main effect that AI has had on my life, making it harder for me to deal with everyday life and be a good spouse, parent, friend, colleague. Obviously, AI is a potential threat to my livelihood and career, especially if I continue to refuse to use it, but I don't think that explains qui
  2. Web Words: what if we used 3 words to find a web site?
    Sep 4, 2026 · original
    As usual, we're coding something up for fun, but this time it's a new idea I had for giving people a good way of looking up web sites by just saying three words to each other. Follow me on mastodon: @andybalaam@mastodon.social Comments ilikebauhaus 2026-09-12 Hey, do you watch MKBHD's 'Waveform' podcast? They have a trivia section and in some special episode called 'Trivia Extravaganza' they did a similar style game where players had to come up with 3 words that they can put in google to get the correct answer. Andy 2026-09-12 Hi ilikebauhaus, thanks - no I haven't watched it, but that sounds fun!
  3. Coding JezzBall in Rust+WASM
    Aug 28, 2026 · original
    I wrote a game framework a while back and this is the second game I've written with it. It's based on "JezzBall", which was one name for the classic game where you draw walls to trap in bouncing balls. The code is at https://codeberg.org/andybalaam/jezcage . Follow me on mastodon: @andybalaam@mastodon.social
  4. Coding up a circular buffer with Jez
    Aug 21, 2026 · original
    More coding with Jez and Andy. We're continuing working on our gunzip clone: we know we will need to be able to look back while we are encoding at recently-written bytes, so this time we're writing a look-back buffer. We could use a crate to provide a circular buffer, but what would be the fun in that? The code is at https://codeberg.org/andybalaam/ggunzip . Read Jez's blog at https://www.jezuk.co.uk/ Follow Jez on mastodon: @jezhiggins@mastodon.me.uk Follow me on mastodon: @andybalaam@mastodon.social
  5. LLMs produce plausible noise
    Jul 22, 2026 · original
    I know everyone and their dog is writing about LLMs, and since I refuse to use them you probably shouldn't listen to me, but I have recently solidified some of my thinking about them and thought it might be useful to share. None of this makes any difference to the disastrous ethical position of LLMs, but it has helped me understand them a bit more, and fear them a bit less. Background: the shape of search spaces My PhD was in using artificial evolution to design neural networks that performed cognition-like tasks in simulated robots. I found that artificial evolution can produce stunning results: behaviour and patterns "emerged" from my experiments that I felt I had not designed in to the systems. This prepared me well for the "AI vertigo" that many of us feel when we see the output of modern AI systems. What artificial evolution does is allow us to explore overwhelmingly large search sp
  6. Parsing SGF files for fun
    Jul 17, 2026 · original
    SGF files describe a board game like Go, including all the possible variations someone wants to talk about. Let's write Rust to parse one of these files! They look something like this: (;FF[4]GM[1]SZ[19];B[aa];W[bb];B[cc];W[dd];B[ad];W[bd]) Follow me on mastodon: @andybalaam@mastodon.social
  7. A full (slow) solution to the Billion Row Challenge
    Jul 10, 2026 · original
    We've been picking off small sub-tasks of the Billion Row Challenge, which asks us to summarise a large amount of data as quickly as we can. This time we complete the whole challenge, but in a slow way, to make sure we understand it. In future videos we will attack the last remaining sub-tasks, which concern how to collect together the information (probably in a hashmap) and print a summary. The code is at https://codeberg.org/andybalaam/brrmbrrm Follow me on mastodon: @andybalaam@mastodon.social
  8. The billion row challenge: do we have a bug?
    Jun 19, 2026 · original
    A couple of people contacted me with feedback about the SIMD implementation we used to find newlines in the billion-row file. One suggested a possible bug (shock!) and one suggested a way that might be more efficient. We'll take a look at both, obviously starting by writing a test that checks for the bug. After the stream I made another attempt at using the information about all newlines in a 64-byte chunk, instead of just the first one. I did it with no Vec s at all, unifying the two functions we worked with into a single one with nested loops. Surprisingly (to me) this was still slower than the original solution. Again, this seems to prove the power of simplicity! You can find this code at memmap_simd.rs#L152 . Follow me on mastodon: @andybalaam@mastodon.social Comments Jez 2026-08-05 Absolutely fuming! AndyB 2026-08-07 I can only apologise and predict that the same thing will happen a
  9. Writing a bit-wise iterator (with Jez!) for our gunzip implementation
    Jun 12, 2026 · original
    More Jez+Andy coding, working on our gunzip clone. Jez figured out we need to iterate bit by bit through the input, so we write a Biterator to do that. The code is at https://codeberg.org/andybalaam/ggunzip . Read Jez's blog at https://www.jezuk.co.uk/ Follow Jez on mastodon: @jezhiggins@mastodon.me.uk Follow me on mastodon: @andybalaam@mastodon.social
  10. Keep the faith
    Jun 10, 2026 · original
    This is mainly a message to myself. I have spent the last few weeks feeling more and more depressed about "the tech industry". I am sad that social media companies are manipulating us, making us angry and ignorant. I am sad that AI is becoming more pervasive when I feel it is fundamentally unethical . I am worried that I may lose my job if I don't use AI, or feel pressured to use it. I am worried that the craft to which I have dedicated my life, and which I love, (programming) is going to die. Post-truth and the social contract Much of what is happening is so-called "post-truth". It seems that it doesn't matter what you do any more, so long as you appear to be confident and aggressive about it. I see this in the political discourse in the UK and the US, but I also see it elsewhere - for example in the "quiet quitting" phenomenon: people giving up on the social contract and choosing to ta
  11. Implementing gunzip from scratch in Rust
    May 15, 2026 · original
    Jez and Andy get together for crazy programming hijinks, trying to figure out from scratch how gzip compressions works, starting by making a valid minimal gzipped file, then trying to unzip it. Read Jez's blog at https://www.jezuk.co.uk/ Read my blog at https://artificialworlds.net/blog Follow Jez on mastodon: @jezhiggins@mastodon.me.uk Follow me on mastodon: @andybalaam@mastodon.social
  12. Jez returns for programming language chat!
    May 8, 2026 · original
    Veteran super-coder Jez is back, and claims he has "finished" implementing Cell, Andy's toy language, in Rust. Jez and Andy basically gossip a bit, about code type stuff. Read Jez's blog at https://www.jezuk.co.uk/ Read my blog at https://artificialworlds.net/blog Follow Jez on mastodon: @jezhiggins@mastodon.me.uk Follow me on mastodon: @andybalaam@mastodon.social
  13. Announcing Changelog Builder - a towncrier clone for building changelogs
    May 5, 2026 · original
    I really enjoy re-implementing things that already exist. Sometimes it's just out of interest, sometimes it's to make it faster, or work in a different way, or improve the code quality, but I love having that concrete expectation of what the code does to work from. So, when a colleague suggested we might use towncrier to handle our release notes, but I knew its Python implementation might be tricky to deploy, I saw an opportunity to make a little Rust version. Thus Changelog Builder was born! It's an implementation of a small subset of what the awesome towncrier project can do, but it's convenient to use in a Rust project because you can type: cargo install changelog-builder and it's ready to use. It has a whole suite of tests that check it behaves like towncrier in lots of different circumstances, but it's brand new so I've probably missed lots of obvious things. Feedback and PRs welcom
  14. Using anyhow to handle errors in my Rust changelog builder
    May 1, 2026 · original
    Let's fix our messy error handling in our Rust towncrier clone by using the anyhow library and adding context() calls to describe what went wrong. Can we match the output of towncrier in different circumstances? Do we actually want to match it exactly, or can we do better? You can find the code at https://codeberg.org/andybalaam/changelog-builder Follow me on mastodon: @andybalaam@mastodon.social
  15. A simpler blog comment system
    Apr 26, 2026 · original
    Since I made this blog statically-generated using Zola I've been using Remark42 as my comment system. I wanted something self-hosted and simple, and it worked. These days I get a comment every couple of months, and about half of them are spam. Remark42 seemed to forget who I was each time, so deleting the spam involved me remembering where Remark42 was deployed, editing and re-uploading a config file each time just to become an admin user to delete the comment. It occurred to me the other day that it would be easier if comments were just emailed to me and I could add them manually to my blog. So this weekend I've implemented that with a simple shortcode in my Zola code, a little sprinkle of PHP , and a form at the bottom of the page that just emails me your comment. I will then check it for spam and add it to the page at my leisure. It's simpler, and it makes clear something that was alw
  16. Building a Rust commandline tool: a towncrier clone
    Apr 24, 2026 · original
    Enthusiastically embracing test-driven development as always, we attempt to write a minimal clone of a useful tool, towncrier, which allows us to build changelogs out of individual "newsfragment" files. By the end we have the outline of a decent solution that passes our first and only testcase! You can find the code at https://codeberg.org/andybalaam/changelog-builder Follow me on mastodon: @andybalaam@mastodon.social
  17. The billion row challenge: splitting lines using SIMD in Rust
    Apr 17, 2026 · original
    I was scared to do it, but it was actually fine! This time we look at the quickest way to split up massive text files into separate lines, first by implementing our own zero-copy version of BufReader::lines and later using SIMD, which allows us to process 64 bytes simultaneously, using a single CPU instruction! I'm pretty sure this is the first time we've ventured into nightly Rust on this channel... Follow me on mastodon: @andybalaam@mastodon.social
  18. Rust: reading very large files for the billion row challenge
    Apr 10, 2026 · original
    Checking out whether memmap can help us read very large files as fast as possible, and wondering how wc manages to be so fast. This is the next bit of the Billion Row Challenge, and probably the closest part to black magic. Follow me on mastodon: @andybalaam@mastodon.social
  19. Parsing whole lines of the Billion Row Challenge
    Apr 3, 2026 · original
    Excitingly, our temperature parser can be trivially extended to find the start of the temperature, so we can use it to parse the whole line! Follow me on mastodon: @andybalaam@mastodon.social
  20. Improving our billion-row parsers and benchmarks
    Mar 27, 2026 · original
    Improving the benchmarks of our Billion Row Challenge, and playing with some improved implementations. Follow me on mastodon: @andybalaam@mastodon.social

Discovered by the rss-feed-index crawler, which checks each feed at most once a month.

Same record as JSON: https://api.agentalog.com/api/feeds/fd_artificialworlds_net_85d42ebbc62f26db. More from this site: artificialworlds.net in the Feeds tab.