Archive for the tag 'web'

Having only had my macbook for a couple of weeks, I am still very new to OSX and all the apps which are available. The primary reason I bought the lovely new macbook is for web development – specifically for PHP/MySQL sites which I develop.

I spent a number of weeks both before and after purchasing the macbook looking for the perfect web development environment for me. In this post I will outline what I am using and why, any pitfalls I have had and also alternative software which you might want to try out.

Apache/MySQL/PHP

Probably no real suprises here, but I opted to go with MAMP (MacOSX, Apache, MySQL, PHP) as the tool to manage my web and database servers. It is incredibly easy to setup.

There are two versions, MAMP (free) and MAMP Pro (not free). MAMP Pro gives you access to setup and manage your virtual hosts as well as GUI access to other things you might want such as loading certain Apache modules. I tried out both, and honestly I have uninstalled MAMP Pro (and just kept the standard MAMP) as I found I was actually having issues where my Apache server would fail to start with MAMP Pro. I definitely do need access to edit virtual hosts but read on for my alternative program to do this.

MAMP allows you to choose the PHP version to use (4 or 5) as well as any caching engines or php accelerators. Stuff that any serious developer would appreciate having quick and easy access to. You can also easily change the ports which Apache and MySQL use to the defaults (80 and 3306). Definitely makes things a lot easier if you use the normal ports.

Virtual Hosts

Since I didn’t want to be paying for MAMP Pro, I came across another free application which will let me manage my virtual hosts in a nice and easy GUI screen. It is called Virtual HostsX and once again is pretty simple to use. It automatically detects MAMP and prompts you if you want to update MAMP’s apache configuration files (yes). I believe it is limited to 3 active virutal host entries at any one time – but this shouldn’t pose to much of an issue for me. If you need more entries at any one time, hey its only $9 to buy and support the developer.

An important thing which new people to Virtual HostsX sometimes do not realise is that when installing the program, it automatically enables the “Web Sharing” option in your System Preferences > Sharing screen. So make sure you go in there and un-tick the Web Sharing option – this will just cause all sorts of issues if you are using MAMP.

One pitfall I had with MAMP was a compatibility issue with Virtual HostsX application (the virtual hosts weren’t being picked up properly). After finding a thread on the same thing, it was recommended to use MAMP 1.7.1. For this reason, I actually had to downgrade from MAMP 1.7.2 to MAMP 1.7.1.

Download: http://clickontyler.com/virtualhostx/Price: Free – $9 if you want more than 3 virutal host entries at any one time.Alternatives: MAMP Pro (I couldn’t get this to work though) or edit apache config files via terminal yourself.

Code Editor

Ohh mac people are spoiled for choices in this category! On my Windows machine I was a Dreamweaver user (hey it is decent and does the job). And although the Adobe CS4 suite was one of the first things I installed on my machine (yay for academic agreements) I wanted to try out a few of the mac editor apps which I kept on hearing so much about. More specifically, Coda and TextMate. After using both for a short while, I came to the conclusion that:

Coda – wins.

After watching the videos on the panic website, everything just seemed to make sense. It seems to be very intuitive and so far I am really liking it. When first opening the application, I was quite underwhelmed as there didn’t seem to be many bells and whistles. But after watching the videos and playing around with it for an hours, I realised that all the bells and whistles (and more) are there, they just do not clutter the interface in a way that I am used to with something like Dreamweaver. Kudos to the developers – I think this really sets a new standard in code editors.

Database Manager

I normally like to use a desktop-based tool to manage SQL databases. On Windows I have used SQLyog and the MYSQL Administrator package. The popular choice for this functionality on a Mac seems to be Sequel Pro (formally Cocoa MySQL). It certainly is more than adequate for most users and I am happy with it so far. The interface is pretty standard for these types of programs and I haven’t had any problems working out how to do something.

Important: If you are using MAMP, make sure you put the following into the “socket” field in Sequel Pro: “/applications/mamp/tmp/mysql/mysql.sock”. Otherwise, you wont be able to connect to the MySQL server!

Database Designer

Everyone loves a good database modeler – right? For your bigger projects you want to have a good tool to map out your tables, keys and relationships. Make sure everything looks about right before you dive into the deep end. I didn’t really look around all that much for software for this. I stumbled across a free tool called Power*Architect which looks to be a tool which will handle the job nicely.

FTP

Although I don’t have much need for FTP anymore (thanks to SVN) it is handy to have a good FTP program for the odd job here and there. There are a number of alternatives here, but the main contenders are CyberDuck (free) and Transmit (paid). I have to admit that I prefer Transmit’s interface (especially since I am using Coda which is by the same developers) but at the end of the day, CyberDuck is a fantastic free program which is fine for what I am actually using FTP for.

SVN Tool

Some sort of code versioning is an absolute must for any serious developer. Once you make the jump into versioning you will never look back. There are a few options (cvs, git etc) but I choose to use subversion (svn) as there are plenty of tools out there to make it all very easy to integrate into your development process.

Coda has some built in svn integration, but since you cannot add comments to each revision with Coda I was on the lookout for something a bit more powerful. There are a number of options out there and for now I have settled on Versions.app which is a powerful (and pretty) tool to manage all your svn goodness. Whether or not I end up buying it after the demo runs out will depend on how I go over the next few weeks.

SVN Hosting

There are a few options when it comes to hosting – you can host it yourself or use a hosted solution. I have opted for a hosted solution although I am still tossing up between Dreamhost’s SVN option or using an application such as Assembla (which will include wiki, miletstones, trac etc). I like the idea of Assembla so will probably end up giving their free plan a go.

Download: http://www.assembla.comPrice: Free plan (200mb limit)Alternatives: Unfuddle, Google Code, Sourceforge or set it up yourself on your own server.

Graphics

I couldn’t go past Adobe PhotoShop and Adobe Illustrator for this. Seriously, if you have access to them for free you really need to consider using these tools. CS4 has some great improvements (tabbed windows ftw!) and I am still finding new features every time I use it. It truly is the industry standard for a reason.

Browser

Everyone will have a favorite browser – and for me that is Firefox. Combined with a few plugins such as Web Developer Toolbar, ColorZilla, YSlow and HTML Validator it is unbeatable in my opinion. But it doesn’t stop there as we need to check our websites in other browsers (Safari, Opera, IE6 and IE7 at a minimum).

Testing IE is the biggest pain of all on a mac. You can use VMware Fusion or Parallels to install Windows and test IE7. But then you cannot run native versions of IE6 and IE7 on Windows at the same time. Boo to Microsoft. So that means two installations of Windows which therefore means you need 4Gb of ram otherwise your development machine will be crawling.

I am still a bit undecided about all of this. I have installed ies4osx which at the moment only supports IE6 (despite the fact that the website says both IE6 and IE7). IE6 seems to work well enough so hopefully the developers can add in IE7 to the new version soon. I have been wanting to avoid installing Windows (via vmware fusion or parallels) as I do not want to slow my machine down just because I need to run IE6 and IE7. So for now I am just going to check rendering on my Windows desktop machine (with Multiple IE’s installed).

Conclusion

Now there is definitely room for improvement, and I will always be on the lookout for something better. If you have any great suggestions please let me know. I also haven’t really started using all of these together to any great degree just yet – the first task was just getting is all set up.

Maybe things will change in the future – but for now I am pretty darn happy with it all.