WWDC aside

None of Perl, Cocoa or some weird XML toolkit came up with the “simple things simple, complex things possible” quote.

Posted in cocoa, objc, perl, smalltalk | Leave a comment

WWDC day 2

Tuesday is typically associated with “starting to learn stuff” at WWDC, and today was definitely spent learning stuff. Learning, for instance, that doughnuts are considered adequate breakfast material, or that if you are prepared to pay the tiny wi-fi fee at Starbucks you can get faster INTARWEBS than all the people on the steps outside the Mascarpone. It was also a day of nice food; I’ve just got back from dinner with Alex at the Chevy’s, having had lunch with Michael at the Ozuma sushi restaurant. More discussing Sophos-for-Mac with customers and potential customers ensued (apparently we’ve saved some people from the “hell that is Norton”, and I point out for legal purposes that that’s a direct quote and not my own opinion or words), and I got some pretty good photos of the Bay Bridge and treasure island which I’ll upload as soon as I locate the USB cable.

Posted in WWDC | Leave a comment

ObjC FAQ update

Added a question about the ObjC 2.0 garbage collector. Sorry it’s been so long in coming! I’ll try and add a few more ObjC 2.0 questions over the coming days.

Posted in FAQ, objc | Leave a comment

WWDC – day one

The WWDC keynote is always an odd event to attend. It’s put on for the benefit of the investors and the media, with the developers being invited purely to act as braying masses expressing their adulation for His Steveness. It’s rare for any technical content to make it into the session, except in unavoidable cases such as the 2005 keynote. The focus of that was the Intel transition, so by necessity there had to be some technical justification of the switch.

With this in mind, it’s not hard to see that the keynote can be a somewhat dull affair. Obviously as both an Apple customer and member of the “economic ecosystem” of the Mac, it’s always good to be as informed as possible of the company’s position and direction. That said, yesterday’s keynote (no wi-fi in this hotel, so a late post) contained less of interest to me than usual.

As I mentioned I’m financially dependent on Apple (in an indirect sense of course; I’m paid to write Mac software for Sophos, therefore no Mac = no job at Sophos), though as I’m not an indie dev I have a bit more of a comfort buffer than many people. The enterprise iPhone video Steve showed was basically a backslap in front of the shareholders; look, there are people who really do use this stuff! Then the laundry list of every developer who’s downloaded the SDK and managed to get something to compile; interesting to see the wealth of different domains into which the iPhone is entering, but seriously. Two demos, three tops. Not all four thousand of the known apps. Good to see TEH CHEAP being applied to the 3G iPhone, though; I may have to
have a discussion with Orange about a PAC when that’s available.

Which left Mobile Me. This is actually a pretty cool reboot of iTools^W.Mac, OK it looks like there might be no more iCards but on the other hand the Mobile Me syncing is really beneficial. I can see that becoming more of a cash cow for Apple, though mainly because they opened it up to the PC; people who have an iPod and Windoze could buy MM to synchronise their contacts, mail and so on, as well as getting webmail access (and webmail access which doesn’t suck balls as much as
Exchange’s OWA, may I add). That then might make them more amenable to the Halo Effect and the purchase of a Mac down the line.

The rest of the day was interesting but obviously undisclosable, except for the evening I spent in a couple of bars down the financial district (the Golden%Braeburn event at 111 Minna, where I went with Steffi from BNR and a couple of Cocotron committers; then Dave’s bar where I met Nigel and most of Apple UK). Conversation ranged from Sophos feature requests to the drinkability of American IPAs; all good stuff!

Posted in cocoa, gnustep, iPhone, WWDC | Leave a comment

WWDC part 0

well, here it is, the pre-WWDC “I’m jetlagged so you have to put up with my wittering” post. I’m just waiting for a softwareupdate to finish so that I can go out with my camera, taking some early-morning pictures before heading off to stand in line for the Stevenote. I was out for beers with Ian and Neil last night, we’d all heard rumours of a 5 a.m. start to the queue. On the two previous occasions that I’ve been, 9 a.m. has been sufficient; but with the sellout nature of the event it’s likely that the room will fill up rather quickly so we’ve compromised on a 7 a.m. start. Actually, forget the 5 a.m. nonsense, there’s a line of overnight campers – I can’t decide whether they’re deliberately trying to re-enact a Joy of Tech cartoon, or actually have nothing to do with their lives.

Posted in aqua, carbon, cocoa, leopard, nextstep, objc, openstep, WWDC | Leave a comment

This means business

This is the design of the business card I’ll be taking to WWDC. Let’s look at some notable features.

  • Photo in top left. I don’t know about you, but I find it much easier to remember what someone looks like than who they are – this card is available so that people can combine the two.
  • Plenty of blank space. The back is also entirely empty and can be written on. When people exchange business cards there’ll usually be some context, it can help you remember what that is if you write it down. For instance, I’ve got cards from previous WWDCs with handwritten notes like “webobjects employer”, “bindings”, “parallels openstep” and “huge hat” (bonus points for identifying all four).
  • Questionable source code snippit. This is a deliberate ploy to annoy fellow-developers with our compulsive attention to detail, thus helping to cement the meeting in their mind as well as providing an inoffensive conversation starter.
  • Minimal contextual detail. I’m pretty sure I won’t get through all 250 cards in one sitting, so they ought to remain relevant for as long as possible.
Posted in Business, personal, WWDC | Leave a comment

Little hack to help with testing

Want the ability to switch in different test drivers, mock objects, or other test-specific behaviour? Here’s a pattern I came up with (about a year ago) to do that in a GNUstep test tool, which can readily be used in Cocoa:

NSString *driverClassName = [[NSUserDefaults standardUserDefaults] stringForKey: @"Class"];
Class driverClass = NSClassFromString(driverClassName);
id myDriver = [[driverClass alloc] init];

With a healthy dose of no, seriously, don’t do this in production code, you now have the ability to specify your test driver on the command-line like this:

$ ./myTestingTool -Class GLTestDriver

This uses the oft-neglected behaviour of NSUserDefaults, in which it parses the executable’s command-line arguments to create a defaults domain, higher in priority than even the user’s preferences file. You can use that behaviour in a graphical app too, where it comes in handy when working in Xcode. It then uses a combination of the runtime’s duck typing and introspection capabilities to create an instance of the appropriate class.

Posted in cocoa, gnustep, objc, openstep, test | Leave a comment

Wistfully Wonderful Den of Coders

It’s the time of the year to acknowledge that yes, I am going to WWDC this year. Left it a bit last minute to get the flights and the hotel, but everything is in place now so hopefully I’ll see some of you guys/gals there. This is the first year that there’s been anything going on that isn’t Mac (it isn’t the first year there’s been non-MacDev, though; since the first WWDC I attended in 2005 there’s always been an IT track occupying around 20-25% of the sessions, though not much lab space). There have been mixed impressions of that – a representative sample:

About Time

New developers might screw up the experience

New developers might realise how cool Leopard is

I think this is going to be an exciting conference, especially for the new developers. I’ve never been as a newbie; in 2005 I’d already been doing GNUstep, WebObjects, Cocoa and NeXTSTEP development for varing numbers of years, though admittedly without particular expertise. From a perfeshunal perspective I’m not amazingly excited about iPhone development, I might drop in to a few of the sessions just to see what the state of play is, what people are interested in, what apps they’re creating and so on. No, for me this is the first year that I’ve actually got a project in full swing over the conference week so I’ll be most interested in heading down to the labs and getting mmalc to write my code finding out what I could improve.

And, of course, the networking (by which I mean the going out for beers and food every night)…

Posted in whatevs | 3 Comments

Managers: Don’t bend it that far, you’ll break it!

Go on then, what’s wrong with the words we already have? I think they’re perfectly cromulent, it’s very hard to get into a situation where the existing English vocabulary is insufficient to articulate one’s thoughts. I expect that linguists and lexicographers have some form of statistic measuring the coverage in a particular domain of a language’s expression; I also expect that most modern languages have four or five nines of coverage in the business domain.

So why bugger about with it? Why do managers (and by extension, everyone trying to brown-nose their way into the management) have to monetise that which can readily be sold[1]? Why productise that which can also be sold? Why incentivise me when you could just make me happy? Why do we need to touch base, when we could meet (or, on the other hand, we could not meet)? Do our prospectives really see the value-add proposition, or are there people who want to buy our shit?

Into the mire which is CorpSpeak treads the sceadugenga that is TechRepublic, Grahames yrre bær. The first words in their UML in a Nutshell review is "Takeaway". Right, well, I don’t think they’re about to give us a number 27 with egg-fried rice. (As a noun, that meaning appears only in the Draft Additions to the OED from March 2007.) Nor is there likely to be some connection with golf. All right, let’s read on.

UML lets you capture, document, and communicate information about an application and its design, so it’s an essential tool for modeling O-O systems. Find out what’s covered in O’Reilly’s UML in a Nutshell and see if it belongs in your library.

Ah, that would be a précis, unless I’m very much mistaken. Maybe even a synopsis. Where did you get the idea this was a takeaway? I can’t even work out what the newspeak meaning for takeaway might be. Had I not seen the linked review, I had thought the “if you take away one idea from this article, make it this” part of the article. In other words, if you’re so stupid that you can only remember one sentence from a whole page, we’ll even tell you which sentence you should concentrate on. This use[2] doesn’t fit with that retroactive definition though, because the conclusion which can be drawn from the above-quoted paragraph is that one might want to read the whole article. I would much rather believe that management types in a hurry would remember the subsequent sentence as their only recollection of the article.

UML in a Nutshell: A Desktop Quick Reference is not misnamed.

[1]You may argue that the word should be spelled “monetize”, as the word most probably came from American English, but it doesn’t matter because it doesn’t bloody exist. Interestingly, the verb sell originated in the Old English verb sellan, meaning to give, with no suggestion of barter or trade.

[2]Language usage is the only place I’ll admit the existence of the word usage.

Posted in Business, mythicalmanmonth, rant | 3 Comments

My name in lights

I’ve been published.

Posted in whatevs | Leave a comment