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 $