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:
- 2x 27 Inch desktop with 2560×1440 resolution
- 500 GB ssd, with external Hard drive of 3 TB
- 64GB RAM
- NVIDIA Geoforce GT 640 as the graphics card
- i7 3830 CPU (old one) – 8 threads
Here is the way I am working now:
- 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.
- I have VMPlayer installed. I set up my Windows 10 so that I can do my non-development work:
- MS Office installed so that I can handle the usual work related mails.
- Xmind for my other documentation work.
- Dropbox so that I can access my files from anywhere.
- Onedrive – so that I can access other materials.
- Livewriter for writing blog posts.
- On my Linux box, this is what I use:
- Docker setup: I use portrainer so that I can manage my container. I have docker containers for most of my work needs.
- Pandoc for my regular documentation needs – I use markdown for most of my documentation.
- PyCharm for any python development. With proper configuration, I can check for syntax errors before I run the code.
- Visual studio Code for any other editing needs. I switched over from Atom, because VS code seems to have better developer support.
- 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.
- Anacoda 5.x so that I can do my python development.
- To tweak:
- I want to tweak my fonts setup so that the reading experience is as good as OS X.
- I want to tweak my rsync setup so that I can use remote sync for my desktop
- 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!