Computing stuff tied to the physical world

My development setup – utilities

In Software on Sep 12, 2013 at 00:01

As promised, one final post about my development setup – these are all utilities for Mac OSX. There are no doubt a number of equivalents for other platforms. Here’s my top 10:

  • Alfred – Keyboard commands for what normally requires the mouse. I have shortcuts such as cmd-opt-F1 for iTerm, cmd-opt-F2 for MacVim. It launches the app if needed, and then either brings it to the front or hides it. Highly configurable, although I don’t really use that many features – just things like “f blah” to see the list of all folder names matching “blah”. Apart from that, it’s really just an alternative for Spotlight (local disk searches) + Google (or DuckDuckGo) + app launcher. Has earned the #1 keyboard shortcut spot: cmd+space. Top time-saver.

  • HomeBrew – This is the package manager which handles (almost) anything from the Unix world. Installing node.js (w/ npm) is brew install node. Installing MacVim is brew install macvim. Updates too. The big win is that all these installs are compartmentalised, so they can be uninstalled individually as well. Empowering.

  • Dash – Technical reference guides at your fingertips. New guides and updates added a few times a week. Looking for the Date API in JavaScript is a matter of typing cmd-opt-F8 to bring up Dash, and then “js:date”. My developer-pedia.

  • GitHub – Actually, it’s called “GitHub for Mac” – a tool to let you manage all the daily git tasks without ever having to learn the intricacies of git. It handles the 90% most common actions, and it does those well and safely. Push early, push often!

  • SourceTree – Since I’m no git guru, I use SourceTree to help me out with more advanced git actions, with the GUI helping me along and (hopefully) preventing silly mistakes. Every step is trackable, and undoable, but when you don’t know what you’re doing with git, it can become a real mess in the project history. This holds my hand.

  • Dropbox – I’m not into iCloud (too much of a walled garden for me), but for certain things I still need a way to keep things in sync between different machines, and with a few people around the world. Dropbox does that well (though BitTorrent Sync may well replace it one day). Mighty convenient.

  • 1Password – One of the many things that get synced through Dropbox are all my passwords, logins, bank details, and other little secrets. Securely protected by a strong password of course. Main benefit of 1P is that it integrates well with all the browsers, so logging in anywhere, or even coming up with new arbitrary passwords is a piece of cake. Also syncs with mobile. Indispensable.

  • DevonThink – This is my heavyweight external brain. I dump everything in there which needs to be retained. Although plain local search is getting so good and fast that DT is no longer an absolute must, it partitions and organises my files in separate databases (all plain files on disk, so no extra risk of data loss). Intelligent storage.

  • CrashPlan – Nobody should be without (automated, offline) backups. CrashPlan takes care of all the machines around the house. I sleep much better at night because of it. Its only big drawback is that there’s always a 500 MB background process to make this happen (fat Java worker, apparently), and that it burns some serious CPU cycles when checking, or catching up, or cleaning up – whatever. Still, essential.

  • Textual – Yeah, well, ok, this one’s an infrequent member on this list: IRC chat, on the #jeelabs channel for example. Not used much, but when it’s needed, it’s there to get some collaboration done. I’m thinking of hooking this into some sort of personal agents, maybe even have a channel where my house chats about the more public readings coming in. Social, on demand.

The point of all the things I’ve been mentioning in these past few posts, is that it’s all about forming habits, so that a different part of the brain starts doing some of the work for you. There is a perfect French term for getting tools to work for you that way:

  • prolongements du corps (a great example of this is driving a car)

This is my main motivation for adopting touch typing and in particular for using the command-line shell and a keyboard-command based text editor. It (still) doesn’t come easy, but every day I notice some little improvement. As always: Your Mileage May Vary.

Ok, that wraps it up for now. Any other tools you consider really useful? Let me know…

  1. I’m familiar with some of those, but 1password was new to me. Looks very good.


  2. Launchy is, I think, a Windows equivalent of Alfred, albeit slightly less feature rich. I used to use it before I had OSX. Now I might try Alfred.

    I use BetterSnapTool to snap windows to corners or edges, much like in Windows, but it also has hotkeys and lets you define any “dock” size to snap to. GPG tools for encrypted or signed e-mails; SecondBar for a menu bar on the secondary screen, although that doesn’t work too well and I’m waiting for Mavericks to finally integrate multiple monitor support.

  3. I warmly recommend swapping out the very insecure Dropbox for SpiderOak instead. Everything is encrypted before going to the cloud. Is both a backup and sync tool and can share folders with other users. Some promo codes and referral bonuses should give you 6 GB (or more) of free space to start with.

    I have my software projects both backed up and synced across different machines with SpiderOak.

    • Yeah, neither Dropbox nor CrashPlan get my vote for confidentiality. I’m waiting for BT Sync to evolve a bit further – it requires no central server and has no space limits. Right now, Dropbox is too tied in to some apps I use on Mac OSX and iOS, and CrashPlan has the capability to keep its backup encrypted on the remote end (i.e. for doing cross-backups with a friend).

  4. I use a Windows workstation for productivity and use Putty for ssh connections, vi/vim for editing remotely. Notepad++ is also good for editing on Windows as you can edit remote files via the NppFTP plugin.

  5. I echo Greg’s setup. I use Samba to share home folders from the remote linux systems and edit the files in NotePad++

  6. First time I hear about Dash. Brilliant! Excellent! After 30 minutes testing I decided to buy that wonderful help. Thanks for that tip.

Comments are closed.