~elis/blog/

Weechat Android SSH relay setup

Setting up the Weechat Android GitHub Play Store

relay client over SSH can be a bit tricky and quite bad at giving useful error messages. So since I’m going through a re-setup of that I’m also writing down my notes here.

Weechat configuration

Type the following commands into Weechat.

Placeholders such as {port} and {password} will be used here and later on. Suggested default port is 9000, but you need to chose something unique on your system. This is especially important if you have a multi user system. Setting a {password} is also especially important if you have a multi user system.

Read On →

My battle with wrist pains

Note: I’m not a doctor, dietitian or ergonomics expert. I just have spent a lot of time to find something that works well for me. This is my experience and you can probably take inspiration for it, but don’t do stupid things and seek expert advice if you need it.

In parts of the IT industry abbreviations like RSI and CTS gets thrown around fairly often. I’m guilty myself of doing this.

Read On →

NixOS ❄: tmpfs as home

This is a follow-up post for my earlier post: NixOS ❄: tmpfs as root.

When you start to go down the route of setting up a “pure” system that is as clean as you want it to be on each boot. You may start with the lazy route of using a persistent partition for your home directory. But it never feels quite right. But initially it’s so convenient to choose this path.

Read On →

NixOS ❄: tmpfs as root

This post covers both EFI and legacy boot setups.

One fairly unique property of NixOS is the ability to boot with only /boot and /nix. Nothing else is actually required. This supports doing all sorts of weird things with your root file system.

One way is to do like Graham’s post “erase your darlings” describes and empty your root file system each boot using ZFS snapshots. This way have some cool things that you could do on top of his setup, such as doing snapshots when it’s running and roll-back to empty on boot. That way you actually can go back to recover files you lost but still have an empty state.

Read On →

PHP packaging in NixOS ❄

This is a sneak peak into the future 20.09 release of NixOS.

The PHP packaging ecosystem in NixOS has been in a quite sad state for a long time. Partly because of the lack of people caring about PHP in Nix, but also that PHP is a bit weird when it comes to packaging.

State of PHP before NixOS 20.09

Due to the lack of ability to do clever things like the python community does with =withPackages= to compose a package with the dependencies you need we have defaulted to provide a huge default package to accommodate all needs.

Read On →

Double stitched Penguin Beanie

Friendly front and side of penguin beanie

This is a quite unusual post for this blog, it’s not what I’ve expected to put on here. But I wanted to share it somewhere more permanent than many other places where I hang out on the internet. So here it goes.

I’ve been knitting for a bunch of years now, and some years ago I was intrigued by a knitting method that is called double knitting. In theory it’s fairly simple because you basically make two knitting’s at the same time in parallel and mirror the pattern.

Read On →

Encrypted ZFS mirror with mirrored boot on NixOS

So for a long time I have wanted to replace my file server, because it’s an old HP Microserver that is really slow. And at the same time I have had this beast of a desktop tower PC that I haven’t used with a Xeon and 32GiB ECC memory that has just been turned off due to noise. The obvious solution is to re-purpose that install and move it to a location where noise doesn’t matter, e.g. the closet (a.k.a the server room) where the file server lives.

Read On →

Hello World!

Hello world! This is a test blog post.

This is an external link example.org. Internal link start page.

This is a block quote element.

This is an inline code block.

Test of syntax highlighting

elisp

;; Define the hello function
(defun hello ()
  "This
   is my
   docstring"
  (message "world"))

;; Call the hello function
(hello)

Nix

{
  # Define the hello function
  hello = {}: "world";

  # More tests
  boolean = true;
  fileimport = import ./src/file.nix;

  # Call the hello function
  message = hello {};
}

Go

package main

import "fmt"

func main() {
    fmt.Println("Hello world")
}

PHP

<?php
# Define the hello function
function hello() : void {
    echo "world";
}

// Call the hello function
hello();

Sample text

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tempor orci dapibus ultrices in iaculis nunc sed augue lacus. Donec ac odio tempor orci dapibus ultrices in. Faucibus vitae aliquet nec ullamcorper sit amet risus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Magna sit amet purus gravida quis blandit turpis cursus in. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue. Ut morbi tincidunt augue interdum. Enim ut tellus elementum sagittis vitae et. At augue eget arcu dictum varius duis.

Read On →