🐰 chee cherries quiet party

entries tagged “weekly”

2025's thirty third week

sorry. haven’t had time to take notes because i’ve been out playing Relationship Simulator 2025 with my ex who is leaving the country for the rest of her life next week.

highlights:

i was really sick at the start of the week; some kind of festival plague that took me out and filled my every tube with glue. i’m still like this now, as i type this on the train home from Whitstable.

we went to Reading on a whim one afternoon. Whitstable on a whim on Sunday. other days we wandered around nearby. we hit the algochill on Thursday eve. I attended the ink and switch thing on saturday. v nice people at the ink and switch thing. v nice to meet all of them. i like all those people and it is so fun to talk about things i care about, i never realized how starved i was for it.

apologies to everyone who has messaged me to a resounding silence. i’ve been sick and incubating. i haven’t touched a line of code except for when i went into work on Friday and meekly nudged a Pull Request across the finish line with a small stick. there is so much information to load, but there is no space for it: there is only glunk. and nothing in the other hours.

i hope to get back to littlebook in the coming evenings as i have much to do on it. though i am currently distracted by installing linux on a couple of laptops and researching a cheap-but-good android phone to stick graphene or calyx on so i can once again exit digital society. though this time with the intention of building a new one. let me know if you have some tips.

i hope everyone is very well. a lot of money spent in restaurants this week to give little birdie a good send off. hopefully the rest of her life will be fruitful.

here’s Anas al-Sharif’s last will and testament:

This is my will and my final message.

If my words reach you, know that Israel has succeeded in killing me and
silencing my voice.

First, peace be upon you and God’s mercy and blessings.

God knows I gave all I had — strength and effort — to be a support and a voice
for my people, ever since I opened my eyes to life in the alleys of Jabaliya
refugee camp. My hope was to live long enough to return with my family and loved
ones to our original town, Asqalan (al-Majdal), now under occupation. But God’s
will came first, and His decree is final.

I have lived pain in all its details and tasted loss many times. Yet I never
stopped telling the truth as it is, without falsification or distortion — so
that God may bear witness over those who stayed silent, accepted our killing,
and did nothing to stop the massacre our people have endured for more than a
year and a half.

I entrust you with Palestine — the jewel of the Muslim crown and the heartbeat
of every free person in this world. I entrust you with its people and children,
whose pure bodies have been crushed under Israeli bombs and missiles.

Do not let chains silence you or borders restrain you. Be bridges toward the
liberation of the land and its people, until the sun of dignity and freedom
rises over our stolen homeland.

I entrust you with my family: my beloved daughter Sham; my dear son Salah; my
mother, whose prayers were my fortress; and my steadfast wife Bayan (Umm Salah),
who carried the responsibility in my absence with strength and faith. Stand by
them after God.

If I die, I die steadfast in my principles. I bear witness that I am content
with God’s decree, certain of our meeting, and convinced that what is with God
is better and everlasting.

O God, accept me among the martyrs, forgive me my sins, and make my blood a
light that illuminates the path of freedom for my people. Forgive me if I fell
short, and pray for me with mercy, for I have kept my pledge and never changed.

Do not forget Gaza

and do not forget me in your prayers.
end of transmission

2025's thirty second week

i took a little break this weekend. Have you ever realized you were dreaming, and then stayed in the dream? Not woken up, but also not taken up lucid dream opportunities. Instead just hung around, spending time with the people in the dream? It’s bittersweet to enjoy somebody’s company who will not exist soon.

it’s rude, isn’t it? to say things thoughtlessly. to say things without thinking, without checking if they are true. that it’s rude to just say the first thing that comes into your head without considering it, and the person or people who will hear it. i think this might even be uncontroversial. i think it’s easy to extrapolate from that that it is rude to send somebody many paragraphs of text you have not read, especially if you are unwilling to take authorial responsibility for it. it seems careless, and disrespectful. before, if somebody i respect sent me a novel 8 paragraphs of text they’d produced i would know that it was inherently valuable to read. even if it turned out not to be helpful in and of itself, the very fact that this person had put that much effort into it, it is worth reading. look at all those words! but now you fuckers can produce words in a faster time than it takes to even skim read them. and there is a halting problem, i have to read the engage with this drivel to know whether or not it was worth engaging with. please let us have dignity, humanity and life.

https://en.wikipedia.org/wiki/Gell-Mann_amnesia_effect

i feel like penguin off television sometimes, true.

getting off the train with my full backpack and overnight bag, the queue for the shuttle seemed too unpleasant. i do not like to queue. a two and a half hour walk doesn’t seem so bad. winchester is hills on hilltops. they must have incredible legs, the locals. the map takes me to a path that didn’t exist, through a farm field being worked on, it recommends that i walk in the pathway of a plow. i’m standing on a T shaped crossroad, but the map says it is a + shaped crossroad. no signal now, can’t load any more map. i pick a direction and start going. there’s a lady parked off the side of the lane. i ask if she is ok she says i’m just waiting for my son. i ask if it’s for a drug deal or weapons deal because why are we parked off the side of a country lane and she says ha ha i just can’t meet him where i normally meet him because of 👈 that music festival. that’s a boon, i follow her frustrated finger for another mile or so until i see a sign. the only way forward now is to walk down the side of the motorway, cars rushing by. i reached my limit an hour and a half ago but i’m still going. it’s good for the mind to do an endurance test every now and again, to be reminded that your limit is long after your limit. i find a way in to the festival. the fellow patiently explains this is red gate a staff gate and i must walk around the perimeter past east gate to south gate. off i trot. east gate. south gate. bag straps carved into my shoulders. a queue. an hour. finally. no, another queue, another thirty minutes. call from becky, i’m here. meet downtown. through the camp site, down the steep dirt path, down the hilltop staircase, down the metal stairs. meet becky. get tent. back to the campsite, up the metal stairs, up the hilltop staircase, up the dirt path. becky demonstrates the setting up and breaking down of the tent and refers me to some pictures of her father should i get confused. dark now. finally, i settle down on a corner far away. 7 hours have passed. i spend two days recovering enough from getting here and setting up the tent that i can take down the tent and leave. but it was so nice to see becky in her element.

on friday night i have a call with lucky. it’s four hours, i’m so cold shivering, last night i woke myself up with the sound of my chattering teeth. and then on saturday i go home. the moment i’m on the train, that oppressive feeling of isolation lifts and i am rabbit once again. and we met in the red light under the bridge by the emerald, and we lay down on a blanket in a embankment park, and we had pizza at a place near charing x that does very special yum yum pizza, it was a lovely night. and now lucky is in margate with some friends and i am lying on the mattress and i feel as though i’ve been infected with some kind of illness. i’m very dry and everything hurts.

seems people think LLMs are good at the stuff they don’t respect as requiring actual intelligence. backend people think it’s great at frontend code. frontend people think it’s good at design. and of course leaders in the software space who think in terms like “how long would it take 2 senior developers to complete this project?” without specifying which senior developers we’re talking about believe it can replace a developer. do not listen to them, do not let them worry you about your job, do not let them use this fear to intimidate you into accepting lower pay. here is the prime objective: don’t go insane.

haven’t had a chance to think much about anything else yet.

but i’ll off to lucky’s, and i’ll read the journal entry from the first week, and i’ll kiss her in the shower in all my clothes and i’ll get soaked and feel distance and not know why and not ask.

end of transmission

2025's week 31

I don’t have enough time. I don’t have enough time. There isn’t enough time in life.

I’ve spent the past three days splitting and merging repeatedly things that seemed naturally 2 or 1. I’ve made no observable progress. Partly because I am trying to go slowly and methodically so as not to build things on top of designs that turn out to be mistakes, and partly because I am rushing and making many mistakes. There is no reason to rush, except that I have a day job that exhausts me and takes me far away from these ideas. And by the time the day is done, I am too tired to think.

And I need to get hold of a building and paint USERLAND on the door in pink and yellow. In case it wasn’t clear from before, USERLAND is meant to evoke a distinction from kernelspace (as i am in the kernelspace destroying business, and hope to see the death of all things like it). When I was a young rabbit, no more than a bunny, i recall coming to terms with the reality that things defined in “userspace” were things that i could change and things defined in “kernelspace” were simply facts about the universe. And USERLAND is meant to evoke UX and UI, underfocused problems in this space — how you explain how the computer has changed. I invite you all to join me in USERLAND where we will take a CRDT in one hand and an armalite in the other and storm the doors of every post office in England and install a sync server by hook or by crook.

I’ll be off to a music festival on Thursday to see becky. I’m not sure if i’ll even see any music and already picture myself cooped up in some kind of chill out corner with a laptop the entire time because there is not enough time. There is not enough time.

I had notes somewhere here, for the post, but they have been lost under sheets and sheets of writing about views and surfaces. On my whiteboard there is a drawing of a little sleepy kittybunny in the summer grass on a hill smiling and thinking about the ends of words. Sometimes I would get sent out of class for being slow, stupid or insane and I’d go and lie on the grass in the lower playground. Most times though they’d give me lunchtime detention and I’d spend the whole time indoors writing lines. In the last few years of primary school I only got to eat and play with other kids and go outside two or three days.

Wish me luck, because the next parts are important.

end of transmission

thirty of two thousand and twenty five

Something I’ve learned since switching my site from Wordpress to Eleventy and then Astro: If the system feels light, posts feel heavy. If the system feels heavy, posts feel light. Wordpress is heavy, a big dynamic machine. But that meant that an individual post felt like small beans. Nothing would really change; there’d be a new post. There’d be a few cache misses. Any pages (like the home, or feed, or category lists) would be regenerated on the fly. But any page that wasn’t affected would stay as it was. I don’t want to write little microposts anymore, like I did every day on my Wordpress blog. Because doing that will kick off a whole build generating all the HTML for every page, whether they get hit or not. That’s faster for the end user who hits an uncached page for the first time. But it feels so heavy. The time, the build, they weigh on me. To preview a wordpress post, or share a draft in context, I pressed “preview” or shared a link. With Astro I have to run a local Vite dev server. And do a git branch preview build.

I think the insight is right: there are things about blogging platforms that are not as nice as having local files (version control, portability, use any writing tool you want). And so I chose to replace the system with static files, which have those properties. But what they don’t have, is all the properties of a dynamic system. In retrospect this has been a less rewarding path than pulling those file properties up dynamicspace.

I’d like a blogging platform where every post is like an individual web app, contained in a cute little box, each with its own state. Maybe they should be a little guy with a shadowdom and their own stylesheet. <blog-post automergeURL="automerge://galaxy.observer/a2bZz3c4D5e6f7g8h9JK10mN11P#head/html" slug="/hello"></blog-post>.


Hey let me ask you a question… when you said i made you feel like the only person on Earth… did you mean, like, terrified and alone?


this week i’ve been enjoying the two builders out my window talking in thick souf east landan accents about their favourite episodes of only fools and horses. absolute heaven.

HE FINKS YOU LOOKED LIKE LEE ARVEY OSWALD MATE (uproarious laughter) THAT’S MY TOPS, MATE. TOPS FOR ME MATE

going back and forth on what is TOPS for them mate, and what is TOPS for me mate changes each time. i hope they come back on monday and do the rest of the dagenham dialogues.

“THAT’LL DO, DONKEY. THAT’LL DO. What a film.”


I can’t remember a time when I had more fun, or felt more at home or happier, than standing on that door outside the Future of Coding event saying hello to people and pointing them upstairs.

I’ve felt on the verge of tears for a couple weeks now. I’m one “you good?” away from balling all ugly and wet in public.

but i went to the Future of Coding event, and i helped out, and i said WELCOME! and i said second floor and i said lu and max will scan your qr code when you get up there, so that people would take their phones out on the way upstairs, and every time they did i felt a tiny little alleviation in the overall global background noise. And everyone was so nice and so pretty and nice. And my friends came, and it was so nice to see them, and they were so nice and so pretty and nice.

And afterwards I stood outside in the open air of Old Street chatting with Dr Basman until midnight about alchemy and execution and reactivity and javascript (which is to say, about substrates). And now I have so much homework. And I cannot believe that i must wake up and think about things that aren’t this.


Do you ever experience the sensation that you’re in a sinking boat. there are hundreds of little holes in the hull. water is gushing in. you have sponge, board, bonding, epoxy, polymat. a veritable boat hull repair kit, tried and true, in a box labeled “boat hull repair kit”. yet you and the crew are just standing there, water up to your ankles, looking for the hole that’s shaped like chatgpt.


I don’t wanna boast, but my phone is in a mesh right now. My phone is a NODE.

EOT 14:14:14 UTC

Met up with grjte in a pub to be the missing node in a 3 node mesh. A large bear also participated. It was v good.


I can feel something, in the air, in London, in the computer. Like all these disparate webs weaving through the air are being blown and spun, spinning winding twirling together together. Like we’re on a precipice. Do you feel that too? Like it’s going to burst?


And it seems that it would be helpful to capture whatever it is that separates “local-first” from “sync”… and all the not local-first stuff that comes along with it when you do that. Whatever it is that makes “local first” an incantation that can be used to summon the world’s best grjtes and seph gentles and orion reeds and whatnot into a single room. It feels, to me at least, that it would be useful to have a term other than “ink & switch” to conjure those extras with. Berlin Local-First and California Local-First aren’t enough because those only distinguish who or what you’re centering in Local-First. There’s more to it than that.

Maybe this is only my skewed perspective due to my low reading comprehension skills, but it seems like “malleable software” and “local-first” (maybe also “substrate”? still struggling to understand that word) are different technological (and prescriptive) pathways to make “part of the computer you don’t own” vanishingly small. Make everything that the programmer was able to do something that the user can do.

Perhaps i need to get hold of a building, an office, a studio. 24/7 access in central London where people can turn up and do strange things with the computer. And on the door i will paint “USERLAND” in blue and yellow.


ps: sorry post is late again, very busy weekend with the whiteboard and stomping around in circles biting my nails and muttering crazy sounding things like “javascript is real, typescript is fake, surfaces are real, views are imaginary — can i make typescript real? — what if it returns an element. what if it IS an element?”.

pps: i will not let them take my sparkles, i will not let them take my vibes,

end of transmission

twtw5/twtw9

There was a telephone call this week, that started out planning a trip together and ended maybe we’ll never talk to each other again. Well, what’s going on with my gals and in some cases boys? Do you ever lie to yourself? The biggest lie I tell myself is “I’ll remember this”. Or maybe it’s “i don’t care”. Remember that time a dog got into the school? Damn. I’d love a day like that again. The word “astrobleme” still makes my heart skip a beat. Jennifer imagined me beside her on the porch while she back and forth in a rocking chair. I spent the weekend, and I spent some of the evenings too. There was one of the evenings I went out to the bar near the Financial Times office to say hello to some people I used to work with at the Financial Times. It was nice to see them. I think I was annoying but I’m really so very not used to socializing with people who aren’t the computer at the moment. There were a lot of times this week when I wanted to drink tequila but none of them were the time I was at the bar. During the evenings I have been working on Littlebook 3.0. Or, 1, as the case may be. I’ve tried a few different systems for Littlebook3 so far. The first one I tried, (the pic last week), was very much a proof of concept. It was nice, but very rough and I need it to work in a web browser too. The second thing I tried was esoteric and fun, everything in pure js with no build step. Runtime reflection by parsing function.toString() with acorn. Grabbing the place lb.defineCommand() was called from by inspecting (new Error).stack. Doc strings inside the function, like lisp and python, by including a template string as the first line in the function. That was converted on the fly to markdown, and displayed together helpfully (“xyz is an interactive command defined at xyz.js:10:2” then the doc string) just like emacs. Once i started writing with it, i learned that it would feel as though i were operating the computer through a big pool of honey. All heavy, all sticky, all weighed down and slow. The third attempt seems very promising. It’s kind of crazy, you should see my whiteboard. But I think it will be very cool. It took me all weekend to get it working, but I was able to edit the text editor using itself tonight before bed and that’s how you know you’re living. The part I was building this weekend is the bootstrapping system (which i call bookstrap, or littlebootstraps). You see it’s an important design goal that you should be able to completely change the editor if you want, you need access to the code that powers it and the power to change it. That’s in addition to making an explorable system that teaches you while you learn it and change it. Some more rewrites are needed there, and more prototyping (building more custom code in it so i can see how it feels, and improving how it feels over time). Here’s how the bootstrapping works:

  1. You load up Littlebook (in the browser, or the one on your computer)
  2. bookstrap kicks in and detects your “native file system” — that’s opfs:// on the web version and file:// when you’re using Littlebook Desktop
  3. bookstrap creates a library for each of the local filesystem protocols you have available
  4. The install phase grabs all the source code and puts it somewhere you can change it — on the web it puts it in opfs:///littlebook/system/, and on desktop it puts it in ~/.local/share/littlebook/
  5. The install phase makes you a user directory (opfs:///littlebook/user, ~/.config/littlebook/)
  6. The User/early-init.js script is executed (as a non-esm script)
  7. The install phase passes off to the bundleworker, which creates an esbuild worker
  8. The bundleworker is set up to be able to resolve imports in your opfs:/// or file:/// system, using the fs api that bookstraps prepared. As well as importmaps.
  9. The bundleworker loads System/entrypoint.ts, compiles it, bundles it, evals it.
  10. The runtime system initializes the core editor things: events, surfaces, surface layers, views, protocol handlers and their defaults
  11. The system then dynamically imports your User/init.ts file where you can add new events, surfaces, surface layers, protocol handlers and views

I believe that this is a powerful enough system to build an even more powerful system with. All the steps before bundleworker (including early-init.js) are executed as regular scripts, so they can even help build the importmap. Everything about the system (apart from bookstrap and bundleworker) is replaceable, it’s all in the hands of the user.

The “grabs all the source code” from step 4 is entertaining. On desktop mode it’s pretty normal, the source code is embedded in the .app and it’s extracted out to your local share dir. On the web, it’s slightly sillier. The opfs worker fetches a file called /system.json which contains a virtual file tree of the entire system, and it creates a file in opfs for each entry. Surprisingly that takes only about 100ms to do. My plan for the reflection is to analyze the sourcemaps generated by esbuild (they’re made available to the user too), and combine that with some of the error parsing code i threw away from attempt 2 (wednesday). The settings & commands system is important for being able to build UIs and electric help. I’ll be reading my emacs manual.

I have to go.