The December
Adventure is low key. The goal is to do a bit of creative coding
every day in December and write about it.
2024 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
2 Controls and Latin-1 Supplement
Building on yesterday's improvement to Nasu, I was able to draw and add the
missing Latin-1 Supplement glyphs to Left. I don't use accentend glyphs often,
but when adding book and movie titles to my wiki, I like to be able to read the
names when these are present.
Listening to: Kate Bush - Running Up That Hill (Sicion Cyber Edit)
1 Places to go, things to see, sprites to draw
One of the many projects I'm hoping to tackle in the next few days is to bring
back accented latin characters
into Left, and since I don't have a uf3 editor, and am not
planning on making on anytime soon. I figured I could improve Nasu just enough
that it would be able copy/paste tiles vertically as to generate valid uf3
assets. That should be enough, at least for now.
Listening to: SadSvit - Пам'ятай свій дім
24 That's it!
The next few days will be busy, so today is as good a time to end this. This page chronicles a bit over 3 weeks of documenting daily progress on:
- Building a usable multi-tasking uxn-powered operating system called Porporo.
- Improving Varvara programs across the board, from graphical programs to terminal utilities.
- Implementing a hand-writing recognition algoritm.
- Writing a specification for program communication interfaces.
- Participated in lovebyte's demoscene and sizecoding event.
- Implemented something like a Lisp machine.
- Drank lots of water, went to the gym every second day, had fun.
See you next year!
Listening to: Hiko Momoji & meat computer - White Light
23 Returning to SCIP
Wrote very little code today, I closed Henderson's "Application and Implementation", and reopened SICP.. I felt like I needed a refresher of the last chapters(esp. the one about a LISP implementation). So yeah, today was drinking lots of tea, scrolling up and down the wizard pdf, maybe I should get the actual book at some point..
Listening to: VINNE, Evokings - By My Side
22 SECD(part 2)
Finished preparing the SECD runtime, I've been wondering if there ever were other functional languages designed to target it besides Pure Lisp(Lispkit), I looked around a bit but I couldn't find any. I noticed there was very little documentation out there on it, so I've started a page of my own. I think I might expand the self-hosted compiler to support line comments and the 'quote expression.
Listening to: Mylène Farmer - Oui Mais Non (SM:LY Remix)
21 Off day
Three weeks mark!
I'm taking the day off the computer.
20 SECD(part 1)
I was helping a friend with their toy scheme compiler last night and we got talking about SECD again so I started putting together a base implementation of the abstract machine's core so we could target it with their compiler for fun. It has been a long time since I played with SECD so I've updated the lisp documentation on the XXIIVV wiki with a couple of notes.
Listening to: MATRAKK - Mon Amour (Part IV)
19 Brush Strokes
I guess hand writing and brush strokes haven't quite left my mind since the other day, and so I find myself revisiting Oekaki, I knew that I could use that little trick from monday to approximate distance between points, and connected it to the brush tool to add a quick and dirty natural line thickness. Had a jolly good time drawing lots o' squiggles.
Listening to: Halsey - New Americana (THYPONYX Remix)
18 Cleanup Phase
I've done a lot of creative coding these past few days, but today I figured I might do well going over everything with the peephole optimizer, linter, formatter, tidying things up a bit. I've also found a little optimization to the theme loading code that resides at the core of nearly every graphical application I've written.
Listening to: mobbs radical - road of the headless
17 More TinyCode
Decided to revisit trying to make one of these 3d tunnels effects after failing to get the effect last year, with some help from the #lovebytetcc folks, I was able to make this neat 210 bytes demo. Someone taught me a good trick to approximate the distance between two points without sqrt()
:
max(abs(x),abs(y)) + min(abs(x),abs(y))/2
Listening to: Noro - DEEP END
16 Or, Day One Really
It looks like the work I set out to do on Porporo is done, all I have left is to document it properly. This project is going to transform the way I work moving forward. Today, I completed a handful of challenges from the #lovebytetcc event from within the operating system itself to test things out, and without running into any issues.
Listening to: Yarimov - Controlla
15 Bundling Bootstrap Bounty
Since parts of Porporo are built with itself, to compile it we need to have a partial implementation of the Varvara ecosystem capable of running cli roms, and an assembler, so that the roms that live at the core of porporo can be assembled and transformed into valid C files with the help of the formatter rom. When this is ready we can finally compile Porporo. Today's task was ensuring that it all worked.
Listening to: Max Fail, MEYSSTA & KURY – Squid Game (LANNE Edit)
14 Off day
Two weeks mark!
I'm taking the day off the computer.
13
I'm satisfied with the graphical input language program, I can resume putting Porporo together. The list of tasks is thinning, one of the remaining thing I'd like to do is create a rom that exposes the controls that have until now only been available through keystrokes to move, close, center, collapse and draw connections between programs. I haven't started on that rom's interface yet, but you can see the bar in the screen capture. The interesting bit of this project is to have most of the state of the system collected into the bar rom's ram.
Listening to: Popsimonova & Zarkoff - Wall To Wall
12 Something scratching at the walls
Okay, one more day on this, it's just too fun. I've split the canvas into three sections so I can input capitalized letters at the top, lowecase letters in the middle, and punctuations at the bottom. This new UX makes the whole thing a lot more practical to use. I'd like to say that I've written lots of code today, but I mostly practiced drawing the alphabet over and over again.
Listening to: Josh - lauf!
11 Graffiti Shorthand
I didn't expect shorthand recognition engines to be such a fascinating rabbit hole to fall into. I've spent a second day on the implementation of such a system. I've wanted to see if the scheme I chose could be extended to cover the rest of the ASCII sheet, and if I could remember each glyph. While practicing tracing the letters, I noticed that sometimes, I skip edges, so I added variance of some glyphs. I've also begun on a punctuation mode. Perhaps I will write tomorrow's entry with a tablet pen. I've also found and fixed a bug in Drifblim?! Wow, it had been a while.
Listening to: WEJDENE - JE T'AIME DE OUF(POUMTICA REMIX)
10 The Rest Of The Owl
Woke up hangover, booted porporo, slouched with my face resting on my fist, wondering about input methods, if there wasn't an interesting way that I could possibly program with just the one hand holding the tablet pen, that wasn't an on-screen keyboard. I considered the way I could write letters on the palm pilot, and wonder what went into a system such as that, and then implemented it.
Listening to: akiaura, LONOWN, STM - Sleepwalker
9 New Wires
Until now, I must have spent a total of 15 minutes on the actual drawing of the wires. Silly, considering how central to this whole thing these are. So, today I added detection for which corners to draw the wires from and to, to help reduce their overlapping windows content. It's all coming together better than I had hoped, I'm positively surprised at how many of the tasks that I set out to do and have managed to complete already.
I noticed that the Lovebyte Demoparty is back this year, from the 11th to the 22nd of December, I might do a few of their daily challenges.
Listening to: KORDHELL & SCARLXRD - I'M THE DEVIL
8 Assembling wiki from within
After completing Drifblim's interactive mode yesterday, I knew I'd finally able to assemble my wiki's preprocessor and generator, and then run both, without leaving the comfort of Porporo. Did it, felt great. That's it, I'm calling it a day, leaving on a victory. I think I'm ready to begin tackling the file device tasks next.
Listening to: KORDHELL - Vuk Vuk
7 Strong enough to lift Pokemon
I had been dreading today's task since the month begun, I knew I'd have to eventually make Drifblim able to survive being thrown paths interactively. The original design expected to be terminated after assembly, relying on self-modification like nobody's business it left the original assembler data in memory nearly unrecognizable after a run. The project here was to make sure that it recovers into a usable state after assembly or erroring. It seems to pass all tests, and therefore I can now develop entirely from within Uxn itself, at last.
Listening to: HEALTH - DSM-V
6 Noon Moon
I don't have much time today so I'll keep it short, implemented palette parsing and theme support. I wanted the little interface there is to follow the colors specified by the .theme
file. So yeah, that's all for today, just wanted to make things a tad comfier while I work. More tomorrow, until then I've got lifelines to splice.
Listening to: Hugeloud - Tell Me
5 HealthGoth OS
Kicked off by fixing some message passing issues I've had since day1, and pushed onto improving the program that monitors what is going through connections between the programs, it probably sounds boring like that, but it was fun, the rom intercepts and draws the data that programs send to each other in real-time. I've only added ASCII and hexadecimal modes so far, but I'm hoping to add a few more, like drawing image streams. Even tho it's not a terminal proper, I've mimicked the design off of screenshots I found of mlterm running on NetBSD, I thought it'd be a good fit for this. Even tho I've designed it for Porporo, I think I'll probably end up using it outside of it.
Listening to: IVOXYGEN - Write My Name In Your Heart (angst Remix)
4 Fast? sure, but first. Make pretty
Had an excellent time catching up with tracks I missed this summer as I did optimizations I had lined up from yesterday. I've added a global cursor(video) so I can finally see what I'm doing when moving between windows. The cursor handling makes use of the applications' mouse vector port to see if a cursor is present in the application or not. This neat trick allows me to draw the global cursor over the applications that do not have one. I've also done tiny tweaks to the menu rom so the hover state is more readable.
Listening to: Kordhell, scarlxrd, CORPSE - AUTUMN TREES
3 Falling Up The Stairwell
Did loads of tiny things today, like connecting the screen vector so every running application can animate at the same time, standardized label support for padding runes in Uxntal, documented it, and created a page about notation. I still haven't started to improve cli roms so they can recover after usage, but I'll have to tackle this sooner or later. At the moment, it sounds like so much of a bore in comparison to doing graphics programming, problems for another day, F5 reload 'til then.
Listening to: Brothomstates & Crankshaft - Wekilldaenemy
2 What exactly is Networking anyways?
I've been scratching my head about how to handle terminal roms(like linters and generators), and until now I thought to pause execution until a connection from the rom was made, but that had some issues. Instead, I figured that I could transfer the connections of the closing menu onto the newly spawned rom, this seems to solve that! We were out for most of the day, but when I got back, I added text wrapping to the logging rom and fixed a really annoying redraw bug in Nasu.
Listening to: Anwius - Rise
1 Fix that menu Holden! We're dusting off.
I've been meaning to have the menu rom complete before the month starts, but alas. So this morning I've added arrow controls to help with selecting the right thing from the menu's list, and I've added A button and Enter key to send the selection to Porporo. I think this month will be a lot of this, working on something from within the system, and partly fixing the little friction that I encounter along the way.
Listening to: Sakuzyo - FighteHumanity_Lily();