Thursday, May 30, 2013

The Setup

(Photo: Kenji Rikitake, taken by himself, at his home workstation, 30-MAY-2013, while watching Joe Armstrong's article of The Setup)

Disclaimer: this post has been inspired by the following website: The Setup.

Who are you, and what do you do?

I'm Kenji Rikitake, network and software engineer. I'm a developer at Basho Japan KK, a group company of Basho Technologies, since February 2013. People expect me to write Erlang code and I like doing it, but I also write programs in C, Python, and other languages, documents, corporate blog articles, and doing almost everything I can to help my coworkers, and of course for helping our customers and friends.

I've been working on computer networking, internet, and the distributed systems since 1988, from VAX/VMS SMGRTL screen management library development, to the campus network security management as a full professor at Kyoto University. I decided to get back to where the action is on November 2012, when I experienced a mental breakdown, after spending 12 years at the research and academic ivory towers. I became a professor dropout spending unrewarded time of 2-year-and-10-month non-tenured full professor from April 2010 to January 2013.

I am also an amateur radio enthusiast and electronic device builder since 1976. My Twitter handle @jj1bdx is the Japanese primary callsign. I also have the US FCC amateur radio license with the callsign N6BDX. Morse code telegraphy and shortwave long-distance contacts (DXing) are my favorites, and I'm also interested in digital radio communications technologies, as I did in the late 1980s with UHF TCP/IP links.

What hardware do you use?

Since February 2013, Apple MacBook Air 11" on the move and Mac Mini at home, both with SSD, are my workstations. Before then I hadn't owned any Apple Macintosh computer since 1980 for myself. My first computer was Apple ][ in 1979 which I abandoned in 1982; I now realize many things have changed. I have even bought an Apple TV for my living room display and it's quite entertaining.

I've been solely using PFU's Happy Hacking Keyboard (HHKB) and the family products since 1997. Prof. Eiiti Wada, who was my advisor when I barely got out of University of Tokyo Graduate School of Computer Engineering, designed the keyboard. Currently I use both HHKB Pro and HHKB Pro 2. I'm a conservative guy and still stick to my Logitech/Logicool Anywhere MX wireless mice, both on the move and at home, while I'm quite satisfied with MacBook Air's trackpad with a click.

Recent addition to my desk is Ergotron's Workfit-S Sit-Stand Workstation, combined with EIZO EV2436W 1920x1200 pixel monitor. Being able to work both on standing and sitting positions, with adjustable keyboard and display heights, makes my legs and shoulders much confortable and reduces a lot of stress. While this desk attachment is not the perfect solution, this is definitely worth trying. I also add a small Home Erecta metal rack to change a sitting desk to a standing writing desk; this is also good when you want to write on a paper at the standing position.

I still have Windows 7 and Ubuntu 13.04 dual-OS notebook client PC, which was the main workstation before I joined Basho. For the software experiments and development of both work and play, I rely on FreeBSD PCs since 1990s; now I run two 9-STABLE machines. I've got rid of tower PCs, and the recent Intel DC3217IYE micro desktop is working smoothly with the FreeBSD OS.

I'm not an audiophile fanatic, but I like good sounds and music. Styleaudio's CARAT-PERIDOT is one of my favorite USB headphone amplifiers. AKG K240 Studio is so far the finest headphones I mostly use at home, with a custom cable from Oyaide in Akihabara. I also use Sennheiser HD580 and Etymotic Research ER-4P. My spouse Kyoko wants to play her Super-Audio CD (SACD) disks, so I also set up a Pioneer D6 SACD player at our living room. Mackie 1202-VLZ3 is also one of my favorite audio mixers.

While on the move, a 6th gen iPod Nano, and Audio-Technica ATH-CKS90NC noise-cancelling earphones (available only from Japan) are the must, both in the airplanes and train cars. Recently I start storing music without compression, that is, with plain WAV files. The sound has got far better than those encoded in 320kbps MP3. I was carrying around a CD Walkman in 1987, and technology has made a lot of progress.

On amateur radio, ICOM IC-7200 has been my favorite shortwave transceiver, rock-solid to stably pump out 100W to the antenna. I also use Idiom Press K-5 keyer for sending Morse Code with the paddles. I sometime hand-send the code with a Czech Morse Straight Key made in 1950s. I only use a temporary antenna system at the balcony of my house, with a 6.5m-length vertical telescopic fiber pole with the antenna wire attached, and ICOM AH-4 antenna tuner. I can still work the six continents and many remote places in the world. The ionosphere is always amazing.

And I also have a Sony Ericsson Android smartphone (but not used as a voice telephone in Japan due to the subscription clumsiness and legal hyper-restriction towards SIM-card-only sales), and a Sony Ericsson feature phone for the carrier au (by KDDI). They have replaced most of the needs for a dedicated camera, but I still have a compact digital camera called Nikon COOLPIX P310.

I like pens, pencils, and papers, too. Moleskine is good, though not so good for writing with fountain pens. LAMY ballpoint pens and fountain pens are very good. Pentel's PRESS MAN 0.9mm mechanical/sharp pencils are robust and my favorite since 1980s, with JIS 2B-grade lead refills.

And what software?

I've been a BSD UNIX fan since 1986. Some of the real BSD-based UNIXes I've used are VAX 4.2/4.3BSD, DEC ULTRIX, SunOS 4, BSD/OS, and FreeBSD. BSD always rocks and rules, especially since AT&T finally loosened up the license for the general public (and accepted what they stole from the Berkeley CSRG team) in 1990s. I really admire FreeBSD core developers and the port maintainers. While I do not register myself as a committer, I still occasionally help maintaining Erlang/OTP port for FreeBSD.

Linux is not bad, and Ubuntu is a nice distro, but I think the kernel is cluttered with too many drivers, though this is inevitable when thinking about how many devices it has to support. And the lack of usable man pages is the primary reason why I don't want to use Linux for programming unless absolutely needed.

I had long been a serious hater of Macintosh computers before Apple decided to introduce Mach/UNIX kernel onto it. I believe Mac OS 9 and older kernels were practically useless for any real-world production systems. And I also had long been a hater of Windows, before the multi-tasking stability was realized in Windows 2000. Having said those rants, I have very little problems on using Windows XP and Windows 7, and Mac OS X Mountain Lion (10.8.3), so long as I don't write native programs on those machines. I intentionally stayed away from Windows Vista and I'm very happy I didn't have to touch it at all. And I will not touch Windows 8 either, because Mac and the OS X look much better as a desktop.

I still have some nostalgia towards OpenVMS, which has a very consistent and rigid command line interface and internal system service architecture. I would get one if Hewlett-Packard would make it an Open Source operating system, which I also believe what would never happen.

About editors, I use both vim and Emacs. I don't want to commit to the meaningless wars of editor preferences. Currently I don't use other dedicated programming editors, though for writing this article, I solely use a web application called Writebox, which is nicely designed to avoid distraction as possible. Windows' Notepad is not bad either, provided choosing the appropriate font and screen size.

For Japanese input system, I solely use SKK, since 1990s. OS X has AquaSKK, and Windows has SKKIME. Emacs has DDSKK, and vim has skk.vim. Until recently I was using EUC/Japanese for the internal encoding system; I decided to convert to UTF-8 finally after I decided to leave Kyoto University on November 2012.

On web browsers and services: Chrome is almost always used at any time on OS X, Windows, and Ubuntu. Or even Chromium on FreeBSD if needed. Diigo has been my primary bookmarking service. GitHub is extensively used for both work and play. Also Google Drive, Calendar, and Mail, though I still maintain a primitive mail processing environment at home. Recently I'm using Feedly as an RSS reader. Music services: Soma FM and SoundCloud. (YouTube and the Amazon sites are intentionally excluded from this list :))

Microsoft Office Suite (Word, Excel, and Powerpoint) are necessary evil. I install them on my Windows 7 machine and the Macs. I believe you cannot substitute by non-MS products, if you have to deal with the Japanese governmental agencies and large corporations, who are solely dependent on the MS products (and know virtually nothing about anything else.)

I still feel LaTeX does much better than MS Word.

Apple stuff: iTunes is not bad, especially for OS X. Keynote looks very good and easy to use.

Adobe stuff: Acrobat is installed on my Windows 7 machine, to proofread/check the PDF document structure and embedded fonts. I once used to play around with the Photoshop Elements, but now I feel OS X's Preview software is enough for playing around with the photo files.

Social services: Twitter: @jj1bdx - no need to explain, isn't it? Tweetdeck is also nice. I quit Facebook and LinkedIn because those two services were too socially demanding (and attracting too many spammers.) HipChat and Yammer are two nice things at work, and I feel those services should be outsourced as much as possible, because the providers are almost always doing better than us. And about blogging: Blogger and Tumblr.

Finally on programming languages and environment: Erlang/OTP for the obvious reason - Riak runs on it. kerl is a good stuff to switch between different Erlang/OTP execution environments. Python (with virtualenvwrapper), Perl, and awk are my favorites too. And of course, C, for fixing the FreeBSD kernel code. Programming tools: rebar, git, make, and other trivial ones (e.g., GNU Autotools). Shells: /bin/sh (NO bash assumption please though I use it too) and zsh.

What would be your dream setup?

Systems that don't need regular human intervention for maintenance. Period.

Frankly speaking, I don't want to provide unpaid support or even paid support regardless of the price, especially to my spouse Kyoko, and other relatives, for broken computer and electronic systems. It takes too much time, very interruptive and distracting, and it is indeed a very stressful work. Of course this doesn't mean I want to leave them alone in panic - I want to help them, but doing so simply makes me weary. I believe the supplier and vendor of those products should also take the responsibility to build the systems self-recover, self-restart and self-fix, at least for the software.

While I'm OK with fixing systems and I think I like doing so by referring to my professional records of being a system administrator for more than 20 years, most of the so-called appliances are quite badly designed and have to have a lot of insider skills and expertise just to use them, let alone to fix them.

I believe in the hacker movement and I think hackers should be well respected in the society and that the status quo is quite against the well-behaved hackers by assuming all hackers are malicious which is absolutely incorrect, but this does not mean everybody has to be assumed to have necessary skills to repair a broken machine or system. Risk dumping of technologies or incomplete systems towards users by the manufacturers is not an ethically right thing to do.

I hope Erlang/OTP and the philosophy/perspectives on the general programming will make the world a better place, for building a robust system, not only for the servers but all software-based products.

On amateur radio: I want to have an unlimited time and access to a legal-limit transmission system and a broadcasting-station-grade shortwave antenna, at a place with the least man-made noise. I want to listen to my voice bounced back from the moon too.

About my disability: I've lost my right eye's lens for more than 30 years. I wish I can connect the mostly-working retina of my right eye to the computers so that I don't have to tolerate the optical blurriness. The Google Glass in May 2013 is not enough yet. And I hope things will get better soon.

Update: Fixing typo and adding product URLs (last update 1-JUN-2013)