My computing habits
-------------------
Last edited: $Date: 2017/12/29 23:32:02 $
I am a great fan of Open Source software, that I am using and
promoting for over two decades.
## Operating systems
My main laptop, and old HP2560 that I purchased as a used laptop,
runs OpenBSD 6.2.
Before that, I have used several laptops, running Slackware, RedHat
(until RedHat 7.0), Debian, and OpenBSD. Sometimes I had a dual boot
setup with Debian and FreeBSD or Debian and OpenBSD.
I have a NUC with an Intel I3 processor and 8 Gb memory, that runs
as a Linux LXC container server as well as a KVM hypervisor. The NUC
boots from a SSD, and mounts remote storage over ISCSI (for the LXC
containers) and NFS (for the KVM vm images). This NUC is running
Debian Linux.
The storage is provided by a simple Atom motherboard, with two disks
in Raid-1. This machine is running Slackware Linux.
I have a few Raspberry Pi boards, one of them is running as a
webserver, awkiawki-server, Gopherserver, Jabber server and some
other stuff. All the Raspberries are from the first or the second
generation, and run Raspbian.
I have also two Bealgebone Black boards, each runs OpenBSD, one of
them is my ad-blocking DNS.
## Revision management
I am a huge fan of revision management, Everything I write, code,
but also text, is under control of some revision management system.
I have used CVS for a very long time, on a personal CVS-server. I
have used this server until I migrated to Git, and started my
personal Git-server.
Also, I use RCS a lot. When files are part of a directory that is
under revision management, than I use RCS to have a megaton of
save-points on the file I am working on. When the experimental stage
has come to a step forward, I do a commit on the whole directory in
Git.
When editing some file in /etc or some other configuration file, I
always start with ci -u before editing.
## $HOME in RAM
For over a decade I run my $HOME directory in RAM-disk, tmpfs or
MFS, or whatever it is called.
This habit once started as a means to prevent flash-memory from
wearing out, and this proofed to be a great solution. I never have
to worry about cookies, or a clogged $HOME bloated with left-overs
from previous projects, tests, et cetera.
During boot-time the home-directory gets populated, this can be by
unpacking a tar-ball, or copy-ing from a template. On OpenBSD this
is even more simple, because of the proto-option in /etc/fstab
(mount with -P).
Knowing that I will loose my work makes it a priority to check
everything in, so this helps keeping the discipline.
Most of the time I work remote on my central shell-server, so having
a volatile $HOME is less than a burden than you might expect.
## Ratpoison window manager
I have been using the Ratpoison window manager for over a decade
now.
In about 1995 I started with Slackware with FVWM, and continued to
run FVWM for many years. In the early days of KDE I tried that, but
it was slow and did not add much to make it worthwhile. After FVWM I
used Blackbox for a couple of years.
With FVWM, and also with Blackbox, but on a smaller scale, I was
always tinkering with the looks, colors, windowframes. There was
always some kind of unrest, something to be not happy with. When I
switched to Ratpoison, this need was gone. This brought tranquility.
Also, using the Ratpoison window manager is extremely efficient and
prevents carpal tunnel syndrome.
As I was used to Gnu Screen in those days, there was no real
learning curve for Ratpoison, as the keybindings are almost
identical.
## Text mode applications
After starting with Linux I soon set up a small shell-server in my
home network. This made me independent of the machine I was working
on, be it the desktop (an old Sun Sparc running SLXT) or the laptop.
By putting mail, and all the projects on the shell-server, it don't
matter what machine you are working on, as long as it has a decent
ssh.
This habit made me a lover of text mode applications, like mutt,
w3m, Weechat and mcabber.
Also, I really enjoy tinkering with text tools and utilities like
awk, sed, grep and m4 and write small scripts, including Makefiles.
## Editor
I use Vim and vi almost all the time.
I write articles on a regular basis, and the publisher demands
either M$ Word format or ODT. However, when I use a word processor
like M$ Word or Libreoffice, I am to much busy tinkering with layout
and formatting. So I prefer to write in Vim or vi. That gives me
space to concentrate on the text (and not on the format).
For the articles I write in some kind of Markdown-like format, and I
have written a small awk-script that converts this into fodt
(Flat-file ODT). This is just some reverse-engineered stuff, because
the articles only have a few levels of headers and no other markup.
So the awk-script to convert to fodt is not very complicated.
Sometimes I do write in Latex.
Both the Markdown-like format as well as Latex use flat textfiles so
this combines wonderful with RCS, CVS or Git.
I have tried to use Emacs several times, because of the awesome
org-mode. But I have been using Vim and vi so long, that I can not
get used to Emacs. Even in Spacemacs or Viper mode, I do not feel
comfortable enough. So I decided to let it go and meddle on without
org-mode.
## Tmux terminal multiplexer
I have used Gnu Screen for many years. When I started playing with
OpenBSD, which comes with Tmux, I switched to Tmux. In doing
copy-and-paste screen-areas I still prefer the Screen method above
the Tmux method, but this is a small nuisance. But for how I use it,
Tmux is sufficient, so I cope with it.
## Programming
I like to write code and scripts. The environments I have worked in
or work in are C, Perl, PHP, awk and shell-script and some very
basic Postscript programming.
## Awkiawki
A few years ago I switched from Vim-wiki to Awkiawki.
Awkiawki is a wiki, written in Awk. This is a awesome wiki. It is
fast, it is so fast that it even performs well on an old Raspberry
Pi.
Awkiawki is about 300 lines of code in Awk, so it is relative easy
to understand and to hack. I have done some tweaking to fit my
quirks a bit more.
In the few years time I am using this wiki, it has become an
important and valuable tool in my life. If you don't have a personal
wiki yet, I would like to truly advise you to put one up. And keep
it a simple, not feature-rich wiki, like Awkiawki.
$Id: computinghabits.txt,v 1.9 2017/12/29 23:32:02 matto Exp $