My Computing Setup

Everyone (or maybe just me) is interested in what people of different livelihoods use as a computing setup. Think I'm crazy, there's actually a website (uses this) all about this, interviewing relatively famous people about what they use to do their jobs, write their books, photography, create apps and so on.

I've always liked the laptop form-factor because it allows me to work from anywhere in the home, or if I want to do something elsewhere, I easily can. However, I also like sitting at a desk with a big screen and a comfortable sitting position. To get the best of both, I'd purchase laptops with a docking station that would allow me to use my laptop normally and then plug it into a docking station connected to a big screen, laptop, keyboard, etc.

Lenovo ThinkPad Mini Dock Series 3. A very common docking station compatible with many ThinkPad laptops.

Laptop

I went through a slew a laptops from Dell and Lenovo and right now I've settled on a Dell XPS 9560. It's a good balance between portability, style and enough power for gaming, something I'm avid of. The grunt also helps with compiling large software projects and multi-tasking.

A brief overview of the Specifications of the Beast.

Display

I really wanted something unique to do my work on, simply for the desire of being different (and self-conceited). The main attraction is the screen. I originally got a 24" 2K monitor but it had display connectivity issues and it made me angry enough that I wanted to go to extremes; get a giant 40" 4K TV and get that working properly.

To get a 4K TV working at a proper resolution and refresh rate, you need to take some special things into consideration. First, the TV must support chroma 4:4:4 subsampling, which means no compression is used to display pixels on the screen. Otherwise, text appears blurry but movies and games will look acceptable. Some cheaper TV brands don't have it and each manufacturer has a different way of enabling this feature. I recommend this excellent write up by Rtings about it .

This method allows for 4K@60 Hz (a good refresh rate for gaming and regular desktop usage) but requires HDMI 2.0 or newer. You'll either need to make sure your system supports it (most newer video cards support it but laptops usually don't). I was able to procure a USB-C to HDMI 2.0 adapter for my Dell laptop to get the image to display to my liking. My work laptop, an early-2015 MacBook Pro needs an active (passive won't work) DisplayPort to HDMI 2.0 adapter and a patch for macOS Sierra. Finally, you may need a high-bandwidth HDMI 2.0 cable that is rated for 18 Gbps but you may already have a high quality HDMI quality cable laying around that supports 4k@60Hz just fine. Try before you buy something new.

Keep in mind that TVs are often not designed for low latency or gaming so do some research beforehand to ensure that you screen meets your latency sensitivities. Rtings is my go-to source for this but otherwise other websites found with a quick Google query have useful information too.

The behemoth display itself. 

You really don't need multiple screens with this kind of setup unless you're working at NASA. A 4K display is like the equivalent of four 1080p screens stacked together. Very often, I'll have a small lonely window sitting in the window while I idle around browsing the web. You'll never want to maximize anything as scanning your eyes across a meter of pixels can be tiring.

Input

In terms of input, my route is a bit non-traditional. I really like ThinkPad keyboard with their TrackPoint. It allows me to move the pointer without moving my hands from the home row, though research has proven it to be one of the slower input methods. It's more of a comfort thing for me. I've owned many ThinkPads in the past so I got used to the layout of the keys but I miss the 7-row layout. I'm not very picky about the switch. I like both rubber domes (provided it's not mushy) and mechanical keyboards. I do enjoy the clicky MX blue switch very much, just wish they made a TrackPoint with those.

ThinkPad and Trackball combination.

I prefer a trackball mouse over the regular one because it allows me to move the pointer without actually moving the device. It takes time to get used to but I got to the point where I can play first-person shooters with it. It is very comfortable to hold and fits well in the hand. However, be prepared to clean the sensors for the ball regularly like you did in the good old days of ball mice with mechanical sensors.

Docking

Business style laptops usually come with a very practical docking station that allows to just slot the laptop into this slab and your screen, keyboard and mouse are all connected automatically. Dell didn't have this option so I opted for a stand and a Thunderbolt Dock with a Thunderbolt Connector. It allows me to easily plug everything with a single cable for both charging and connecting external devices. It's not as seamless as a traditional dock but this is the best I can get with this laptop.

Dell Laptop docked in its stand with a Thunderbolt Connector

For my work computer, when I occasionally work remotely, not that I have an excuse since the office is 4.7 km away, I have a few external plugs to connect my MacBook. I just need power, DisplayPort and USB to plug in and I'm ready to go. I have a switch to alternate between the Keyboard and Mouse from main laptop to the MacBook. It's pretty easy to setup and switch between systems.

The MacBook ready for work with just a few plugs.

LED Lighting

The pièce de resistance for me is the LED strip that runs under the screen. It allows for a very atmospheric look on the desk and makes things look a bit less sterile. The colour and brightness can be adjusted along with automatic colour changing. It looks especially great in low lighting though it can get distracting and sometimes I turn it off. It's more of a party piece to show off more than anything else. I purchased the kit from Ottawa LED

An animation of the LEDs slowly changing colours. I find it very mesmerizing and impresses the ladies (OK, maybe not) 

Operating System

In terms of software, pragmatism trumps ideology for me. I don't care about the operating system debates or what software is superior to another. The right tool for the right job and that is what you're supposed to use. I use Windows, macOS and Linux on a daily basis; each one has it's sublime moments and pain points.

At home, I use Windows 10 mostly for gaming. Virtually any kind of software is available for Windows and security has gotten better since Windows Vista but it's still a massive target for malware. Software development is feasible but you really want something more powerful than cmd.exe and PowerShell. With the new Windows Subsystem for Linux, the gap is starting to be filled but it still needs more work to become something production ready. Customizability is also another point, while there are Stardock tools and .dll hacks to get your own custom themes, they are a bit fiddly and don't always work as expected. You can get alternative shells but you'll usually be stuck with explorer.exe if you want things to behave properly. Not to deny you can get a very attractive Windows Setup with the right tweaking. In terms of device driver support, Windows is a clear winner because manufacturers write software for the most popular target. Not to mention that Windows has become pretty stable and has great architectural principles. What other operating system allows you to switch display drivers on the fly with WDDM. Not to say that things are perfect with the infamous BSOD.

My Windows Desktop

At work, I was given a MacBook running macOS Sierra. The aesthetics and consistence are second to none and things look so cohesive. The polish is amazing and though it's not something I'd use everyday, I definitely see the appeal. As a bonus, because it's a Unix-like operating system, you get all the POSIX commands out of the box, great for software development. They're the BSD flavours instead of GNU but it's hard to tell the difference. A man page will explain the differences for you and it's sufficient for me. Otherwise, just like Windows, everything just seems to work like multiple displays support, automatic sound output switching and fast boot times. I believe that in terms of plug and play support, macOS is the superior OS. I just wish you weren't stuck with the default look (I know a dark theme is in the works). Customization is a weak point in macOS. Switching between Command and Ctrl for keyboard shortcuts causes me fatigue as I switch between systems and I feel that the Windows taskbar system is superior to the Dock. I just want to see what I'm running, not everything that I've pinned down there. Admittedly, those big icons look gorgeous.

My work macOS setup. I've hardly done any tweaking and it looks pretty great.

For both work and home, I use Linux on servers and virtual machines. For the server, it is an excellent operating system, reliable and dependable. Amazing scripting capabilities and development tools up the wazoo. If I need something that will run my docker swarm without a hitch, Linux will do it for me. It's a testament that even Microsoft Azure let's you run Linux on their VMs. However, don't get me started about the Linux desktop. It's been a running joke that the current year is the year of the Linux desktop, but we'll never get there. Even the most user-friendly of distros like Ubuntu will eventually require you to use the command line to do something. Say get a second display with a different DPI working with xrandr, when on the other operating systems that start with W and M, it just works. Distros like Arch and Gentoo require a deep understanding of how an operating system works. It's a great hobby, but it's not fun when you need to get work done but a recent update borked your GPU driver for the third time and now you're just staring at a blank screen. However, when it comes to customizability, there is no contest. The most beautiful desktops are on Linux and there is so much variety. Stability would be nice for those desktop apps. I was an avid Linux user for 5 years but when I got a full time job and was studying, I didn't have time to maintain the system anymore. Nothing will able to replace Compiz Fusion for me or the excellent i3 window manager however. If you got time to tinker and computing is your hobby, you can't go wrong with Linux. Controversially, I actually quite like systemd, it's well done from an architectural point of view but it does not follow the Unix philosophy. But GNU/Linux is not Unix. Almost every distro has adopted it and it's a good sign as maybe Linux is moving to a unification movement as that's what we need for a successful desktop. Just look at macOS, it's basically a single-unified Unix distro and look how popular it is.

My souped-up Arch Linux i3 Desktop running in VMWare. One thing you can't argue about, Linux is cool.

Software

I'm not very picky about software, I just want something that works fast, efficient and does the job well.

For browser, I use Google Chrome but Firefox works just as well and so does the more obscure ones like Vivaldi. There's so much choices for web browsers and things are getting a little more standardized with WebKit and Blink (though we might have another IE era again). Extensions are common between most browsers but Firefox is the winner when it comes to customization (what other browser lets you change the colour of the tabs and their shape?). However, for some reason, Google Chrome feels the most responsive for me.

For music, this was a hard one for me. I tend to listen to quite a bit of a lot of obscure music. Google has the largest collection of music but I'll admit the recommendation engine needs some work, not that I was satisfied with any recommendation engine so far from Spotify or otherwise. Last.fm was close but it sometime still had unrelated tracks in my playlist but it's too bad they removed the radio feature. With the new YouTube Music, you get access to the largest collection of music on the Internet, everything is there. The recommendation engine is based on the YouTube Mix engine which so far has been providing good recommendations. I'm excited to see them merge Google Play Music with YouTube music.

Microsoft OneNote has to be my favourite piece of software in existence. The freeform nature of writing document really allows me to organize my thoughts in a way that makes sense in my brain. The autosave feature is the icing on the cake on top of the cloud synchronizing. I've enhanced my version with OneNote Gem for some extra goodies. I use OneNote as a loose todo-list and for drafting some of my compositions like this blog post.

I use the Microsoft Office suite because it is undeniably the most stable and feature rich out of all the paid options. While LibreOffice might be a functional free alternative, it's hard to compare. Look how much easier it is to write equations in Word compared to Writer, there's no contest. Disclaimer, I am paying for an Office 365 subscription.

For my backups, I use Macrium Reflect for a full disk image back up saved on a network drive. It's pretty headache free and it just does daily backups in the background without any fuss. For my really important files, everything goes into OneDrive but I've used Dropbox before and it's worked just as great. I use OneDrive because it comes with my Office 365 subscription with 1 TB of storage. I can't say I had a good experience with Google Drive though as the Desktop client was really unstable and sometimes my files didn't make it onto the remote storage.

For software development, it's a combination of tools. For Virtual Machines, I use VMWare Workstation mostly because I'm used to it and it has really good guest utilities. VirtualBox is great too but it's missing some features like having support for VT-x extensions within a guest. I do like the interface of VirtualBox better though. I use IntelliJ and Android Studio for Java-based development but I've had no problems using Eclipse. For me, the only real difference is the keyboard shortcuts and IntelliJ feeling a bit more polished. For light editing, it's mostly a mix of Visual Studio Code and Notepad++. Visual Studio Code has good plugins for auto-completion for various languages but nothing beats Notepad++ for a quick edit of a small script file, it's just so much lightweight than Electron-based Code. ConEmu is my go-to choice for Terminals, it's just so much more sophisticated than Command Prompt with the ability to start different shells, tiling and themes.

For budgeting, I like to use You Need A Budget. I was a PocketSmith user for a long time but it was a bit too cumbersome for my needs. I'm sure advanced budgeters would love the projection feature and all the fine tuning but I just need to categorize and shift money around. YNAB does the job but for some others all they need is a spreadsheet.

For games, my choices are pretty boring. I like sandbox and simulation games. Think Flight Simulator, Assetto Corsa and BeamNG.drive. I also enjoy my Tycoon games and have a slew of retro games for times when I need something simpler to play.

I use Renoise for music production. Even though it's one of the stranger DAWs, I find the sequencing arrangement to be much more intuitive than the timeline-based system. Most people will disagree with me, it's just a matter of taste. Unlike classic trackers, Renoise is very modern with VST support and ASIO4All.

For writing books, I like Scrivener due to the way it allows me to easily draft documents. However, I have to admit that OneNote or Word is just as well suited for the job but the folder arrangement for chapter and export abilities make it indispensable.

For 3D Modeling for the 3D printer, I use Autodesk Fusion 360. I'm not an expert modeler so I find it simple enough to make basic models. It has tools to make things like extrusion, holes and so on very simply and allows to define precise measurements. I know Blender allows for more sophisticated designs, one day I'll get there.

For electronics and microcontroller stuff, I like using Frizting to design the circuit which is a very basic tool for doing so. Theirs is nothing special about it, it's basically a fancy diagramming tool. For programming the micro-controller, I use what almost everyone else uses, Arduino IDE. It has syntax highlighting, auto-completion and easy way to send code to the micro-controller, what else do you need?

Finally, for system tools, I have a basic RainMeter system to show basic stats about my system. I had to write my own plugins to display additional sensors from HWiNFO but that's about it. On macOS, I use iStatMenus which is a great tool to display system info on the fly in the menubar. Good way to keep tabs on the system when npm is pulling in dependencies and compiling dependencies while taking 100% CPU and turning my laptop in a toaster oven.

Window Management

I like minimalism so my desktop is as empty as possible. A simple wallpaper with no desktop icons. A tray with almost no icons. A simple RainMeter display in the corner. My taskbar has no pinned apps and is made to display on apps that are running with nice labels instead of the default dock style. I am using Taskbar Tweaker to allow me to use the scroll wheel to switch between apps.

For organizing my windows on Windows and macOS, I use Divvy which allows me to have a pseudo-tiling arrangement on my screen. Since I have a giant 4K screen, it comes in handy to arrange the mess that my desktop becomes. On desktop Linux, I love i3 and nothing will ever replace it for me. The ability to arbitrarily define layouts is genius and I will never ever find a replacement for other operating systems. Also tiling window manager just looks cooler than anything else.

My messy desktop organized into neat tiles. A great way to keep your workflow in check.

Phone

My phone is a lot less fancy than my desktop. I'm still rocking a OnePlus 2, which is about 3 years old now. However, I have installed a custom ROM called Resurrection Remix for additional customization. I won't go into details but it's just for small quirks like having the volume slider only adjust the media volume. I've also rooted it so I can install an AdBlocker on the phone. Finally, I'm using Franco Kernel to downclock the processor to squeeze out an extra bit of battery life out of the phone.

My Phone following the same minimalist theme as my Computer.

In order to save money on an expensive phone plan, again, Canada has the most expensive phone plans in the world, I have a data only plan designed for tablets. I use a VoIP.ms line for my phone calls and I haven't noticed any difference in terms of call quality. I can also get cheap international calls with one of those Betamax clones. At the end, my phone bill rounds up to 30$ a month. I'm using Bria as my softphone client.

Finally, one thing I'm very proud of is that I have a phone in the kitchen also connected to VoIP using a Cisco SPA3102 gateway. It is an outbound only phone, but if the lobby intercom rings, both my cellphone and kitchen phone go off. Like this, if I can't answer the lobby from my cellphone, someone at home can answer it instead.

My phone doesn't get much use other than communication through WhatsApp and Telegram and navigation. I also use it to read books using Moon Reader+ Pro. I sync my books from OneDrive to the phone using FolderSync.

Parts

Conclusion

What my setup looks like as a whole. In general, I'm pretty pleased with the result, took me about 6 months to get to this point but it was a really fun endavour. 

Everyone has a different setup and some may have very simple setups because they don't care much about computing but as a hobbyist I like to have something to be proud of. Just like a car enthusiast wants to tune their car for the pride of it, I do the same with my most expensive hobby, computing.

Please feel free to share links or short descriptions in the comments on your setup. What do you think of my setup? Is it too boring? Where can I get ideas to inspire me with more intricate setups? All opinions are welcome.