================== 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