Now/log (2021-01)
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.
0128
Fixed theming in zuke.
Fixed picker not being able to exit on Del key, when there are no colors passed to it.
Got a simple program compiled on Linux to draw a red square in drawterm. The program only read/writes stdin/stdout to talk 9p, for which it’s using c9. That’s experimentation towards neauoire 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.
0127
Added window moving/resizing (using hotkeys) to riow.
Updated bar so it consumes even less CPU resources and wakes up as little as possible.
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 now writes to stdout the item that was clicked by the user.
0125
bar and
riow 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
.
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 keyboard controls on things like Raspberry PI.
Had to update 9gc 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).
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: 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.
A very quick addition: “iconv” tool in
imgtools. 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.
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 is taking shape!
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 client gemnine: don’t print URL description if it’s the same as the URL itself.
Seems like I could use webfs
URL resolving logic without copying
any code, like mothra
does.
0118
A log from before (on 9gridchan), regarding voice/video chat with 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 brings in latencies.
Fixed root not being writable in ext4srv.
Added -c CHAN
option to 9gc (9gridchan
chat client for Unix-likes) to join a different channel (yeah, we now
have TWO!).
0117
Mirroring 9front FQA now.
Yet another project who dis: some kind of feed reader/aggregator?. 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:
{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.
They don’t destroy the entire terminal, unlike in other operating
systems. clear
only removes programs output, leaving the commands
that were executed.
Cleaned up, reworked a bit, and added my XML parser to snippets. The parser is very simple and works as streaming one as well.
Thanks to kvik’s mq we can already play streaming WEBM/MKV with 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 so the same thing can be done with MP4 containers.
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 gave 104s vs 108s before. 4s difference, probably not worth it in this case.
0115
“Vendored” some of the 3rd party libraries in treason 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.
It also builds and runs on 386 now.
0114
Did more plumb-related work in 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 to update the battery charge
every 10s to reduce CPU load. /dev/screen
is now only being read
when actually needed.
Updated mp3dec (pulled upstream minimp3) and set a define that made the size of the executable even smaller: 119864 bytes vs 260255 bytes (stock 9front’s mp3dec).
zuke 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.
c9 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.
Added more stuff in 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. 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.
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 while coding.
Pushed audio/flacenc
to 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, I’m looking at Andrew’s layout 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.
Looking forward to incorporating Paul’s
soundpipe into neindaw
as well.
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.
Fixed 32-bit compilation warnings in
mcfs reported by
qwx. Made a small change to make
non-seekable streams work with mcfs
and immediately scrapped it
because it’s useless for treason
unless mcfs
becomes an actual filesystem first.
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.
Last update: February 19, 2021 03:06PM