Stands on the shoulder of Giants

My rambling and thoughts. Powered by Obtvse

The Setup

One of my favourite websites is The Setup, which provides interviews with people, talking about what do they use to get stuff done. It is very interesting to read about how people use technology to help them in their job, and some of them are very cool setups. If you are a GNU/Linux fan, you can find the similar setups in My Linux Rig site.

I have read about some famous people talking about theirs inspired by those two sites, such as this article by Mahdi Yusuf or Kenneth Reitz's setup. So, in this post, in the spirit of sharing, I would like to share about my development setups. It might not as cool as those guys', but I hope you can find some information in it.

Hardware

My primary and the only development machine is a Mid-2011 11" MacBook Air. It has Intel Core i5 running in 1.6 GHz. I chose the model with 4 GB 1333 DDR3 and 128 GB SSD Harddrive. Because the space is quite limited for a modern laptop, I employ myself with a 500 GB Western Digital Elements SE External Harddrive. I put my iTunes library, and other non-working related stuff. I also have another similar harddrive used for Time Machine backup, including my wife's MacBook Pro.

While I am enjoying working in a small screen estate, my office provides me a 23" LG HD Monitor/TV. It makes my work more enjoyable. I enjoy music using my Philips and iPhone white earphone, which one is closer to my reach. I also use a Samsung External DVD Writer Drive for backups and deployment stuff.

I own a Samsung Nexus S running Codename ROM 2.0 (Ice Cream Sandwich 4.0.4), I unlocked the bootloader and put a custom ROM because Google's is too plain to my taste. I also own a iPhone 4S, already jailbroken and running the latest OS (iOS 5.1.1). After using these two popular platform, I must say I prefer Apple's than Google's. I love how iOS just works, and the animation is waaay smoother than the Android counterpart, despite that I own the latest Apple smartphone whilst my Nexus S is one year older. However, I love how apps can interact in Android, it is way more natural than the iOS'.

Each my phone has a data plan, I use them as backup when I work outside the office, or when I need no proxy environment.

When I am not working, I enjoy reading Twitter in my 1rst Generation iPad. I also love to watch TV Shows or Apple's Keynote in my bed. The iPad is my first Apple device, and I can not stop since. That device is just magical in my opinion.

I am relying to Dropbox for backing up my personal documents. I store them in a encrypted volume created by TrueCrypt. I use MacFUSE's encfs module to mount them adjusting my needs. I own 3 Dropbox account, each for different purposes. Usually, I ran them simultaneously using these trick.

I store my work related code in our private Repository Server. For my personal development, I use GitHub and Bitbucket. I don't have many public repositories yet, but I am still learning.

Software

My laptop runs the latest version of OS X, OS X Lion 10.7.4. My primary progamming language is Java. I use the latest JDK 7 version from Oracle. I use IntelliJ Idea Community Edition as my primary IDE. I am still saving for buying the license (read: waiting for my boss to approve it). I prefer IntelliJ Idea because it is lighter and have better feature than Netbeans and Eclipse.

I also develop using Python. I use pythonbrew to install multiple versions of Python, along with virtual enviroments with pip installed. I also have Ruby environment in my machine, using Ruby Version Manager (RVM) and gemsets contain Ruby on Rails.

I use iTerm2, replacing OS X default Terminal app, configured to use ZSH shell. I use the famous oh-my-zsh script. I must say, zsh is a better shell than bash. ZSH autocompletion and flexibility beats bash all around. I use vim as the default editor, so I choose yadr for configuration. I have tried Janus, but it is too complex for my taste. Coming from Debian environment, I always love how apt-get command works. In OS X, I choose to use homebrew to MacPort and Fink.

My default text editor in GUI enviroment is TextMate. I always envy my fellow Mac user for TextMate. So, when I got my MacBook Air, I purchased a license. At the moment, I am waiting for the next generation of TextMate, TextMate 2.

I managed my repository using Atlassian's SourceTree app, with free license. SourceTree is very good mercurial client. I also use GitHub for Mac, just because it integrates very well with the web.

Most of my office projects use Oracle as the database engine, so I use SQL Developer app for Mac. I also use Sequel Pro app for connecting to MySQL databases. I install MySQL and PostGreSQL database server in my laptop using Homebrew.

As for developmen environment, I always love Jetbrains' approach. So for python programming, I use PyCharm and RubyMine for Ruby programming respectfully. I still use the trial version of these IDEs, waiting for approval for buying license.

I keep a copy of Windows 7 in a virtual machine using VMWare Fusion. It supports OS Lion Full Screen Mode, and feels light. For development purpose, I kept virtual machine running latest Ubuntu in VirtualBox. Combined with Vagrant gems, it is very useful and easy to setup.

For office documents, I own a copy of Microsof Office 2011. I need it because Microsoft is still the dominant player in Office world. I also own a copy of iWork suite, I use Keynote app intensely for creating presentation for my lecture. I found Keynote is easier to use than PowerPoint, and it has cool animations. Although I must say, Keynote is more power hunger than PowerPoint.

For task and event management, I rely on iCloud and Google Calendar. I use Fantastical for managing my tasks and events. It is a very cool app, it supports Natural Language detection for creating your task and event.

I keep my notes in my Evernote account. For writing related stuff, I rely on SimpleNote in my iPad, Drafts in my iPhone and NvALT or (recently) JustNote application. I love how SimpleNote helps me to keep my writing idea.

For email, I use GMail as my provider, and IMAP access with PostBox client. It is better email client compare to Mail, IMHO. It is light and fast. It also provides a lot of addons you can use for enhancement. And the best part is, it has a export to evernote function.

I browse the Internet using Safari browser. I used to be a Firefox fan, but it's getting slower, even in my modern machine. I have heard about Firefox Aurora, but I have not giving it a try. I also use Google Chrome, but I prefer use Safari because its tight integration with the iOS environment.

I chat using Adium, since iMessage is not very popular here. I enjoy reading twitter using Twitter for Mac. I have use YoruFukurou for a while, but Twitter for Mac is less distracting for me. I read RSS using Reeder, and love how the Readibility form. I am also a suscriber for Instapaper service, which used by Read Later app in my Mac.

I listen to music using iTunes and watching movies using VLC with Perian.

And lastly, I wrote all my documentation using Markdown format, using Mou and Marked app. I love how simple it is and the generated format is very nice.

Dream Machine

My dream machine is a new MacBook Pro with Retina Display, using the highest configuration available. It connects to a 30" Apple Thunderbolt Display with Das Keyboard S Professional and Magic trackpad.

I would like to have all my peripherals connected wirelessly, maybe through Apple Airport Extreme. I choose it because you can manage it through your iOS and Mac devices. For backup purposes, I maybe choose TimeCapsule for seamless backup process.

I want to setup my own media server, maybe using MacMini or other MiniPC devices, running Mac or GNU/Linux distributions. I want to set it up so I can queue a link and it will download it automatically.

I have read how sit will kill you, and I think I want to have a standing desk for my dream machine.

And the last thing is, I want this setup connected to fast Internet, with minimal bandwidth of 6 Mbps, which is still rare in my country.

Back to Blog