The world according to Sven-S. Porst
« NSConference Day 1 •
• Travel notes »
Continuing yesterday’s notes on NSConference in Reading.
Unfortunately Matt Gemmell had fallen ill and couldn’t give his talk on Tuesday morning. A Get Well Soon card made the rounds instead.
Jeff LaMarche had to take over the early session instead, running it with a lack of sleep and fresh clothes thanks to the less fortunate sides of air travel. He spoke about fiddling with the Cocoa runtime to dynamically analyse classes or to add methods to your own classes while running. I keep thinking this stuff sounds very clever and neat but that I just don’t need it. And - as Jeff pointed out as well - it’s probably bad to use such techniques just because they’re cool. You need to get real benefits from them.
I tried out Tom and my Flame iPhone Bonjour Browser during the talks. With dozens of Macs and iPhones full of geeky software on the network, it was a great opportunity to see how well the application works there. While doing so, I discovered numerous service names which we had never seen before and which are not in the list at the DNS-SD website (yet). I tried to note all of them and hoped to figure out whet they are about. In case you can offer a description or link indicating what any of the following types is for, do me a favour and leave a comment: qmp4, swblic, rsagent (could this be a Windows virus?),
todogwa, istatrmt, aicheck, scan-target, timelog, friedegg.
In the next talk, Andy Finnell. spoke about Core Image, going into the details of creating a watercolour brush. The physics modelling of the liquid and pigments in this was quite involved, possibly distracting from the Core Image aspects. OpenCL was touched in the talk which I found particularly interesting.
I tried to figure out more about OpenCL [Wikipedia] and its capabilities. Andy pointed me to Drew who apparently touched the topic in his workshop on parallel processing on Sunday. And both of them pointed me to the Mac Research site and the tutorials there. A colleague of mine is doing some insane number crunching and was trying to figure out whether it can be sped up by going beyond straight C. Using SSE seemed a bit crazy as it will mainly make the code very incompatible. OpenCL, being both ‘open’ and abstracted from the actual hardware could fit the bill perfectly there. It just seems that it’s so new that people don’t have much experience using it yet.
In the next session two somewhat ad-hoc talks came on to step in for Matt Gemmell. Dave Dribin tried to earn some more bashing on twitter by speaking about version control systems and pointing out that Subversion is still king because it’s very widely supported while git is the king of hearts, in part thanks to github, but it can still be confusing as hell [I agree, but to be honest I have the impression that git makes a surprisingly big effort to help the user at times - for a tool coming from Linux-land anyway - and even with next to no understanding of git I managed to do much more with it than with Subversion; the Pro Git book is an invaluable resource for that] while Mercurial/hg [Hint: it’s stupid to not name your application and executable the same, no matter how ‘clever’ it seemed at the time] is supposedly cleaner but nobody gives a damn. I think I had seen the slides for this talk before, so I didn’t find it particularly interesting.
Next, Graham Lee spoke about code signing. I went through the pain of figuring that out for myself when it was new (and there was no neat popup menu in the build settings to do it). But Graham also showed a little demo app (nominate it for an ADA if you can! - Mac software these days needs to be ‘focused’.) illustrating how you can check the consistency of your application’s in-memory code at runtime thanks to code signing. Ultimately code signing is a double edged sword (you may appreciate knowing that an unaltered application is running when processing sensitive data, you’ll hate it if you need to modify someone else’s application to do its job in a way that suits your needs).
Graham’s talk also came with friendly piss-takes at the name of ‘Jon’ ‘Wolf’ ‘Wrench’, or whatever. The ‘Wolf’ part keeps reminding me of people calling Mozart ‘Wolferl’ (in Amadeus I think), so I’m not a big fan of it.
Incidentally I went on to discuss some clicktoflash stuff with Jon during lunch. As time was running fairly quickly and the network hated us we didn’t manage to cover everything and perhaps we’ll need to discuss things a bit more until everybody’s on the same page. Which preferably should be my cutting-edge page, that still comes with a problem or two at the moment but could be a reasonable way to go forward. Things we could do with help for are running on X.4 (I don’t really care, but I suspect this might be easy to fix if one is able to run the project there in a debugger) and for figuring out how/why the sIFR code seems to have broken in refactoring.
Next on stage was Aaron Hillegass who’s known for giving great courses and really does wear a ‘cowboy’ hat on stage. He started off with iPad references and saying that local data is a dead concept and the future is in the cloud with local drives just being caches and pointing out the obvious benefits [no fear of data loss] without going into nasty details [how screwed will you be on network FAIL? what about privacy? (
you’ll get over it) or encryption?] while mentioning others [like vendor lock-in, that’s an obvious problem in the Apple universe but frequently ignored my Mac developers]. Aaron then went on to present a persistence framework he has just written which could be superior to CoreData in some way and is designed for both the Mac and the iPhone as well as for being simple and fast. To be honest I didn’t quite get how both parts of his talk matched up apart from being about data. If his framework included things like synchronisation and conflict management, I could see how it’d fit into the ‘cloud’ picture but at the moment it seems to do local persistence only.
The final session was mysteriously titled
Cocoa Rumble which one could enter for beforehand. It turned out Scotty drew our names from a hat and assigned one attendee to each speaker, ultimately creating three groups of six people each. Then he put a bunch of ‘Core’ frameworks in the hat, handing one to each group with the task of using 30 minutes to create a presentation making the point why that framework is the framework of the year. The drawn frameworks were CoreText, CoreAudio and CoreAnimation. Let’s say that was a rather uneven choice as in terms of flashy results and ease of use CoreAnimation should be the default winner. While CoreText will neither be known nor explicitly needed by most even if may play an important role for the Mac’s appearance. Similarly CoreAudio is unpleasant to work with and I remember it as painful - most likely for the good reason of the low-latency they try to achieve.
It turned out I ended up on the CoreAudio group with Rentzsch, Jeff Lamarche (who had recovered his luggage by then!), Drew, Daniel Tull and Daniel Kennett. We were working frantically to whip up a kick-ass presentation:
… with a great slogan
CoreAudio is the API of Rock Stars [Alex Rozanski has a good photo of rentzsch presenting that], proving how it kicks ass because it’s essential for iTunes (of course we knew iTunes existed before CoreAudio as Uli was keen to point out, yet I doubt it’s playing a tone on my machine without CoreAudio), which is essential for Podcasts, which are essential for MDN which is essential for NSConference. A great argument I think. Bashing the other APIs was a good idea as well, even though I still think that the slide saying that CoreText is an API for
girly men with Zapfino used to illustrate it is an insult both in terms of sexism and to the typeface. Probably another good indicator that having more than 2% female attendees wouldn’t be the worst of ideas.
Our presentation finished with all of us waving our MacBooks to create a bunch of sinewaves using SkipChecker. I wouldn’t have guessed that this painful excursion into the world of CoreAudio would make it to the ‘big stage’ one day… incredibly dorky, I suppose, but fun.
And, yeah, needless to say that the CoreAnimation people won: an originally sealed set of WWDC DVDs from 2002 or so. Congratulations! More generally I thought their presentation was fun, but a bit too long. And I was rather disappointed by the CoreText team because their technology totally has the potential to outdo CoreAudio in terms of on-screen sexiness.
While we were preparing the presentations, people were invited to share their favourite little ‘tricks’ with the audience. Unfortunately we were too busy pondering our own presentation to follow what was going on and the hints were said to be quite helpful. Notes on this didn’t seem to make it to the SubEthaEdit file, so I’m hoping videos will be available one day. — Uh, and someone please tell rentzsch that there is a difference between giving a short hint and a ten minute presentation of one’s pet project…
With all those sessions ‘done’, the drinking could begin. I happened to speak to the guys from Shiny Frog who are doing the delicious client delibar. As I contributed code to the much more limited delimport application (actually I have a 64bit capable version of it running here already) which creates a backup copy of your delicious bookmarks and adds them to your Spotlight index, it was cool to talk to them. They’ve put an incredible amount of work into their user interface and, unfortunately, had to report that Yahoo ‘upgraded’ delicious’ API to something using OAuth and being horribly complicated. To make things more fun, it seems that Yahoo preferred not to tell anybody about this and randomly allow use of the ‘old’ API for old accounts. To make things even less worthwhile it sounds like the ‘new’ API can’t actually do more than the old one could (with a particular and very bandwidth-intensive shortcoming of the old API being that it won’t let you do requests like
send me all changed bookmarks since a given date but always forces you to download all bookmarks, which can amount to a couple of megabytes if you’ve been using delicious for a while, to achieve that).
Later we had dinner at the ‘nearby’ Horse & Groom pub (Scotty even claimed one could walk there and lived up to that claim) with some local beers and nice pieces of steak. To the delight of the assembled geeks the landlord brought up some little logic games on the height of coins, turning around glasses and toothpicks which kept people busy throughout the evening. I even remember winning a game of ‘table-rugby’ shortly before we left. I must have been 20 years younger and 10000km away when I last did that.
Many thanks go to Scotty and Tim for making NSConference happen. Without doubt they put in some great effort there. Let’s see how quickly they recover from NSConference US to switch from ‘I’ll never do this again’ to ‘When can I do this again?’ mode.
Many thanks also to Mike for being my host in Reading.
Further thanks go to Chris Walters who had done the pub reconnaissance and generously offered countless lifts to us and many other participants in his big car while seeming to survive on glasses of Tabasco (with tomato juice) night after night.
February 2, 2010, 23:59
istatrmt = iStat Remote?
February 22, 2010, 23:36
According to their support it seems to be iStat for iPhone.
February 23, 2010, 9:34