Concept First Blog

IT consultancy, web development, data analysis and application development

Professional Development on a MacBook Pro

Like a number of people in the Delphi Community ( Steve Trefethen, Dan Miser ), and the development community as a whole, I now do all my development on a MacBook Pro. I changed to an Apple machine six months ago, for a number of reasons:

  • I needed a new laptop, and the MacBook Pro hardware is so goddamn thin, light, and good looking.
  • I am becoming increasingly disillusioned by Windows, especially the new DRM stuff.
  • I fancied trying out OSX, a change is as good as a rest and all that.
  • Bootcamp and virtualisation allow me to use Windows XP on an Apple laptop.
  • The web is freeing us from being locked into particular Operating Systems.

As a professional developer, most of my clients run Windows, and most of my native development is done using Visual Studio 2005 or Delphi 2006, connecting to SQL Server or Oracle backends. I boot my laptop into Windows to do this work, or use Parallels to run it with Mac OSX (when I got my MacBook Pro I got it with 3G of RAM so Windows runs pretty fast inside OSX). Increasingly though I am doing web development, which means I can do much more work inside just OSX.

The more I have used OSX, the more I prefer it to Windows, so I have put together this list of tools and hints for doing professional development on OSX:

Rules of Thumb to Make a Project Work

I am currently coming to the end of a large project for one of our clients, where I have been acting in the Business Analyst and Technical Lead roles. It has been a fun and successful project, and I wanted to pass along some of the lessons I’ve learnt (again) about how to make Technical Analysis (and the project as a whole) successful (and also make a checklist for next time around ;-).

It must be remembered that IT solutions (and really any business change) are all about two things: Incentives and Trade-offs.

Feedburner and Apache Redirects

Looking at the load this blog is causing, virtually all of it’s requests are for the syndication feeds so I decided to off-load the network bandwidth to Feed Burner ( recently acquired by Google).

Feedburner basically checks your site every 30 minutes (you can also manually request an update) and caches the response. Rather than ask my subscribers to change the feeds source, I decided to use Apache to redirect all requests to my feeds to feedburner, unless it was actually feedburner requesting the information.

To get this to work took a bit of Apache shenanigans, so I thought I would document it here both for myself and for anyone else who needs to do the same. It is also a useful example of how powerful Apache is, particularly as a forward facing server than manages the virtual URL space and links it up to various webs server technologies and platforms behind the scenes (loose URL => implementation coupling). The blog is running on Ruby on Rails, Typo engine, running on port 4000 internally. Our firewall blocks outside access to this port, so we use Apache to proxy it for us (it rewrites any URL’s on the way out to be the correct external address). We also use it as an SSL gateway, so we setup all the certificates in just one place.

SQL Server 2000 Spatial ?

SQL Server 2000 has always been one of my favourite bits of software. I have written various software that runs on top of MSDE and always been really pleased with it.

Having spent a great deal of time recently working with Oracle 10, I have really noticed how much easier administration is with SQL Server. I have also had lots of issues with Oracle drivers (in particular where CLOB fields are used).

I have to admit to being rather underwelmed by SQL Server 2005. I’m not a great fan of stored procedures (I believe the logic should be in a middle tier) and certainly not of running .net code inside a DB server.

One thing I was looking forward to was the addition of spatial algorithms to SQL Server.


I’ve been having a lot of problems with comments on this blog taking forever to post, being silently rejected, etc. After lots of messing around, I found it to be a combination of a) A theme that doesn’t handle problems with comments being locked and b) the built in anti spam protection making comments take 30 seconds rather than half a second to post.

I never want to calculate how much of my life I’ve lost to spam or spam filters, doesn’t bare thinking about.

Apologies to anybody who tried to post a comment.

Whilst doing this, I used a great new feature of the absolutely essential web development plug in for Firefox, Firebug. One of the new views, network activity monitoring, shows all the files loaded (the contents of the request and response) and how long overall the process took.