๐Ÿฐ chee cherries quiet party

entries from 2025

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โ€ 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.

end of transmission

twntytwnty5/twnty28

Itโ€™s been a long week. A large portion spent in the throws of some misery or another. On Tuesday I met up with the these tonk folks and i enjoyed their company a lot but i spoke too much and afterwards i wanted to crawl into a small coffin meant for dogs and be placed into a furnace and then shipped to sea. I really have to stop talking. Perhaps forever.

On Wednesday there was a nice catchup call with Cole who is getting married soon, how lovely.

I worked a lot during the week and by Friday had started to disconnect from reality. And there was a pulsing sensation like my skull bones were throbbing and my blobby brain was grinding up against them getting burned.

The weekend held gentle adventures, riding around on trains. Jumping on here and off there. And writing a text editor, from which I am writing this post now. I had a really good idea while I was wandering around in circles outside Cannon Street station talking to myself on my telephone. Now itโ€™s all iโ€™m thinking about.

There was a long while there where I couldnโ€™t figure out what I should call it, until a few of the pieces came together and suddenly I realized: itโ€™s Littlebook.

Finder.app window showing Littlebook.app icon and the Applications folder, in the fashion of a Macintosh App Installer

More updates soon.

The week ahead looks long too, longer even. Perhaps I will spend the weekend in a faraway place.

Iโ€™m glad to exist as a sort of devlog for my friends.

a preview of littlebook desktop in action showing three panes: this article as markdown, this article in a web preview, and a terminal ready to publish the article

Good luck with everything forever this week i love you.

end of transmission

twntytwnty5/twnty27

between me the world there is a film of grey glue. and i canโ€™t seem to engage my mind. i donโ€™t appear to be there, wherever i am. i donโ€™t seem to be in the room. iโ€™d like to make a little list of collections of the best posts i ever wrote here. iโ€™d like to release the aborted quiet party E.P. from last year. with the two worst songs removed, and the two i made for zaina appended. iโ€™d like to make some new music. iโ€™d like to go outside, and to see and to hear what is around me. iโ€™d like to work on littlebook, or one of my other projects. i can hear a loud hiss and whistle all the time.

itโ€™s quite possible that i am both stressed and depressed. donโ€™t really know what to do about that now that tequila isnโ€™t an option. berocca will have to do. i wish i looked just like cheryl tweedy.

in and out of locomotives all alone

how do the emojis available on your company slack affect the range of emotions you feel? sometimes feelings are in triage until they find an explanation. and youโ€™ll only accept the ones that fit within the subset of possible ways-of-being that you consider you.

iโ€™m going through my old todos to see if there is anything worth doing. one section of them suggests auto-posting new blogs to multiple sites that have gone offline since i wrote the todo item. haha.

there hasnโ€™t been any time yet to process the events of the last couple of months. maybe when the summerโ€™s over. iโ€™m sitting in silence now and allowing an immense wave of sadness to wash over me.

if you ever get close to a human - be ready to get confused

zonkers and me met up a few times over the past few weeks. one night laying in a doorway talking until 2 or 3 am. that was nice. another evening we started out summer lazing on the grass at saint pauls, and then in the evening we got kebab at a new place in the city. another day we sat on a thames beach at southbank from the early afternoon until civil twilight, and then went north west and kept on talking until nautical dawn. the most recent time we had shisha in the place down the road on the corner, and in the morning we agreed not to speak for 10 days and then i went to work.

my grandfather was a big proponent of โ€œbefore midnight sleepโ€. his son introduced me to programming with Turbo Pascal, Borland C++ and QBASIC.EXE. programming used to be a lot bluer and a lot yellower. i had to choose a yellow recently and it made me think of a nice designer i used to work with. choosing a yellow always does. thereโ€™s another former coworker (current friend) that always comes to mind when iโ€™m brushing my teeth. we were in the upstairs area of the old fire meeting point, and she was telling me about how after you brush you donโ€™t wash out. you spit, spit until you think โ€œI can live like thisโ€

you probably come to mind of people all the time, even strangers who you donโ€™t remember. do you ever wonder about that? what things make people think of you. i hope some things make people think of me. i think it makes you live longer. i donโ€™t know if i want to do that, but itโ€™s good for the blood.

we just met - and i know iโ€™m a bit too intimate - but something huge is coming

end of transmission

twenty twenty five week twenty six

haha, woops, i forgot to write*. hello.

nothing to report. wrote some code. went outside sometimes. itโ€™s unbearably hot and humid in London again. okay.

why is everybody making me work when all i wanna do is VIBE

*oh and then the build failed and i didnโ€™t notice for a day

end of transmission

File Listing with Org Babel

* File Listing Example

This document demonstrates how to list files with bash and use the output in JavaScript.

** List Files with Bash

First, let's get a list of files in the current directory:

#+NAME: files #+BEGIN_SRC bash :results output ls -1 ~/soft/chee/shift/ #+END_SRC

#+RESULTS: files #+begin_example LICENSE README artifacts deno.json deno.lock dist node_modules npm packages tasks #+end_example

** eat it as javascript

let's take that output and convert it to an array

#+BEGIN_SRC js :var fileString=files :results output const files = fileString.trim().split('\n') console.log(files) console.log(files.filter(f => f.startsWith("d")) #+END_SRC

#+RESULTS: : [ : 'LICENSE', 'README', : 'artifacts', 'deno.json', : 'deno.lock', 'dist', : 'node_modules', 'npm', : 'packages', 'tasks' : ] : [ 'deno.json', 'deno.lock', 'dist' ]

end of transmission

2025/w25

it is extremely hot. unpleasant. trying to catch the breezes. iโ€™m back on emacs. writing a javascript library. trying to think about the past.

itโ€™s a little reactive library based on the Adapton papers. so far iโ€™m implemented the miniAdapton-style core and microAdapton auto-tracking. and then on top of that iโ€™ve implemented a plugin api. everything else i want should be doรคble as plugins. iโ€™ve written a few so far and itโ€™s so much fun. i started last week building a full acar self-adjusting computations library with a stabilize phase etc. it was working, passing tests. but it was a lot of faff. but i started to like this Adapton system better as a base to build on. plus one of the papers (which is printed out and spread out on my couch) has a mini implementation in scheme. which is almost a progamming language! (the sac paperโ€™s examples are in ML).

omg i just looked at the weather and it says itโ€™s going to rain this week and a mere 22 degrees. thank the lord.

sorry for the short post. itโ€™s been so yap yap tap tap and heat. and iโ€™m in a state of permanent confusion. next time maybe there will be music and a little clicker.

hope youโ€™re well. youโ€™re looking well.

end of transmission

2025/w24

i have a lot to report, but i completely forgot that it is Sunday and iโ€™ve run out of time to write any of it. the short version is that itโ€™s nice lying in doorways without a care in the world with someone and talking.

iโ€™m EXTREMELY dehydrated. wrote a reactive javascript ui framework one evening and now will apparently spend the rest of my life trying to optimize it.

iโ€™m gonna go, sorry to be so brief. i am going to go and drink water and then go to bed.