Monthly Shaarli

All links of one month in a single page.

February, 2024

How to rename Linux users and their home directory - Serverlab

Learn how to rename Linux users and move their home directories to a new path, as well as renaming their primary group and UID using usermod and groupmod.

Since I always forget, this simply lists the three commands in order with terse explanation.

GitHub - terrastruct/d2: D2 is a modern diagram scripting language that turns text to diagrams.

Alternative to mermaid, plantuml, graphviz. Can be used in quarto.

Is a single golang cli binary at the core which I much (much) prefer to the javascript-dependent client-side nature of mermaid.

Otherwise, the DSL looks competent and fairly descriptive.
Supports displaying markdown, code, images, icons, or latex formulas in the diagrams.
Could be a good choice for quick diagrams!

8 Most Important Elements of a Landing Page Framework

A surprisingly in-depth explanation fo landing page fundamentals, with tips on extent and makeup.

Can come in very useful as a reference material.

dvtm - dynamic virtual terminal manager

Provides the virtual windows management interface that tmux/screen do.

Does explicitly not do anything like session management, for that it recommends using abduco or similar programs like dtach.

bun shell - invoke shell scripts from javascript

Allows writing commandline arguments as if you're in a shell script, but from javascript.

Somewhat similar to execa, but afaik tries to implement its own cross-platform coreutil commands. Has quick $ based syntax by default:

import { $ } from "bun";

const response = await fetch("https://example.com");

// Use Response as stdin.
await $`echo < ${response} > wc -c`; // 120
explanation of mean, median, mode

Excellent little breakdown of the concepts and what they are more/less useful to explain. 3min read.

Anki in a docker container

Allows running anki in a docker container! Not super exciting by itself (other than to learn some X11 - docker related shenanigans) but the author mentions being able to run it headless.

That's where it gets interesting, providing e.g. an always-up interface for Anki-Connect!

In-depth Python tutorials, mostly centered around concurrency and functional programming

From a dude who knows how to explain. Aimed at mostly intermediate use (& a little advanced i suppose)

GitHub - gethomepage/homepage: A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.

Dashboard like heimdall, organizr, homar, ....

terminal - "ssh-add -d" refuses to remove identity

One possible solution to remove persistent keys from ssh-agent (or gpg-agent). Worked for me!

15 years has passed - it's time for a new mattress

Suggesting sources for mattress purchase decisions. Especially https://www.sleeplikethedead.com/ seems like a good resource.

good FreeCAD tutorial for beginners

Many good suggestions for freecad tutorials, including Joko Engineering and Ha Gei, thehardwareguy, dr vax, ..

GitHub - YS-L/csvlens: Command line csv viewer

Command line csv viewer. (Less but for csv files)

Cpu.land - Explaining CPUs for the rest of us

Curious exactly what happens when you run a program on your computer? Learn how multiprocessing works, what system calls really are, how computers manage memory with hardware interrupts, and how Linux loads executables.

A really nice delve into CPU inner workings, especially system calls and hardware interrupts are an interesting read.

Freelancing 101 - for frontend web development

A super in-depth and fairly personal guide to everything to get your freelance operation going.

I am amazed at the amount of concreteness and obvious labour poured into this for free.
If you have any inclination of freelancing - setting your own costs and choosing your own clients - this takes you through the billing, tools, clients, rates, tricks, and more.

It is strongly focused on web development but some parts can probably be adapted to other areas.

GitHub - crigler/dtach: A simple program that emulates the detach feature of screen

Simple session management allowing to detach from a current session.

Does explicitly not emulate the virtual window system of screen/tmux.

GitHub - lmorg/murex: A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)

A smarter shell and scripting environment with advanced features designed for usability, safety and productivity.

Soomewhat like nushell in that it can easily open (i.e. wget/curl) APIs and web pages, parse structured data (e.g. TOML, YAML, JSON) and work with the variables.

But also somewhat different in that it does not want to take over the rest of the coreutils/shell builtins, and as far as I understand strives to work alongside the traditional shell (e.g. using it mostly for scripting while ignoring it for repl use or whatever your use case is). Also not taking a(n almost) strictly functional approach like nushell.

Not sure how mature it is yet, have not extensively tried it out.

ZeroMQ

An open-source universal messaging library. Seems interesting as a concurrency tool. Implementations and bindings in many many languages.

GitHub - bergercookie/taskw-ng: Next Generation Taskwarrior Python API

Next Generation Taskwarrior Python API.

A simple fork of the stagnant taskw taskwarrior-python bindings.

The complete guide for working with I/O streams and zip archives in Python 3

Amazing concise guide for simple IO stream explanation. Good as a refresher for whenever I have to work with them.

A nice easy-going explanation of python tidbits and libraries

Short and simple video lessons that start from scratch. Tools and thoughts that might make your professional life more enjoyable.

  • Tools for checking your python code (pylint, precommit, pyinstrument, ...)
  • scikit-learn
  • visualization
  • cli tools like entr, makefiles, typer, rich, ...

Neat!

GitHub - frida/frida: Dynamic instrumentation toolkit

Inject javascript into any running process (or python, or golang, or any of a bunch of other langauge bindings).

Can be used to hook into processes, run functions, send and receive messages, and a bunch more.
Essentially process injection on steroids - super cool.

It seems to even be able to inject itself to processes on other devices running connected to the machine? Not entirely sure how to implement but take a look at frida-ps ios example.

GitHub - alpinejs/alpine: A rugged, minimal framework for composing JavaScript behavior in your markup.

Much smaller than other vuejs/nuxt,angular,react frontends.

But has the essentials for most 'javascript-interactive' functionalities provided by many modern websites.
Seems interesting!

GitHub - facebook/watchman: Watches files and records, or triggers actions, when they change.

Same rough functionality as entr - watch for filechanges from the commandline. But with a server/client interface and afaik possibility to invoke programmatically.

Programming in D - Programming in D

D programming language tutorial from the ground up.

Really extensive documentation and guided tour of the D language. From simple hello world to parallelism, concurrency, and manual memory management.

GitHub - sindresorhus/execa: Process execution for humans

Simple commandline process execution with javascript. Takes care of stdin/stdout/stderr transformations, termination, newlines, child processes and so on.

GitHub - uutils/coreutils: Cross-platform Rust rewrite of the GNU coreutils

Cross-platform Rust rewrite of the GNU coreutils.
Simply intends to have complete compatibility with original coreutils - strives to fully pass the GNU coreutils test suite.

GitHub - sobjornstad/TiddlyRemember: Embed Anki notes in your TiddlyWiki

Directly write Anki notes in tiddlywiki entries, very clever. Combines the thought with information on retain/recall.

Python strftime reference cheatsheet

A quick reference for Python's strftime formatting directives.

Personally, I always forget strftime placeholders. This gives it to me concisely, and without fuss.

Wiby - Search Engine for the Classic Web

"Wiby is a search engine for older style pages, lightweight and based on a subject of interest. Building a web more reminiscent of the early internet."

Hand-picked (?) selection of pages, smolnet, blogs, interesting tidbits. If you have time to kill or are looking for very niche topics like analog audio hardware this is a nice page to use!

HOWTO splitt lossless audio files (ape, flac, wv, wav) using .cue files - LinuxReviews

Flac splitting guide using cuetools (and shntool). Works wonderfully and easy to split, or convert, and tag with two commands.