==================
 Naps, VoIP, blog
==================

Had quite a few unplanned naps lately: staying up late, sometimes
having trouble falling asleep, then not sleeping enough, accidentally
falling asleep, then having to catch up on the daily routine and work,
finding myself more stressed and tired, which is not a great
combination for a sleep schedule maintenance. But attempting to sort
it out.

Recently installed an XMPP server on my workstation, as a backup and
to reduce the latency. I have a static IP address, have pointed an
afraid.org subdomain to it (so that there is no dependency on other
domains, since it should work as a backup), acquired an X.509
certificate with uacme and nginx, configured Prosody and coturn for
XMPP with Jingle calls. It works well.

Then decided to setup something for voice conferences as well,
something akin to Jitsi Meet: usable via a web browser, since it is a
common requirement. Jitsi Meet itself is pretty heavy and not packaged
for Debian (because of its many dependencies), but I found Janus, a
WebRTC server, and Jangouts, a web UI for it. They seem to work,
though quite buggy (e.g.,
<https://github.com/jangouts/jangouts/issues/439>), and I have not
tried to use them for real conferences yet. I wonder how viable it is
to make a JS-free chat (like old web chats: maybe frames-based, or
even without those), with <audio> element for a server-to-client
stream, and optional JS just for client-to-server streams; perhaps as
a chunked HTTP stream, without WebRTC. I guess that would be easier to
debug, at least, though less efficient than UDP.

In other news, I updated the Coalpit library,
<https://hackage.haskell.org/package/coalpit>, to use parsec instead
of megaparsec, and to always include constructor names, which should
help to avoid possible ambiguity. Speaking of Haskell libraries, I
picked the "json" library instead of Aeson for a project at work, and
quite happy with it: it is much more lightweight, easier to maintain
compatibility with it across different GHC versions (the library
itself seems to be changing less than Aeson does), and it did not
require much more code to work with. Probably will switch some of the
other work-related programs to it as well, and currently working on a
program using a similarly lightweight library for XML, called
"xml". Lightweight dependencies are nice.

And today I merged this phlog with my WWW homepage, introducing a blog
there. The phlog (or blog) is--as before--a bunch of textual
documents, but now there are both a gophermap and an HTML index. I
symlinked public_gopher to public_html, on both uberspace.net and
thunix.net, so the rest of the homepage is available over Gopher as
well now, though not all Gopher browsers support HTML and relative
references. But the phlog part itself is still a gophermap and text
files, so that was not harmed much. It can be improved, but hopefully
this will be easier to manage and to move around.


----

:Date: 2024-02-15