Archive for March, 2011

New Compact: Tobacco

Hot on the heels of the last one, which I deem a success (although it got a bit rocky there for a bit), I am creating a new one to help me give up smoking. Yes, Ray gets another shot at my cash!



I, the person writing this right now, do hereby commit to not purchasing any products containing tobacco for a period of not less than one year, covering the period from UTC 12PM, 30th March, 2011 to UTC 12PM, 30th March 2012.


Should I break the Commitment within the designated time period, I hereby promise to publicly acknowledge this lapse and donate US$1000 to Ray Comfort’s Living Waters ministry within 48 hours, after which the Commitment will be terminated or renewed at my discretion.


Upon successful completion of the Commitment I will donate US$500 to a registered secular charity of my choosing.


Since if I manage this I will save a bunch of cash, it seems only reasonable that I put some of this towards a worthy cause. Note that I specifically list the purchasing of tobacco rather than the actual act of smoking. I’ve thought hard about this and decided there is too high a possibility of me having a cigarette here or there while in the company of another smoker, and I fear that if this were to happen I could too easily decide not to disclose, brushing it aside as an aberration. There’s something very definite about buying tobacco though, so that I am confident that I would indeed ‘fess up (and pay up) should that occur.

New Cast!

I got my new cast put on today, and elected to pay the exorbitant price of $25 to get a waterproof fibreglass one. Seriously, anyone who chooses to go 5 weeks showering with a plastic bag on their arm just to save a few bucks needs their head examined.

I also got a chance to see just how gross my arm was looking before the new cast was applied… ewwwwww

I suddenly feel so streamlined! And purple, which is the royal color donchaknow…

Lando accepted for review (finally)

Well it took a few goes, and I still don’t feel like I understand anything about digital certificates and provisioning profiles, but it looks like an actual human working for Apple will finally take a look at my submission, some time in the next days/weeks/I have no idea.

And this is basically what they’ll be seeing when they run it– utterly monochrome, utterly silent.

Note that there are NO visible on-screen controls– hoping they don’t reject it over that. Even so, I’m sure I can get it into a state they are ok with.

Feeling good that I finally did something, in large part thanks to Ray for being such a great anti-inspiration. Not sure if I will try this approach again, but it does seem to have made the difference in this case. I suspect [hope] that simply having released something new into the wild after all these years will be motivation enough for now.


Technical Notes

Since I completely bypassed pretty much all the iOS acceleration available, Lando will be extremely easy to port to other devices. I’ve used my own vector routines, the same code I’ve built up over the years for Drivey and general font-rendering duties, to achieve extremely sharp and clean edges. There are no bitmaps used, everything on screen is rendered to maximum precision for every single frame.

The down side of this approach is that it is rather CPU-intensive, so performance can be an issue– the greyscale was a pragmatic choice as well as an aesthetic one. It seems to run fine on iPad, iPhone4 and iPhone 3GS, but struggles a bit on the older iPhone 3G. Interestingly the best performance is currently on the 3GS, which although less powerful than the 4 has only a quarter of the pixels to push. It’s quite revealing to look at an analysis of the 3 most expensive functions across various devices:

iPhone 3GS – 480 x 320 pixels

20.4% mp::ScanlineBuffer::FillGradientScan
12.3% CGSFillDRAM8by1
9.4% CGSConvertW8toRGBA8888

iPhone 4 – 960 x 640 pixels

23.5% CGSFillDRAM8by1
17.2% CGSConvertW8toRGBA8888
15.7% mp::ScanlineBuffer::FillGradientScan

iPad (2010) – 1024 x 768 pixels

30.6% CGSFillDRAM8by1
20.4% CGSConvertW8toRGBA8888
11.8% mp::ScanlineBuffer::FillGradientScan

(% refers to portion of total runtime spent in this function)

Note that the most expensive function on the 3GS is my own code to draw anti-aliased shape fragments, whereas on the iPhone4 and iPad this is completely overtaken by system functions that simply  fill and copy buffers. Basically it looks like iOS devices are really not optimized for shuffling pixels between system and graphics memory, and I’m hoping I can learn more to try to avoid this bottleneck in the future.

An Anticlimax of Course

Ok, well I tried to submit it, but it looks like I messed up the security crap from Apple, and although it’s waiting for me to upload it won’t accept the binary right now. Attempting to submit counts as submission, in my humble broken-armed opinion. I will try again tomorrow, after I’ve had enough sleep to work out just which goddamn stupid digital certificate goes where…

Here is some evidence that I did indeed attempt a submission:

and here’s where the submission failed:

And here’s a screen shot of the app running on my iPhone:

And that’s all I have to say right now, because my eyes are practically bleeding thanks to a project that was done in the last 4 days with a broken arm (of course I didn’t use the whole 2 weeks… I should have just said a week in the first place).

T Minus…

<Removed dumb-ass ugly HTML countdown timer>

I just don’t have the time to find a sexy embeddable countdown timer right now. Especially since I’ve just wasted 20 minutes looking already and all I can find is this ugly cruft. Seriously the urge to make creating my own HTML embeddable timer/doomsday clock is nearly overwhelming me, so I have to keep picturing Ray Comfort’s benignly smiling moustache to get back on task.

Reader Survey

I’m a bit clueless these days as to how many people read this blog (apart from commenters of course, who are the only visible indicator since I junked all my analytics a while back).

So I would reaaaally appreciate it if you, yes YOU, would do me a kindness and complete this short, anonymous survey to let me know who I’ve been talking at lately.

UPDATE: Survey, and in the future the results, can now be found here.

I shit you not

So it turns out my bones aren’t made of adamantium after all…

What effect this has on my deadline is unclear (well okay it’s unclear how bad an effect this will have), but at least it’s my left arm. The injury is a compound compression fracture at the end of my arm bones (technical term), caused by a wave sending me arse over tit while standing on slippery rocks. Derrrrp!

Luckily I have loads of friends and family in the area who will most certainly be lining up to help me with errands and stuff!

A Reminder of Who Wins if I Fail

This is the slimy fuckwit disingenuous fellow who gets my cash if I don’t succeed. And here’s what my money will go towards:


Along similar lines as my previous post on finding a new use for my iPod nano, I also happen to have a Canon Ixus 70 laying around collecting dust, so I finally got around to trying out the CHDK hack on it to allow scripting (as well as bleeding obvious features that should have been included in the first place, like a battery meter and control over video bitrate). So hopefully I will have some lovely HD time-lapse stuff to post in the near future. As far as shooting regular video I am more than happy with the quality from the iPhone 4, except that I could really use some kind of optical stabilization since I have not the steadiest of hands.


I got a new fridge today, and although it works waaay better than my old one (capable of freezing water into small cubes and preventing milk from going bad!) it is also a lot louder… Hmmm, now I’m wondering if I simply forgot to plug the old one in…


I’m not particularly fussed with the revamped XCode 4.x… For one thing the GUI looks disturbingly like iTunes, and for another it seems that good old debug and release configurations have been rolled into an overly complicated “schemes” manager, which seems to think I will only want to run the release build with instrumentation, which I really, really do not most of the time. When developing I quite often avoid running debug builds unless I have a known crash or am setting breakpoints, since a lot of my stuff is CPU intensive. I’m sure I’ll get the hang of it but for now this change simply annoys me.

Also I still hate Objective C with a passion.


I saw The Adjustment Bureau recently, and although I was quite ready to enjoy the twilight zone-ness of it all, the ham-fisted religious overtones kind of wrecked it for me. And haven’t there been enough movies where white protagonists are helped out by sympathetic black guys from heaven? [see Magical Negro]


Composing a blog post on the iPad is really fiddly. If I want any kind of formatting I have to write it as raw HTML, even though it’s 2011 FFS.

Still the best video on the internet

I’ve posted this before, a long time ago, but saw it again recently and still love it just as much:

Keith Loutit has made a bunch of other films also using tilt-shift photography, it’s well worth clicking through and checking them out on vimeo.


During this following two weeks, I may or may not be posting as normal, and I may or may not be giving occasional updates on progress. At this point I would say I probably won’t be revealing much about the process until the end of the fortnight, since I don’t work in a particularly linear way and the only way to measure success will be to see if I have anything to show for it when the deadline rolls around.

In the meantime, please enjoy this rather pointed lesson on why you should never listen to what the public says ever:


The Compact: It’s on

And so it begins…



I, the person writing this right now, do hereby commit to developing at least one application and submitting it to to the App Store within a period of approximately 14 days. Application must be a viable candidate for approval and comprise useful functionality and/or real entertainment value.


Should I fail to fulfill the Commitment by UTC 12PM, Monday 28th March, 2011, I hereby promise to donate US$1000 to Ray Comfort’s Living Waters ministry within 24 hours of the deadline passing.


This contract may not be terminated or extended, and will be morally binding until either the Commitment has been fulfilled or the Penalty has been met. In either case supporting evidence must be made available.


Yes, I really mean it.