This page is far from complete …
Projects
For information for package maintainers, click here.
This server may be slow an unreliable, and offline for extended periods of time,
it is recommended to use codeberg.org/maandree
instead, and only use this server for release metadata.
Algorithms:
Application libraries:
- *libcontacts: a library for handling a simple, flexible contact list
Applications:
- blue: print a table of when the blue hour, the golden hour, or whatever you want occurs
- *contacts: a collection of utilities for inspecting and manipulating your contact list
- ffutils: collection of ffmpeg(1) scripts
- learn-your-telephone-number: a program to help you learn your telephone number
- *metar: trivial, yet fully fledged, weather report
- mongoclock: just a humongous clock for the terminal
- mongotimer: a humongous timer or stopwatch for the terminal
- *read-quickly: read plain-text files in blazing speed
Astronomy and geography:
- libred: solar elevation and blackbody colour calculation library
- libtellurian: geodesy library
- *solar-python: solar data calculation and prediction library for Python
Compiler software:
- libparser: right-context-sensitive grammar parsing library
Desktop software and themes:
Developer tools:
- auto-auto-complete: autogenerate shell auto-completion scripts
- base-util-tests: correctness tests for the base utilities
- git-rediff: reduce partially resolved merge conflicts
- gpp: Bash-based preprocessor for anything
- loc: simple C code line counter
- *makeenv: run make(1) with environment loaded from .makeenv
Examples:
- rotation3d: example of how to do rotation in three dimensional space
Graphics:
- coopgammad: cooperative gamma server
- *libclut: C library for manipulating colour lookup tables
- *libcolour: C colour space library
- libgamma: display server abstraction layer for gamma ramps
Hardware utilities:
- adjbacklight: convenient method for adjusting the backlight on your portable computer
- *cg-tools: cooperative gamma-enabled tools
- crt-calibrator: CRT monitor calibrator utility for Linux VT
- deadshred: override the contents of a device that may be broken
- radharc: reduce eye strain and improve sleep
- unstickpixels: screen loop to try to unstick stuck dots
Interface libraries:
Interprocess communication:
- bus: a simple daemonless system for broadcasting messages locally
Just for fun:
- doughnut.py: doughnut shaped Python 3.8 code that animates a doughnut
Security:
- anysum: checksum utility supporting multiple hash functions
- asroot: a simpler alternative to sudo and doas
- blakesum: checksum utilities for the BLAKE-family of hashing functions
- file2key: a simple command that generates a key from a file and a passphrase
- key2root: authenticate with keyfile and run a process as root
- libar2: library for the Argon2-family of hashing functions
- libblake: library for the BLAKE-family of hashing functions
- libhashsum: library for calculating the cryptographic hashes
- *libkeccak: Keccak-family, including SHA-3, hashing library
- libsha1: SHA-1 and SHA-0 hashing library
- libsha2: SHA-2-family hashing library
- sha3sum: SHA-3 and Keccak checksum utility
Support libraries:
- liberror: C library for custom errors
- libhaiku: poetic error messages
- *libsimple: a bunch of C functions that are useful when writing simple code
- python-arg: a simple argument parser for Python
- slibc: yet another C standard library
System software:
- alsause: set default ALSA PCM device
- coreupdown: dynamically turn all non-main CPU's on and off
- sleeping-getty: do not start a fullblown getty before it is necessary
Tests and research:
Text libraries:
Utilities:
- alarm: schedule an alarm for a program when starting it
- bfind: find(1) variant optimised for finding files rather than listing files
- exec-as: a command that lets you start another command with any argv[0]
- krandom: Keccak-based userspace pseudorandom number generator
- median: calculate the median values for a set of groups
- optimised-true: optimised implementations of true(1) and false(1)
- orphan-reaper: place subreapers in your process tree to keep it structured
- pdeath: run a command that is killed when its parent dies
- setpgrp: commands providing access to the setpgrp and getpgrp system calls
- slack: control your timer slack
- sleep-until: sleep until a specified time
- sshexec: SSH wrapper that makes it easy to run commands directly in the SSH command
- timeprefix: prefix each line with the time it as written
- vtchs: listen for console switches
- xtest: variant of test(1) that can test multiple files from cmdline or stdin
- yes-silly: yes(1), silly edition
* marks stable projects that are not completely finished but are not actively being worked on,
if you want something to do, take a look at them, with a few exceptions, they shouldn't be
too difficult, but at the same they shouldn't be too trivial.
Tips
Philosophy
C mastery
Critique of C++
Until you've seen a real assembly project, you haven't seen clean code.
Until you've seen a real C++ project, you haven't seen nightmare code.
That is the cost of abstraction.
Bad UX ideas
Recommended reading
- Code Complete (Steve McConnell)
- The Clean Coder (Robert C. Martin)
- Clean Agile (Robert C. Martin)
- Clean Architecture (Robert C. Martin)
- Clean Code (Robert C. Martin) (Clean Code itself is harmful and fails to deliver what it says on the tin, however the book is still worth while reading)
- Optimizing software in C++ (Agner Fog)
- Optimizing subroutines in assembly language (Agner Fog)
- The microarchitecture of Intel, AMD, and VIA CPUs (Agner Fog)
- Floating point exception tracking and NAN ropagation (Agner Fog)
- Bison (Charles Donnelly, Richard Stallman)
- A Book of Abstract Algebra (Charles C. Pinter)
- Matematiska utmaningar (Paul Vaderlind)
- What Every Programmer Should Know About Memory (Ulrich Drepper)
- Good Practices in Library Design, Implementation, and Maintenance (Ulrich Drepper)
- How To Write Shared Libraries (Ulrich Drepper)
- Utilizing the other 80% of your system's performance (Ulrich Drepper)
- The Art of Computer Programming (Donald Knuth)
- Introduction to Algorithms (Cormen, Leiserson, Rivest)
- The Software Craftsman (Sandro Mancuso)
- Introduction to Automata Theory, Languages and Computation (Hopcroft, Motwani, Ullman)
Harmful reading (or at least a waste of time)
- Code That Fits in Your Head (Mark Seemann)
Location
Stockholm, Sweden
Contact
E-mail: m@maandree.se
PGP keys:
Old keys:
All files on this domain (but not the subdomains) are signed
with the current key, just add .sig to the end of
the URL to get the signature file.
I don't have any social media account, nor even IRC.
But my e‑mail
inbox is open for any inquiry or even a hello.
Do I have?
LinkedIn: No
My own cgit: Yes
GitHub: Yes, but minimally active: @maandree
Codeberg: Yes: @maandree
Sourcehut: No
GitLab: No
Bitbucket: No
IRC: No
Mastodon: No
Twitter: No
Facebook: No
MySpace: No
Why so many No?