1. Quarantine life.

    23 March 2020

    We're rapidly nearing the end of our first month of quarantine due to the covid-19 pandemic.  I've been working from home since the last week of February, which isn't anything particularly new to me because we have mandatory work-from-home days at least once a week at my day job.  Coincidentally, a few days in was when our landlord's scheuled demolition and renovation of the kitchen began.  This meant that we were down three rooms in the house - no kitchen, no dining room, and no living room - due to having to relocate everything.  Lyssa and I also had some amount of …

    Read more...

  2. Nifty things to do with Searx.

    10 March 2020

    Not too long ago I was noodling over a problem: I wanted to break up the scheduling queues in Huginn to make my fleets of agents a little more efficient when the execute.  The best way I could think of was to make some of the schedules stochastic - periodically have an agent roll some dice and depending on what comes up decide whether or not to trigger the agents downstream.  So, of course I started looking for a random number generator that would basically roll 1d10.  However, the Liquid templating language that Huginn uses internally doesn't have any function to …

    Read more...

  3. Neologism: Smoke and mirrors system administration

    02 March 2020

    smoke and mirrors system administration - noun phrase - When you bring a problem to your support team and they go silent for hours to days at a time.  No amount of poking and prodding is sufficient to get anyone on the team to respond to your requests for status updates.  When they finally get back to you they say that nothing's wrong and you must have made a mistake.  Your thing is now unbroken.  They never tell you (or anyone, for that matter) what they fixed or how they fixed it.

    Read more...

  4. Using Nginx to spoof HTTP Host headers.

    26 February 2020

    EDIT: s/alice.bob.com/alice.example.com/ to fix part of the backstory.

    Let's say that you have a server (like Prosody) that has one or more subsystems (like BOSH and Websockets).  You want to stick them behind a web server like Nginx so that they can be accessed via HTTP - let's say that you want a browser to be able to communicate with those subsystems for some reason.  Or more likely you have a web application that needs to communicate with them in the same way (because Javascript).  Assuming that the above features are already enabled in Prosody …

    Read more...

  5. The Doctor's joint care regimen.

    16 February 2020

    Obligatory disclaimer: This is not medical advice.  Consult your regular physician.  Use at your own risk.

    Empty one envelope of vitamin C supplement powder (I like Emergen-C) and one envelope of Knox unflavored, unsweetened gelatin into a mug.  The Emergen-C is to make it taste better..

    Fill with cold water, stirring briskly with a spoon.

    Chug.

    Do this two (ideally) or three (maximum) times a week.

    Read more...

  6. Sculpting castles in the sands of Time.

    15 February 2020

    I'm sitting in yet another coffee shop as I write this.  Once again it's my birthday and I'm trying to figure out what I'm doing with my life and where I'm going.  I've just turned 42 which, as Douglas Adams would have it means I now have the answer to life, the universe, and everything.  Or I am the answer.  Or something like that.  I don't even know what I'm having for dinner tonight, let alone know what life is or is for so I'm probably not the best person to ask.

    No, I'm not going to post a link …

    Read more...

  7. Integrating Huginn with a Matrix server.

    12 February 2020

    Throughout this series I've shown you how to set up a Matrix server and client using Synapse and Riot, and make it much more robust as a service by integrating a database server and a mechanism for making VoIP more reliable.  Now we'll wrap it up by doing something neat, building a simple agent network in Huginn to post what I'm listening to into a Matrix Room.  I have an account on libre.fm that my media players log to which we'll be using as our data source.  Of course, this is only a demonstration of the basic technique, you …

    Read more...

16 / 207