<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss">
 	<channel>
		<title>Mike Abdullah</title>
		<link>http://www.mikeabdullah.net/</link>
		<description></description>
		<language>en-GB</language>
		<lastBuildDate>Thu, 19 Jun 2008 11:17:22 +0100</lastBuildDate>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>Sandvox Pro 1.2.7</generator>
		<item>
			<title>Handy Equality Testing Method</title>
			<link>http://www.mikeabdullah.net/equality_testing.html</link>
			<description>
&lt;p&gt;Cocoa provides the nice standard -[NSObject isEqual:] method for comparing equality of two objects, which is very convenient, but introducing nil values can throw a spanner in the works. Namely, doing -[someNilVariable isEqual:nil] will return nil as the message was sent to a nil object. This might well be what you intended, but I find myself often wanting the reverse; two nil objects should be considered equal.&lt;/p&gt;
&lt;p&gt;So, here's a nice simple NSObject category to handle that:&lt;/p&gt;
&lt;code style=&quot;white-space:pre;&quot;&gt;
@implementation NSObject (MAEqualityAdditions)
/*  Like the standard -[NSObject isEqual:] method but can handle nil values.
 */
+ (BOOL)object:(NSObject *)object1 isEqual:(NSObject *)object2;
{
   BOOL result;
   if (object1 &amp;amp;&amp;amp; object2)
   {
       result = [object1 isEqual:object2];
   }
   else
   {
       result = (object1 == object2);
   }
   return result;
}
@end
&lt;/code&gt;
&lt;p&gt;
&lt;/p&gt;
			</description>
			<pubDate>Wed, 21 May 2008 15:17:48 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/equality_testing.html</guid>
		</item>
		<item>
			<title>In Search Of Laptop Perfection</title>
			<link>http://www.mikeabdullah.net/laptop_perfection.html</link>
			<description>
&lt;p&gt;Some months ago the hard disk in my relatively ancient PowerBook G4 12&amp;quot; gave out and I've been without a laptop since then. This hasn't been a problem since my development work is focused almost exclusively on my iMac. But, with the prospect of WWDC looming and the chance of laptop updates before then seemingly slim, I figured it was time to plump for a new MacBook Pro 15&amp;quot;. What follows is my thoughts on the lappie; hopefully they may offer something useful to prospective buyers elsewhere.&lt;/p&gt;
&lt;h4&gt;Screen&lt;/h4&gt;
&lt;p&gt;Clearly, one of the first things you notice with any laptop is the screen. I chose the matte option (can't stand the glossy screen's glare) and can report that it is crisp and bright. Indeed, even better in full sunlight than my Core 2 Duo 20&amp;quot; iMac.&lt;/p&gt;
&lt;p&gt;My only nitpick is that in certain lighting conditions, and if you have a mostly-white window at the bottom of the screen, the backlighting shines through oddly creating a sort of ripple effect. Apologies that I have no photo to demonstrate this.&lt;/p&gt;
&lt;span style=&quot;color: rgb(51, 51, 51); font-family: Georgia; font-size: 12px; font-style: normal; font-weight: normal; white-space: normal;&quot;&gt;&lt;h4 style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;
Performance &amp;amp; Connectivity&lt;/h4&gt;
&lt;p&gt;I'm finding the 2.4 GHz processor very pleasant to work with and it certainly seems to edge out my 2.16 GHz Core 2 Duo iMac. £1300 is a pretty steep opening price for a laptop, but considering the 2 gigs of RAM and other specifications this is certainly not extortionate.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;The early MacBook Pros garnered something of a reputation for running uncomfortably hot. I can report that this is certainly not the case with the latest generation; mine runs noticeably cooler than my mid-generation 12&amp;quot; PowerBook. Even compiling hefty chunks of code (as I do regularly for Sandvox) it has never become more than a little warm.&lt;/p&gt;
&lt;p&gt;Building on this, the battery life is great. I'd say my PowerBook averaged 3.5 hours under normal conditions, and that the Pro gets 3.45. Only a small improvement, but based on previous reading I was expecting to instead receive a decrease instead. Certainly the system appears to be excellent at winding down when under no load. I had the screen turned off to run the machine as a simple jukebox at a party the other night and in just over an hour it only used 15% or so.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: Georgia; font-size: 12px; font-style: normal; font-weight: normal; white-space: normal;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The laptop comes loaded with a great range of ports (not sure I'll ever need Firewire 800, but still…), all decently spaced. A USB port on either side is a nice touch, and I'm always pleased to see a laptop with no connections at the rear.&lt;/p&gt;
&lt;/span&gt;
&lt;h4&gt;Keyboard&lt;/h4&gt;
&lt;p&gt;The MacBook Pro/PowerBook keyboard is quite simply the best I've ever used, desktop or laptop. It just somehow has exactly the right amount of resistance when pressing a key, and so I'm hugely relieve that Apple hasn't messed with it since the early Aluminium days.&lt;/p&gt;
&lt;p&gt;Probably the biggest change is the rearranged function keys. There are now playback controls (very welcome thank you), dedicated keys for Exposé/Dashboard, and everything else has been rearranged to cope. It's certainly time Exposé got its own key! Some quick points of note on the function keys:&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Command-Exposé shows the desktop but I cannot find any equivalent for Spaces. Option-Exposé perhaps would be nice.&lt;/li&gt;
	&lt;li&gt;It would be neat if the volume controls mimicked the Apple remote by turning up application volume when the system volume can go no further.&lt;/li&gt;
	&lt;li&gt;Small volume adjustments can be made by holding Option-Shift at the same time. This should really apply to the brightness controls also.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;For a long time I reckoned that with the extra space afforded by a 15&amp;quot; display, Apple could add a dedicated number pad in as well. However, I now think that this wouldn't work as it would force the centre of the keyboard over to the left, making the whole experience unbalanced. You &lt;i&gt;could&lt;/i&gt; even it out by moving the trackpad too, but then either left or right-handers get upset!&lt;/p&gt;
&lt;p&gt;The Caps Lock key now acts just like the latest Apple keyboards whereby a light tap on the key is not enough to actually engage the lock. You have to hold the key down for just long to indicate you mean it. I'm not sure how well this will work out in the long run and I may end up simply disabling Caps Lock as I do on the iMac (it has an older style keyboard).&lt;/p&gt;
&lt;p&gt;One thing I miss most on a laptop keyboard is the lack of forward delete. At some point (I'm fairly certain my old PowerBook didn't support), Apple has made Fn-Backspace perform this task. It's definitely a help, but feels kind of clunky to me.&lt;/p&gt;
&lt;p&gt;When typing, one can use Option-2 to insert a Euro sign, and Option-3 to insert a hash (the latter applies only to UK keyboards I believe). Why, oh why then, have Apple chosen only to indicate the Euro sign? I actually had a friend call me up from London recently to ask me how on Earth he could type in a hash sign that was desperately needed as part of a password!&lt;/p&gt;
&lt;p&gt;Finally for this section Apple has at some point replaced the Enter key with a second Option button; a much welcome change.&lt;/p&gt;
&lt;h4&gt;Trackpad&lt;/h4&gt;
&lt;p&gt;Of course what review would be complete without a mention of the new multitouch trackpad support? On the whole it works fairly well. The original 2-finger scrolling behaviour works a treat and is nicely supplemented by the 3-finger &amp;quot;swipe&amp;quot; that can navigate within certain apps such as Safari. However, the trackpad has not been enlarged compared to previous iterations and makes the &amp;quot;pinch&amp;quot; gesture feel rather cramped. This might be partly a performance issue though; in my tests both iPhoto and the Finder have been rather slow to respond.&lt;/p&gt;
&lt;p&gt;Clearly, what is needed to complete the picture is an API for 3rd parties to use. For example, zooming in OmniGraffle would be incredibly handy, and we'd like to offer similar controls to Safari within the Sandvox web view.&lt;/p&gt;
&lt;h4&gt;Casing&lt;/h4&gt;
&lt;p&gt;Occasionally people complain that the MacBook Pro case design is &amp;quot;dated&amp;quot; and &amp;quot;sorely in need of a refresh.&amp;quot; I disagree. It is almost a design classic now, &amp;quot;feels&amp;quot; just right to use, and is still streets ahead of the competition. The only suggestion I really have is that the magnetic latching system of the MacBook is nicer to work with; copy that over and you're pretty darn near nirvana. Not that somehow making things lighter and stronger is ever a bad area for improvement!&lt;/p&gt;
&lt;h4&gt;Battery &amp;amp; Charger&lt;/h4&gt;
&lt;p&gt;I have used a MagSafe charger before at WWDC 2007 and can quite safely say that this thing is genius; it is a big improvement over the previous design. But let's get some decent licensing on this thing! Allow third parties to build their own chargers, and, more importantly, I'd like a single charger design to work with whatever brand of computer I buy. Let's do the right thing for the consumer and consolidate around the best the market has to offer; clearly at this time MagSafe. One day I can even see the technology being taken further for such items as the iPod's dock connector.
&lt;/p&gt;
&lt;p&gt;The system Apple's chargers use for packing away the cable works pretty well (certainly compared to competing products that I've experienced), but I remain convinced that better can be achieved. Since many ageing hoovers are perfectly capable of using a spring-loaded cable retracting system, I would love to see if something similar could be accommodated into a portable laptop charger.&lt;/p&gt;
&lt;p&gt;Also, I was pleasantly surprised to find that battery removal is much nicer compared to the MacBook and 12&amp;quot; PowerBook.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
			</description>
			<pubDate>Mon, 31 Mar 2008 13:42:12 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/laptop_perfection.html</guid>
		</item>
		<item>
			<title>Kitchen Jenga</title>
			<link>http://www.mikeabdullah.net/kitchen_jenga.html</link>
			<description>
&lt;h4&gt;Introduction&lt;/h4&gt;
&lt;p&gt;Kitchen Jenga is an exciting new game for all the house to enjoy. Make boring washing up a thing of the past with our easy-to-follow instructions. Come with us now, explore the game of kings! (if rather strapped for cash and so need to do the washing up themselves)&lt;/p&gt;
&lt;h4&gt;Playing pieces&lt;/h4&gt;
&lt;p&gt;You will need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Game board - Any washing/draining board will do really&lt;/li&gt;
&lt;li&gt;Playing pieces - A good assortment of plates, cutlery and other kitchen equipment&lt;/li&gt;
&lt;li&gt;2 or more players (generally rather resigned housemates)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Gameplay stage one&lt;/h4&gt;
&lt;p&gt;Begin by washing up as normal and placing the items upon the playing surface. However, do &lt;span&gt;&lt;b&gt;not&lt;/b&gt;&lt;/span&gt; attempt to then remove any of the playing pieces. Instead, players should take it in turns to do their washing up and stack it upon the previous items. This stage of the game is lost by any player committing a breakage or major slippage, or by being forced to remove an item on account of needing it for cooking. Respect can be earned by the use of elaborate stacking techniques.&lt;/p&gt;
&lt;p&gt;Once a player has been defeated at stage one, it is time to move onto stage two.&lt;/p&gt;
&lt;h4&gt;Gameplay stage two&lt;/h4&gt;
&lt;p&gt;At this point you should have a carefully teetering tower of assorted kitchenware. Players should attempt to remove items, one at a time, as needed for food preparation. The game is lost if a player is forced to remove an item they do not need, or if they cause the stack to come tumbling down.&lt;/p&gt;
&lt;p&gt;With stage two over normal kitchen life can resume, ready to start the Kitchen Jenga again when desired.&lt;/p&gt;
&lt;h4&gt;Examples&lt;/h4&gt;
&lt;p&gt;Kitchen Jenga has become quite the artform in my house. Here's a few examples of a tower at its peak:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.mikeabdullah.net/_Media/dsc03338_textmedium.png&quot; alt=&quot;DSC03338&quot; style=&quot;outline:none;&quot; /&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.mikeabdullah.net/_Media/dsc03533_textmedium.png&quot; alt=&quot;DSC03533&quot; /&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;
&lt;/p&gt;
&lt;h4&gt;Advanced gameplay&lt;/h4&gt;
&lt;p&gt;There are a few tricks available to the seasoned pro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When adding to the tower, can you make it precarious enough to slip up the next player?&lt;/li&gt;
&lt;li&gt;Wash up carefully - if a particular item placed on the stack could lose you the round, consider leaving it until later.&lt;/li&gt;
&lt;li&gt;Plan your meal according to the tower's status. Is that grater delicately placed upon the top? Simple, make a cheesy dish tonight!
&lt;/li&gt;
&lt;/ul&gt;
			</description>
			<pubDate>Tue, 11 Mar 2008 15:26:15 +0000</pubDate>
			<guid>http://www.mikeabdullah.net/kitchen_jenga.html</guid>
		</item>
		<item>
			<title>Mmmm, Market Blindness</title>
			<link>http://www.mikeabdullah.net/market_blindness.html</link>
			<description>
&lt;p&gt;According to a new article on &lt;a href=&quot;http://www.appleinsider.com/articles/08/03/11/suppliers_hope_apple_newton_pad_boosts_flash_orders.html&quot;&gt;AppleInsider&lt;/a&gt;:&lt;/p&gt;
&lt;div style=&quot;padding:0 30px;&quot;&gt;&lt;p&gt;&amp;quot;Although the Cupertino-based company recently introduced a solid-state disk (SSD) version of its MacBook Air, suppliers believe the steep retail price of that model will do little to encourage widespread consumption amongst consumers, &amp;quot;which can hardly spur meaningful SSD penetration and NAND flash procurement.&amp;quot;&lt;/p&gt;
&lt;p&gt;Instead, the memory makers are reportedly anticipating the launch of the company's first ultra-mobile PC (UMPC) as a possible catalyst to improve demand and boost NAND pricing later in the year.&amp;quot;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Er, have they heard of this little thing called the &lt;a href=&quot;http://developer.apple.com/iphone/program/&quot;&gt;iPhone SDK&lt;/a&gt;? Just because it doesn't operate exactly like a traditional desktop PC doesn't mean the device isn't a personal computer.&lt;/p&gt;
&lt;p&gt;Honestly, I think there's going to be very few tasks that could technically be accomplished on a device the size of the iPhone, but which the SDK limits. There are plenty of commentaries around the web complaining about the lack of multitasking, but just step back a moment. How many apps really require it? The whole point of the iPhone is to turn things slightly on their head and say that you don't need to multitask the software processes if they save their data properly and launch &amp;amp; quit quick enough.&lt;/p&gt;
			</description>
			<pubDate>Tue, 11 Mar 2008 15:05:51 +0000</pubDate>
			<guid>http://www.mikeabdullah.net/market_blindness.html</guid>
		</item>
		<item>
			<title>KSExtensibleManagedObject</title>
			<link>http://www.mikeabdullah.net/ksextensiblemanagedobject.html</link>
			<description>
&lt;p&gt;One of the limiting factors in the &lt;a href=&quot;http://developer.apple.com/macosx/coredata.html&quot;&gt;Core Data&lt;/a&gt; framework is that once you start shipping a particular version of your data model, it's rather fixed. Discover you need to add an extra attribute to an entity? Well I'm afraid that means writing code to handle migrating all the existing documents out there to your new model. Not very convenient if this is supposed to be just a minor bug fixing release.&lt;/p&gt;
&lt;p&gt;A fairly simple solution is to include some general, spare attributes in each entity that can be used later on if needs be. It works, but isn't very neat; those extra key paths are not self-explanatory, each property is of a fixed type, and what if you need more of them?&lt;/p&gt;
&lt;p&gt;Furthermore, in an application like &lt;a href=&quot;http://www.karelia.com/&quot;&gt;Sandvox&lt;/a&gt; we need to provide persistent storage to a broad range of plugins, each with its own differing requirements. In the early days, &lt;a href=&quot;http://talblog.info/&quot;&gt;Terrence&lt;/a&gt; &lt;a href=&quot;http://talblog.info/archives/2005/07/diagrams_that_b_1.html&quot;&gt;experimented&lt;/a&gt; with taking each plugin's storage needs and merging them together to create a giant model. But of course, this is fragile, because as soon as you add in a new plugin type the whole model goes under.&lt;/p&gt;
&lt;p&gt;So, I proudly present our final (or at least current) solution: KSExtensibleManagedObject. This has been written by myself as a new class that pulls together everything from our previous code, ready for the next Sandvox release.&lt;/p&gt;
&lt;p&gt;On the surface KSExtensibleManagedObject operates just like a normal managed object. But, if you call &lt;code&gt;-valueForKey:&lt;/code&gt; or &lt;code&gt;-setValue:forKey:&lt;/code&gt; it will happily return/store the value, rather than raise an exception as NSManagedObject would. For example, to support an extra property in your model named &amp;quot;foobar,&amp;quot; without having to change the actual model in any way, you can just start calling &lt;code&gt;[setValue:x forKey:@&amp;quot;foobar&amp;quot;]&lt;/code&gt; without worry.&lt;/p&gt;
&lt;p&gt;How is this magic accomplished? All you have to do is provide one extra key in your model of the type &amp;quot;binary data.&amp;quot; Whenever a key is accessed that the model does not natively handle, KSExtensibleManagedObject steps in to convert and store it as raw data. By default, the attribute &amp;quot;extensiblePropertiesData&amp;quot; is used, but subclasses can override this if they wish. Here's a quick screenshot of how this is set up in the Sandvox data model:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.mikeabdullah.net/_Media/pastedgraphic-2_textmedium.png&quot; alt=&quot;extensiblePropertiesData attribute screenshot&quot; style=&quot;outline:none;&quot; /&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;The only other thing that KSExtensibleManagedObject asks of you is to pass it objects that conform to the NSCoding protocol in order for them to be archived (although there are methods provided for you to override that allow archiving using different means if desired).&lt;/p&gt;
&lt;p&gt;There are of course a few limitations to the class. Foremost, just like transient Core Data properties, you cannot use any of the extensible properties in fetch requests since they are not directly available in the datastore. And of course while performance is good, it's not on a par with a native Core Data attribute. Other than that, everything should behave as is normal, including full undo/redo support with appropriate KVO notifications. Also, as Dan points out, Leopard is not required; KSExtensibleManagedObject works just fine on 10.4 and later.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;So what are you waiting for? &lt;a href=&quot;_Media/ksextensiblemanagedobject.zip&quot;&gt;Download&lt;/a&gt; the class files now and start playing with it! I hope somebody else out there will find this code handy; certainly KSExtensibleManagedObject is being utilised for all the major entities of the Sandvox data model to provide us with greater flexibility.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;&lt;a href=&quot;_Media/ksextensiblemanagedobject.zip&quot;&gt;Download KSExtensibleManagedObject source code&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
			</description>
			<pubDate>Wed, 27 Feb 2008 13:14:05 +0000</pubDate>
			<guid>http://www.mikeabdullah.net/ksextensiblemanagedobject.html</guid>
		</item>
		<item>
			<title>UI Critique: Sending e-mail</title>
			<link>http://www.mikeabdullah.net/sending_e-mail_ui.html</link>
			<description>
&lt;p&gt;Consider the UI for sending an e-mail in Apple's e-mail application, snappily titled &amp;quot;Mail.&amp;quot;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Click the &amp;quot;New Message&amp;quot; button in the toolbar&lt;/li&gt;
	&lt;li&gt;Write your message and enter the address details&lt;/li&gt;
	&lt;li&gt;Click the &amp;quot;Send&amp;quot; button&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All very straightforward. But, something I noticed today:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mikeabdullah.net/_Media/pastedgraphic_textmedium.png&quot; alt=&quot;image&quot; style=&quot;outline:none;&quot; /&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;The &amp;quot;Send&amp;quot; and &amp;quot;Close&amp;quot; buttons (polar opposites) are right next to each other. In the case of accidentally clicking the close button when you meant to send a message this is not a problem; Mail prompts you to be sure of the action. However, imagine an e-mail you've just written but then had second thoughts about. Perhaps a snarky message to your boss. So you go to get rid of the message, but horror of horrors you hit the wrong button!&lt;/p&gt;
&lt;p&gt;Is this bad UI design? How likely is the above scenario to happen? Hard to say.&lt;/p&gt;
&lt;p&gt;The situation does recall to mind similar complaints when &lt;a href=&quot;http://www.discoapp.com/&quot;&gt;Disco&lt;/a&gt; first appeared on the scene. A few people complained that the &amp;quot;remove item&amp;quot; buttons were located right next to the scrollbar. (Sorry, I haven't found a link for this). Anyone else have any thoughts on the matter?&lt;/p&gt;
			</description>
			<pubDate>Thu, 01 Nov 2007 12:38:32 +0000</pubDate>
			<guid>http://www.mikeabdullah.net/sending_e-mail_ui.html</guid>
		</item>
		<item>
			<title>Trouble At' Mill</title>
			<link>http://www.mikeabdullah.net/trouble_at_mill.html</link>
			<description>
&lt;p&gt;There is to be a &lt;a href=&quot;http://www.wallaceandgromit.com/forum/read/590&quot;&gt;new Wallace and Gromit film&lt;/a&gt;. I just finished re-watching &amp;quot;The Curse Of The Wererabbit&amp;quot; so am thoroughly looking forward to the next one. The announcement at the link above has a truly admirable number of bad puns.&lt;/p&gt;
&lt;p&gt;I actually picked up the news via &lt;a href=&quot;http://www.kottke.org/remainder/07/10/14236.html&quot;&gt;Kottke&lt;/a&gt;, where I thought it hilarious that he felt the need to explain how to handle the northernness of the title.&lt;/p&gt;
			</description>
			<pubDate>Fri, 19 Oct 2007 15:43:52 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/trouble_at_mill.html</guid>
		</item>
		<item>
			<title>Perpetually Undecided</title>
			<link>http://www.mikeabdullah.net/perpetually_undecided.html</link>
			<description>
&lt;p&gt;Today I came across this rather neat &lt;a href=&quot;http://www.news.com.au/heraldsun/story/0,21985,22556281-661,00.html&quot;&gt;right brain versus left brain test&lt;/a&gt;&lt;a href=&quot;http://www.news.com.au/heraldsun/story/0,21985,22556281-661,00.html&quot;&gt;&lt;/a&gt; via &lt;a href=&quot;http://daringfireball.com&quot;&gt;John Gruber&lt;/a&gt;. So I look at it and see the dancer turning anti-clockwise, and then head over to the text of the article to find out what it means. However, for no good reason, my eye flicks back to the dancer again and she's changed direction! (now going clockwise). Hmm…&lt;/p&gt;
&lt;p&gt;Apparently, the direction you perceive corresponds to which side of your brain is more heavily used. Anti-clockwise corresponds to the left side (the more common according to the article), and clockwise for the right side. The general gist seems to be that those who use the right side of the brain are of the &amp;quot;arty&amp;quot; variety.&lt;/p&gt;
&lt;p&gt;The article continues on to say that you can try to focus and change the direction of the animation. Well I tried this, but to no avail. However, I keep switching away from the image and then coming back; often it's changed direction with no effort on my part. I guess this explains why I'm such an indecisive person!&lt;/p&gt;
			</description>
			<pubDate>Thu, 11 Oct 2007 19:06:54 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/perpetually_undecided.html</guid>
		</item>
		<item>
			<title>A short update</title>
			<link>http://www.mikeabdullah.net/a_short_update.html</link>
			<description>
&lt;p&gt;I have not posted anything here for rather a long time and guess I should be vaguely sorry for that. Basically I was a bit of a plonker and accidentally deleted the Sandvox document for the site. And of course my backups were quite out of date.&lt;/p&gt;
&lt;p&gt;(Incidentally, this has just allowed me to discover that the Mac OS X spellchecker does not recognise &amp;quot;plonker.&amp;quot; tch tch!)&lt;/p&gt;
&lt;p&gt;So what's finally forced me to fix the site up is the imminent release of Sandvox 1.2.3; I needed some way to test out our release candidate. Keep an eye out for it very soon - no real new features as such, but some nice fixes and general improvements.&lt;/p&gt;
&lt;p&gt;Hopefully I'll get round to writing more soon.&lt;/p&gt;
			</description>
			<pubDate>Wed, 26 Sep 2007 01:16:36 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/a_short_update.html</guid>
		</item>
		<item>
			<title>WWDC 2007 Day 1</title>
			<link>http://www.mikeabdullah.net/wwdc_day_1.html</link>
			<description>
&lt;p&gt;So Monday is the big day, the day Steve takes to the stage and attempts to warp our minds to accept Apple's latest acts of genius.&lt;/p&gt;
&lt;p&gt;I'm here at WWDC under Apple's student scholarship program. When it comes to the keynote, this means you are the lowest of the low. Students actually witnessing the Stevenote? pssh! Absolute madness! Instead we were taken to one of the overflow rooms &lt;b&gt;after&lt;/b&gt; the keynote had started. Turns out I missed the little Mac &amp;amp; PC skit and the start of the games announcement. Oh well.&lt;/p&gt;
&lt;p&gt;So, my thoughts on the keynote?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The new Menu Bar and Dock seem a little odd to me. I don't quite see why anyone should be that desperate to see the very last bit of their desktop picture that they're willing to sacrifice legibility. Stacks though are awesome (much better than the &amp;quot;piles&amp;quot; codename that has been bandied about in the past!); I just hope we can also somehow view regular folders on the desktop like this. The new desktop picture is really nice and, whilst I commend going to a single unified window style, I'm not sure if I like the one they've chosen yet.&lt;/li&gt;
&lt;li&gt;People have been requesting a new Finder for years; the question is whether we'll actually like it. The whole improved file sharing thing is a welcome improvement, but I'm really not convinced CoverFlow is worthwhile.&lt;/li&gt;
&lt;li&gt;QuickLook is brilliant; in fact so brilliant we really should have had this technology years ago! Guess it does mean that all us app developers do have to write a bunch of new code now to do it though.&lt;/li&gt;
&lt;li&gt;64 bit? I'm not really too bothered at the moment; I have no apps processing anywhere near that much data. However, the new things it lets Apple do in Objective C are pretty cool though.&lt;/li&gt;
&lt;li&gt;Again, Core Animation is amazing - I just worry how some developers are going to abuse it!&lt;/li&gt;
&lt;li&gt;Boot Camp is also a good thing to have, but of no real use to me at the moment. I like them sticking the drivers on the Leopard install disk; very sneaky.&lt;/li&gt;
&lt;li&gt;Spaces is going to be a massive boon to the way I work.&lt;/li&gt;
&lt;li&gt;Webclip is some damn good technology. Hopefully it will stop the flood of utterly pointless widgets that just recreate part of a website. The Movies widget seems pretty neat, although as &lt;a href=&quot;http://gigliwood.com/weblog/&quot;&gt;Dan&lt;/a&gt; said it looks just like the functionality that Watson had!&lt;/li&gt;
&lt;li&gt;The improvements to iChat are useful; however most them seem to be just catching up to &lt;a href=&quot;http://www.adiumx.com/&quot;&gt;Adium&lt;/a&gt; and other clients, or &amp;quot;fun stuff&amp;quot; that isn't much use in practice. The thing with Steve Balmer was brilliant though.&lt;/li&gt;
&lt;li&gt;I really, really want Time Machine. Just something to simplify my current backup setup and also adds the really cool new &amp;quot;time machine&amp;quot; functionality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then it was time to dig into the first tech sessions and then learn some of the top secret new stuff still to come in Leopard. It's pretty cool! Following the first session of the afternoon it turns out there are free snacks including cookies; this is why I'm really here!&lt;/p&gt;
			</description>
			<pubDate>Wed, 26 Sep 2007 01:04:56 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/wwdc_day_1.html</guid>
		</item>
		<item>
			<title>Score, Apple Design Award!</title>
			<link>http://www.mikeabdullah.net/score_apple_design_award.html</link>
			<description>
&lt;p&gt;Wow, just wow.&lt;/p&gt;
&lt;p&gt;Thus far I've been absolutely loving WWDC but tonight was just amazing. Frankly, I really wasn't expecting it, but Sandvox got &lt;a href=&quot;http://developer.apple.com/wwdc/ada/&quot;&gt;runner up&lt;/a&gt; in the Apple Design Awards section for Best Mac OS X User Experience! How cool is that! I mean my first ever WWDC and I get to go up on stage and take some credit for my small amount of work on Sandvox thus far. So, I just really hope we can continue to go on up from here.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; Steve Harris has posted a &lt;a href=&quot;http://www.flickr.com/photos/sharris/543634091/&quot;&gt;photo of us&lt;/a&gt; to &lt;a href=&quot;http://www.flickr.com&quot;&gt;Flickr&lt;/a&gt;&lt;/p&gt;
			</description>
			<pubDate>Wed, 13 Jun 2007 06:36:16 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/score_apple_design_award.html</guid>
		</item>
		<item>
			<title>WWDC 2007 Day 0</title>
			<link>http://www.mikeabdullah.net/wwdc_day_0.html</link>
			<description>
&lt;p&gt;(No, I'm not being a major geek and starting counting from zero; this post is about the Sunday just before WWDC)&lt;/p&gt;
&lt;p&gt;So I'm here at WWDC, lucky enough to have won one of Apple's &lt;a href=&quot;http://developer.apple.com/wwdc/students/&quot;&gt;Student Scholarship&lt;/a&gt; places. Sadly Apple are a little stingy so I have to sort my own travel and accommodation arrangements. I managed to get a flight straight to San Francisco from Heathrow and now I'm actually staying at Dan's house which is very very kind of him.&lt;/p&gt;
&lt;p&gt;During Sunday daytime we decided to do some more of the whole tourist thing for my benefit; so Dan bundled the kids in the car and Terrence and myself set off with them to see the Golden Gate Bridge - my God it's an impressive bit of engineering! (Photos coming soon I promise.)&lt;/p&gt;
&lt;p&gt;We then headed around to something called the Bay Model which is this incredible scale model recreation of the Bay area's waterways. The Army Corps. used to use it to predict how changes to the landscape would affect overall water flow. Of course these days it's all done on a computer simulation, but still the whole thing is very cool.&lt;/p&gt;
&lt;p&gt;Come the evening Terrence and I attended the sfMacISV Soirée at some place I have no idea where. (Yes, I am basically lost in San Francisco just following the other guys around). Some lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Beer &lt;i&gt;feels&lt;/i&gt; really expensive when you hand over a note and get no change.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When Daniel Jalkut and Wolf ask you which blog/RSS feed you'd prefer to have on a desert island be very careful. You're treading a thin line.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;BART is really hard to have a conversation on. I don't get it, the tube isn't anywhere near that loud!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
			</description>
			<pubDate>Wed, 13 Jun 2007 02:04:58 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/wwdc_day_0.html</guid>
		</item>
		<item>
			<title>Quick Review: Charlie and the Chocolate Factory</title>
			<link>http://www.mikeabdullah.net/charlie_and_the_chocolate_factory.html</link>
			<description>
&lt;p&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;Just finished watching this and found it surprisingly enjoyable - worth seeing for the Oompa Loompas imitating Kiss alone! Johnny Depp's take on Willy Wonka is brilliant, although some of the other characters go too undevloped.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;That said, the ending is a little odd, with some twisting of the original book's plot to give Willy Wonka a backstory.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;I found the &amp;quot;Features&amp;quot; section of the DVD to be a bit of a misnomer; all it contains is the film's trailer and a plug for the soundtrack CD.&lt;/p&gt;
&lt;p&gt;Overall: 7/10&lt;/p&gt;
			</description>
			<pubDate>Thu, 03 May 2007 14:08:10 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/charlie_and_the_chocolate_factory.html</guid>
		</item>
		<item>
			<title>House Climbing</title>
			<link>http://www.mikeabdullah.net/house_climbing.html</link>
			<description>
				&lt;div class="article-thumbnail"&gt;
					&lt;img id="k-Page-image-232"
						src="http://www.mikeabdullah.net/_Media/dsc02358_thumbnail.png"
						alt="House Climbing"
						width="96"
						height="128" /&gt;
				&lt;/div&gt;
&lt;p&gt;Never let anyone tell you climbing your own home is a bad idea.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/16451166@N00/sets/72157600160960725/detail/&quot;&gt;Full photo set&lt;/a&gt;&lt;/p&gt;
			</description>
			<pubDate>Mon, 30 Apr 2007 19:13:25 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/house_climbing.html</guid>
			<enclosure url="http://www.mikeabdullah.net/_Media/dsc02358_medium.png" length="122670" type="public.png" />
        <media:thumbnail url="_Media/dsc02358_thumbnail.png" />
        <media:content url="_Media/dsc02358_medium.png" type="public.png" />
		</item>
		<item>
			<title>Mamooba Acquires Event Maker</title>
			<link>http://www.mikeabdullah.net/mamooba_acquires_event_make.html</link>
			<description>
&lt;p&gt;Mamooba announced today that it has acquired Event Maker, the popular Mail/iCal integration utility, from Solewood Software.&lt;/p&gt;
&lt;p&gt;The acquisition promises an exciting future for Event Maker.&lt;/p&gt;
&lt;p&gt;Event Maker is designed to be a streamlined way of taking e-mails from Apple’s Mail application and creating iCal calendar events from them. In addition to this, Event Maker can also  be used simply to make an event in iCal from scratch.&lt;/p&gt;
&lt;p&gt;At the time of acquisition Event Maker is in Beta (0.4.6). Mamooba hope to bring version 1.0 to market in the very near future.&lt;/p&gt;
&lt;p&gt;For more information visit &lt;a href=&quot;http://www.mamooba.com&quot;&gt;www.mamooba.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mamooba is a privately held company focused on Macintosh software development.&lt;/p&gt;
			</description>
			<pubDate>Tue, 24 Apr 2007 11:26:53 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/mamooba_acquires_event_make.html</guid>
		</item>
		<item>
			<title>Sandvox 1.2</title>
			<link>http://www.mikeabdullah.net/sandvox_12.html</link>
			<description>
&lt;p&gt;Oh so conveniently just in time for the &lt;a href=&quot;http://developer.apple.com/wwdc/ada/&quot;&gt;Apple Design Awards&lt;/a&gt;, &lt;a href=&quot;http://www.karelia.com&quot;&gt;Sandvox 1.2&lt;/a&gt; was released last night to the unsuspecting public.&lt;/p&gt;
&lt;p&gt;I'm rather proud of this release since it's the first time I've had an engineering contribution in addition to the documentation (look Ma, I'm in the credits!). My task was to write two of the new pagelets in Sandvox; Amazon List and RSS Badge.&lt;/p&gt;
&lt;p&gt;I think they're both awesome (particularly the Amazon List since it's almost its own little application), so check them out. More importantly, both are genuinely useful; I've even added an RSS Badge to the sidebar of this site to prove it!&lt;/p&gt;
&lt;p&gt;Sandvox 1.2 also adds a whole load of other new features that I think people will really like such as setting the banner image for a site.  And the Pro users aren't left out, the new Code Injection and &quot;Edit Raw HTML&quot; functionality is extremely powerful.&lt;/p&gt;
			</description>
			<pubDate>Mon, 23 Apr 2007 14:17:41 +0100</pubDate>
			<guid>http://www.mikeabdullah.net/sandvox_12.html</guid>
		</item>
		<item>
			<title>The .NET Addict</title>
			<link>http://www.mikeabdullah.net/the_net_addict.html</link>
			<description>
&lt;p&gt;I've been following &lt;a href=&quot;http://dotnetaddict.dotnetdevelopersjournal.com/&quot;&gt;Kevin Hoffman&lt;/a&gt;'s adventures in &lt;a href=&quot;http://dotnetaddict.dotnetdevelopersjournal.com/tags/?/cocoa&quot;&gt;Cocoa&lt;/a&gt; for a little while now.  He's a .NET developer who after attending one of Apple's &lt;a href=&quot;http://developer.apple.com/events/techtalks/&quot;&gt;Leopard Tech Talks&lt;/a&gt; recently decided to try his hand at Cocoa.&lt;/p&gt;
&lt;p&gt;A couple of days ago Kevin posted on &lt;a href=&quot;http://dotnetaddict.dotnetdevelopersjournal.com/nsundomanager.htm&quot;&gt;NSUndoManager&lt;/a&gt; and how great he thought it was.  Looking at Kevin's code, I made a suggestion that he perhaps use the method:&lt;/p&gt;
&lt;p&gt;        -addObserver:toObjectsAtIndexes:forKeyPath:options:context:&lt;/p&gt;
&lt;p&gt;to make the code a little simpler, and then perhaps even wrapping this in a Category on NSArray  for further ease of use.  Today, he posted a &lt;a href=&quot;http://dotnetaddict.dotnetdevelopersjournal.com/batch_observing_an_entire_array_of_objects_in_cocoa_or__ho.htm&quot;&gt;new article&lt;/a&gt; about just this.  Thanks Kevin!&lt;/p&gt;
&lt;p&gt;I've only been developing in Cocoa myself for a little over a year, so I wish you continued luck with the experiment.&lt;/p&gt;
			</description>
			<pubDate>Wed, 21 Mar 2007 14:19:58 +0000</pubDate>
			<guid>http://www.mikeabdullah.net/the_net_addict.html</guid>
		</item>
		<item>
			<title>Up and Running</title>
			<link>http://www.mikeabdullah.net/text.html</link>
			<description>
&lt;p&gt;Finally, a fairly complete version of the site is up!  Now I just need to get round to changing the various software listings on other sites to point to this new address…&lt;/p&gt;
&lt;p&gt;I've also added a new section to the site for &lt;a href=&quot;other/omnigraffle_stencils/&quot;&gt;OmniGraffle stencils&lt;/a&gt;.  I realised I actually create quite a few of these for various things I work on, and hey, why not share them?  Perhaps somebody somewhere might actually find one of some use!  I intend to upload stencils to &lt;a href=&quot;http://graffletopia.com&quot;&gt;Graffletopia&lt;/a&gt; at some point as well.&lt;/p&gt;
			</description>
			<pubDate>Tue, 06 Mar 2007 14:20:23 +0000</pubDate>
			<guid>http://www.mikeabdullah.net/text.html</guid>
		</item>
 	</channel>
</rss>
