— Woe, make me your student
Devine Lu Linvega's journal
2023-09-25 Strange Loop Or Die Tryin'
On the eve of the talk, I sit at a table half-awake before what is to become
sleepless night number four, 2 hours in waiting for my first real meal since
leaving Victoria to arrive, 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 gone, I can't speak.
It wasn't one big mistake that fucked me this time, it was a thousand little
oversights and expectations. 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 rest of the ride.
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 that utterly awful vegan soup. I
returned to stealing a bagful of whole fruits from the 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 to let me borrow
their laptop and install Uxn on it for the presentation.
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
- Collected notes into a Solresol, and Solrela, pages.
- Enjoyed exploring the archives of the Sidosi community.
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.
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
&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
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
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.
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
Having no connectivity has helped me focus on writing my talk for Strange Loop 2023, it's finally beginning to come into
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
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.
- Found a way to removed the page limit of 32kb for the wiki.
- By popular demand, the docs folder is now browsable.
- Enjoyed playing with Bellinitte's Pinhole renderer.
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
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.
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
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.
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.
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
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.
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.
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
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.
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.
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 little
universe. I hope that we can bring the essence of the original into the redux
- Spared some time to fix a handful of issues in Orca.
- Spent nearly every waking moment working on the Oquonie prototype.
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
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
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..
incoming home blog