Just putting random stuff I’m working on and/or thinking about.

I’ll try to update this daily. RSS should reflect this.


Today’s listen.

Updated and rebuilt youtubedr for Plan 9. Faster downloads but also incompatible command line arguments. Youtube on 9 docs updated.


Added more op stubs to pdffs. This doesn’t do anything but helps to have a list of all ops in one place, rather than scattered across PDF spec.

Today’s listen.


Nice weather. No computers.


No computers today. I spent this week writing Java at work and that makes me not want to do any coding. I need to change my job.

On something better, long dresses (specifically maxi slim) are totally my thing now. Also I tried out my old earrings (my earlobes are stretched now) and it looks fine! And doesn’t hurt at all, something I was not sure about, stretching considered.


I got an e-reader (Boox Nova 3) which I immediately rooted. Today I also installed openssh, so I can copy documents from 9front to the reader and even open them remotely. I could do 9p as well but sshfs is enough. I want to try attaching the ereader to the side of my laptops display and configure plumber to open PDFs there. That’d be lit.


Yesterday I went to a local “russian” shop and bought lots of sweets along with сметана. Today I made traditional belarusian potato pancakes which we all ate way too fast to take a good picture, so here’s the last one left on a plate.


uxn now includes a mkfile to build it on 9front! Audio programs run well and produce sounds :)


zuke is now shipped with 9front. All of the juke is removed, but you probably didn’t even know it was there to begin with :P


Reading PDF spec. Checking embedded font formats out. Should be pretty doable to do rendering. Hopefully pdffs will be accepted for GSOC via Plan 9 project so it gets much further during summer. PDF reader with MIT license for everyone!

Hope my e-reader comes soon, can’t wait to stop reading from a laptop screen X__x.


No computers.


Some more work on pdffs.


Today’s listen.

pdffs is now successfully extracting CCITTFax images as TIFF. Those can be viewed with page. That’s a new addition to already working DCT, JBIG2 and JPEG2000 extraction.


Added m4a playback support to zuke.

Fixed sources syncing to /n/


Computer music of 1970s: Analysis of Jean-Claude Risset’s Songes (unfortunately, only in French).

Small bytebeat(?) in 10 minutes:

// boop.c
// 6c -FTVw boop.c && 6l -o boop boop.6
// ./boop | audio/pcmconv -i f32c1r44100 >/dev/audio 

#include <u.h>
#include <libc.h>

#define RATE 44100.0
#define SZ(x) (int)(x*RATE)
#define S(n,d) float n[SZ(d)]
#define FS(n) for(i = 0; i < nelem(n); i++)
#define NS(n) nelem(n)
#define TRW(f,i) (PI*2*(f)/RATE*(i))
#define LF(n) ((double)(NS(n) - i) / NS(n))
#define CF(n) cos(PI*(1.0-LF(n))/2.0)
#define SA(x,n) (((x) & (n)) ? -1 : 1)

main(int, char **)
	int i, j, k;
	S(s₀, 0.09);
	S(s₁, 0.04);
	S(s₂, 0.03);

	for(k = 0; k < 1024; k++){
		for(j = 0; j < 4; j++){
			FS(s₁) s₁[i]  = 0.7 * fabs(
						+ 800+20*j
						+ 200*SA(k,3)
						+ 120*SA(k,8)
						- 160*SA(k,16),
			FS(s₂) s₂[i]  = 0.2 * cos(
						TRW(1 + (k % 8)*((k % 16)+j), i)

			FS(s₀) s₀[i]  = sin(TRW(60+20*j + 10*(k % 4), i))*CF(s₀);
			FS(s₁) s₀[i] += s₁[i];
			FS(s₂) s₀[i] += s₂[i];
			FS(s₀) s₀[i] /= 3.0;

			write(1, s₀, sizeof(s₀));



Fixed a small bug in mp3dec and aacdec: the proc wasn’t waiting for pcmconv to finish, sometimes causing trouble.


Went to a forest. It was really cold but quiet and calming. Took a few pictures on my crappy phone of which I liked one:

A tree trying to run away.


No computers.

Decided to start cooking (and baking) traditional Belarusian/Russian things. Want to find out what my friends from Syria think about those when they taste it.


Extensible efficient non-linear pattern matching with backtracking for non-free data types


Worked more on the parser of my programming language. Got declarations, constants and arrays work. It’s slowly shaping. I’m thinking of doing interpretation only, since I want to write the compiler in that same very language as soon as possible, so I don’t waste time on C version.

Older entries




Last update: April 20, 2021 12:18PM