today's howtos
-
peppe8o ☛ FarmOS on Raspberry PI: Farm Management Software Open-Source
In this tutorial, I will show you how to install FarmOS on Raspberry PI computer boards. For this project I will use a Docker installation, completing the official docker compose file with the required lines to start the software with a MariaDB database.
-
nixCraft ☛ How to tell if FreeBSD needs a Reboot using kernel version check
Keeping your FreeBSD server or workstation updated is crucial for security and stability. However, after applying updates, especially kernel updates, you might wonder, "Do I need to reboot my system?" Let's simplify this process and provide a straightforward method for determining whether a reboot is necessary using the CLI, shell script, and ansible playbook.
-
Declan Chidlow ☛ Strong Opinions on URL Design
I came to realise the other day that, for reasons unbeknownst to me, I have very strong opinions on URL structures. Most of my thoughts are related to culling the obsolete and implying away the superfluous. URL structure is as much a part of your website’s design as anything else – treat it with the same care and attention you give your visual design and user experience.
-
University of Toronto ☛ JSON has become today's machine-readable output format (on Unix)
This isn't because JSON is the world's best format (JSON is at best the least bad format). Instead it's because JSON has a bunch of pragmatic virtues on a modern Unix system. In general, JSON provides a clear and basically unambiguous way to represent text data and much numeric data, even if it has relatively strange characters in it (ie, JSON has escaping rules that everyone knows and all tools can deal with); it's also generally extensible to add additional data without causing heartburn in tools that are dealing with older versions of a program's output. And on Unix there's an increasingly rich collection of tools to deal with and process JSON, starting with jq itself (and hopefully soon GNU Awk in common configurations). Plus, JSON can generally be transformed to various other formats if you need them.
-
BSDly ☛ That grumpy BSD guy: The 'sextortion' Scams: The Numbers Show That What We Have Is A Failure Of Education
The good news is that the video does not exist. I know this, because neither does our friend Adnan here. Despite that fact, whoever operates the account presenting as Melissa appears to believe that Adnan is indeed a person who can be blackmailed. You're probably safe for now. I will provide more detail later in the article, but first a few dos and don'ts: [...]
-
Rachel ☛ Answering reader feedback: war rooms vs. deep investigations
Why did fork fail? Easy: the box ran out of memory. But, I had to reproduce that to know for sure. How did I do that? This took much longer, and was after chasing many dead ends based on rumors about "kernel OOM killers" and stuff like that. Were we deadlocking during the OOM kill? There was some scary stuff going on where the hosts would get really squirrelly while the messages spewed into the printk ring buffer. That consumed a bunch of time right there, and was also not what actually caused it.
Finally reproducing it involved shrinking my test system's swap size from what had been multiple gigabytes down to just 64 MB. Then I also ran some "memeater" things I had coded up: they would malloc() some space and dirty the pages by writing to them so they actually got physical memory handed to them. Then they just sat and waited around. After putting enough memory pressure on the box, it finally borked.
Even then, I thought it was the task scheduler thing the company had written for its own prod environment, because, again, everyone assumed it was guilty, and that was the undercurrent. But no, it wasn't. A few minutes later, I found the smoking gun: fbagent had logged something about "starting kill of child -1" at exactly the time everything died.
-
Chiark ☛ Colin Watson: Qalculate time hacks
Anarcat recently wrote about Qalculate, and I think I’m a convert, even though I’ve only barely scratched the surface.
The thing I almost immediately started using it for is time calculations. When I started tracking my time, I quickly found that Timewarrior was good at keeping all the data I needed, but I often found myself extracting bits of it and reprocessing it in variously clumsy ways. For example, I often don’t finish a task in one sitting; maybe I take breaks, or I switch back and forth between a couple of different tasks. The raw output of
timew summary
is a bit clumsy for this, as it shows each chunk of time spent as a separate row: -
Exam Account Series
I use the Exam Account feature in the Web Management on a regular basis for my students who have to take a practical exam at the end of their Computer Science GCSE.
-
Tom's Hardware ☛ How to Create 3D Printing Timelapses
With the right tools and software, you can capture your 3D prints growing layer by layer, condensing minutes or hours of printing into a video that is just a few seconds.