Current location: Brighton, UK

The reason why its quiet around here...

Posted on Tuesday, January 12, 2010 @ 16:56 CET

I think the main reason this blog has been kept pretty silent, well apart from not really having time to do it, or the skills to put time aside for it is that its a homebrew thing I wrote many moons back.

Back when I thought doing back-end stuff with Perl was cool and fun (well its still cool I suppose but not as much fun) I figured hey I can write a blog engine and came up with this thing. Which is fine, and its worked pretty much flawlessly since 2004 but there are a few features I really want to have like categories that I really can't be bothered to implement.

Feast your eyes on the suck that is the admin interface:

I built the Flash-based admin interface back in Flash 6 with Remoting pulling data using AMF::Perl which never made it out of alpha. The interface is laughably bad but hey, it worked right? And I was the only one using it. But seeing how much Wordpress kicks its ass its time to give up the fight, pack it up and try to merge my database.

So hopefully I'll find an easy way to do that and get Wordpress on here sometime soon :)

- paulo

QUOTE: On World Building

Posted on Tuesday, November 03, 2009 @ 20:57 CET

Make things that make people's lives better or more beautiful. It's good for your karma, and the world needs you. If you do nice things for the world, the world will find a way to pay you back.

Absolutely agree. This is part of Jonathan Harris' World Building in a Crazy World vignettes. A good read.

- paulo

Flash on the Beach iPhone app version 1.1.1 update

Posted on Wednesday, September 16, 2009 @ 11:05 CET

On Thursday last week, one day after the app being released on the App Store we found a major bug in the Flash on the Beach iPhone app.

We didn't find this bug until Chris and Paul finished the map bit of the new Connect site, which is launching very soon. Basically when you choose to update your location from the iPhone we send your current GPS position (latitude/longitude) up to the BackNetwork. However, a nasty bug was recording the location as being in the middle of Brighton no matter where you were on the planet. So you and all your friends would be in the same place, effectively rendering this extremely cool feature completely useless.

Shit.

You see the iPhone Simulator that comes along with Xcode lets you run and test your apps on your PC. However, it fakes the GPS behaviour by locating you somewhere in Cupertino, CA no matter where you are. So to avoid this I added a small check that when running the app in the simulator it would say that you were in the middle of Brighton. Since all the other places are in Brighton this made testing the app faster.

The check was as follows:

#ifdef TARGET_IPHONE_SIMULATOR
savedCoordinates.latitude = 50.824581;
savedCoordinates.longitude = -0.138692;
#endif

Of course it should be if TARGET_IPHONE_SIMULATOR, not ifdef since the TARGET_IPHONE_SIMULATOR variable is defined on both the iPhone and simulator, but set to false on the iPhone since its not the simulator.

Doh!

A super simple, stupid bug (that I will never, ever forget) that is extremely easy to fix and submit an update. So we submitted on Friday, September 11, with the conference only 10 days away. The first version took 14 days before it was approved...

Shit.

Seemingly up a creak and paddle-less, Chris sent an email pleading our case to the Apple App Review Team™ who out of the goodness of their hearts responded with:

Thank you for contacting the iPhone Developer Program regarding expediting the review of Flash on the Beach '09. We have made a one-time exception and have completed the review of this critical update.

OMFG!

So a massive thank you to the review team that saved my ass. Having to explain why that feature didn't work would have royally sucked in addition to being just a little embarrassing. There's also a tiny schedule change - Rob Chiu and Jeremy Thorp switching slots.

Anyways, go get the 1.1.1 update right away! :)

- paulo

Flash on the Beach iPhone app now on the AppStore

Posted on Wednesday, September 09, 2009 @ 11:08 CET

John just tweeted about it so the cat is out of the bag! The official Flash on the Beach iPhone app is now available on the iTunes AppStore. Its free, so what are you waiting for - go and get it! :)

After working on this for the past few weeks its great to finally see it out in the wild. Props go out to Håvard Gjelseth for the fantastic design!

- paulo

Schedule for Flash on the Beach '09

Posted on Wednesday, September 09, 2009 @ 10:35 CET

So in what has become a yearly pilgrimage to Brighton, Flash on the Beach '09 will be upon us in 11 days! As I did in 2007 and 2008 here's my tentative schedule for the 4 days:

Sunday - September 20

Down and dirty with the low level bytes - Lee Brimelow

Monday - September 21

Adobe Keynote - Richard Galvan

Casual Game Architecture: How to finish coding a game without despising it - Keith Peters

Lead the Hand and the Arm will Follow: Inverse Kinematics in Flash CS4 - Rich Shupe

Who's A Bright Spark Then! - Mike Jones

Big Spaceship : Fun Begets Quality - Joshua Hirsch

Telling Stories - Hillman Curtis

Epiphany - Joel Gethin Lewis

Tuesday - September 22

Elevator Pitch - 3 Minute Wonders

Either The Secret Life of a Flash Freelancer - Peter Elst or Quick as a Flash - Grant Skinner

Leaving the Sandbox - Joa Ebert

Either Application Frameworks: The good, the bad, and the ugly - Richard Lord or Hacking the Newsroom - Jeremy Thorp

A three-way! Either Numbers in Art - Joel Baumann, More than bending pixels - Paul Burnett or We make our own tools, and then they shape us - Karsten Schmidt

Unconventional Web Applications - Contrast

Choose Your Own Adventure - Craig Swann

Wednesday - September 23

Either Kling Klang - Andre Michelle or PLAY with Vectors! - Koen de Weggheleire

Connecting the Dots - Mario Klingemann or Can play well with others - Stacey Mulcahy

Union and MegaPhone - Colin Moock or Work / Play - Seb Lee-Delisle

The Death of the Creative Director - Laura Jordan-Bambach or the Jam Throwdown which was great fun last year

Research Realtime graphics with Flash 10 - Ralph Hauwert

Space - Joshua Davis

The fact that I can't pick a session for some of the time slots is yet another great testament to the conference and its fantastic speaker lineup. I'd tell you to get tickets but its sold out, but if you're going maybe I'll see you there!

Now if only there was a way to have this information with me on the go. Guess I'll print it out and keep it in my pocket :)

- paulo

Politi.no gets a re-redesign

Posted on Tuesday, September 01, 2009 @ 10:56 CET

Yesterday our beloved police force launched their new website, which clocked in at a mere 28.5 million NOK for development costs. As you can tell its quite remarkable and my colleague Haakon wrote a great post about it (in norwegian).

A quick view source shows that they have separate domains hosting their CSS (politicss.no) and another one to host their JavaScript (politijs.no). I'm not sure how the developers conned the cops to purchase those, but kudos! Impressive indeed.

I do want my 7 kroners back (we're about 4 million people or thereabouts I think). How dare they spend my tax money on this crap.

However being the upstanding, respectable citizen I am I felt it was my civic duty, nay, obligation to do what I could to fix perform some quick touches here and there to fix the many issues with the new site. After spending several seconds furrowing my brow while inspecting and investigating the structure and site design I got to work and came up with this which I'm sure you'll agree is far superior to the former.

My question is who do I send my NOK 10.000.000 bill to?

- paulo

Keep moving or die

Posted on Monday, August 31, 2009 @ 15:45 CET

Great quote from an Art of the Title Sequence interview with Jim Capobianco on the end credits of Wall-E:

Always move.

Don't sit around waiting for approval or something to happen. I have found there is always something to do on your project. Even if it is the smallest thing it keeps the momentum going and momentum is everything. By always moving it gets you that much closer to getting the project done and you stay ahead of the people who feel it is there job to judge and can put a stop to what you are trying to say before you've had a chance to say it.

Like a shark keep moving or die.

How very true.

- paulo

Support SV on Twitter

Posted on Wednesday, July 29, 2009 @ 10:06 CET

Earlier Hedgard Hugaas (@hedgard on Twitter) tweeted that he had created a Twitter-ribbon or Twibbon to show your support for Sosialistisk Venstreparti on Twitter.

It had a few issues so I cleaned it up a little - although a designer could probably do something better. You can see the difference below:

Before:

After:

Feel free to grab the PNG and photoshop it yourself :)

- paulo

Bysykkel approved!!!

Posted on Wednesday, June 17, 2009 @ 21:24 CET

And so one of the coolest moments ever came to pass and Bysykkel was approved and accepted into the iTunes App Store. Indescribable feeling.

Bysykkel app in iTunes

Get the app from iTunes here or visit the main site here.

And I truly think it warranted three exclamation points. I'm just saying :) It was exactly 8 days after we submitted so way to go Apple app review team. And it was also a zero-day OS 3.0 app, released an hour and a half after OS 3.0 was , which is just waaay to fucking cool.

Thanks go out to the great people that collaborated on this app, Snorre Milde, Paul Holliday and Chris Pelsor. You guys rock! :)

Update: (18/06 10:30)

For the time being its also listed in the Top 10 list of Utilities, #6 baby :)

Update #2: (18/06 12:34)

Now number 5. Amazing :)

Update #3: (18/06 17:39)

Now number 1 for the Utilities category and #8 overall. Unreal!

Update #4: (19/06 09:37)

Still number 1 for the Utilities category and #3 overall. Wow.

Update #5: (20/06 13:47)

Now #2 overall and got featured in both iPod1.no - "iPhone finner ledige sykler" and Macworld - "Finn ledig bysykkel med iPhone".

How cool is that! :)

Update #6: (24/06 21:24)

Featured in Aftenposten.no (made the front page at that) and Hegnar Online!

- paulo

What I've been upto lately

Posted on Wednesday, June 17, 2009 @ 17:21 CET

So hi there. It sure has been a while. For some reason I've been neglecting this blog in favour of Twitter, I suppose the main reason is probably how damn simple it is to use. So if you're into Twitter, come follow along :)

My admin tool for this blog was written back in the Flash MX 2004 days and uses AMF::Perl of all things to talk to my custom back-end. Geeky as all hell and there was a point in time when I was actually quite proud of it - it has been running pretty much flawlessly for the past 5 years after all. But apart from the technical merit its pretty useless (missing features, extensibility, etc) so I think a migration to Wordpress is in order soon. It really is just "yet another CMS" which I can't be bothered to update since the only person using it is... Well me.

Anywho, you don't care about that. So the past few months I've mostly been doing iPhone development with some ActionScript here and there so the rust doesn't set in. And Perl. Holy crap, THAT had been a long time indeed and like a long lost lover there still are some feelings lingering around there. But like a good friend I know its there when I need it, for example when you have to emancipate data - a term I'm quite fond of.

Last month I held a talk at Flash User Group Norway titled "Mashup My Bike". You can get the slides in PDF form here or the Keynote presentation here. Basically went through deconstructing the Oslo Bysykkel web service and talking about the current web-only version, which is... special.

However we can learn alot by looking at the source and inspecting the traffic back and forth using Charles, which not only is the first Google result for "charles", well done!) but also a fantastic web debugging proxy. With this info in hand I showed a simple Flash-based client along with a quick peek to an iPhone client I wrote.

There is a MUCH better Google Maps-based mashup available as well as a Windows Mobile client. But onto the iPhone version!

Bysykkel app

Bysykkel is an iPhone app that came to be after talking with my buddy Snorre who was explaining to me the wonders of the Oslo city bikes over a few pints at the Dub. My main problem was that I didn't know where the stands are and although you can check availability online a) I don't carry my laptop with me at all times, and b) its not like there's WiFi everywhere either. And so Bysykkel was born.

The app simply shows you which bike stands have bikes or locks available. You can switch modes depending on which you're looking for and use the built-in GPS function to find stands in your area. There's a video of the app in action here.

It requires iPhone OS 3.0 since it uses both MapKit (in order to use Google Maps within the app) and CoreLocation (GPS functionality) both of which are part of OS 3.0, but this will be released to the public today so you're in luck! Right now we're simply waiting for Apple to green-light the app so it ends up in the iTunes App Store. Here's to hoping it won't be much longer...

You can follow app updates on Twitter or Facebook if you're into that sort of thing :)

Technical details

The following might be a little hairy for non-techies. Just a warning. Anyways, the existing bysykkel service basically pings an ASP.NET service with a stand ID. It gets back some XML with the details and you have to do this for every single stand - there's 99 of them at last count. Each response is about 900 bytes of data and takes on average around 90 ms over WiFi - 3G is obviously slower. So that's about 99KB to check the current status of all the stands. This is too much over 3G in my opinion, so what can we do?

Well we can cache it on the server. By checking every now and then and storing the result to a file, as well as simplifying the XML structure it ends up being around 16KB! Much better. Get rid of the whitespace and its 15KB. And for the coup de grace GZIP that sucka and it whittles down to a mere 4KB. That's 4KB to get the current status of all the bike stands in the city! Not too shabby if I do say so myself :)

The best part is that the compression is done automatically on both the server and client sides when you instruct them to. In an Apache .htaccess file, to compress both XML and JSON data its as simple as:

AddType application/xml xml
AddType application/json json
AddOutputFilterByType DEFLATE application/xml application/json

And then in Objective C, you say:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://mysite.com/myData.xml"]];
[request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];

Smoove as butter as the kids say.

Other stuff

Apart from all this geekery my mom came to visit for 10 days and I turned 28.

On the peeps front, BG started blogging, Perk had a great talk at the last FUGN showing off his BasicFLAR class, Taylor started giving away some cool free shit, Paul joined us over at Tarantell:Hybrid and Chris posted something on his blog (holy crap!).

I'd feed you an empty promise about blogging more often and that but we'll just have to see. Nice shirt by the way :)

- paulo