Articles (occasional rants) and tutorials about open source, BSD and GNU/Linux system administration, and programming - the pragmatic way.

- Drive failure and IO errors? ZFS to the rescue!
Published on 2022-09-29

- Poor mans mind mapping tool with just the terminal
Published on 2022-09-15 | Modified on 2022-09-15

- Do you feel overwhelmed trying to stay up to date with the latest tech news?
Published on 2022-08-24

- Why you should avoid the news media and what to do instead
Published on 2022-08-24

- "Zero trust" is being hijacked by the big corporate hype machine
Published on 2022-08-12

- No, you cannot trust third party code without reading it first
Published on 2022-08-11

- The flaws of distro hopping and asking other people about their OS of choice
Published on 2022-04-11 | Modified on 2022-04-13

- Don't use Reddit for Linux or BSD related questions
Published on 2022-04-08 | Modified on 2022-04-08

- Linux distribution long term support might not be what you think it is
Published on 2022-04-01

- The delusions of debian
Published on 2022-03-30 | Modified on 2022-08-03

- How security is handled by package maintainers
Published on 2022-03-29 | Modified on 2022-04-02

- Questions about which operating system is more secure or fastest makes no sense
Published on 2022-03-18

- A warning to business owners and managers, you are a big part of the problem!
Published on 2022-01-13 | Modified on 2022-01-13

- Is the madness ever going to end?
Published on 2022-01-11 | Modified on 2022-01-23

- My 70 year old mother has been using Linux on the desktop for the past 21 years
Published on 2022-01-07 | Modified on 2022-01-08

- No, your website is not a web app even if you call it so
Published on 2021-12-29

- So-called modern web developers are the culprits
Published on 2021-12-17 | Modified on 2021-12-29

- Using a framework can make you stupid!
Published on 2021-11-13

- How to write software that will keep working for decades without problems
Published on 2021-11-08

- There is no such thing as privacy on the Internet
Published on 2021-09-08 | Modified on 2021-09-26

- Use the right tool for the job
Published on 2021-09-05 | Modified on 2021-09-07

- A simple Git workflow - using main as the development branch
Published on 2021-09-02

- How I store my files and why you should not rely on fancy tools for backup
Published on 2021-07-27

- How to do encrypted incremental backups and snapshots with GNU Tar and GnuPG
Published on 2021-07-24 | Modified on 2021-07-29

- Open source projects need to migrate their code away from github NOW!
Published on 2021-07-21 | Modified on 2022-09-01

- Using GitHub Copilot will turn you into a bad programmer
Published on 2021-07-21 | Modified on 2021-07-23

- How to stay sane in today's world of tech
Published on 2021-07-07 | Modified on 2021-09-27

- Stop submitting to social conformity and use your brain instead
Published on 2021-04-28

- Are you a TLS master?
Published on 2021-04-21 | Modified on 2021-04-21

- SQLite the only database you will ever need in most cases
Published on 2021-04-14 | Modified on 2021-12-30

- Don't be afraid to code it yourself
Published on 2021-04-02

- Straight forward problem solving mentality
Published on 2021-04-01

- Stop being frantic about code testing
Published on 2021-03-31 | Modified on 2021-04-01

- How do I know if I really need object oriented programming?
Published on 2021-03-30

- Procedural programming in a nutshell
Published on 2021-03-30 | Modified on 2021-04-01

- How to test procedural functions with PHPUnit
Published on 2021-03-30 | Modified on 2021-03-31

- No more object oriented programming with PHP
Published on 2021-03-27

- JavaScript malware infested nightmare
Published on 2021-03-01 | Modified on 2021-03-02

- Code has to be simplified until it becomes absolutely correct
Published on 2021-02-16

- This is how you keep your dignity and not sell your soul
Published on 2021-02-11

- Are you trusting open source blindly? Then you're in for a world of hurt!
Published on 2021-02-10

- One sure way to determine if you are stupid
Published on 2021-02-10 | Modified on 2021-06-21

- Real full disk encryption using GRUB on Artix Linux for BIOS and UEFI
Published on 2021-02-10 | Modified on 2022-07-18

- The problems with the GPL
Published on 2021-02-02 | Modified on 2022-07-20

- Future prediction: The so-called modern web will die soon
Published on 2021-01-24

- The terminal, the console and the shell - what are they?
Published on 2021-01-13 | Modified on 2021-01-16

- The Social Dilemma
Published on 2020-11-08

- OpenBSD Router Guide
Published on 2020-11-05

- Important open source projects should not use GitHub
Published on 2020-10-23 | Modified on 2022-09-01

- Choose your browser carefully
Published on 2020-10-20 | Modified on 2022-05-02

- Come full circle - back to HTML
Published on 2020-10-18

- No, you cannot have a third of my life!
Published on 2020-06-08 | Modified on 2020-06-29

- Technical reasons to choose FreeBSD over GNU/Linux
Published on 2020-04-11 | Modified on 2022-04-08

- Vim - I hate to love you
Published on 2020-04-07 | Modified on 2021-01-15

- Turning suckless into suckmore
Published on 2020-03-23 | Modified on 2020-03-25

- How you can manage the i3 window manager on multiple computers
Published on 2020-03-21

- Migrating ZFS from Linux to FreeBSD
Published on 2020-02-11

- Some of the great GNU/Linux distributions
Published on 2020-02-09 | Modified on 2021-07-20

- Choosing between OpenBSD and FreeBSD
Published on 2020-02-07

- systemd isn't safe to run anywhere
Published on 2020-02-07 | Modified on 2021-02-10

- Samba and NFS performance - ZFS on Linux vs ZFS on FreeBSD
Published on 2020-02-01

- How to setup FreeBSD with a riced desktop - part 3 - i3
Published on 2020-01-24 | Modified on 2022-04-14

- How to setup FreeBSD with a riced desktop - part 2 - Xfce
Published on 2020-01-23 | Modified on 2022-04-14

- How to setup FreeBSD with a riced desktop - part 1 - Basic setup
Published on 2020-01-22 | Modified on 2022-04-14

- Why you should migrate everything from Linux to BSD - part 2
Published on 2020-01-21 | Modified on 2021-10-04

- FreeBSD is an amazing operating system
Published on 2020-01-20 | Modified on 2020-01-21

- Why you should migrate everything from Linux to BSD
Published on 2020-01-18 | Modified on 2021-02-17

- Job interviews in web development gone haywire
Published on 2019-12-25 | Modified on 2020-04-13

- When the modern approach is nothing but hype
Published on 2019-11-07 | Modified on 2019-12-22

- My favorite note-taking method
Published on 2019-11-03

- Go (Golang) - understanding the object oriented features with structs, methods, and interfaces
Published on 2019-11-02

- Go (Golang) - Errors and panics
Published on 2019-07-16 | Modified on 2019-07-17

- Go (Golang) - Logging that matters
Published on 2019-07-14

- Stop pushing JavaScript!
Published on 2019-07-02 | Modified on 2019-09-19

- When abstraction, design patterns, and principles leads to spaghetti code
Published on 2019-05-26

- Battle testing ZFS, Btrfs and mdadm+dm-integrity
Published on 2019-05-05 | Modified on 2020-01-23

- Installing Arch Linux with ZFS on a USB stick
Published on 2019-03-28 | Modified on 2019-11-24

- Remuxing ISO, DVD, or Bluray using cat and ffmpeg on Linux
Published on 2018-12-05

- Reviving Cubox with Arch Linux ARM
Published on 2018-11-11

- The real motivation behind systemd
Published on 2018-05-01 | Modified on 2021-02-12

- Void Linux - a great and unique Linux distribution
Published on 2018-03-30 | Modified on 2020-03-02

- Real full disk encryption using GRUB on Void Linux for BIOS
Published on 2018-03-30 | Modified on 2022-07-18

- Package management in OpenBSD
Published on 2018-03-29 | Modified on 2021-01-15

- OpenBSD is fantastic
Published on 2018-03-13 | Modified on 2020-11-20

- Arch Linux mail server tutorial - part 3 - Get DNS right, it's important!
Published on 2017-12-29 | Modified on 2021-07-20

- Arch Linux mail server tutorial - part 2 - OpenSMTPD, Dovecot, DKIMproxy, and Let's Encrypt
Published on 2017-12-28 | Modified on 2021-08-11

- Arch Linux mail server tutorial - part 1 - What is email?
Published on 2017-12-27 | Modified on 2021-07-19

- Stay away from CloudFlare
Published on 2017-12-20

- Is Google evil?
Published on 2017-12-13 | Modified on 2021-02-11

- Make the current commit the initial commit in a Git repository
Published on 2017-12-10 | Modified on 2018-11-12

- The typical discussions about BSD vs Linux
Published on 2017-10-15

- Real full disk encryption using GRUB on Debian GNU/Linux for BIOS
Published on 2017-06-23 | Modified on 2021-08-30

- Real full disk encryption using GRUB on Arch Linux for BIOS and UEFI
Published on 2017-05-30 | Modified on 2022-07-18

- No your PHP framework isn't MVC, but don't worry, it really shouldn't be!
Published on 2016-12-19

- How to split your DNS requests when using a VPN
Published on 2016-11-14 | Modified on 2019-04-02

- Programming languages and programming paradigms
Published on 2016-01-02 | Modified on 2021-01-26

- Bummer PHP
Published on 2015-12-20 | Modified on 2020-12-12

- Composer and Packagist - a bad implementation!
Published on 2015-12-10 | Modified on 2016-08-07

- To framework or not to framework?
Published on 2015-11-10

- No your API isn't REST, but don't worry, it really shouldn't be!
Published on 2015-11-01 | Modified on 2016-03-07

- Design Patterns Can Be Very Evil
Published on 2015-03-15

- Procedural Programming vs Object Oriented Programming
Published on 2015-02-28 | Modified on 2021-01-26

- Web application with a single entry point
Published on 2015-01-01

- Keeping your home in Git, the right way
Published on 2014-12-17 | Modified on 2021-04-08

- Some notes on Arch Linux - 2
Published on 2013-10-16 | Modified on 2019-01-19

- PSR-0 is not a solution it is a bypass!
Published on 2013-04-23

- Most PHP Frameworks are not for programmers
Published on 2013-04-17

- When templates gets in the way
Published on 2013-03-26

- Be careful when using docking stations
Published on 2013-02-04

- An alternative way to play YouTube videos without using Flash
Published on 2012-12-15 | Modified on 2016-07-26

- How to Create a New and Empty Branch in Git
Published on 2012-01-18

- How to set your hostname and domain name correctly
Published on 2012-01-18

- GnuPG Tutorial
Published on 2012-01-18 | Modified on 2018-09-27

- Enforce strong passwords in Debian
Published on 2011-03-17

- Unloading of modules at boot time in Debian
Published on 2011-02-12

- Benchmark 4 - Notes About Caching and Benchmarking
Published on 2010-12-17

- Benchmark 3 - The Alternative PHP Cache (APC)
Published on 2010-12-16

- Benchmark 2 - MySQL Cache
Published on 2010-12-15

- Benchmark 1 - Dynamic pages vs. static pages vs. Memcached
Published on 2010-12-14

- Social Networking Suck
Published on 2010-11-18 | Modified on 2020-11-08

- The Book "Pro PHP Refactoring"
Published on 2010-11-05

- Code comments are good right? Well, not if there are too many!
Published on 2010-10-21

- Code Navigation, Design Patterns, and Too Many Functions
Published on 2010-10-12

- Git bare vs. non-bare repositories
Published on 2010-10-09

- What does GRUB see?
Published on 2010-09-07

- Windows XP nv4_disp infinite loop problem
Published on 2010-01-19

- For Debian - what package does that file belong to?
Published on 2010-01-12

- umount - device is busy
Published on 2010-01-12

- Simple CHM to PDF conversion on Linux
Published on 2010-01-07

- Resume SFTP transfer with rsync
Published on 2009-12-15

- Passwords from the hackers point of view
Published on 2009-10-21

- Localized version in the console? No thanks!
Published on 2009-10-20

- How to convert a man page into PS, PDF or DVI
Published on 2009-10-15

- Mercurial branching, main and stable, a possible workflow
Published on 2009-10-14

- Some personal notes on revision control and backup
Published on 2009-10-12

- PHP include path problems
Published on 2009-09-15

- Why I do not like derived Linux distributions
Published on 2009-08-13

- Mount an OpenBSD slice from Linux
Published on 2009-08-04

- Finding and removing duplicate files with fdupes
Published on 2009-08-01

- Mozilla Firefox Keywords Shortcuts
Published on 2009-08-01

- Encrypting and decrypting files using GnuPG, OpenSSL or Mcrypt
Published on 2009-04-01 | Modified on 2016-07-26

- CD or DVD Boot problems on MAC
Published on 2009-03-15

- Cache your DNS requests using Bind
Published on 2009-03-15

- Remove -- MARK -- from the message log
Published on 2009-03-15

- Keeping the system time precise using NTP
Published on 2009-03-15 | Modified on 2016-07-26

- Resume SFTP transfer with PuTTY
Published on 2009-03-14

- PHP Security
Published on 2008-11-28 | Modified on 2015-04-05

- Some notes on Arch Linux
Published on 2008-11-04 | Modified on 2009-08-17

- Ubuntu as in Debian?
Published on 2008-11-03

- Using EncFS to encrypt some of your files
Published on 2008-11-02 | Modified on 2016-05-23

- Choosing a new backup solution, Duplicity, rdiff-backup or Rsnapshot
Published on 2008-10-30 | Modified on 2012-02-10

- Speed down your CPU
Published on 2008-08-12

- Pointers in C
Published on 2007-12-26

- Programming in C, Cpp, and Ada
Published on 2007-12-25

- Choosing a good book on programming
Published on 2007-12-14 | Modified on 2016-04-02

- Revision control
Published on 2007-11-17 | Modified on 2010-10-10

- Wrong default encoding on the Apache webserver
Published on 2007-08-22

- Who is listening on my ports
Published on 2007-01-13 | Modified on 2020-01-25

- diff and patch
Published on 2006-05-22