💾 Archived View for ftrv.se › _now_202101 captured on 2021-12-06 at 14:29:53. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

Now/log (2021-01)

Newest entries[1].

[1] Newest entries

Next month[2].

[2] Next month

0131

Same as yesterday!

0130

No computers, lots of exercising and chilling.

0129

Worked a bit on the drawterm "app" (see yesterday). It draws Glenda[3].

[3] It draws Glenda

0128

Fixed theming in zuke[4].

[4] zuke

Fixed picker[5] not being able to exit on Del key, when there are no colors passed to it.

[5] picker

Got a simple program compiled on Linux to draw a red square[6] in drawterm. The program only read/writes stdin/stdout to talk 9p[7], for which it's using c9[8]. That's experimentation towards neauoire[9] possibly using that approach to have drawterm as a "frontend" for GUI applications shipped for multiple platforms, perhaps cutting down on required libraries to be linked in, etc.

[6] draw a red

square

[7] 9p

[8] c9

[9] neauoire

0127

Added window moving/resizing (using hotkeys) to riow[10].

[10] riow

Updated bar[11] so it consumes even less CPU resources and wakes up as little as possible.

[11] bar

0126

Rio comes back (and bites in the ass) by not allowing a window resize through `wctl` unless the window is current (in focus).

bar[12] now writes to stdout the item that was clicked by the user.

[12] bar

0125

bar[13] and riow[14] are now cooperating. `bar` reads standard input line by line and shows it along with the battery charge and date/time. If `bar` is installed, `riow` will use it instead of `aux/statusmsg`.

[13] bar

[14] riow

I'm planning to make `bar` also write whatever text (in between delimeters) was clicked on to standard output. Then it will be possible to customize it in various ways. For example, clicking on the date/time will make `bar` send it to stdout, where a script could in this case launch a calendar.

Received a raspi 4 from echoline!

Found my old (2008) thesis on L4 microkernel in LaTeX format, as well as the source code of the microkernel I implemented back then.

0124

No computers.

0123

Gonna be baking cookies!

Just say no to computers.

(I really have to answer emails...)

0122

If CPU temperature or battery status are not available for reading, `aux/acpi` will no longer expose the file. Simplifies programs that read them.

Querying battery status every second (hello, `stats(1)`) using ACPI is apparently enough to drain laptop's battery faster than one would expect. Changed that to minimum 10s period, and 5s for CPU temperature using ACPI.

Fixed Mod4 ("Windows" key) on USB keyboards so it's mapped the same way as on built-in keyboards. Fixes riow[15] keyboard controls on things like Raspberry PI.

[15] riow

Had to update 9gc[16] again after old 9gridchan registry had some issues. The chat address is hardcoded for now, with no registry being used to lookup the hostname/port whatsoever, until this can be fixed properly later, by moving over to new registry (`registry.9p.zone`, that is).

[16] 9gc

0121

Not much happened today besides one isolated kernel crash.

[ftrvx@ftrv:~]$ date --date=@$(pcalc 0x60000000 | awk '{print $1}')
Thu 14 Jan 2021 09:25:36 AM CET

0120

Fixed another missing feature in mcfs[17]: header stripping. Only with no lacing for now, as I don't have any other samples to test it with. The lucky person who find these will get an error message that hopefull will make sense.

[17] mcfs

A very quick addition: "iconv" tool in imgtools[18]. For now all it can do is convert an image to a specific channel configuration, ie `xrgb32` or `grey8`, etc. Same as the stock tool, but with more friendly names for channel configurations.

[18] "iconv" tool in

imgtools

Updated `resample` in the same repo to keep the original format if possible, and to assume premultiplied alpha by default (if there is alpha channel). Also added cropping via `-r` argument.

0119

Small things today.

9p zone[19] is taking shape!

[19] 9p zone

Added `gemini://` and `ftp://` to "linkifying" logic of `mothra` (it's executed on urls inside plain text, not enclosed in proper tags).

A very small change to my Gemini[20] client gemnine[21]: don't print URL description if it's the same as the URL itself.

[20] Gemini

[21] gemnine

Seems like I could use `webfs` URL resolving logic without copying any code, like `mothra` does.

0118

A log from before (on 9gridchan[22]), regarding voice/video chat with 9p[23]:

[22] 9gridchan

[23] 9p

sigrid → I think voice chat is mostly just gluing mq, audio/mixfs and audio/opus^(dec enc) together
sigrid → with each participant having their own stream
sigrid → if you want to mute someone - don't mix their stream
sigrid → each new participant can write their stream name to a defined stream like "new" in the group
sigrid → and just remove their stream when they leave
sigrid → mq -m /n/voicechat
/n/videochat/{channel}/{participant}/^(audio avatar name video)
/n/videochat/{channel}/event
sigrid → hope filenames speak for themselves
sigrid → as a bonus the entire session may be recorded while this whole thing is happening

Obviously, 9p[24] brings in latencies.

[24] 9p

Fixed root not being writable in ext4srv[25].

[25] ext4srv

Added `-c CHAN` option to 9gc[26] (9gridchan chat client for Unix-likes) to join a different channel (yeah, we now have TWO!).

[26] 9gc

0117

Mirroring 9front FQA[27] now.

[27] 9front FQA

Yet another project who dis: some kind of feed reader/aggregator?[28]. I'm still not sure exactly whether I want it to be just plain text or have a UI so the feeds and items are organized better. Rendering HTML to text (hello, Mastodon feeds) is disgusting, but I know no other way:

[28] some kind of feed

reader/aggregator?

{echo .ll 9999i; echo .pl 1no; echo .po 4; cat | html2ms} | nroff -N

Yeah, setting line length to a huge number, and page length? Just no.

0116

`watch` and `clear` are in snippets[29]. They don't destroy the entire terminal, unlike in other operating systems. `clear` only removes programs output, leaving the commands that were executed.

[29] snippets

Cleaned up, reworked a bit, and added my XML parser to snippets[30]. The parser is very simple and works as streaming one as well.

[30] snippets

Thanks to kvik's mq[31] we can already play streaming WEBM/MKV with treason[32]:

[31] mq

[32] treason

mq -m /n/mq
cd /n/mq
echo data coalesce > ctl
echo replay all > ctl
youtubedr -i 247 -o video https://youtube.com/.... &
youtubedr -i 249 -o audio https://youtube.com/.... &
treason -a audio video

I need to fix mcfs[33] so the same thing can be done with MP4 containers.

[33] mcfs

Checking a (maybe) faster `memcpy` implementation:

TEXT memcpy(SB),1,$0
	MOVQ RARG, DI
	MOVQ DI, AX
	MOVQ p2+8(FP), SI
	MOVL n+16(FP), CX
	CLD; REP; MOVSB
	RET

Benchmarking video playback with treason[34] gave 104s vs 108s before. 4s difference, probably not worth it in this case.

[34] treason

0115

"Vendored" some of the 3rd party libraries in treason[35] after it has been reported they either can't be fetched or take a long time to do so. They were huge. Now the installation is much faster.

[35] treason

It also builds and runs on 386 now.

0114

Did more plumb-related work in zuke[36].

[36] zuke

Vitamin D seems to be the thing I missed very much.

0113

It's been snowing all day long. Finally, a proper winter. Tried playing vidyagames and got bored with each one of them (three in total) after 5 minutes. Meh. So far I manage to exercise a bit every day, which makes me feel a bit better.

Changed bar[37] to update the battery charge every 10s to reduce CPU load. `/dev/screen` is now only being read when actually needed.

[37] bar

Updated mp3dec[38] (pulled upstream minimp3[39]) and set a define that made the size of the executable even smaller: 119864 bytes vs 260255 bytes (stock 9front's mp3dec).

[38] mp3dec

[39] minimp3

zuke[40] gets "audio" port plumbs with playlists now. A music file can be plumbed as well, but as of now zuke will play the file only if the currently loaded playlist contains it already.

[40] zuke

c9[41] now builds under Plan 9. Would be great to add a higher level API and perhaps use for something under 9, as an alternative to what there is already.

[41] c9

Added more stuff in snippets[42].

[42] snippets

0112

Fixing bugs here and there.

`cal` now has an option `-s` for those who prefer some other day to be the start of the week.

Working on plumbing for zuke[43]. It needs to play what's being plumbed. Thinking it should run `audio/mkplist` on the files that aren't in the currently loaded playlist, and probably convert `*.m3u` playlists on the fly as well. That will definitely make changing playlists on the fly much easier than adding a full blown tab-based UI in `zuke` itself.

[43] zuke

`juke(1)` actually does work, somewhat. Guess last time I tried it, I made a mistake in the file that was fed to `playlistfs`. Still, it looks horrible and requires editing tags manually???

Reading up papers on Dis VM. I kinda want to make a hobby OS with it that is loosely based on 9 and Inferno, just to play with some ideas.

Went to the city. Not many people wear masks, as usual.

0111

Back to having access to a computer.

Catching up with Beats 'n breaks livestream[44] while coding.

[44] Beats 'n breaks

livestream

Pushed `audio/flacenc` to 9front[45].

[45] 9front

Fixed a bug in libvorbis port. coughs Guess who introduced it in the first place coughs.

0110

Having last day of vacation. Work tomorrow.

0109

Since I want to redo the UI part of neindaw[46], I'm looking at Andrew's layout[47] to do the work for me. The rest will probably be a set of flat b/w controls drawn with lines and circles. I want to make those controls easy to bind to MIDI knobs.

[46] neindaw

[47] Andrew's

layout

Looking forward to incorporating Paul's soundpipe[48] into `neindaw` as well.

[48] Paul's

soundpipe

After yesterday's recording of vocals with Audacity (ahem) I have to write something for 9front...

0108

Wrote audio/flacenc. Need to add error handling, then I can push it to 9front[49].

[49] 9front

Fixed 32-bit compilation warnings in mcfs[50] reported by qwx[51]. Made a small change to make non-seekable streams work with `mcfs` and immediately scrapped it because it's useless for treason[52] unless `mcfs` becomes an actual filesystem first.

[50] mcfs

[51] qwx

[52] treason

Looked at my CUE sheet parsing code but did not have time to do anything about it. The computer access time has finished.

Downloaded a ~250 pages pdf about CBT for adults with Aspergers. Since healthcare system in Sweden continuosly did not give a shit about my issues, I'm gonna be my own therapist. Hopefully this book will give me pointers to what should I work on so I can be less fucked in the head when dealing with people and stressful situations I keep ending up in.

Hanged a Teitanblood poster on a wall.