Working on a Mac - Tools that rule

If you are a expirienced mac user this is probably not news, but if you just starting out i want to highlight some apps that proven useful in the past.

The IDE of choice

ZDE 6.1Well… you can’t say there is a definite one and it’s a personal preference after all, but i stick with Zend Studio for Eclipse. Not only because it offers the best Integration into the OS but because of the configuration options. These are more on-point than other Eclipse based Apps (without all the clutter). Sure there is a somewhat steep learning curve but once you got a hang on it you don’t want anything else. Trust me. I tried them all for more then just one look. ZDE6 looks best and runs smooth. Notably: Source Formatter, PHP code analyzer, w00t debugger, library include path variables and custom environment settings.

For the quick hack

TextmateWhatever IDE you choose, there will be something you don’t like at some point or a filetype that doesn’t work the way it should. Or maybe you just want to quick edit a file for fun. Buy and use Textmate if anything. Some people even use it to replace their IDE, and with plugins like ProjectPlus it almost looks like one. If you didnt fall for my previous praise, then at least fall for this one. It is the best editor known to man kind. And on a sidenote: because of that you will see it often integrated in other apps (edit with.. etc). Textmate is highly customizable and extensible with “Bundles” and “Plugins”.

SVN with style

VersionsI hope you use version control. You should.. And if you use Subversion on alot of projects then have a look at Versions. It recently came out and is the most beautiful and most reliable client available. Don’t bother other tools. Tried them all but Versions is a keeper. Just give it a try and add a local working copy. It will automaticly add the repo and show you what’s going on in your project. Everything is organized in bookmarks. It also allows to add ticket urls. So if you commit a patch related to a ticket it will show you the link to your Trac/Lighthouse/whatever. You can inspect, move, copy, branch, tag, blame directly in your local working copy or remotly on the repository.

Getting things done

ThingsThis is probably the most beautiful GTD app available and it works the way you work. You can categorize your task with easy reusable tags. There are 5 main “focus” sections that will tell you how clutter free yet powerful this app is: Today, Next, Planned, Someday and Projects. All new task go in Inbox first. From there you can move them around if you want. There are two other sections that are Projects (think of them as a category) and Areas (related tasks). Again: You are not forced to anything. This is what i and many other people like about it. Things also offers a iPhone app which is just as powerful. Costs a little extra but gives you the power of syncing your task.

Tracking your time

bild-6If your are into contract work you probably have the need to track your time. Say hello to OnTheJob 3. You can manage your clients and clients may have many projects. Projects have many tasks and each item has a individual time line and costs. You can configure your deal with the client: fixed rate, hourly rate, etc.. These settings are inherited into the related projects, but you may overwrite specificly if you want. A very flexible and clutterfree app. To mention is also the billing facility. It comes with templates to generate a bill right from the app. Save as PDF, print or email. It tracks the bills and tells you when a bill is overdue. So not only you get your time tracked and managed - you also can manage your bills. Great little app!

Uploading your work

bild-8This app is free, but without a reason. It supports FTP, SFTP, WebDAV, iDisk, SCP, Amazon S3/CloudFront and Rackspace Cloud Files. So basicly: Anything. Comes with tons of options and languages. It seamlessly integrates with Editors like Textmate and also gives you the Leopard QuickView on remote files along with Springload browsing. Bookmarks, Syncronize feature etc… It is almost too much to name. Don’t bother with other FTP apps. Not even if they are commercial. I haven’t encountered a FTP Software that beats this one here and i highly recommend it. Never crashed on me. Oh.. and if you want to work remotely: no problem. All files are loaded into one generic folder which you could open as project in TextMate. Growl support is included too.

Manage your passwords

1PasswordIf there is one thing that is quiet annoying, it’s the amount of account data to remember. I use 1Password which encrypts and saves webforms and other personal data. It comes with plugins for all major browser and integrates flawlessly. Even on Basic-Auth logins. Let’s say i sign up on some new website. I use the browser extension to generate a secure password. As soon as i hit “sign-up” the app asks me to “create a new login” so it now knows my login for the site. The next time i revisit the site i just click one button and 1Password fills in the form for me. Note that i don’t need to make up my own password or even worry about it later on.. As a webdev the Secure Note feature is useful. I use it to store my serial numbers and SSH/FTP logins.

Chat on IRC

bild-9This is not really dev-related, but if you work with CakePHP, MySQL, Apache, Prototype.js or jQuery you probably had to pay IRC a visit to bug the authors ;-). From all clients available i found Colloquy to be the best. One cool thing is the integration with the Mac AddressBook app. You can connect IRC nicknames to people in your AdresseBook. So whenever they come online or idle for a longer period you see a status icon next to them. This app also supports Growl which is triggered when you name is highlighted in the chat. So you can safely move it out the way and patently wait for a reply. There are also a bunch of themes and plugins available and you can pretty much configure all events. Auto-Join and Auto-Connect make this useful app complete.

Links

Word about addons

Sure there is more to make your life easier, but first install the developer tools from your Mac-install disc. You need them at some point. Especially if you want to compile software from source.

Loving the Shell (Terminal) much but missing your favorite Linux command? Then have a look at MacPorts. You will get something that resemble Debians “apt-get”, dubbed “port”. I used it to get my hands on “wget”, “tree” and “curl” among other things, like “git”. While at it i also suggest to do a “sudo gem install cheat”. The “cheat” command prints out cheatsheets right in the console for almost anything. For example, try “cheat yui”.

If you are adventurous you could try to setup your own LAMP stack with macports (which has almost always the latest and greatest). I prefer MAMP because it is painless. You don’t need “pro” for CakePHP development. I suggest to edit the DocumentRoot in the httpd.conf and point it to your “Sites” folder in your home directory (~). In return you get a nice folder icon from Mac OSX for all your web apps. If you want custom domains for virtual hosts have a look at /etc/hosts. Just make up a name and point it to localhost - done!

Also check out Jing Project. Jing is a screenshot utility. After taking the video (w/ voice) or screenshot (w/ comments) you just click one button and it is uploaded to a private location and after the upload it will put the tiny URL to your clipboard for easy sharing. I use this alot in process.

If your mac is configured to save power and the screen get’s black while you where just thinking about your next step you can turn this temporarly off using “Caffeine”. This small toolbar icon turns off screensavers and stuff when enabled. Get it from here.

Last but not least. If you are a terminal hacker (aren’t we all when baking?) i recommend “Visor”. Visor gives you a hotkey to the console and when triggered scrolls down a terminal from the top of your screen (thus ‘visor’). Pretty handy to bake something while remaing in the IDE.

That’s all, folks!

I hope you enjoyed this post and take something from it. If you know any other tools that are worthwhile hit the comment section.