I work with an extremely talented stable of engineers who have pushed my boundaries outward for months now. The work I am doing has been accelerated greatly by working so closely with them on developing new high-performance data applications. One of those boundaries pushed was the choice of language to do the work in. We chose Clojure as our language of choice. It is fantastic at what we are doing and has been a really incredible new skill to pickup. That said it isn’t without some drawbacks. I love Windows. Especially Windows 8 now. My work laptop is Windows 7 which isn’t bad at all. The problem is I am constantly running into low walls, easily circumvented usually, between me and getting momentum on full productivity. You see, the Clojure World is still dominated by people with Macs and Linux boxes. The problem is that a lot of the Window’s ports have several issues. They work, but not like they do on the other platforms and this leads to daily stumbles as I press forward trying to get things done. You can’t get much forward momentum if you are constantly getting your foot caught in tangled roots.
So after considering setting up virtual machines (I used Oracle’s VirtualBox) and dual boot on the same drive I finally concluded that both of those solutions had issues. With VirtualBox the issue was clear – I need all of the RAM and CPU I can get. Very few applications in the world need 4+ GB of RAM and will pin your CPU at 99% for extended periods. Analytics will do that, though. So, VM was a nice idea but it simply lacked the performance I really needed. Second, the whole idea of dual boot is excellent but I wanted to be able to move from various environments with ease. Mainly I need to be able to do research on STORMTROOPER, the machine I built at the end of 2011 but then bring the results to the office. I ended up concluding that the best way to do that was go to the nuclear option. STORMTROOPER has hot-swap drive bays. I also own a very nice Thermalstake BlackWidow eSATA/USB 2.0 docking station (see photo). With a tiny screwdriver or multi-tool I can move the drive with ease. On STORMTROOPER I can convert the machine from Windows 8 box to Ubuntu Server just by grabbing the drive modules and swapping them. It’s a great solution for what I want to do and for giving me the best ability to make it portable.
Other features of this system are Storm which we use to manage continuous computation. It makes running on multiple cores and on multiple machines easier to manage. We also use Datomic, which is in addition to our RDBMS for data storage. Datomic offers some interesting features. Time-based facts, fewer trade offs as seen with NoSQL and highly scalable So far we have really been impressed with it. I would say this combination so far has beaten Hadoop and Percolator for our purposes and I hope we can realize fully more benefits from it. The fact that it even gives benefits running all on a laptop, has lightweight configuration management requirements and does the job the way we need it to means it beats pretty much any other combination of technologies to do the same things for us. Datomic and Storm are also Clojure projects so there is also that major bias.
This is not the Perfect Programming Environment. It is perfect for what we need though. I am really pleased with this setup and now that I have further portability with the capability of going from my ultrabook to my high end system means a lot for my ability to get stuff done. Best yet is that STORMTROOPER was designed to work for days at a time on hard computations. It’s heat management and durable components mean it can do the heavy lifting for a few days while my ultrabook is saved the misery and reverts back to being a Windows platform. YOur mileage may vary. Some settling may have occurred in shipping and handling. etc!
And before I get comments from Mac bigots – yes, I in fact do own a Mac and have for a couple of years. I even had an iPhone for the same length of time. I replaced the 3GS with a Windows 8 phone (Lumia 920) and besides the Linux and Windows 8 machine I have Windows 7 and I think a Vista laptop somewhere. So, I’m open minded. I just know what I prefer.