My first desktop was Solaris. In fact, I had two Solaris monitors on my desktop, back when I was at Bell Labs. The ostensible reason was to code. Never mind that they were black and white. Still, I could use them for coding. I was automating anything that I could automate. In fact, I wrote some code to simulate remote execution protocol on SMPT + ppp.

When Linux came, I was one of the first to start using it in my circles. I liked its familiarity, its ability, and its generosity to let me tinker. And, tinker I did, starting with dabbling in mmap code. The ability to use the same setup for my personal and professional work made be doubly productive.

Once I moved to windows, my life changed. I started separating my professional work and personal work. As I stopped writing code for my personal work, my professional work too ended up relying on professional tools. “This is the way the enterprise works”, I would tell myself. “I am too senior to muck around in code” I would tell myself.

Even if I used Linux on laptops, the Microsoft office tools forced me to use Windows. Virtualization was not good enough either; so I ended up using mainly Windows. Until I bought a Mac in 2008. Since then, I only used macbook family at home. To me, it is blend of the both worlds. I can use command line the way I want to. And, I can get all expected office productivity tools. To add bonus, the font rendering on OS X is vastly superior to windows or Linux.

Alas, my desktop still languishes in Windows world. I thought about Hackintosh, but that felt like an exercise in masochism. I thought of getting a mac for desktop, but I already have a setup with 64 GB, 8 core machine and dual monitor setup. I use virtual machines, but the inertia and convenience pulls me into Windows.

Well, no more!

Over the weekend, I went back to Linux. It has been a while for me to use it as a desktop, but I am happier after the move. I tried Arch Linux, first. I thought it would be a better fit for my hacking tastes. After spending a day with it, it felt like too much of wild west. Based on prior experience, I chose to go with Linux mint. Once I installed the graphic drivers, printer drivers, the desktop was functionally equivalent to the one I had under Linux.

Now, here is my setup, which I did, say 4 years back:

  1. 2x 27 Inch desktop with 2560×1440 resolution
  2. 500 GB ssd, with external Hard drive of 3 TB
  3. 64GB RAM
  4. NVIDIA Geoforce GT 640 as the graphics card
  5. i7 3830 CPU (old one) – 8 threads

Here is the way I am working now:

  1. The Linux machine is my workhorse. I have my ssh keys installed so that I can access any of my machines from here. Especially, my final work happens on my GPU server.
  2. I have VMPlayer installed. I set up my Windows 10 so that I can do my non-development work:
    1. MS Office installed so that I can handle the usual work related mails.
    2. Xmind for my other documentation work.
    3. Dropbox so that I can access my files from anywhere.
    4. Onedrive – so that I can access other materials.
    5. Livewriter for writing blog posts.
  3. On my Linux box, this is what I use:
    1. Docker setup: I use portrainer so that I can manage my container. I have docker containers for most of my work needs.
    2. Pandoc for my regular documentation needs – I use markdown for most of my documentation.
    3. PyCharm for any python development. With proper configuration, I can check for syntax errors before I run the code.
    4. Visual studio Code for any other editing needs. I switched over from Atom, because VS code seems to have better developer support.
    5. File sharing between my Linux and Windows with SMB. Unfortunately, dropbox does not work with networked file system. So, I have to keep the primary on Windows.
    6. Anacoda 5.x so that I can do my python development.
  4. To tweak:
    1. I want to tweak my fonts setup so that the reading experience is as good as OS X.
    2. I want to tweak my rsync setup so that I can use remote sync for my desktop
    3. Organize my work documentation: Choices – to use Google docs or gitlab. Not sure what to use.

Now, I find myself coding and documenting the way I used to. Linux brings me back my youthful days!