studiowhiz a blog by Mr K - a crazy passionate web nut. Here Mr K blogs about life, technology, web, business and more. If it takes his fancy, you can read it here Sat, 12 Nov 2011 19:29:47 +0000 en-US hourly 1 StudiowhizFeeds HTML5 – the confusion of the web Sat, 12 Nov 2011 19:23:11 +0000 Mr K I’ve been in the online industry for over 17 years, during much of that time I’ve been a ‘hack’ developer. I recall my earliest days of HTML, which I chose to learn after refusing to learn HyperCard – something about HTML felt so right. I’ve always felt HTML had more potential than we ever realised.

Oh sure along the way I’ve learnt more than just HTML of course. I still recall experimenting with “Future Splash” which became Flash (which is now on deaths door with the death of Flash on Mobile), toyed with Silverlight (which also is being killed off by Microsoft), and I remember being ‘forced’ to learn PHP in a hurry to help save a company I was working with at the time. I’ve battled with Javascript, I love CSS and I’ve experimented with so many different web-technologies. Alas now I find myself no longer coding much of anything. The last project I worked on is ‘Localwhiz‘ a location based exploration tool that I never really finished – I even started a version 2 (dev.localwhiz if you try it, simply close the empty splash window to explore the map) which is 100% HTML, CSS, Javascript (and a small PHP Proxy) to build on others API’s. (Version 1 is limited to Canada becuase it uses, Version 2 isn’t limited as it uses Sensis, YellowAPI and Google Places. Both use Foursquare, and V2 also uses Flickr API and … anyway it’s not going anywhere fast at the moment)

So why am I writing this blog post about HTML 5 after a period of time away from blogging?

I have the privilege this week of attending Google Developer Day in Sydney and during this time I sat in on a couple of sessions by Eric Bidelman. I’ve know of Eric for a long time, but had never met him before or really listened to him present. One of the sessions he took was “HTML5 Bleeding Edge”. And this is why I’m blogging today.

HTML5 – the confusion

Lets go back a second. Why are both Adobe and Microsoft moving away from technology they both saw as empowering the ‘interactive’ or ‘engaging’ web? Well Adobe and my old mate Mike Chambers would tell you one of the key reasons they are killing off Mobile Flash is in part due to Apple and it’s lack of adoption for Flash on the iPhone. Sure this might have been the catalyst for this, but it is by far the primary driver. Both Flash and Silverlight existed to fill a void, a void that HTML historically left open. One of engagement.

HTML is a semantic structure language that defines on the page what elements are. That’s it. It simply says “This is a paragraph” or “This word should have emphasis“. HTML was never about “move this from here”, “reveal this”, or even “have I been clicked”.

HTML is and always will be a semantic markup language. It’s dumb. It does nothing other than tell you what an element is. In the same light CSS is a semantic language  that is also (by n large) dumb. It tells you how an element should look (excuse CSS animations for now). So we still have a void, a gap that links together elements, layout and actions. Enter stage left, Javascript.

I don’t know about you but to me HTML has always been just HTML, Javascript and to a lesser extent CSS were supporting acts to HTML. As I watched and listened to Eric presenting and showing off HTML5, everything (and I mean EVERYTHING) he did, had elements of ‘engagement’ (think ‘actions’, ‘movement’). There was movement, there was fluidity, there was cause and reaction. He talked long and hard about the power of HTML 5 and demoed these things. Time and time again he used phrases like ‘raw html’, ‘power of html5′, ‘native html5 in the browser’.

A reality check here

So wait, HTML5 Rocks, I agree, but it would seem when we talk about HTML5 we are no longer talking about just HTML. What I’m seeing is HTML5 as more of a family, 3 in one if you will. The ‘holy trinity’ of the web.

  • HTML – structured understanding and markup of elements on a page
  • CSS – structured language for defining how an element sits on and what it looks like on a page
  • Javascript – a defined set of API’s that allow engagement, interaction between elements (in this place you can consider a user, mouse, web server, or almost any outside influence as an element) on the page

To that point, the folks over at HTML5 Rocks even have a slide that outlines this. They say that HTML5 is this family.

HTMl5 – the future, today

It’s nice to sit here and type out a blog post realising that finally after 17+ years, I’m seeing the true potential of what the web can be. HTML5 is what HTML2 should have been.  I wonder if we hadn’t so easily chased after technology like Flash and Silverlight if the web would be in a much stronger place now. If the W3C had fought harder for standards, earlier, would Internet Explorer be a stronger (and by that I mean better) browser than it is today? I don’t lay all the blame for IE’s short comings at Microsoft, I lay part of that blame at Adobe’s feet. Flash made web developers and designers lazy, it made the W3C & web standards fights harder.

Today we no longer need Flash, we have HTML5 – sadly, Microsoft have promised 10+ years of support for Internet Explorer & Flash on the desktop is still around (for now). So yes we might have the future technology, today, but thanks to Adobe and Microsoft, most main stream websites still can’t make use of many of these technologies today, and won’t be able too for many years to come.


Yes I know that apparently Internet Explorer has dipped below 50% market share for the first time, and speculation is Chrome will replace it as the #1 browser within 18 months to 2 years. But for most websites (at least here in NZ) Internet Explorer is still in the 70% range of users – thanks in part to corporations not upgrading from Windows XP.

]]> 1
Timer Remote for Sony a55 (intervalometer) Mon, 11 Jul 2011 04:55:30 +0000 Mr K I bought a Sony a55 a while back and really couldn’t be happier. It’s a great camera and I’m taking some great shots with it. You can check out some of my shots here on flickr or

But one thing bugged me – I can’t tether it to my laptop to do remote shooting for timer release. So I went on the hunt for a intervalometer. The cheapest I could find here in NZ was over $140 – one issue with buying Sony is that accessories aren’t the cheapest. There are tons of Canon or Nikon accessories by 3rd parties that are cheap – but for Sony not so many (although this is changing)

Then someone introduced me to a very dangerous website, with full PayPal support and FREE shipping any where in the world – it’s like the worlds best $2 shop (except not everything is $2).

When I went looking for a intervalometer I wanted one that was flexible and wasn’t a simple remote. I ended up settling on a JJC Timer Remote Shutter. This remote sets the following:

  • Delay – allows you to set a delay before the first shot is taken (up to 99 hours, 59 mins, 59 seconds)
  • Bulb – how long should it hold the shutter open for (up to 99 hours, 59 mins, 59 seconds)
  • Interval – time between shots (up to 99 hours, 59 mins, 59 seconds – down to 1 second)
  • Number – how many shots 1 – 399 (I later found out you can set it to limitless)
  • Sound – it can do a 3 second beep count down to shots

Considering it’s $39.99 (US$) price the build is fantastic, it’s really solid and everything feels just right. Buttons are very tactile and easy to use.

The body

As you can see there is a good sized LCD screen (the on off is on the right side by the screen). The main button (has hold written on it) clicks well and you push DOWN and UP to hold the shutter open when in bulb mode. This can be used with the unit off to save batteries.

Screen & Lights

The LCD is a 3 line (kinda) system with a little black indicator to say what setting you’re in, large numbers to easily read and the bottom line for sound and count (there is space on the right for small text like the countdown timer).  The Light (lock button pushed for less than 1 second turns on the light) doesn’t stay on as long as I’d like, but still it’s handy for checking settings when shooting at night.


The connector is compatible with Sony alpha cameras – technically speaking it’s compatible with the a300, a700 etc, but it works fine with my a55, so I’m guessing it’d work with the a33 and probably with the a77 when it arrives. It can also work with some Minolta cameras.

The only real con I have with the the unit is that it doesn’t count down right – now I’m not sure what’s causing this but if you set it for say a 10 second interval, it’ll fire the first one after 7 seconds, then every 10 seconds after that. The display counts down correctly, but it means the camera is firing on 3 rather than 0. No big drama really – just annoying. It also wont shoot sub-1 second.

note: it took me a little while to realise that the — mode in the N setting (that’s the number of shots it should take) meant unlimited. The counter for some reason stops at 399. If you simply go DOWN (rather than up) when setting you jump direct from 1 shot to — (unlimited). This is how I shoot most of the time now.

Some shots taken with this remote:

Lens - Focus StackGreat for shooting focus stacked images

Fire Ball test #2

Tunnel Test #1

A quick video I setup while waiting for a plane in the Brisbane airport:


This is a really great addition to my camera bag, and gets used so often I’m probably going to have to get another one. Other than the countdown issue and the light not staying on long enough – it’s really a great device. And yes they do make it for other cameras (Canon and Nikon) too.

]]> 0
How to pick a church wordpress theme Sun, 27 Mar 2011 01:14:26 +0000 Mr K So you need to create a new site for your church & you are wondering where to go? I’m going to go out on a limb and say chances are WordPress is going to give you all you need.

Here’s some resources that might help you get up to speed:

But how do you pick a theme?

Well, let me say that’s never the easiest thing to do – there are SO many choices out there.

  1. First work out exactly what you want your site to do, what’s the purpose. This will drive what theme you pick as you look at what needs to be shared on the pages
  2. Do you have the resources to drive visually rich websites? Many themes look beautiful on the demo sites with their graphics etc added – do you and your team have the time/skills to make up these graphics?
  3. Media – podcasting? Decide what media you are sharing through your site, this also will dictate if you can use a theme or not
  4. Who’s looking after the site? Do they/you have the technical ability to customise or tweak the theme to your specific needs?

Help me pick a theme?

Okay I’m going to suggest spending some money, why? Well put it this way. Spend a little to get something that you know works, that does exactly what you need and doesn’t need any finessing after that.

Elegant Themes:  I’ve talked about these guys before & they have to rank as one of my favourite theme companies. We’ve used their minimal theme on our church site. One of the key things I like about these guys is their “shortcodes” that at the click of a button allow you to add complex web elements like tabs, accordions, buttons etc to your posts. Super easy & super cool

However, as good as Elegant Themes are they are not custom made for churches, so you may need a little customisation to make them do exactly what you need. We had to install extras to support Podcasts etc.

ChurchThemer:  These guys I’ve come across recently & am currently working through a review in depth of one of their themes. I’m going to recommend ChurchThemer over Elegant Themes if you don’t have the technical skills to customise your theme. The reason I say that is that ChurchThemer wordpress themes come out of the box purpose built for churches. They make use of wordpress custom post types to allow you to quickly set up sections for sermons (complete with podcasts/mp3), events and notices. Notices are notoriously hard to setup as posts in wordpress, ChurchThemer makes that easy for you.

What about free?

There are many free themes out there, but be careful, you get what you pay for. Do you really have the time to muck around finding a theme that you then have to customise, when a small outlay might actually save you time?

I’m not going to list free ones here – there are too many to list. But Church Communications Pro have a great article that links out to many great themes – check them out here.


*NOTE:* Yes both Elegant Themes ChurchThemer links mentioned above are affiliate links. I support these two companies and they help me keep this site online. If you would rather NOT click on affiliate links, then click here for Elegant Themes and here for Church Themer

]]> 0
Stop Motion & Time Lapse Sun, 16 Jan 2011 03:34:04 +0000 Mr K This year I’ve started playing around with Stop Motion and Time Lapse photography. Essentially one in the same – where the illusion of movement is created through a series of fixed images. Time Lapse is where you set the camera up and let the world pass it by. Stop Motion is where you build an animation by moving objects around.

My first attempt was a simple walk test with Lego:

As you can see it wasn’t great. There was no planning, and no “gear” setup. I simply grabbed the point n shoot & started shooting. Crude – but it kinda worked.

My next test saw me sticking the lego board down, sticking the camera to the table (both with double sided tape) and thinking through more of what I wanted to do:

Actually I think my first test was better – but hey. So I put the 2nd test up on facebook & a friend saw it. Suggested that I borrow their Canon 400D, tripod & remote control. I couldn’t pass it up.

Here’s some of the shots I’ve created having their gear to play with.

Raisin Heart

This was the first one I created – very quickly, not a lot of pre-thought

Deck Walk

This one saw me “using” my 3 year old daughter as the subject .. she did really well I thought

M&M Motion Test

I tried to animate M&M’s moving around in a circle. As you can see I didn’t have enough frames & created the illusion that at one point the spin moves backwards

Animated jeans

One of the guys at work suggested I try something like this … so I grabbed a pair of jeans that were lying around and …

This is one of my favourite & an idea I’d love to build on. The cool thing is, with a remote trigger, my 3 year old was the one taking the shots, freeing me up to move the jeans. I’d move, step out of frame & say “snap” and she’d take the shot. After about 4 or 5 shots, she figured it out & as soon as I was out of frame she’d snap the shot.

Eating the muffin

I got hungry one night … so

This came out alright I think ….

Blue gets hungry

This one I “planned” loosely & built up. There are many mistakes, you’ll notice the h just comes together, rather than flowing & the smile/eyes should engage when blue goes on the rampage … they don’t opps.


Over the summer we painted the house:

Of course this would have been MUCH better if I’d done it on the first coat as the house used to be white & the change would have been much more dramatic. I totally love this though – esp once my wife shut the kitchen window and you see the clouds moving in that reflection.

The Lessons

So, I’d never done this before & of course I’m pretty much teaching myself. There’s stuff online but I was lazy, couldn’t really be bothered reading. So here’s my quick take away on what I’ve found so far.

  • Practice, practice, practice: you might be a great photographer (I’m not) but stop motion & time lapse are not as easy as they make out. You have to think ahead – esp around lighting. Shadows move & in still photography that doesn’t matter, but in stop motion that matters a lot
  • Plan, plan, plan: there is a reason why people storyboard their animations and work out the shots needed. I’ve not gone to that level yet, but a simple sheet of paper and an idea of what you want to do. If you want to animate an letter – how are the “characters” going to move into position?
  • Help …: having help .. can be a huge help. I found having my daughter involved freed me up to concentrate on moving objects. It of course had the bonus of Daddy + Daughter time :)
  • Take lots of shots: you need MORE shots than you’ll think. If you want a 30 second film to run at a reasonably smooth 10fps (TV runs at around 24 to 26fps), you’ll need 300 shots. If you are animating a character (or characters) in every shot, it’s going to take a long time.
  • Get a decent tripod: I can not emphasise enough just how important it is to have a solid tripod, not some flimsy thing – but something serious that can hold your camera steady in all sorts of positions.
  • Get a remote trigger: again like the tripod, get a remote trigger. Something that allows you to take the shot without touching the camera. This helps dramatically improve your shots. TIP: if you can’t get a remote control, then set your camera on TIMER of at least 5 seconds, line your shot up, click the shutter then step back – at least your camera will be steady when the shot goes off
  • “auto” is not your friend: cameras today (esp point n shoot) are amazing, they take all the work out of taking great photos. However changes in focus, aperture settings, or heaven forbid the flash going off in one shot – make huge differences in your movie. So learn to use your camera properly, automate some things -sure, but the flash should never be used.
  • Burst mode: in a push or in the right circumstances burst mode can be your friend. I took the opportunity to shoot a couple of kids blowing bubbles. With careful shooting and continuous mode, I made a great short clip of the bubbles coming off the ‘wand’ and the magical expressions on the kids faces.
  • Software: I’m using the Canon EOS Utility for managing the time lapse photography with the Mac Book Pro driving. This is great for time lapse – although have do have to lug your computer around with you. For stop motion I was using iStopMotion on the Mac but it doesn’t seem to like the Canon 400D, so I simply take all the shots on the camera and download afterwards. I use iStopMotion to put the photos in sequence and sort out the speed (frames per second). I then push the movie to iMovie to add titles, colour correct and add music (I’ve not really bothered to work much on this side of things while I play).
  • Share: the last bit of advice I can give you is share you tests, silly, great, funky or not .. just share them. Get comments from your friends, get feedback – ask how you can improve. This will help you get better and better.


I love photography (me on flickr) but I’m just a hack hobby nutter (who doesn’t even have his own DSLR). I love animation & movies, I love creativity. The summary of this post is quite simply this:

Point your camera at something, push the shutter, rinse, repeat

Seriously – just get out there and take photos, lots of photos. Put them in sequence and have some fun.


This Ice Melting clip shows you why getting the lighting right is so important – you’ll see the clip “flashes” as I walked past wearing a light coloured top – which reflected in the surfaces.

As a side note: this cube of ice took an hour to melt. At a shot every 5 seconds I ended up with over 560 shots. This plays back at 24fps

]]> 3
Some jQuery basics Sat, 06 Nov 2010 03:41:26 +0000 Mr K jQuery and WordPress

One of the things you’ll find is that most jQuery tutorials, code snippets and examples online use the $ shortcut for talking to jQuery.

For example:
$('#someElement').css('display', 'none');

This is great most of the time, however when it comes to WordPress, it will fail. WordPress uses the $ reference for something else (I forget what, it’s not important). So you need to change the scripts.

The way I’ve found it’s simplest is to just reference jQuery itself:
jQuery('#someElement').css('display', 'none');

In fact I now pretty much do that everywhere I use jQuery now.

Another way to do this touches on my old post of resolving jQuery Conflicts and that is to set up your own reference variable & include the noConflict flag for jQuery.

var $j = jQuery.noConflict();

// now just use $j
$j('#someElement').css('display', 'none');

Use .bind()

There are a heap of really great short cuts built straight into jQuery that enable you to do some things really fast. For example the .css() function or the .submit() function that gets triggered on event.

The thing is though that many of these are simply wrappers for parent classes. Apparently it’s actually faster for your jQuery if you simply use the parent class. Now I’m by no means a stickler for this, but I have found it really helpful for something, especially as you start to think about how things work.

For me “binding” a function to a form submit event makes more sense that just using .submit() – even though they are basically identical.


jQuery('#formID').bind('submit', function() {
// code to run on form submission
alert('form submitted');

Stop the default action

Of course when you submit a form the browser takes over and expects to do something – like a page reload. Usually you don’t want that. Now MOST tutorials I’ve seen will simply say, tell your code to return false; – this should really only be done if you are using jQuery to pre-process something and if the form is valid continue (thereby return true) or to STOP (thereby return false).

However if you are NOT wanting the form to submit normally, lets say you are making an ajax call, then you want to prevent the default action from happening. Thankfully jQuery has a preventDefault() function. You simply pass into your function the event (basically itself) and … well, lets just look at the example below


jQuery('#formID').bind('submit', function(event) {
// prevent the form from submitting

// code to run on form submission
alert('form submitted');

You can do this with all sorts of things – stop an ‘a’ tag from linking as expected, stop forms from submitting etc

Changing CSS elements

One thing I struggled with a little was changing a style on an element. With jQuery there a number of ways of doing things. Some of the predefined functions like .show() or .hide() simply change the CSS of the display attribute (from inline-block to none).

The first thing you’ll probably try is .css() – this is a great function for working with CSS. It can either tell you about the css attribute, or it can set an attribue.

// set textColor variable with the color attribute of the p class
var textColor = jQuery( 'p' ).css( 'color' );

Or if you want to see the colour to ‘red’ then you could do this:

// set colour of paragraph to red for an error
jQuery( 'p' ).css( 'color', 'red' );

This is really quick and handy if you have just ONE attribute to change (technically you can change multiple attributes this way but …)

The other way to modify css is to add or remove css classes that already exist in your stylesheet. This to me seems a much better way to do things as it helps keep style (display) and logic (code) separate.

Lets assume we have a class called ‘error’ in our css that defines font-family, border, colours etc, we want to apply this class to an element.

// apply the class 'error' to an element
jQuery( '#anElement' ).addClass( 'error' );

And once the user has fixed the error we can easily remove the class again, restoring the element to it’s original state:

// remove the class 'error' to an element
jQuery( '#anElement' ).removeClass( 'error' );


There is so much to really sink your teeth into with jQuery (and javascript) – I’m so glad I’ve finally been able to get my head around some of this stuff & I hope that this quick post might help you too.

]]> 2
CSS Analog Clock – your turn Sun, 17 Oct 2010 00:44:23 +0000 Mr K I’ve been playing around lately with some CSS & Javascript .. slowly brushing up and improving my skills. I’m quite happy with where I’m pushing myself & what I’m doing. Nothing overly flash mind you … but still.

The other day we were talking at work and I’d mentioned I’d drawn a clock using ONLY css & that I wasn’t using the new HTML 5 canvas tag to do it. One of the guys wanted to see it, so I figured I might as well put some jQuery too it an animate it.

Check it out – 100% CSS Analoge Clock, powered by jQuery.

Now there are some cavets with this clock. First up it makes use of “border-radius” in the CSS spec to do a lot of the drawing. This of course just doesn’t work in IE at all, so that rules out 70% of the internet.

Next up, I use the “transform” feature of CSS3 to rotate key elements within the clock – again this is only webkit (Safari & Chrome) and Firefox compatible – so that rules out Opera (although I have heard Opera can support this – anyone care to test?)

Your Turn

One of my friends challenged me to add a little extra animation to this – but I can’t seem to get it to work, so I figure I’ll extend the challenge to you.

Challenge 1
Modify the animation so that instead of the second hand simply snapping from place to place, it overshoots slightly, then bounces back and finally comes to rest. It’ll make it a little more realistic. My thinking here was overshoot by +5, drop back by -3, then stop.

Challenge 2
The shadow on the hands is wrong, can you come up with a formula (or function) that would move the shadow correctly as the hands move around the clock. Assume the light source is directly on top (shining on the 12). This should be achievable, simply by altering the numbers on the box shadow in the CSS.

Go on, have a play – can you push this clock to the next level?
100% CSS Analoge Clock, powered by jQuery – simply view source for all the details, have fun & remember to post your response in the comments (or ping me & I’ll add a link here)

]]> 1
Google Maps V3 – distanceFrom() Sat, 02 Oct 2010 01:29:21 +0000 Mr K I’ve been tinkering lately with Google Maps API. I love that Google have created so many really solid API’s that folks like myself can leverage, to simply learn with, play with – or launch some great new site with.

For those in the know, there are two formats of the Google Maps API:

V2 has been around for a while, but as of May this year is deprecated (no longer recommended), which is great because there are some awesome wins you can get by moving to V3 (like full support for all mobile devices).

However, there are some (okay a LOT) of changes between V2 and V3. For example in V2 to add a listener to an element you did:


However in V3 you do the more full reference of:


That’s fine, those are really just syntax changes and you soon pick up on those. However there are other changes

No more ‘distanceFrom()’

One of the more annoying things is some functions that were in V2 are gone completely from V3 and there is no reference in the Google documentation as to why or what to use instead.

As I said, I’ve been playing around and one of the things I wanted to do was find out the distance between two markers on the map. In V2 you simply say

var distance = markerOne.distanceFrom(markerTwo);

This fails completely in V3 – turns out there IS no support at all for any distance calculation in V3 (note: apparently it’s in beta, it was known as wh() for a while, but that’s no longer supported either).

Prototype extensions to the rescue

Now I’m not that much of a Javascript person. I tinker around, hack around – but don’t live and breathe the language like some of my friends. But one thing I did learn is that ‘prototype’ languages (like javascript) allow you to append or create functions and slot them back into a model (forgive me if my terminology is wrong!).

Basically – you can quickly add your own distanceFrom() function back into the Google Maps LatLng functions.

Okay, lets slot it in

If you are playing with Google Maps, you’ll have a bunch of javascript either in your HTML file, or in a separate JS file. Pop the following into your Javascript – I’ve got it as the last thing (just before the closing </script>  tag)

* @param {google.maps.LatLng} newLatLng
* @returns {number}
google.maps.LatLng.prototype.distanceFrom = function(newLatLng) {
   // setup our variables
   var lat1 =;
   var radianLat1 = lat1 * ( Math.PI  / 180 );
   var lng1 = this.lng();
   var radianLng1 = lng1 * ( Math.PI  / 180 );
   var lat2 =;
   var radianLat2 = lat2 * ( Math.PI  / 180 );
   var lng2 = newLatLng.lng();
   var radianLng2 = lng2 * ( Math.PI  / 180 );
   // sort out the radius, MILES or KM?
   var earth_radius = 3959; // (km = 6378.1) OR (miles = 3959) - radius of the earth
   // sort our the differences
   var diffLat =  ( radianLat1 - radianLat2 );
   var diffLng =  ( radianLng1 - radianLng2 );
   // put on a wave (hey the earth is round after all)
   var sinLat = Math.sin( diffLat / 2  );
   var sinLng = Math.sin( diffLng / 2  ); 
   // maths - borrowed from
   var a = Math.pow(sinLat, 2.0) + Math.cos(radianLat1) * Math.cos(radianLat2) * Math.pow(sinLng, 2.0);
   // work out the distance
   var distance = earth_radius * 2 * Math.asin(Math.min(1, Math.sqrt(a)));
   // return the distance
   return distance;

Now your markerOne.distanceFrom(markerTwo) will work as expected and return an integer for you to carry on using in the rest of your script.

I’m not saying this is the most amazing script – it’s not, and it could probably be written more succinctly – however it works, and it’s showing the idea.

This distanceFrom() function uses the Haversine Calculation to figure out distance.


So yes, Google Maps API v3 rocks, it’s really powerful & pretty easy to work with. However there are some missing functions, but by adding the function back in via prototype you can restore some of the simple to use functionality.

Just be careful – Google may well reactivate the distanceFrom() function in the future, so use with caution.

]]> 0
Topgun quadracentifiable seo challenge Wed, 08 Sep 2010 06:33:07 +0000 Mr K quadracentifiable the word to change the face of NZ SEO forever?]]> It’s bringing all the “topguns” to the fore, it’s challenging those who think, those that can and those that … well those who just want to try it.

What is it?

It’s quadracentifiable one of the silliest things I’ve heard of in a long time. Think about it as the modern day version of Google Bombing – “practices intended to influence the ranking of particular pages in results returned by the Google search engine”

The challenge

The challenge is to get a brand new domain ranking for a made up word before the end of the year? Technically speaking “Quadracentifiable” is a made up word. However according to the TopGun SEOs its a word that will propel seo companies from obscurity to “fame” here in NZ.

NZ Challenge

It’s a challenge issued here in NZ (more here) and I’d have to say I’d be a little more encouraged if there were some bigger names trying this out. There is no official list of entrants, no way to know who is competing and what domains they are trying to achieve this with.

I’m all for some fostering of a bit of fun and seeing some real companies setup and give it a shot – sadly at this stage the only real dealings I’ve had, have been people trying to abuse online systems to get links to their sites – I hope that dies out.


So here’s to the TopGuns of the NZ SEO scene – put your money where your mouth is and prove to us, that SEO & quadracentifiable is not all smoke and mirrors.


I am NOT participating in any team however – I’m open to bribes & have a soft spot for flat white coffee ;)

]]> 1
100 Prayers Sat, 28 Aug 2010 02:39:03 +0000 Mr K As the parent of an almost 3 year old, we are keen to foster in her a seeking heart, a heart that knows beyond a shadow of a doubt that God is all, He is I AM.

Ever since we knew we were expecting we’ve quietly looked at different books we could include in life that weren’t preachy, but reflected a natural life of including God in the centre of what you do. We found Stephen Elkins great drawings and he has a bunch of great books for young (& young at heart).

When I joined the Book Sneeze program the first book offered to me for review was this 100 Prayers God Loves to Hear, 100 Praise Songs. It was a pleasant surprise to find it was a Stephen Elkins book. When the book arrived our little one eagerly ripped into the package and squealed with delight when she saw not 1 but 2 CD’s of music. As I type this she’s dancing round in circles to the CD in the computer.

The book has many well-known prayers, graces and little stories sprinkled through it. It’s easy to sit and share the book with her. I was a little disappointed that the CD’s don’t reflect the prayers – instead they are simply 100 praise songs that have been matched to a prayer. Still the music is fun and little one loves to listen and flick through the book.

We are slowly introducing more of these prayers into our everyday life with the little one, encouraging her to explore what it means to have a relationship with a God who wants to know you.

If you have a little one, I recommend this – or any of the Stephen Elkins books.

]]> 0
WordPress for worship teams Sun, 01 Aug 2010 03:48:46 +0000 Mr K When I joined the Pakuranga Baptist Church worship team as a singer and guitarist/bassist my first question was -where do I get music from?

This was the first time I’d really been involved in worship (well I was as a kid, but then I was a drummer and didn’t really need music), and so I didn’t have my own collection.

The answer I received surprised me there is a file cabinet over there with music you can photocopy – umm okay. Being an online guy I figured there had to be an easier way, especially when I moved into worship leading and wanted a much better way to search through songs, find resources and such like. I asked our creative director if there was a better way and he said, “Yes, I’ve been working on a spread sheet that you can use”

This wasn’t going to work – sure you can search for names, you can check common sequences and such like, but there is no way to search lyrics etc.

WordPress to the rescue

I’d just completed transitioning the church from using Powerpoint for songs to using Zionworx (We’ve since moved to ProPresenter on Mac – look for a post soon on technology in worship), and during this transition our creative director wrote a Windows script to convert Powerpoint files to text files so we could import them to Zionworx. I wondered if I could use this collection of text files and the wonderful XML importer for WordPress.

I wrote a quick PHP script that would read the text files one by one and create one large XML file in the WordPress format. I then created a clean WordPress install & imported this XML file. Suddenly I had a WordPress install full of 180 songs. Of course it didn’t go completely smoothly – there were issues where either the original Powerpoint to Text or Text to XML scripts had split titles and such like. But it didn’t take long to whip through and clean up the ones that weren’t right.

Grabbing a theme

Next I needed a theme that would allow us to quickly show the songs, and be extensible so we could add extra elements to each song.

I hunted around a bunch of free and paid and settled on Basic – by Elegant Themes (Note: – that IS an affilate link, if you do buy one, please help support Studiowhiz, otherwise the non-affilate link is here).

One of the reasons I picked Basic was because of its simple nature. It’s a very clean simple theme that can quickly be adapted. One thing I did was hack the sidebar to use the WordPress custom fields for extra song data.

This side bar has information such as:

  • Usual song sequence
  • Usual song key
  • Chord sheet – for guitarists
  • Lead sheet – for singers, pianists etc
  • MP3 – great for new songs
  • YouTube – link to a YouTube version
  • Last time the song was sung & song count – great for CCLI records
  • Song printing options

This makes it super easy now for team members to grab the music they need for songs, and the worship team can keep tabs on what songs are being sung and how often. When introducing a new song, we can put a MP3, song sheets & a link to the YouTube versions of other churches doing the songs. This really helps the teams quickly get up to speed with songs.

WordPress plugins to help

Of course WordPress is fantastic – of course plugins make it just THAT much better, and yes of course I do have a few extra plugins installed.

WP-Table Reloaded: I use WP Table Reloaded for the page with our team roster on it. This plugin makes it so easy to create reasonably complex and large tables, and updating them is really simple.

WPTouch iPhone Theme: Less a plugin, more a theme, WPTouch is perfect for worship leaders with iPhones, iPads, Android and such like phones. From the phone you can search posts, find songs and check lyrics – it’s brilliant.

YARPP: (Yet Another Related Posts Plugin) has to be one of my favourites, especially in the context of a songs database. This plugin can use the category, tags and lyrics of a song to help suggest others. Now it’s not perfect, it is after all using words to match against words (rather than semantic meaning). I’ve found this really helpful just to spark those thoughts – “oh maybe this song, rather than that song”

Adaptations to WordPress

If I was setting this up today with WordPress 3.0 – I’d probably invest in setting up some custom post types. But really we don’t add much – when there is a new song I add it, otherwise we do have the church secretary update the site after the sunday from the Run Sheet – to update play dates and counts. So when it comes to adaptations and changes I didn’t really make many.

Alphabetical list: one thing of course that makes sense for a songs database is an alphabetical list of the songs. This is something blogs don’t do – they tend to order by date. So I created a page template that I could use to list the songs.

Here’s the code I used to generate the alphabetical list … note the 200 – we only have 180 songs, so 200 was more than enough for us
<h1>Alphabetical List of Songs</h1>
global $post;
$myposts = get_posts('numberposts=200&order=ASC&orderby=title');
foreach($myposts as $post) :

  • php the_permalink(); ?>">
  • php endforeach; ?>

    Other Changes: because of WordPress’ custom fields I really didn’t need to change much else. I setup some custom fields for things like Chord Sheets, Lead Sheets, MP3, YouTube links etc. Then in the side bar I wrote some IF statements to check if they exist, if they do – write them out, if they don’t … don’t.

    Music Sheets: We grab our PDF music sheets from CCLI, I download them to my local computer and then attach them to each song (or post) using the WordPress Media Upload tools – just as you would upload a post image. I then put the URL to each PDF into the appropriate custom field so they are collated in the sidebar.

    What about copyright?

    Okay this is a tricky one. As a church we have to honour local copyright laws & of course we want to honour the licenses for music we have. We are members of CCLI and we obtain most music from that fantastic source.

    The way we get around – or should I say, work with copyright issues, our Songs Database is not public. It is behind .htaccess and only team members have usernames and passwords. Our CCLI license allows us to make photocopies for our worship teams (we do have to account for these). We figure that doing this online cuts down on wasted paper & allows us to better track how many copies we have.

    As for the MP3 – many churches distribute a CD of music for learning new songs. We figure that by having these online and stating that these are ONLY for learning music, that we honour the intent of the copyright laws. We have a church iTunes account which is fantastic as we can purchase the single MP3 we need to learn – this goes to learning, and adds music to our church music collection for playing during offerings etc etc.

    Again, none of this is public – and we monitor site usage etc.


    So there you have it, a quick way to use WordPress to help your worship team have a fully indexed, searchable, online songs database that can really save time. Now when I create a Sunday Set List, I email to my worship team, with a list of songs and links to the songs on our Songs Database. They can login, check the song, grab any music sheets they need.

    Future Thoughts: we need to spend more time correctly categorising and tagging songs. Through a combination of Categories and Tags you could say that this song is a Praise song, or Worship song, then tag it with things like LOVE, PEACE, HOLY of HOLIES, REFLECTIVE etc and allow you to build up a powerful online understanding of your church music – this would of course massively improve the YARPP system too.

    It would also be an advantage to rank songs by popularity rather than always by alphabetical order. The other thing I’d like to change is the way the WordPress search works. At the moment if you search by an exact title match it sometimes ranks other songs higher.

    Hope that helps

    I hope this helps you and your church. It has made a massive difference to us – even the older (less computer savvy) worship team members love using it. It’s amazing how something so simple can really streamline the whole process.

    ]]> 1