What to say about this week?

We went out for a kind of anniversary dinner on Wednesday at a gluten free restaurant called Niche. The photos they use on their website make it appear like a large dungeon, but it’s a beautiful small restaurant with a floor-to-ceiling window all along one side and an incredibly nice all/0-gender bathroom the size of my flat.

My notes for this week are mostly angsty song lyrics that I will have to burn, but let’s see what I have:

  • i went to see people from my office job play rounders on monday
    • it was a lovely day that went on until 2am
    • there are some things i want to write about, but i don’t know how to
    • my boss’s boss’s boss asked me and some other spectators to “post some shit” in the corporate slack, so we posted some shit in the corporate slack
    • a stranger at a bar grabbed my right tit and squeezed it while making direct eye contact with me
  • i just wanna choo-choo and keep going
  • i didn’t realize that activating the break clause on my apartment would mean the estate agent would be bringing people to my house every day for the next 2 months
  • we watched the whole Olympics opening ceremony on Friday morning when i was off sick
  • keep finding myself staring in the mirror thinking about what a fat dumb bitch i am
out of one’s element, in one’s cups

here’s a track i finished today. i’m either ahead of my time, or a terrible musician.

i always thought “one’s” was spelt “ones” like “its” and “hers” but the dictionary of english idioms told me it was “out of one’s element” and “in one’s cups” and i’m no hemigway

good night, sweet one


  • I have no friends here. I will be alone alone
  • it’s been a long time since I’ve felt intense sadness in my chest all the time like this. it’s really fucking annoying
  • 3 years of stability and union, after a life time of lonely chaos, I am not ready to return but I am powerless to stop it
  • he’d visited a freecycle user’s porch and picked up two large cardboard boxes for us. one was branded for ethical toilet paper, the other said “old world new world out of this world”
  • when he’d got back I was sitting on a bench, crying, feeling hectic, holding it in, texting people about it. I had my hair pulled back hoping the sun would repair the large white and pink stripe it left on my face the day before. we went inside. I couldnt take it, I left again.
  • we went through some drawers and binned some things. I cried when I found the pink Gameboy I’d given him the day we met.
  • I jogged with him to Peckham Rye station
  • I don’t think I’ve ever jogged before
  • we had coffee and lunch at a little table in the sunken garden by One New Change
  • I was sick and I went to a meeting and he went to an exercise class for gays and did high intensity interval training
  • we got caught in the rain, he wrapped his brown hoody around his backpack and we went to Oxford St so he could get new exercise shorts
  • we hid in a secret Costa upstairs of Oxford Street Next and had flat white and espresso con panna. i’d ordered an iced flat white, and they made me a hot one. i sucked it up
  • we went to Wagamama and had rice noodle “ramen” and “naked katsu” (two foods whose names contain a lie) and non-gluten prawn lollipop
  • it was a wild wet day in the end, we walked all over Oxford Street and Queen Victoria Street and took northern and bakerloo
  • I was sick and sweating and feeling physically drained
  • he got me a skipping rope and I skipped in the park with other people around
  • blood sugar 5.7


  • was sick but went in for a meeting again.
  • so much anxiety, so irritated by it. have stuff to do.
  • stayed in a hotel Tue and Wed.
  • it’s one of the smallest rooms I’ve stayed in. maybe smaller even than the tiny place in Paris where I suffered an ear infection, with the blood black wax. that place had a desk, so seems bigger in my memory. but it also had a slanted roof, so maybe smaller by volume
  • room 120. easyHotel. feel so sick. choked on a chicken satay stick
  • had a 4 hour chat on the phone with Simon Legg about love, law and loss. and the JFK assassination
  • lay on my back and listened to Conga Y Timbal by Los Yagarú
  • what will happen?


  • I woke up and i regretted it immediately
  • had a dream I shaved my head down the middle (it was patchy, looked like Danny DeVito), was replacing someone’s wireless electronics I’d secretly installed in the bush for their dogs with a single long German wire. it was at Harmony Drive, the corner of Harmony Hill. I was meant to call Abe to talk. long dream. Philadelphia Cheese was called Partido in Spain , or maybe Kraft was called Partido.
  • I slept on my hand with my wrist bent all the way back and woke up In pain. do that a lot
  • feeling needy
  • spending the day alone to give him time and space to think
  • in the dream a stranger offered me a hug because I’d stopped in the street and was staring at them, I thought I was staring in the middle distance but when I looked more closely at them I realised they were right
  • a new firmware was released for the op-1. it fixes all the crackle and pop.
  • drank several beers and a couple of litres of kalimotxo


  • hello! good morning. i woke up and drank a quarter of a bottle of kalimotxo.
  • I can’t enjoy music and if I turn off podcasts (which I’m not really even listening to) for more than a few minutes then I become consumed by own feelings
  • I have to force myself to eat every mealtime because even though food seems impossible to face I know it will get worse if I don’t
  • im still sick too.
  • trying to maintain a blood alcohol level just over that which would make it illegal to drive
  • i thought we had more time
  • listened to You’re Not Alone by Andrew WK on repeat and cried in the park. a dog came over
  • i text and asked if we could have a “chill night”. Abe came home and we played fortnite
  • I’m trying to be normal but I’m so awkward


  • We had a nice breakfast (overnight oats (or cold brew porridge as kara’s partner correctly calls it)) with chopped cherries and yoghurt
  • We got a iced coffee from the general store and sat in holly hedges and had a morning chat
    • I’m so awkward
  • feeling better, went into the office to work
  • had a prawn cocktail and a Manhattan for lunch in Harry’s Bar
    • the cutlery was really heavy
    • I was surrounded by bankers
    • there are four kinds of men at Harry’s. bankers, ex-bankers, budget Hemingways and trans boys
  • met Abe in the Whitechapel gallery after work, then we sat in the grass. I don’t know how things are
  • we went to Nando’s for dinner. walked by the river down by the Tate
  • fell into a weird sleep


  • I don’t remember the morning. it was so hot. I think I drank some kalimotxo.
  • went to the park near Nisa Local to read and make music. I’m working on a good one. a dog came over and we gave it water from our bottles.
  • later on I went to a housewarming pool party in the back garden. I met some neighbours for the first time. they were all very nice.
  • later (1am) I met some people in the park who were having their monthly park bench wine party. they were very nice too.


  • hungover
  • hot
  • at night we lay on the grass and looked at the stars

  • Happy 4th of July!! 🇺🇸👑🇺🇸 ⛔🇬🇧⛔ 🛸💦🌏
  • when we were in North Harrow, we visited a Pound Land and bought Dark Crystal on DVD
    • we watched it finally on Wednesday, but the English track didn’t work (completely silent), so we watched it in German with English subtitles
    • the bad birds screaming “ICH BIN DER IMPERATOR” was quite powerful
  • Rummy died
    • the BBC closed their obituary with a quote from someone comparing him to the Cheshire cat. “It was a grin of supreme self-satisfaction and behind the grin might be nothing at all”
    • remember when donny rummy did a speech announcing major cutbacks to the pentagon budget on Sept 10 2001
  • there’s a badly produced but important podcast about the spycops inquiry here: https://www.spycops.info/ — recommended listening
    • there’s not much news coverage on the infiltration of left wing groups by cops
      • some times they took positions of power within the organization
      • some times they entered into long relationships with women and in a few cases got em pregnant
      • most of the cops have been allowed to remain anonymous
      • there was a chance for journalists to see some of them give testimony on live video, and the only paper that turned up was the Morning Star
      • the event is not being recorded. journalists are allowed to request an audio stream, but most people can only access the court transcript
      • anyway, all this is legal now https://bills.parliament.uk/bills/2783
        • under this bill the police can legally commit crimes as long as it is “in the interests of the economic well-being of the United Kingdom”, or national security, or preventing a crime or disorder
          • lmao
  • the ocean went on fire
  • the man who prosecuted Oscar Wilde also started the fucking UVF
  • 🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁥󠁮󠁧󠁿⚽ it’s coming home ⚽🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁥󠁮󠁧󠁿

  • we went to heffalump and weasel for abe’s vaccine on Tuesday
    • i had a too-sweet salad from pret and worked on 🛸I WANT TO LEAVE 🛸
  • on thursday afternoon i released 🛸I WANT TO LEAVE 🛸
  • on thursday night i went to the park with some nice new people and drank calimocho and kalimotxo blonde until 2am
    • it was nice, they were nice, it was good
  • saturday was trans pride. i stayed in bed and whittled cotton buds
  • gpg seems to be crumbling before our very eyes
    • sks-keyservers.net is down and deprecated
    • keys.gnupg.net just pointed at that, so it’s gone too now
    • debian are no longer using gpg for signing packages
    • what’s going on?
  • the pentagon’s UAP (u.f.o.) report came out on Friday.
    • they timed it to go along with the release of 🛸I WANT TO LEAVE 🛸
    • turns out the pentagon needs more money
    • the reporting on it embarrasses itself acting as if the pentagon’s “confusion” can be taken at face value
  • i made a cooked breakfast this afternoon

  • on Monday we went to Hyde Park and Green Park and worked on the grass
  • Metformin is the first thing I’ve identified as responsible for painful shits and then continued eating it twice a day
  • it’s been so hot and unpleasant, but that Sun Light is good strong stuff
  • On Wednesday, Abe went to a party and I lay in bed in the terrible wet heat unable to sleep
    • ended up cooking a chili at 3am and watching Oliver Stones W and Nixon and also the 90s classic She’s All That
    • the movie She’s All That contains an unexpectedly long choreographed dance to Funk Soul Brother by Alice Bartlett’s barista
  • Yesterday I made an Atari Punk Console from a kit
  • today is the 3rd anniversary of Unpleasant Cultural Shift
screengrab of freddie prinze jr. in She's All That smiling beside a framed photograph of himself smiling
Freddie Prinze Jr. retweeting himself

photo of tails from sonic the hedgehog excitedly smiling beside a sign depicting tails from sonic the hedgehog smiling and giving a thumbs up
tails retweeting themself

when i’m on my death bed maybe i’d like to be shot and killed by charlie sheen while tiesto’s adagio for strings plays in the background. maybe i can arrange that through cameo.com

  • I got my first shot of Pfizer’s on Monday
    • the road to to vaccination was like a little treasure hunt
      • covid-19 vaccination signs from denmark hill all the way to a small building hidden out the back
    • after the vaccine we were given a piece of paper, about 1cm by 2cm, with a time written on it. i was told “Find an empty seat without paper on it, and when you leave put the paper on the seat,” before being seen into a room of chairs laid out in a checkerboard pattern
  • The vaccine really beat me up, and I had a few days off work with a sore arm and some flu symptoms
    • my immune system is already a huge mess and doesn’t need any encouragement
    • it kind of felt like when you get high for four days by eating a whole nutmeg
  • I’ve started working on a second UFO album, this one is called 🛸 I WANT TO LEAVE 🛸
  • i got my laptop back from lenovo. they replaced the top and all my stickers are gone, including many hand-made ones and a shiny PARTY HARD sticker
  • apart from that I’ve been playing fortnite, going for walks, drinking dry martinis (straight gin)
  • have a good day

  • this’ll be a short one because i only have until tomorrow to unlock the chicken costume in Fortnite and I’m still 3 levels away
  • i’ve been looking through old eating disorder-era recipe books for ideas
    • i’ve eaten a lot of bacon, egg and philadelphia
  • i smashed my laptop off a door after being frightened by a wasp
    • it’s been taken away to a Lenovo Repair Centre, which appears to be administered by IBM??
  • found this in my notes: “album idea: texas school book depository”
    • there are no further details
      • however it is a good idea
  • there was a mouse just sitting on the bathroom floor, completely still
  • three asterisks in a line is called a dinkus ***
  • i’ve been kind of sick for days, maybe just getting used to the new diet
  • i’m getting vaccinated tomorrow
  • ok, i gotta go drive from durr burger to pizza pit

  • trigger warning: diet, weight, eating disorders
    • it was 2017 when i last lost a huge amount of weight. i lost about half my weight.
      • i used keto
      • eventually i realised, sometime in 2018, that thinking about food all the time and counting calories in an app was disordered
        • i’ve struggled with bulimia in the past, and various other mental and dietary issues
          • i was sectioned a number of years ago, so i try to be careful about cultivating new and interesting disorders
      • i decided to stop dieting, to let myself gain weight and not feel bad about it
      • i have a blood test from 2018 which shows my blood sugar was fine
      • so now i know that giving myself a break has literally given me diabetes
      • and the way to live with diabetes is to go on a diet almost identical to keto
      • what an exciting new challenge
      • what a depressing, yet thematically sound, series of events
  • i’ve been sick most of this week
    • physically
    • though mentally i am not doing well
      • i am not looking forward to the next part of my life
      • i don’t know how to cook for myself without rice
      • i don’t know how to be alone
      • sometimes i have this warm and comforting daydream where i die in my sleep
  • i set up backups on my laptop and the snoot.club server this morning
    • i’m using borg
      • because fox told me to
        • basically borg and restic is where the deduplicated encryption backup stuff is at Foxboron

      • it is a cool piece of software though
  • i was going to look into adding a gutenberg sidebar for the indieweb Post Kinds wordpress plugin this weekend, but instead i closed my laptop and had a lie down
  • i bought the Besley* and Jost* variable fonts from indestructible type* for my weblog
    • Jost* is the variable futura of my dreams
    • here is another great font: https://www.dafont.com/w95fa.font
      • i’m using this as my system font at the moment. it looks great.
        • screenshot of my computer showing a retro windows-like theme.
  • remember when they reanimated bob monkhouse’s ashen corpse so he could appear in an advert on terrestrial television

  •  released unidentified
  • i first read about “alt+tab” in a physical paper book called something like Windows 95 Tricks & Secrets
    • i ran over to my computer, which was running the Windows 98 beta that I got given on a secret CD
      • my father obtained it through his contacts in The Industry
      • i lent it to 1 of 100 english army boys called Matt who lived down the street
        • i don’t believe i ever got it back
    • i actually remember the feeling, it was like “how many more are there like this?”
    • i’d uncovered a secret interface
      • maybe i’m embarking on a new journey where i would learn hundreds more
      • i’m just now lighting my torch in this dark cavern
    • there were exactly 0 more
  • on Wednesday abe and me got tacos in a real life restaurant
    • it’s called DF Tacos
      • they do really good tacos
        • i really like tacos
  • i don’t really remember the rest of the week
    • photo of chee rabbits wearing a calyx t-shirt
      i got this calyx institute t-shirt
    • you know, they run a free vpn and a free xmpp server
  • i have a vaccine booking for early june
    • they’re going to inject me with 5g and make me a magnet
    • i wish i could choose which vaccine i’m getting
      • i want the russian one
        • it’s one and done
      • or one of the cuban ones
        • one of the cuban ones is a spray that goes up your nose
        • help them out
        • let’s move to cuba
          • Dr Gerardo Guillén, who heads up development of two vaccines at the Center for Genetic Engineering and Biotechnology, is a chocoholic who has had to do without his favourite fix for over a year (there is none in the shops). His £200 a month salary is a hundred times less what he could earn abroad.

            “We do have offers,” said Dr Mitchell Valdés-Sosa, “but we prefer to stay because we feel a commitment to the development of our country. We’re not working to make some chief executive obscenely rich; we’re working to make people healthier.”

          • like wtf
    • the thing i remember to comfort me that they aren’t going to inject me with 5g and make me a magnet is that if they really wanted to get something inside me they would simply put it in the water supply
  • anyway i need to make coffee now. please enjoy unidentified
    • if you listen with your eyes closed it’s the 14 minute first half of a story of first contact
      • musically speaking, i mean. it’s not like a word story. just pure vibes

On Android there’s a nice open source backup tool written by the cool folks at The Calyx Institute, called SeedVault. It backs up your apps and all of their settings, and re-installs your settings when you re-install an app. It’s cool, it’s good.

You can store your backups in a few different places: the phone, a usb stick plugged into the phone and Nextcloud.

On CalyxOS, GrapheneOS and LineageOS there is a section of the install process that offers to let you restore from your Seedvault backup. However, you don’t have Nextcloud installed yet when you’re at that part of the install. The installer promises to let you install Nextcloud, but it seems to try to do that using Google Play, which you don’t have. So instead it just crashes. And when you continue the install you can no longer restore from the back-up — going into the settings and selecting Backups starts the process of creating new backups.

So, here’s the process:

  1. Install GrapheneOS
  2. Skip restoring from backup
  3. Download and install F-Droid
  4. Install Nextcloud from F-Droid
  5. Log into Nextcloud
  6. Enable Developer Options on your phone
  7. Enable USB Debugging, and allow your phone
  8. From computer: adb shell am start-activity -a com.stevesoltys.seedvault.RESTORE_BACKUP
  9. On the phone: tap Nextcloud
  10. Watch “Looking for backups” for a while
  11. SeedVault appears to exit, but do this again: adb shell am start-activity -a com.stevesoltys.seedvault.RESTORE_BACKUP
  12. Now you should be able to enter your backup passphrase and enjoy all your apps coming home again

  • On Monday i talked to the doctor about parts of my body going numb (peripheral neuropathy)
    • They were a little mocking and weird about it when i asked if it could be diabetes (because it seems to happen when i eat stuff that would raise my blood sugar)
    • They issued a blood test
    • Abe collected it on his way home, also bringing taco ingredients
    • My body hurts
  • most meals this week have been tacos
  • in this clip from True Detective, when McConnahuey says “Again, and again, forever” he has Simon Legg‘s exact mannerisms and facial expressions
  • added indieweb features to my blog
    • it turns out there’s a bunch of wordpress plugins for indieweb
    • and i don’t have to do any work to support things like Webmentions
    • and there’s a theme that adds a bunch of semantic html to post types. it’s amazing
      • i’ve forked that theme; “rabbit sempress” is what i’m using here
    • i informed my RSS subscribers that the feed may get more noisy
    • and now i can replace Telecam and chee.snoot.club/audio with wordpress lol
      • also if i ever stop being a weirdo about social media then i can feed those RSS feeds to stuff like Twitter and Instagram
    • using “post own site, syndicate elsewhere” (POSSE) turns social networks into nodes
      • i post something on my blog, it gets syndicated to Twitter
      • you like it from your site. the like gets syndicated to Twitter
      • the like is then picked up by something like Bridgy which sends a Webmention to my blog
      • Our nodes have used Twitter as a node to communicate
      • Social networks no longer the network, now nodes on a wider network: the web
  • On Tuesday, I had the blood test
    • the person said “I am a student: is it OK if I take your blood?”
  • PSA: You should stop using AWS in your personal projects
  • Abe woke up in the middle of the night and said
    • “Hello! I’m looking at the lights– Not the lights but the reflectives. They store the energy???”

    • and then went back to sleep
  • On Thursday I got my blood results
    • My average blood sugar has been over twice as high as the top-end of “normal range” for at least a month
    • screenshot of a photo of a woman eating salad captioned "Type 2 Diabetes Prompted This Woman ot Give Up..."
  • On Friday night we opened booking.com and filtered “Greater London” by “has bath” and booked the first result
    • We’re in Harrow now
    • It’s cute here
    • We got a bunch of bath products like radox, and bath bombs, and bubble bath and a bunch of masks (face, eye, hair, boob & bum)
      • i am so clean


  • This is a great read: https://github.com/dekuNukem/bob_cassette_rewinder
    • epic v apple is exciting
      • google v oracle went quite well
        • it’s annoying to have to wait around until some rich prick decides to pick a fight
  • it’s strange that the mac app “Preview” is called “Preview” and not “View”
    • pre- what?
    • what happens next
  • we spent all day yesterday playing Detroit: Become Human
    • one of the branch nodes is named KARA BECOMES DEVIANT
    • my ps4 controller’s sticks were drifting so i poured alcohol into them and squeezed them and spinned them around
    • so many problems can be solved by pouring alcohol on them
  • working on an album of ufo music
  • keep starting and stopping projects over the last few weeks. can’t seem to keep to one thing
    • think it would be helpful to know when i’m going to die
  • we’re in the park today. it’s cloudy and nineteen degrees.
  • im sleepy
  • it feels like things could get better, doesn’t it? feels weird


  • i attended a book launch for joanne mcneil’s Lurking.
    • it was hosted by archive.org.
    • brewster kahle was in the chat telling joanne to get her publisher to sell archive.org the book so they could lend it
    • i haven’t read the book yet because i’m still reading the deficit myth
  • i listened to the song wounded by the cookies a lot. it’s on our morning sunshine pop playlist. it’s really good
  • when the first gulf war began the bbc banned 69 songs including Blondie’s Atomic and Boom Bang-a-Bang by Lulu
  • we went to Westfield on Saturday. it was really busy, but we had a good time.
  • we bought a pretty mancala set from flying tiger and after lunch we played a few rounds on a grassy knoll

I spent some time this week reading about twitter’s bluesky project trying to understand why jack wants Twitter to be a client of a decentralized social media protocol.

At first I thought: Jack doesn’t want to be responsible for speech, he wants to surf. He’s banking on Twitter remaining the primary interface for most people and hoping the network will take care of moderation and he won’t be phoned by senators anymore saying “why haven’t u blocked alex jones yet”

But after reading one of the articles bluesky links to,

I think Jack wants the new protocol to be based on the blockchain. He likes bitcoin. So does Square, Inc. (https://twitter.com/jack/status/1108487911802966017).

This would help with his moderation problem, and his monetization problem. Interfaces earn bitcoin for having users, users earn bitcoin for retweets, that drives up the price of bitcoin and jack gets rich while he surfs.

Maybe it would be something less rainforest-burny like FileCoin or whatever. I’ll bet Bitcoin is jack’s preference, but it doesn’t even matter if it’s a brand new currency. jack would instantly have a huge amount of it, and its value would skyrocket.

 I hope I don’t think about it anymore this week.

  • We went Geocaching® yesterday. Drank some cider in the park. Good dogs out. Smoky Bacon Cow, Horace, Margaret the Carpet, Little Sausage.
  • I’ve forked this notetaking app, it’s great but i want more.
  • Cuba has created at least two potentially viable vaccines, because they knew they wouldn’t be able to afford to compete with richer countries to buy them.
    Cuba needs syringes. It can’t trade easily because of USA, and it is currently not making much money from tourism.
    Donate here to help: https://www.support-vaccination.org/
  • We found a lovely online café nearby that does gluten free brunches delivered in lovely boxes

I’ve been sick all week, and now Abe seems to have got whatever I’ve had. It’s a really annoying fever-y thing.

Last night I had a dream where I was working on a garden with somebody from work. We were laying bricks and digging holes at the bottom of a residential hill. There were other people from work beside us working on different gardens. I looked up, there was an aeroplane flying overhead. It seemed to be hanging heavily to one side, and I saw steam or smoke escaping from areas other than the exhausts.
“is that okay?” i asked
“yeah, i think that’s normal” said my colleage
“i really don’t think that’s OK,” i thought (and didn’t say)
Then the aeroplane swung dramatically to the right, up to the top of the hill. It was coming down at us very fast now, parts of it breaking off and nearly hitting folks who jumped out of the way at the last moment.
I looked over at my colleague, who was looking but didn’t seem to have registered that we were going to die. Then I looked back at the aeroplane and woke up.

no reason to read into it


Last year me and Abe started working on some art together. 

It’s called today

the today logo and favicon, made by abe. 
it's a black and white plant pot and plant on a pixelated rainbow gradient.


Each page has a picture made by Abe with Word ’97 in a Windows 98 Virtual Machine, and a looping sound.

office ’97 logo
old windows logo

I make the sounds with a Nintendo Game Boy, a handheld compact cassette recorder and a teenage engineering op-1.

a game boy with a cat face on the screen
teenage engineering op-1 cow fx.
a black cow silhouette with flashing
neon pipes

You can view the next sound/picture pair by clicking the picture, eventually you’ll loop around.

The most recent one is on the homepage/.

There’s an RSS feed you can subscribe to, and you can append .json to any page (including the root!) to get a JSON representation of that page. Feel free to do whatever you want with that. The sounds and pictures are all creative commons share-alike.

day manager

Originally it was just a few HTML files, but when it started to take shape I wrote some scrappy JavaScript to generate the pages from a JSON file.

But that meant it was a manual process to put something live, or even preview a pairing.

So then I put together an app to manage the page. It takes uploaded media and puts it in Linode Object Storage (which is like S3 but without giving money to jeff).

There are three concepts. sounds, pictures and days.


The page for sounds shows a grid of every sound that isn’t part of a day.

screenshot of the sounds page, showing three un-dayed sounds.

you can click one to preview it, and you can drag a .flac file onto the window to upload a new one. It’ll get a random name like spooky ocean. (adjectiveish noun).


The pictures page is a grid of all the pictures, paired or not.


screenshot of the pictures page.
two used and one unused

This is where you add the alt text, and also where you can select the Make a day of it button.

make a day of it

The make a day of it page is where you can preview how a particular picture will work with each available sound.

the “make a day of it” page

When you fine something that works, you can give it a name and it will be the new homepage the very next moment.


The days page shows a grid of every day there’s ever been.

the homepage of today manager showing days

danger mode

It’s scary to have delete buttons lying around, so those are hidden behind DANGER MODE, which can only be activated by manually adding ?danger=danger to the URL. 

After deleting anything, you’re redirected back to the non-danger page.


ok, that’s all. thanks.

password entry screen. it’s the bad ending from bubble bobble.



DISCLAIMER: Sorry, this post is about boring code shit i just don’t want to learnt to do again later. It’s only a few things but it took me days to get a handle on.

Using cmake instead of the arduino ide is really nice, it works well in both text editors (emacs and vscode) and you get context-aware completion, hover docs, etc.

1. Get Arduino-CMake-Toolchain:

$ cd ~/projects
$ git clone <https://github.com/a9183756-gh/Arduino-CMake-Toolchain>

2. Start your project:


$ mkdir cool_project
$ cd cool_project
$ touch main.cc
$ $EDITOR CMakeLists.txt


cmake_minimum_required(VERSION 3.19.0)
project(cool_project CXX)
add_executable(cool_project main.cc)

# `AUTO_PUBLIC` will automatically find and link the right libraries
# from your installed arduino libraries, just like the arduino IDE!
target_link_arduino_libraries(bleepbloopmachine AUTO_PUBLIC)

# this will add an `upload` target that you can use to build &
# upload to the microcontroller

3. Use cmake!

$ mkdir build
$ cd build
$ cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/projects/Arduino-CMake-Toolchain/Arduino-toolchain.cmake -D CMAKE_EXPORT_COMPILE_COMMANDS=1 .. 

This will generate a compile_commands.json file that your editor can use to give you completion hints and docs.

4. Setup vscode!

If you’re using Code:

  1. install the cmake tools extension.
  2. Run the command CMake: Edit User-Local CMake Kits
  3. add this kit to the array:
     "name": "Arduino toolchain",
     "toolchainFile": "/home/chee/projects/Arduino-CMake-Toolchain/Arduino-toolchain.cmake" 
    (change the toolchainFile path to the correct path for wherever you cloned the cmake arduino toolchain to in the very first step)
  4. Run the command CMake: Select A Kit and select Arduino toolchain from the drop-down
  5. Now you can use CMake: Build (F7) and CMake: Build Target upload to build and upload things to the microcontroller!

getting the upload target working

Set the environment variable SERIAL_PORT_FILE to ttyACM0 (or whatever the microcontroller’s serial port is on your computer) in the workspace’s cmake.buildEnvironment setting:


I’m working on a clone of Oliver Wittchow’s nanoloop for the Adafruit PyGamer.

The prototype was written in CircuitPython, which is a lovely language, but it doesn’t (yet) have support for the kinds of audio things I want to do.

It was helpful to use it to lay out the shape of the state object, and the controls and the UI.

The audio was unuseable, so I’ve rewritten it in C++.

It’s coming along very well.

There are 4 sound channels available for use, using the fab Teensy Audio Library:

  • square
  • pulse
  • sawtooth
  • noise

The envelope menu item let’s you change the attack, decay, sustain volume, amplitude and panning of your note block with cute visual indicators of each property.

There is a filter and a delay feature, and each channel can play at full speed, half speed or quarter speed. You can alter the bpm in the second menu.

It’s a lot of fun.

The plans for the next session (this evening?) are:

  • add a pitchbend envelope (for the mod menu item)
  • add UI for delay and filter
  • use the neopixel array on the base of the PyGamer to indicate the current bar (the loop plays for 4 bars, things on /2 or /4 speed play twice or once during that time)

Future plans are to introduce pattern chaining, pattern-length (per-channel), using square curves for attack and decay and chords (positive integer intervals).

The code is very bad and available here:


It’s already starting to diverge from nanoloop, and I hope it will continue to forge its own identity until it can stand strong as its own independent interesting instrument.

an overnight recipe


  • handful brown sugar
  • handful white sugar
  • 1 lemon, sliced
  • ~120g yerba mate
  • ~litre still water
  • ~litre sparkling water


  1. squeeze the lemon slices into the bottom of a litre jar with a tight lid, i’ve used a kilner
  2. add the handfuls of sugar, and stir until dissolved
  3. drop the lemon slices and yerba maté in
  4. fill the jar with the still water, (you might need to put the lid on and shake it to soak the tea, so you can fill it to the top)
  5. put it in the fridge for 8-12 hours or overnight
  6. strain the liquid through a cheesecloth (or a sieve will do, the pieces are quite big) and mix 50/50 with sparkling water
  7. serve in large glasses with ice

— chee (chee@snoot.club)

imagine you have a raspberry pi running archlinux arm, and you want to use the python library RPi.GPIO.

that requires a /dev/gpiomem device, which is a hacky /dev/mem derivative that allows you to access the gpio pins without being root. which is important if you want to also be able to access a normal user’s dbus session, or anything else where you’d like to not be root while running the python.

arch linux arm uses raspberrypi’s kernel fork, but doesn’t set up the gpiomem device the way it’s needed for RPi.GPIO to work.

Add a gpio user

as root, create a gpio user

groupadd gpio
usermod -aG gpio alarm # alarm is the name of the default archlinuxarm user

setup udev

Make a file called /etc/udev/rules.d/pins.rules and put this in it:

SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 660 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'"

you may also wish to append this line, if you’re going to need spi access too:

SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"


reboot, run the python, no root,

I got a broken gameboy printer off ebay for a few pounds. i resoldered all its joints and cleaned it with vinegar and alcohol.

that made the light come on, but the link port was badly damaged too. i managed to fix it by prying all the pins into the right shape with a pair of pliers and squeezing them around a folded up piece of a ripped up Something For You card.

we were in a pawn shop just before new lockdown, and they had a gameboy camera for sale

photos of abe and chee coming out of the gameboy printer

— chee (chee@snoot.club) 2020-11-18

can i tell you about this thing i wrote? it involves ssh and cookies and the setuid and setgid bits.

it’s called snootauth.

what is it?

it’s a way for sites on snootclub to verify a snootclub user.

how does it work?

it is hosted at /auth on any snoot site that wants auth.

abe.snoot.club/auth/chee showing link labeled “listen”, and an ssh command to run

when you, a user, click the listen in the browser, it starts a GET request which makes the server open a unix socket that’s owned by your user in /snoot/auth/socks/{your-uid}.sock.

there is an ssh server running on port 2424, which has ForceCommand set to a program called succeed.

the ssh command being run in a terminal. “Thank-you, you can return to your browser now.”

when you run the ssh command, succeed(1) writes the word "success" to the socket belonging to your user then exits.

Web browser saying “Thank-you! Enjoy your cookie”

In the http server, listen’s GET request handler receives the "success" in the socket and returns, setting a cookie for you on the snoot subdomain you are on.

Devtools showing the cookie set for this subdomain.

and now on the server, there is a file that belongs to the snoot user whose site you are on that contains your token:

ls -l showing file permission abe:snootauth

it’s also read-writeable by the snootauth program, so it can delete or replace tokens when the user logs out or reauthenticates.

so now the server code for the snoot whose site you are on can check any cookies it receives against the token in /snoots/auth/sessions/{their-name}.{my-name} — chee (chee@snoot.club) 2020-11-17

i made a website yesterday


i call it the public dump

if you register as a Copyright Holder, you can create Collections and add Pieces to those Collections

here is an example Collection: https://cc0.snoot.club/chee/parts-of-songs/

it contains some parts of songs i’ve started making but don’t know how to finish. and so they’ve been released to public domain.

you can upload any kind of file, and it will be added to the Collection and displayed with a CC0 license, dedicating it to the public domain.

if it’s a sound or a picture or a video it will be displayed with a little preview. registrations are open.

e-mail me with your legal name (for the dedication mark) and desired username, and i’ll send you a password. — chee (chee@snoot.club) 2020-11-17


today i went to the dental hygenist. they really name that in such a way that if you don’t know what it is, well, i don’t think i would have gone if it had been called “dental scraping”. my mouth bled a lot, there was lots of blood, and flakes. shards flying around the room!

“calcified yuck” they said, is what the shards were.

the train home

on the train home i made this: https://chee.snoot.club/music/song/teeth-scrape-tapemp3

using a cassette recorder, the op-1 and the wired heart which i got with a voucher for doing a marketing interview with bitwig.

op-1 split drum

the drum kit on “teeth scrape teeth” is the op1’s built-in AWA Beef kit, which i fed through the tape recorder and back into the op-1 and chopped it up.

i wanted to share the kit with kara, but the op-1 stores kits as a single AIF instead of separate samples for each drum. luckily people have reverse engineered the drum format plenty. it has some embedded json in it, a bit of (standards compliant!) trickiness with the AIFC spec. the json has the start and end points for each sample (as a frame. like, you take the start value (big number) and divide it by 44100 (for the sample rate) and divide that by 4096 (for the block size) and that’s the start time in seconds).

so i threw together a scrappy script to parse the json and extract the segments with ffmpeg.

if you want it, here it is:

— chee (chee@snoot.club) 2020-11-04