@madpilot makes

WA Web Awards Finalist!

Well, the finalists for 2008 WA Web Awards have been announced and my silly little Super Mario Brothers JavaScript experiment is in the running in the Web Innovation category.

If you think that Mario Brothers is the awse, go and vote for it in the people’s choice award (You need OpenID). Apparently this blog got a highly commended too, which is kind of cool.

The Edge on the Web and the WA Web Awards are only one month away, which is rather exciting – you are going aren’t you?

What I learnt at Web Directions South 08

First off, thank to WA government for having the foresight for ignoring the actual birthday of the Queen and making today a public holiday – my couch has been-a callin’. So what has been happening over the past couple of days?

Day 0

After getting in early morning on the Wednesday, I toddled along to Stories for one of their famous egg and bacon rolls with Simon, Lachlan and Nick.  Oh how I’ve waited for that. I could have gone home at this point a happy man, but then there was work to do! Spending the day tweaking my presentation, next it was up to the Kirk for memories of last year (Yes, they still only have five pint glasses) and then on to Port80 Sydney: Wednesday edition. We had a fantastic turnout, with over 80 people – most of which were new faces. Big ups to Clever starfish, radharc and Saasu.com for throwing dollars on the bar. I’m seeing a definate pattern here in regards to free beer.

Day 1

Waking up slightly hung over, I was off to the registration desk, and then the games began. Highlights for me was Dmitry Baranovskiy’s web vector graphics  talk. I’m about to go download raphael and build some stuff – not only if the guy a genius, but his talks are hilarious. Unfortunately, I missed the JavaScript workshop, where I hear Cameron Adams wowed the crowds with a JavaScript drum machine – with visualizations. The final keynote from August de los Reyes tied software and psycology together, something that I think is the crux of what we do. It was also a great talk, although the ads were a little too much to take.

What I learnt:

  • Seeing cool stuff is inspiring.
  • When giving a presentation, find out about the audience – it’s better to pitch a bit to high than to low.
  • Don’t try to squeeze in 2 hours of material into 55 minutes

Day 1.2

Next up was WebJam8. The one big disappointment of this trip is that I didn’t get something entered in WebJam, but having a Web Directions talk to do and a stupid amount of work took priority… Some really cool stuff was shown: Dmitry came third with a live code, that added reflections and animation to images on a web page, Diana came second with a crazy funny fast presentation about governments and bike helmets and the winners, Mr Speaker and Henry Tapia did a awesome YouTube remixer. In a moment of unlike-me-ness, I wentback to the hotel at a reasonable hour…

Day 2

…and for the first time EVER made it to the first session of the second day! So no one can joke that I missed the best talk of the conference (as happened the past couple of years) and I wasn’t dissapointed. Jeffrey Veen is a brilliant speaker, and I wanted to pull my laptop out right there and then and cut some code. This is the sort of stuff that makes these conferences. After lunch, I gave my presentation on OpenID, OAuth and webservices (Available on slideshare here), and I think it went pretty well. The backchannel was only positive, so I count that as a win. Next I headed over to Douglas Crockford for a good old fashioned Computer Science lecture, god that takes me back! Whilst a little dry, and technical (Who am I kidding – I wanted that) it generated some great discussion.

What I learnt:

  • Great talks bring in personal experience
  • You need to get the audience to think
  • Dual monitor Powerpoint never works properly when you need it to

Closing night

With all of the festivities over, it was time to let the hair down at the Shellbourne, for a quick shandy.  Had a debate about designers vs UX experts (We were actually arguing the same point, it turns out), and had many an indepth conversation, including one with Charles from Opera, about webservice brokering. So much so, my plans to build one may now be possible (Huzzah!).

What I learnt:

  • Finding random “locals” to go out with doesn’t mean they know where they are going
  • Peanuts 2u is actually a brand of salted almonds
  • There is a “No redheads” policy in NSW pubs
  • Bats are weird and scary

So that was my Web Directions experience in a nutshell! Roll on Edge of the Web – only five weeks until we get to do it all over again!

Have a happy and safe conference season

We are about to head into my favourite times of the year – Australian web conference season! Ausralia’s biggest web conference – Web Directions South – is due to kick off on Thursday, and as usual the Perth Posse (sans Adrian and Rose) and heading over. There is even a few n00bs who have joined the clan, making for this years Port80 Sydney even bigger! As previously mentioned, I’m lucky enough to be speaking on OpenID, OAuth and Webservices on Friday. Not to mention always amazing WebJam 8 on Thursday night (Unfortunately a lack of rips in the time-space continuum has stopped me from presenting in that this year – I petition for a 30 hour day – whos with me?) and the always crazy post-conference drinks on the Friday. Let the games begin.

BUT! We can’t let the east coast have all the fun – don’t forget that Perth first major web conference is  happening in less than 6 weeks! Our little sub-committee has been toiling away for the past few months organising the very first Edge of the Web conference and fourth WA Web Awards. Tickets are on sale now for both events, being held on November 6 and 7. There are some awesome speakers coming from overseas and over-east. There is also a number of other soon-to-be announced activities, so what this space.

Excited?

Abusing JavaScript for fun and profit: Redux

The fine lads at Sitepoint have just just notified me that part I of my article outlining my JavaScript Mario Brothers game is up on the front page. This part goes through the JavaScript and CSS techniques I used – it’s a bit theoretical, but if you are a frontend developer and want to get a better understanding of how to use JavaScript classes, go and check it out.

The next part will get into some game

theory (not that I’m really an authority on that) but it really was a fun experiment.

A room with a view

Whilst not being one to make gross generalisations (heh!) I like to think there are two schools thoughts on databases – those that use “extended” features such as triggers, views and temporary tables, and those that don’t. I, for one fall firmly in the latter – usually.

However over the past few days a major project that I’ve been working on brought forth a requirement for some hardcore reporting. Due to the database structure that was required (there was a lot of dynamic fields and association tables) doing it in ActiveRecord was near impossible – in fact, doing it in native SQL was equally painful.

Quite jokingly, MySQL views were suggested, but then in a cold flash back to my days working in Government environments, reminded me that DBAs used views for this stuff all the time, so time to investigate.

The idea is pretty simple: a view is a virtual table that is based on a SQL query that you can run queries against, which means you can easily flatten associated tables and turn complex search queries into simple ones. Example…

Say you have a structure that looks something like this:

Database example

(Excuse the diagram – My windows laptop is in the other room and the graphics editors in Linux are balls)

So as you could imagine, you may have companies that have many projects which in turn have many shifts. Who would you calculate all the shifts from a particular company? You would probably end up with something like this:

SELECT shifts.id, shifts.start, shifts.end FROM shifts INNER JOIN projects ON shifts.project_id = projects.id INNER JOIN companies ON projects.company_id = company.id WHERE company_id = 4

Which, whilst fairly simple, is a pain to write – and it can only get worse if the data model becomes more complex. This is where views make life so much easier. By creating a view using a simple query:

CREATE OR REPLACE VIEW shift_reports AS  SELECT company.id AS company_id, company.name AS company_name, project.id AS project_id, projects.name AS project_name, shifts.id AS shift_id, shifts.start AS shift_start, shifts.end AS shift_end FROM shifts INNER JOIN projects ON shifts.project_id = projects.id INNER JOIN companies ON projects.company_id = company.id</p>

we now have a virtual table called shift_reports with columns: company_id, company_name, project_id, project_name, shift_id, shift_start and shift_end ehic you can query just like any other table. (I am aware that the query is much longer than the one we are trying to replace, but you only do it once per database, and the example is contrived – humour me). An example query would be: SELECT * FROM shifts_reports WHERE company_id = 4 – much cleaner! Where this becomes even cleaner is if you are trying to link this up to a search form – everything matches up with a much bigger bow (especially if you are using a framework like Rails).

Whilst on the topic of frameworks (like Rails) – because it is exposed as a regular table, you can point ActiveRecord at it – just create a corresponding model and find until your heart is content, just don’t try to modify the records, as it will fail miserably (views are read-only).

So next time a client asks you to create an impossible report, your cold sweat may be slightly less shiver-inducing…

Ubiquity: Three types of awesome

A couple of days ago, Mozilla labs released Ubiquity 0.1, which is a browser-based natural language command helper. Sounds geeky – and it is, but oh-so hot. Basically it’s a Firefox plugin that allows you to perform actions and pull information from services without leaving the screen you are in. If a picture tells a thousand words, a video tells a thousand pictures (That’s 1000000 words according to the ubiquity calc command).

Ubiquity for Firefox from Aza Raskin on Vimeo.

Being a command line junkie, this is FREAKING AWESOME. Not having to open up a new tab just to find a definition, or to post to twitter stops you from having to make a context switch and break your current thought process. What is even more awesome is that if you know JavaScript, you can really quickly write your own verbs. For example, I just wrote a quick verb called goto that opens a URL in a new tab [Get it here]. Think of the precious seconds I save by not having to move the mouse. It also allows you to annotate websites, and highlight text as well as colour code source that you might find, plus so much more. If you are a geek and you are on the web. Go and check it out.

The new office

When the Beachhouse closed a couple of months ago, I was back to working from home – which was fine. For a while. As much as our cat was keeping me company, it wasn’t really that good at pair programming, as it’s pads kept getting stuck on the keys, so I got off my arse and did what any other self respecting wog would do – asked my uncles (who are real estate agents) if they had any offices available – and they did – in the same building they were in! So just when you though one Eftos was enough, there is now three (sometimes four depending if my Dedo is in).

After 4 days of painting (when a painter quotes $1200 for three rooms, TAKE IT) the new offices are finally (almost) ready! Out of the three rooms that we have out the back of the Eftos Estates building, one still needs one coat of paint, but the other two are all done!Of course I don’t need three offices myself, so good buddies Grant, Alex, Ben and Gary have stepped up and taking up residency at 220s.

Here are some photos of the two finished offices:

 

So if you are in Leederville, drop in and say hi!

The address is 220 Carr Pl, Leederville (Just look for the Eftos Estates sign)

I took the A List Apart Survey

As is now becoming a tradition (can twice be a tradition?) I took the A List Apart survey for people who make websites. I see Eric Meyer tweeted that 11,000 people had filled it in just as I was filling it in. Not a bad effort for a couple of days :)

I took the Survey

Speaker Program and Workshops are now available

We are now three months out from Perth’s first ever Edge of the Web Conference, so what better time is there is announce the speaker program and workshops! There is come awesome topics there, and I’m really excited about the whole thing! Get the skinny here.

There is also now only a week and a half before entries for the WA Web Awards close, so if you are thinking of entering, hurry the hell up!

Did I mention I’m excited? :)

Edge of the Web and WA Web Awards tickets are onsale now!

Just a quick public service announcment – if you have been waiting to purchase your tickets to the Edge of the Web and WA Web Awards (November 6-7 at University Club in Crawley) then wait no longer! You can now head over and register online.

Ticket prices are a reasonable:

Non Member: $495 (Early bird before Sept 1: $450)

Member: $450 (Early bird before Sept 1: $395)

Student: $299

Workshops (to be announced soon):

Non Member: $225

Member: $200

WA Web Awards dinner:

Non Member: $145

Member: $125

You really should be and register now. Really.

Previous Next