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 $