Thursday, June 21, 2007


Hey Windows freaks. Beat this.

In all seriousness if someone did code this for Windows it would rock.

Would have to be in WPF to match the "cool" factor of OSX transitions and visual/animation effects, but it could be done.

Until then you can either be jealous or buy a Mac. Do the latter you won't regret it. Trust Me.

Monday, June 18, 2007

Sometimes normalising data is a pain

We've all been there. Inherting some piece of crap Access app that was designed by someone who did a 5 minute polytech class. All the data is stored in one table or replicated in several tables. Above all else it's a nightmare to code against.

Of course databases like this could do with some normalisation. But sometimes, we can go a little too far. I am currently involved with a project to track data through a system and display eta's and other information on several display monitors around the physical location, to give workers a better idea of current state of play, allowing them to make better judgement calls. (can't go into specifics here).

At several locations along the route, there data is retrieved using some equipment. Each piece of equipment has a unique 6 character Id and posts information in real time to my app using tcp/ip sockets, with the 6 digit Id as the reference.

A process then filters this raw data and stores it in the database, with the primary key being the 6 digit char. Ok so far. At several points along the route decisions are made and data is manipulated and stored in another table for use by the seperate display process.

Against this spec, I start coding the system. I am lead developer on this system, but the overall lead (wrote the spec) is also designing the database. At some point he decided to normalise the data a little and move the 6 digit Id into a table of its own with an integer primary key.

This is fine, from a database point of view. It might be possible in the future that the Id field changes (6 digit char one) but not very likely. About as likely as Steve Jobs owning a Zune, likely.

So by normalising the data, my job as a developer has increased. A lot. First of all, my classes need to be rewritten to incorporate a int id field. ( I do this by hand - shoot me ), then my code needs to be rewritten to include joins to this new table . A simple change on the database creates a lot more work.

Some people at this point may argue that the design is at fault, or you shouldn't code against an incomplete db schema. This may be true. However in this system the int id field is meaningless, so I have to access two tables everytime, instead of just checking against the raw data. Ok, we may save a miniscule amount of space on the database server, but really, is it worth the extra effort, especially considering how cheap cycles and space are these days?

Normalisation, is good. But before you do it to the nth degree, it needs to weighed up against the system as a whole. Just because a DBA prefers fully normalised data, doesn't mean it should be done.

Tuesday, June 12, 2007

Safari Buzz (and fud)

There has been a lot reported about Safari 3.0 (beta) being available for Windows today. I have been running it all morning with few issues. However, if you're a Windows head, it seems to be the thing to do to bash Safari.

I think a lot of these people should remember ITS A FRICKEN BETA.

Also, if these people hate Apple so much, why are they so interested in this? I think thoust doth protest too much.

Monday, June 11, 2007

And now with Windows flavour

Just finished catching up with the WWDC Keynote address by Steve Jobs. Nothing earth shattering announced unfortunately. Leopard, OS X 10.5 looks very nice though. Makes Vista look a little tried. All features etc can be seen Here

The one interesting thing announced was that Apple have release a new version of Safari, that is also Windows compatible. According to (Apple) benchmarks it is the fastest browser available today. Download it here. If nothing else it makes it easier to test Websites on Windows. Until now the only way to test on all browsers was to have a mac and install Parallels or Boot Camp.

I guess it's a double edged sword. On one hand it makes it easier to make websites Safari compatible for Windows developers. On the other hand it takes away one excuse Windows developers can use for justifying a mac purchase. Not that one is needed, but Windows users are a little slow, lets face it....

Parallels for Mac 3.0 Review

I upgraded my version of Parallels to version 3 as soon it was released on Friday. The major draw card for me was 3D graphics support. I like to play the odd Windows game from time to time, so this is a major(ish) feature.

There are a slew of new features, including the ability to boot a Boot Camp partition within Parallels.

Install was fairly painless. I have a XP parallels image and a Vista boot camp drive. I tried both. I didn't notice any real world difference in my existing XP image to be honest. My Vista boot camp image loaded nicely within Parallels. It has to load some drivers to the OS first and requires a couple of reboots first, but it up and running within 10-15 minutes.

The Vista image running under Parallels had Aero turned off, and I couldn't get it running even with Direct3D support turned on. It run pretty sluggishly too. Quite a bit slower than native boot camp. This is understandable I guess but a little disappointing. I think it is down to memory issues with Vista (my version is Premium or Ultimate or wtf it's called) as much as anything else. My machine is a Macbook Pro @ 2.16Ghz and 2Gb Ram. The image had 1.5Gb ram allocated to it.

My advice would be unless you absolutely need it don't run Vista in Parallels.

XP runs as fast as native under Parallels, in fact, running in full screen it would be impossible to tell it wasn't running native, using real world / seat of pants benchmarking.

3D Gaming
The marketing blurb on the website says, "New! 3D Graphics lets you run today’s most popular PC games on a Mac". This is a little misleading.

I downloaded a demo of Star Wars Lego II and it crashed on the menu screen. There is a list of games on the website, one of which is Quake 4. I downloaded the demo - I also downloaded the native Mac version, but haven't benchmarked yet.

Quake worked fine, but in game fps was hovering around 14-18 on average. I had medium detail turned on, with shadows but no AA, running @ 1082 x 768.

I will benchmark against native Mac version be commenting. I would have thought however that 14-18fps would be quite low however.

Overall, Parallels is great and I recommend it to anyone. Word on the street suggests that something similar may be built into Leopard. Time will tell on that front.

I would hold off on buying or upgrading, until after the WWDC which starts today (11/06/2007) as this info will become more clear then. Also, if you are looking to run the latest PC games, I still think dual booting with Boot Camp is the best way forward.