XXIIVV

2023

It's funny how I can go from being utterly terrified at the onset of a project such as the total rewiring of Pino, to looking back thinking that it wasn't at all as hard as you expected, and having that familiar realization that that twinge of fear is more often about starting than it is about doing the task itself.

As a little gift to ourselves, Rek and I ported Oquonie to Varvara, which somewhat ensures that this little world to remains playable now that the previous builds have begun to have mixed success running on recent operating systems.

Rek and I were invited to do a residency at LEÑA, and we sailed to our dream destination, the breath-taking Princess Louisa Inlet. I had, once again, the opportunity of crossing the US by train, eastward this time, with a bunch of amazing people heading to the last of the Strange Loop conferences. I got a tattoo of my favourite demon, Stolas, by my friend and favourite tattoo artist Lizbeth.

After a short fling with parallel computing, I realized that it was more trouble than it was worth for the scale of projects that interested me. I've added lambdas to Uxntal, which was certainly the single greatest UX improvement to the language since its creation.

This crazy and wonder-full year ended with the publication of Rek's latest novel Wiktopher, and as the year and projects come to an end, we are now turning our gaze back to the horizon for the next year, and our next projects.

For the year of 2023, Maurice Renard's Le Peril Bleu, was my favourite book. Coline Serreau's La Belle Verte was my favourite movie. Cimerion's Contresort was my favourite album.

17Z

2023-12-28 Lisp

I've been taking it easy for the last few days of the year, cooked a lot, walked a lot. I've been re-reading SICP and idly poking at implementing a Lisp system in the style of Varvara. I don't have any specific goal for it beyond exploring low-level symbolic computing, but who knows where these things might lead.

After watching an excellent documentary about the Newton, I found myself reading about the various ways to convert hand-written letters into their digital representations, and soon found myself fascinated enough that I just had to invent my own little shorthand calligraphy and interpreter.

17Y

2023-12-09 Pomparu

Rek's Wiktopher is out! After nearly seven years, it's finally available for anyone to read. I'm super happy with the result, it includes a few side projects documented on here, such as a dialect of Solresol, and the game Hako. That's all I've this week, so go read it!

17X

2023-11-20 Ulz Compression & Elmet Brae

The Elmet Brae compilation has been released, and put up on Beldam Records with a beautiful cover by Rostiger, who also made the Varvara Zine.

I've spared a few evenings to implement a Ulz encoder, for which my first attempt was nearly a year ago, and at the time, writing programs in Uxn that involved many nested loops terrified me. So, it felt great to revisit this old problem that stumped me before, and solve it.

Members of the Solresol community and I talked about the lack of useful example sentences in the language, and how the handful of examples out there often include mistakes, so we've put together a revised list of sentences that we could agree on.

17W

2023-11-11 Ternary Party

Rek and I are doing a final proof-reading of Wiktopher before release, we're trying to make sure that all of the book's conlang dialogs are consistent with each other. On the topic of conlangs, we've also translated Thousand Rooms in Solresol.

In the evenings, I've been revisiting ternary computers after wondering about string encoding in such a system. I've only implemented the basic scaffolding so far, but I'm hoping to reach a point where it can assemble and run basic TerSCII printing routines.

17V

2023-10-25 Back Aboard

After being away since leaving for the train to Strange Loop, we finally made our way back to Pino. It feels great to be back in our things, and to have the mind-space to create again, I was able to write music this week, and it had been a very long time since I last felt like doing so.

I also helped with the implementation of a few devices for the Javascript version of Varvara that a friend of ours use in their classroom, someone also contributed a WASM implementation of the Uxn core, which speeds things up a lot in comparison with the old one I made last year. I've also played with sixels.

17U

2023-10-12 Perma

These past few days, Rek and I were invited to participate in conversations with students, researchers, and radio hosts about sustainable technological practices(Right To Repair, Design for Disassembly, Open Source, etc). We're witnessing a growing interest in software longevity, digital preservation, and the organization of a critical mass of ecofeminist collectives exploring the failability of modern tech, and the development of resilient practices, beyond mere academics.

17T

2023-10-07 Stolas

After taking the train from Seattle to Saint-Louis, I kept on heading East to visit family and friends. I've been feeling a bit of out of sorts in regards to programming, and unmotivated to do any software development. It'll come back to me, but in the meantime I'll be spending my days drawing dailies for the month of October, and catching up with movies and music that came out since we last had access to reliable internet connection.

17S

2023-09-25 Strange Loop Or Die Tryin'

On the eve of the talk, I sit half-awake waiting for my first real meal since leaving Victoria to arrive, it's been two hours, blatter is coming down hard on this very loud, and very understaffed, and only available vegetarian place within walking distance from the hotel. And, my voice is shut, the talk is in a few hours.

I normally am a really careful planner when it comes to giving these sorts of technical talks, you wouldn't catch me going out the night before.

I had assumed that the train from Seattle would either carry their one vegetarian meal on the menu, or accommodate. After a first day of eating cold bread loaves with margarine, and an altercation with an uncompromising attendant on the second day, I managed to secure myself a "Steamed Russet Potato A-la Tomato Sauce" for the third.

I had also assumed that the venue would carry palatable vegan options, or that I could cook my own. After missing the Strange Loop meal service twice in a row, due to talk scheduling conflicts, I managed to queue long enough to acquire one of the last remaining scoops of an awful vegan soup. I promptly returned to stealing whole fruits from the hotel gym and eating them in my room, which I was content with. The problem that wasn't apparent at first was that eating sweets all day kept me up all night.

Despite these mistakes in preparing properly for the road leading to the talk, I managed to show up on stage on time, give an (hopefully) entertaining presentation at Strange Loop 2023. I'd love to give a special thank to Jack Rusher for the tea that brought my voice back, and Josh Morrow for letting me borrow their laptop and install Uxn on it for the presentation.

17R

2023-09-09 Solresol

Now that the first pass of proof-reading for Wiktopher is behind us, we have begun to look into cleaning up some of the worlding aspects of the book, which include congames, conlangs and even conrecipes. One of Lupin's dialects can be whistled, and as to encode the various poems of the story into pitches, we decided to pick the Solresol constructed language as a suitable candidate.

Not previously knowing the language, I have spent the past few days neck-deep in digital archeology excavating some of the language's vanishing documents from the Wayback Machine and transcribing them in a format that will allow me to translate the texts. While I'm at it, I'm planning on translating the Thousand Rooms story, Famimi Remisolla as practice.

17Q

2023-08-26 Oekaki

In an attempt to catch up with all of the readings I have had queued in preparation to Strange Loop, I've inadvertently filled my every waking moments with enough dry plt papers to make myself altogether sick with the topic. I've been so caught up trying to learn about expressiveness, that I momentarily forgot what about it was that I even wanted to express. So, while I recover, I've picked up daily drawing again.

17P

2023-08-06 Lambdas

The first pass of review for Wiktopher is done! Rek and I have been working toward this milestone for months.

While implementing changes to Oquonie, I noticed how many single-purpose labels were used merely to hop over short lengths of code, enough that having ran of ideas for names to called them, I would default to things such as &skip, &continue or even &ok. The solution was to create anonymous labels, and as to be capable of nesting them, I ended up inadvertently adding lambdas to Uxntal which has drastically improve code readability, and as a side effect allowed for the rapid creation of tree data-structures.

17O

2023-07-28 Maintenance All The Things

We are anchored in Von Donop, and I'm taking some time away from working on the talk to finish proof-reading Wiktopher.

Week after week, I find myself revisiting Drifblim's implementation, and each time I leave convinced that I've succeeded in improving it as much as I ever could, considering the negligible scale of the program, yet more elegant solutions, entirely unimaginable at the time, always become nothing less than obvious, a week later. — The destination that I'm grasping for is getting ever farther at the same rate that I approach it, but for as long as the program decreases in size, and increases in reliability, the chase remains exhilarating.

17N

2023-07-12 Uxntal Presentation

I've done little else this week other than proof-reading Rek's Wiktopher manuscript, but I did have this idea, while working on program verification, that I might like to realize in the fall. A system like Smalltalk's definition of interfaces for message passing, in which a message must find a match in the listening object's methods dictionary, might help improve Uxntal's expressiveness and be realized entirely with syntax already understood by the assembler.

We had to negotiate rapids and convert the ideal transit time from tide tables to Daylight Saving Time, which reminded me that I never made time to know when the change occurred in Canada. I am taking a not of it here for next autumn, it begins on the second Sunday of March at 2 a.m. and ends on the first Sunday in November at 2 a.m.

17M

2023-06-18 Princess Louisa

Ever since we sailed back to Canada, from Japan, friends have told us to make the trip through Jervis Inlet to Princess Louisa Inlet. After making our way there this week, and hiking up and down its cliffsides, I can confirm that it does indeed live up to its fame, it is absolutely breathtaking.

Having no connectivity has helped me focus on writing my talk for Strange Loop 2023.

17L

2023-06-16 Context Inference

We're on our way north, anchored in Telegraph harbor. We've preserved enough food to get us through the summer, and stocked the shelves with books to last us as long. I was especially happy about finding a copy of Carroll's Sylvie & Bruno, and Golding's Lord Of The Flies, to carry along with us.

To continue my research on concatenative language inference, in contrast to the reassembler which creates an intelligible textual representation from a binary file and a symbols file; this time, I've written a reformatter that works from a textual source file and reindents it based on context. An interesting puzzle, considering how few syntaxic structures Uxntal has, lacking explicit notation for loops or even conditionals.

17K

2023-05-28 Road to Strange Loop

I've submitted a talk about permacomputing to Strange Loop 2023 and it has been accepted. This summer, as we sail north, I'll be collating my notes on the overlaps between permaculture and situated software design practices — And, hopefully, have a substantial presentation by September.

It's unbelieveable that we can sail up along the coast, find a pretty nook between two mountains that seems inviting, and just live there. When we'll have walked up and down the old trails to our heart's content, maybe we'll keep going. Part of me wonder for how long this will remain possible, it's just too good to last.

17J

2023-05-12 Type Inference

For a few weeks now, I've been sketching the basis for a type inference system for Uxntal. I first came across a stack-effect validator when writing Factor, and I've been meaning to make my own since after reading Rob Kleffner's talk notes. Prior to this project, I had a sense of what the different constructions were, but writing a type-checker drew clearer lines between all these different patterns.

We're casting off for Desolation Sound in a few days. Most afternoons are spent stocking up Pino with enough food to last us until we make our way back south next autumn. I'm eager to depart.

17I

2023-05-01 Concurrency All The Things

I recently watched David Ungar's Everything You Know About Parallel Programming Is Wrong talk, which lead me to read Tony Hoare's Communicating Sequential Processes, after which I felt inspired to consider parallel computing once more, and soon found myself taking a detour to play with the OCCAM programming language, and revisit threads in Uxn.

As a side-project, unrelated to threads, I made a pixel-perfect implementation of the classic Macintosh Note Pad application, so I could keep notes throughout the day and that turned out to be a fantastic aid to collecting passing thoughts. While building it, I also had a chance to implement text-wrapping in a project with very few moving parts and better understood how to handle text selection, where the boundary of a selection ends up being before the original anchor, and implemented it in Left.

17H

2023-04-22 Structured Editing

These past few months, I've explored playful things to do with programming that might not directly serve a purpose, or at least, one wouldn't come across them without seeking them out specifically, and I've collected some of those seemingly useless, ideas into a talk and submitted it to the Strange Loop conference happening in September.

Also, while I consider Beetbug to be a kind of disassembler, I wanted to see if I could build something that would let me go from a source file to an assembled rom, and back again. I figured that being able to recover a project from a rom and its symbols file has important potential in terms of data preservation. To make this possible, I modified the symbols file to include comments, and was able to complete the back and forth I wanted.

This allowed me to experiment with something called structured editing, in which you modifying the underlying structure, symbols and bytecode of a program, and not its structural representation.

17G

2023-04-05 Interaction Nets & Oquonie

The past two weeks have flown by, between finishing Oquonie and preparing Pino for the summer, each day I fall into bed completely exhausted. But the game is nearly finished now, there are fewer and fewer bugs, and most of my time is spent doing optimization.

I've been diving into Interaction Nets again, and I've fallen head over heels with Sato's Inpla language, the code is a nightmare but I feel that with a bit of work, and a better division between the interpreter and virtual machine, this could turn out to be something very fun.

After watching Alan Kay's OOPSLA 1997 talk, I went and read Smalltalk-80: Bits of History, Words of Advice and I've been fascinated with it. It goes in details about their approach to the implementations of the Smalltalk VM, and the challenges to getting the ST-80 image to boot on all these different platforms.

17F

2023-03-13 Residency at Biosonic

Spent the week at the LEÑA residency collaborating with audio-visual artists. They call it a retreat, but really, I returned from Galiano more exhausted than when I left. It was well worth it tho, as I rarely allow myself to play music for more than an hour or two at a time.

I've had a bit of time to kill between rehearsals, and whenever I had a few minutes to myself, I'd pour over the Lisp Machine memos. It occurred to me that the byol-type books really ought to teach about targetting Lisp architectures(or at the very least, something in the vein of SECD abstract machines), instead of implementing Lisp on top of imperative languages, which does a disservice to the entire exercise.

17E

2023-03-03 Preparing for Biosonic

I've been progressing on Oquonie, implementing sounds and making sure that it runs as smoothly as possible on as many different platforms as I can. This meant revisiting a lot of the implementation details. The month has flown by, but it has been a lot of fun learning about optimization.

I will be staying on Galiano for a week during the Biosonic residency, it has been a while since I've last slept on firm ground.

17D

2023-02-24 Oquonie is nearly ready

The weather has been absolute garbage and so has been a great help in advancing the Oquonie port. Not only is the project pushing Uxn further than it previously ventured, but it is equally pushing the tools used in its creation. The building of the game has had me do some significant improvements to Drifblim, Uxnlin, and Left.

17C

2023-02-07 Oquonie is happening!

After putting together a demo of what a Varvara implementation of Oquonie could look like, Rekka and I decided to officially port it. It's a lot of fun to revisit this strange universe. I hope that we can bring the essence of the original into the redux version.

17B

2023-01-20 Function Stacks

I've been reading about reversible computing and put together a playground that allows me to experiment with the ideas of psi-lisp. This whole business of time reversible logic feels like visiting an old friend.

Meanwhile, I've also tried to bring potato to a usable state, which means that for it to entirely replace the current launcher, it should be able to assemble and run the assembled rom, a state to which I am inching closer.

17A

2023-01-08 Pino Rewiring

Since the turn of the year, we have spent every waking hour rewiring Pino, it has been a more challenging project than we had hoped but we will sleep soundly knowing that each connection has been well made.

I've read Koopman's Stack Machines: The New Wave and it inspired me to experiment with other virtual machine designs, namely that of the NOVIX NC4016. But after two weeks of experiments, I returned to writing Uxntal, partly because I do not feel limited in the realization of my ideas with my current stack, and partly because these sort of systems make for extremely obfuscated assembly languages. That being said, I can't seem to shake the craving to experiment with the Setun-70..