Entries for archive: 2008

Found 67 entries.

Dear Vodafone NZ, You suck. Yours Lovingly, Pie xox

That's actually all I want to write to Vodafone NZ but I should at least qualify it a little more, so I'll just fill in the details a bit more. Sorry, this is a long post.

Dear Vodafone NZ,

About a week or so ago, it got to the stage where my phone was starting to die. It's 4 years old, the battery is hardly working, the screen is cracked and the zero key doesn't work. This is okay with me since most numbers are in my address book and I can type a space via other means when composing a text message. But enough is enough, something had to be done. Especially because it was cutting off calls half-way through.

Six months ago, my brother in the UK gave me a phone of his which his network provider had just sent to him without him asking. Wow, I thought, that's nice. They do this every year in fact - not that he needs a new phone - but because they value him as a customer. As you know, there is a lot of competition in the UK for mobile phone providers so maybe that's why. This phone which I acquired, I finally decided to try and unlock so I could use it on your network. Unfortunately, the online website I tried to get an unlock code from, couldn't get one for me so they reimbursed my payment. Damn, I thought, I'll have to get a new one. But still, glad they refunded my money and all that within 24 hours. That's pretty good customer service.

Deciding that mobile phones are ubiquitous I procede to speak to your customer services to see if you can either give me a new phone (I do not want for much, just a cheap phone which makes calls and texts) or at least a discount on one which I can use in one of your stores. After all, I've been a customer of yours for 4 years and haven't received anything from you in that time apart from bills (which I duly pay).

Of course, I can't speak to anyone when I phone 777 from my mobile since I need to press 0 to speak with an operator and my zero key is b0rked. None of the other options would get me through to the right place. Instead, I try other combinations of keys so that your system can figure out I'm having trouble. Not much happens for a while. Finally I press something which takes me through to another number. It rings, the voice says "Thank you for phoning Vodafone yada yada, please hold while ..." - ring ring - "Thank you for phoning Vodafone. Goodbye". Thanks Vodafone, that's really helpful.

I decide to look online. I log into vodafone.co.nz. It has my address and home phone number from three houses ago. You send my bills to my current address (and have done to every address in between), so why are my details on the site wrong? Obviously your regular accounts are not linked through to your online accounts.

Please to be fixing. kthx.

Also, I can log in with my email address under which you know my phone number, so why can't I log in using my phone number too. I mean, right next to the login box it says I should be able to but I can't.

Please to be fixing that too. kthx.

I manage to log on. I want a new phone so I look around and see if I can get a discount. No, nothing. Ok, fair enough, I'll go to a shop and see if I can talk to someone and make it easier on myself. After all, this is a specific request, I can't expect the website to deal with everything.

So I head along to a store of yours. I tell them that I've been with you for four years and that I should be classed as a valued customer since my existing relationship with you is pretty good. Yes, I apologise for a couple of late bills in the 48 I have given you but you know, I'm on automatic payments now (and so you can stop sending me txts about my bill, I don't care, it just gets paid - please, to be fixing. kthx). And ok, I don't give you a huge amount of money, but it all adds up. "I'm sorry sir, we can only give discount on phones if you change plan to <insert extravagant unwanted plan here>, and probably only if you get an <insert expensive over-functioned phone> phone valued at over $299". So I realise that a Vodafone store isn't actually a Vodafone store, it's just a franchise with no powers whatsoever, just reading the text on the screen in front of them.

Please to be fixing to give them real powers. kthx.

Of course, I didn't actually want to change plan since all the new ones offer 'Anytime' minutes and in fact, I only want 'Off-Peak' minutes. I'm happy with my plan, I don't want to change. I told various people this in a couple of shops and I told them the reasons why too (because it has free 'Off-Peak' minutes). However, looking at the website again I notice that there is a plan called 'Base 20' which basically offers my 'Get 70' does for a tad cheaper and also includes my 'Off-Peak' minutes too. The website only seems to advertise the 'Anytime' but this was hidden away in some small details on a minor page of the site. Also, why didn't anyone I spoke to beforehand (both recently and a little while ago too) ever tell me about this plan when I'd described why I wanted to stay with my 'Get 70'? Hmmm.

Please to be fixing so your staff listen, understand and react. kthx.

So I head along to another store for another chat, you know, just because I wanted to find out more and to see if someone else can offer me help. I figure, if I can get a discount on a phone by changing plans, maybe I'll change to the new 'Base 20' plan I'd just seen. I tell them that I don't want to lock into a 24 month contract though because I've done that before ... I just want to change my plan, plain and simple. Oh, and I'd like a new phone too. "Oh HAI, I'd like to change my plan please, but I don't wanna sign a contract and I'd like to get some money off a new phone". "I'm sorry, you, can't change plans without signing a new 24 month contract and you don't get any discount on the 'Base 20' plan, only on the '<extortionate other>' plans". This was the culmination of speaking to two different people on two different days. I ask if they can put me through to the 'Vodafone Customer Services' so I can speak to them but they can't because they don't have a phone in the store!!!

Please to be fixing so stores can phone customer services. kthx.

I get an 0800 number off them since I tell them I can't use 777 from my mobile due to the broken '0' key, so I have to use my landline. I dread to imagine how disabled people who can work the mobile but not necessarily press individual keys actually speak to anyone at your Customer Service Centre since it seems determined to keep you in the automatic system. You know, sometimes I just wanna mash stuff on the keys to get me straight through to speak to someone instead of having to go through the whole menu structure. (Oh, and by the way some sub-menus only have one item, so please just make the one before it just go straight ahead and do it).

Please to be fixing all of this. kthx.

(Oh and BTW, please tell your staff in the Vodafone Shops to not give out your 0800 Customer services number, my phone number and my PIN(!) number to anyone who just walks in off the street and tells them that they are a valued customer with a particular phone number, it's called 'Social Engineering' - please look it up and to be fixing. kthx.)

Anyways, I finally speak to someone on the 0800 number. I tell them I've been with them for donkies years and that I'd like a new phone or a discount for being a loyal customer and I hope that our existing relationship means something to them. "I'm sorry, we can't give people discounts, only marketing decide who gets them" "Okay, can you put me through to marketing", "I'm sorry no, we can't put people through to marketing." "Okay, can I get someone in marketing to call me back." "I'm sorry, we can't do that." "Okay, can I speak to someone with some authority to actually do something about this." "I'm sorry, we ...." "Okay, can you do anything, anything at all." "No." "Okay, thanks." "Thanks for phoning, I hope you are satisfied with the answer." "Ummm..." "Anything else I can help you with today?" "No thanks. You've been wonderful. BAI."

I sit on it for a few days whilst Christmas happens. I decide that I'm gonna just go and buy a brand new phone anyways 'coz this is too much hassle. After all, I only want a basic model and it only costs $99 on your site. I mean, that's nothing to you retail but ho-hum, I guess I am testing them with the free phone idea. But heck, now that I've seen the 'Base 20' plan, I now want to change my contract over to that. That should be pretty easy even if I buy a new phone myself.

Christmas Day comes and goes. Good times were had by all.

I wait until after Christmas and head to Dickies to look at their phones. They have the same phone as I want for $10 cheaper than you can sell it to me, so's immediately 10% off. I buy a new phone. I've had it for a day and I'm really happy with it. It phones people, it does txt messages, the battery lasts a while and even the zero key works. Wow, the happiness you would have given me just by giving me a small discount would have been worth a thousand phone-calls to Customer Un-Services but no, that wasn't to happen. It would have been nice to have even got just $25 off from you guys but I decided I wasn't going to give you any money by now since you weren't worth the hassle. It had been so hard to get ... erm, nothing from you ... so I decide to buy one anyway. Even if you had given me a discount, you'd have still made money on the thing but ho-hum, I guess you don't really care about customer service since there is only one other mobile provider in NZ and that's only Telecom. You guys are really, really lucky - you know that right? At least admit it, that you know your customers would rather stick with you for all your deficiencies than go to Telecom. Shame the competition here isn't as good as in those other free markets since I think it would be a different story if it was.

So with my shiny new basic and cheap phone, I can actually phone up 777 and press the zero key to speak to someone. The only thing I want to do now is change my contract from a 'Get 70' to a 'Base 20'. I speak to a gentleman this morning. "I'd like to change my plan please, but I don't want to sign a new 24 month contract. Just a change, that's all, nothing more than that - I don't even need a new phone now since I gave up on that idea - just to be changing my plan." "Yes sir you can change your plan but you need to sign a new contract. You could try phoning up the Vodafone Online Store, they might be able to help you change without signing a new plan." "Sweet thanks. Bye." A revelation, someone who knows a little something - at least I thought he did anyway.

I phone up the online store. It's closed, which is okay, it is Saturday after all. But the menu says that for general account enquiries to phone Customer Services on 777. Riiiight.

I decide to log on and take another look around, after all, I just want to change plans now (heh, 'just') and I don't care about a phone discount anymore. But things don't seem right ... sometimes I wonder if I'm too optimistic in this world. I can 'purchase' a new plan but I can't actually change my plan. How am I to be sure that if I purchase a new one, even if I say "Use my current number", that you won't charge me twice. I decide not to proceed and instead phone Customer Un-Services back. Please note: the three options given to me when purchasing a new plan don't actually cover what I want so please add another option which does. (1) I do not want a new number, (2) I am not an existing Prepay customer, and (3) do not want to port my number from another provider. I (4) just want to change my plan for my existing On Account number.

Please to be fixing. kthx.

Oh, and please fix the fact that when purchasing a new plan - even without a phone - it wants a delivery address which has to be signed for, even though you won't actually be sending me anything.

So I phone Customer Un-Services back again, you know, because I have nothing else to do on my Saturday afternoon. My zero key is getting a lot of work since I think I have spoken to Customer Un-Services (with varying levels of quality) about 10 times in the past week or so. At least I remember my pin number now - even ignoring the written one your shop assistant so willingly gave me with no identification whatsoever!

I say again that I want to change my plan, don't want a contract and that the other dude told me to speak to the online shop which just points back here and that the online shop is kinda not helpful and that please, for the love of God, please help me regain some sanity and maybe even a microparticle's worth of confidence in your organisation. She says "Well, it depends, you can change but you have to take a '24 Month Plan', a '12 Month Plan' or an 'Open Plan' and you pay for what you ..., "Excuse me, did you say an Open Plan, as in, I can just switch?" "Yes, but you have to pay according to ... oh ... that's $18.95 per month too." "Oh, Jimmy Cricket!" I exclaim. No-one has mentioned that before. "Yes, but you have to go to a shop or speak to the Vodafone Online Store". OMGWTFBBQ, are you serious. Right, that's sorted then. "Thank you very much, you don't know what that means to me, you're my saviour etc etc."

So at first, I decided to wait until Monday but something got the better of me. I was determined to see if the shop could change my plan right there and then. I headed down to the local and wandered in. There were two people sitting behind the counter, both of whom I'd spoken to last week (I think I'm becoming friends with most of your staff since I seem to have spoken to most of them in relation to these issues). I explain the situation. I want to change plans and that there was such a thing as an 'Open Plan' (not that either of them told me this) on the 'Base 20'. "Oh, okay!". They looked at the screen but it wasn't immediately obvious. As they were looking, I told them I'd bought a new phone elsewhere since it was cheaper. No response but that's okay, they must be used to it.

It turns out that there is a special option selection when changing plans. Not on the immediate screen but on a sub-screen you can select '24 Month', '12 Month' or 'Open Plan'. Within seconds the lady filled in a form for me, I checked it over, signed it and she said it would be effective from midnight tonight!

At that point my knees went weak (and not just because of her blue eyes) and I almost felt like my mission was complete. I mean, what would I do with my life now? It all just seemed so easy! It was over in a trifle and I walked out of the shop feeling pretty empty. All that time, spent, wasted and yet, within seconds it was done.

I decided to take the next step on my journey of life by going to a well known worldwide coffee outlet called 'Starbucks' you know, just to celebrate my little victory (I know, but bear with me, this illustrates something related to this story).

I walked up to the counter and said "Could I have a Grande Signature Hot Chocolate please?" "Would you like whipped cream sir?" "Just a little and if I can get marshmallows on top (not in the drink, but physically on top) that'd be great." "No problem Sir." She already had a code for 'just a little whipped cream' (LWC) and wrote down in full about the marshmallows. We proceeded to have a chat about how that was a refreshing change compared to my previous mission. She described in detail that some people ask for things like "Decaf, Grande Latte, two shots, soy milk with hazelnut syrup and make it hot." After all, they do advertise that you get your drink whichever way you want it. It's amazing when you see customer service like that and you wonder why other companies *cough* Vodafone NZ *cough* can't learn a little something.

So please Vodafone, I want you to do two things from my long and arduous encounter with Customer Un-Services (just two things mind, the rest you can figure out yourself, after all, you have enough money).

Firstly, please make sure your staff, both at the shops and at your call centre, know about all your call plans and what the options are with all of them. This should be pretty easy since that's what you actually want from Customer Services in the first place, to better serve your customers.

Secondly, I want you to look after your existing customers. It's been a long and hard road to get my plan changed though at least I did manage to do that. But I still never suceeded in getting either a new phone or even a discount towards a new phone from you. As I said before, you're pretty lucky that this is a relatively small and not-too-competitive environment but that shouldn't stop you from making yourselves better than what you are: self-improvement is very important no matter who pushes you to do it whether that is your customers, your competitors or even yourselves! Don't be afraid to push yourselves to get better. That's how most companies succeed in the long term, by not resting on their laurels. Please do something so that we don't feel we have to use you as the default mobile provider in NZ but instead because you're the best choice.

You can't understand how close I was to quitting you completely. I mean, if I can do without a car and a TV, then I can certainly live without a mobile phone. Of course, you could make things all better by giving me a voucher or maybe even a redemption on my new phone - leave a comment - but in reality, I'm still hurting and am still shocked at how poor both your Customers Services and your dealings with existing customers are.

So Vodafone NZ, I hope you have a nice day and please, if there is anything I can help you with, don't hesitate to call. I can be reached on my mobile phone number, available 24 hrs a day, 7 days a week. In the interests of improving my services, I shall be recording all calls.

Yours lovingly,

Pie xox

Labels: vodafone-nz, customer-services, customer-satisfaction

Inserted: 2008-12-27 17:18 (1 year, 7 months ago)

What a Guy!

This week something magical happened and therefore there is someone we owe a great deal of thanks to. As is usual with open source it took one person a huge amount of effort to step up and complete something that needed to be done.

Two days ago, it was announced that the Perl 5 repository was being shifted to Git. After many hours, days and months wrangling with all of the numerous repositories that Perl 5 has used in the past, Sam Vilain managed to somehow mung it all into one coherent Git repo!

Earlier this year, I remember when he would speak to us in work when he was probably right in the middle of doing his various custom conversion tools. He'd be telling us about Git and how other version control systems were lacking in comparison. There was definitely a point whereby everyone would take the piss and note "Hey Sam, you talking about version control systems again?" It is obviously a subject near and dear to his heart.

I'm lucky though since I get to work with such clever and interesting people. Usually those who I consider a bit of a hero due to all of the work they have done, either in groups or individually and for such a good cause (in my opinion) too.

I get to speak to Sam quite regularly, sometimes Perl and sometimes whatever other random subject he's been looking into recently. He's even contributed to a a project of mine (cil) though wish I could say the help was reciprocal. Admittedly, I don't always understand what he's saying - not the words mind, just the sentences(!) - but that's okay, it's good to listen to someone who is a naturally free thinker.

I also found another link from the GitHub guys who also obviously took a liking to our Sam (describing his effort as a heroic one): A Perl Clone Appearing on GitHub.

Just as an interesting note, if I were to describe Sam and his Perl exploits in terms of the TV show Red Dwarf, he'd be a bit like the 'Ace' version of Arnold Rimmer from a parrallel universe. You know, the one where 'Ace' always says:

Smoke me a kipper, I'll be back for breakfast!

to which the rest of the crew just mutter:

What a guy!

Sam, you're a good guy, well done and thanks for all your effort in porting the Perl 5 repo over to Git. Sometimes I feel both Perl and Git go hand in hand since they both have that powerful yet non-restrictive way about them.

And finally, to sign off ... if I were one of the Arnold Rimmers from a parallel universe, I'd be the classic Rimmer we all know and love. And his phrase would be quite apt at this very moment in time:

Stoke me a clipper, I'll be back for Christmas.

Signing off for this year, Merry Christmas and Happy New Year everyone!

Labels: perl, git, planet-catalyst

Inserted: 2008-12-24 20:36 (1 year, 7 months ago)

Good Prices for CDs

I've wondered for quite a long time, but where is the best place in NZ to get good and reasonably priced CDs?

I'm almost bored to tears going into the following shops:

  • The Warehouse - just stocks chart music
  • The CD Store - since they're always overpriced
  • Whitcoulls - not much selection

I should go to:

  • Real Groovey - pretty good for 2nd hand but sometimes still more expensive than new in other shops

What I really need is an online retailer where I can browse from the comfort of my office chair, oh, er, I mean armchair and receive them in a day or so in the comfort of my house.

What do you recommend? Take into account that I need to be buying and supporting NZ music more than I do now but also that I won't be exclusively buying Kiwi made.

Labels: cds, new-zealand, music

Inserted: 2008-12-09 23:19 (1 year, 7 months ago)

What a Week

It's been a bit of a crazy week, lots of things happening and not much time to do much.

Luckily it started off well and ended well but the less said about the middle the better.

Last Sunday I went to the first ever performance of Schola Sinfonica (a member of the Wellington Youth Orchestra group of orchestras) for which my friend Rachel Hyde helped set up and conduct. It was a moving performance especially since it was their first and for which a number of the children were playing either completely new instruments or had only been with them for a few weeks. Overall, their parents must have been very proud and I hope to hear them again soon.

The elder orchestra played afterwards and it seems that Wellington will be blessed with a number of great violinists in the coming years (eight of them performed solos). This was a pretty impressive performance by a good solid set of young people and bodes well for our classical future.

Work this week was pretty mad. There were a few panic buttons pushed and those situations are never that enjoyable but we got through them. I also worked late three evenings so by the time I got home, I didn't want to do much else than eat and go to bed (so my normal life seems to have been put on hold momentarily). However, I felt I was quite productive and so I know we're a good step further along the project line.

The week ended with me going to another classical performance but this time to the NZSO. It was the last subscription concert of the year and a very enjoyable one. I always seem to enjoy about 60% of the music, think that 20% is good but not as exciting as it could be and the remaining 20% is a little weird or not my type. But overall, it's a great experience and I appreciate the fact that I am able to attend these events.

This weekend is already looking decidedly busy. Mountain biking tomorrow, some other bits and pieces and I hope to be able to relax tomorrow night. Sunday I will head to the market, have a small ride, meet up with the Wellington NaNoWriMo contingent at lunch, play indoor soccer in the afternoon and then watch the Phoenix play early evening. Phew! It's gonna be busy. Not sure when I'll get the time to just chill out.

Labels: nzso, mountain-biking, wellington, phoenix

Inserted: 2008-11-21 23:42 (1 year, 8 months ago)

Finally, OpenID for Google Accounts

Google has just announced that it is allowing OpenID for ALL of it's user accounts.

It's weird though since it is calling it Federated Login when in fact it really should state the fact it is is enabling OpenID (I had to double check just to make sure it was). Over on the Google Code Blog however, they're being a bit more technical :-) and actually saying so - Google Moves Towards Single Sign on with OpenID.

Overall, this is great news. Yes, Blogger has allowed OpenID for a while and there was that little test with Google App Engine, but this is what we've wanted for a long time.

There are very few companies now who don't accept OpenID and very few of the big ones (with lots of users) who don't provide OpenID.

So hopefully in the near future you'll just need one OpenID, and therefore one password, to log in to as many sites as you use. Of course, you'll be able to have as many OpenIDs as you want but that's your choice.

There seems to be some interesting things going on with each of the new people accepting Google Accounts by their email address rather than traditionally by their OpenID URLs. I suspect that this is just a predefined step over the first contact the website consumer has to do when first contacting the provider. I'll probably post further into why this is happening another time.

But anyway, that's beside the point.

Now all we need to do is make Google, Yahoo! AOL and all the others accept OpenIDs!

It's a long slow road, but we're eventually getting there.



    

    

    

    

Labels: openid, google, planet-geek, planet-catalyst, yahoo

Inserted: 2008-10-30 13:06 (1 year, 9 months ago)

Rollerblading Group in Welly

Just thought I'd post a link following on from my post the other week about how I enjoyed the roller disco.

It turns out that Wellington has Rollerblading group (thanks Shiny for the link) though the group is still young, it looks like we can kick-start it with a few more people.

They (me and the group founder at the moment) are having a blade around Oriental Parade on the 9th November from 2pm, to Evans Bay and then back for coffee and ice cream.

There were a few people who seemed interested after my last post about rollerblading so come and join us (weather dependent).

Hope to see you there.

P.S. I went out to Makara Park on my new mountain bike today - and fell off twice. I now have a number of bruises on my shins but luckily it wasn't major. Still, it's fantastic fun though.

Labels:

Inserted: 2008-10-29 18:38 (1 year, 9 months ago)

Not Doing Smilies

Sometimes you wonder how you got into a particular situation. Sometimes you got yourself there, other times, you're where you are because of decisions other people made before you turned up.

It turns out I was in a situation today who's root cause was due to the people before me. It was only when I booked time against the project did I think of this blog entry. I booked some of the time spent with the comment:

Not Doing Smilies

At the time I wrote it I was being completely serious since I had to stop a particular website from converting those :-) smilies into images. Yes, it was that weird.

It was only afterwards, when a colleague of mine told me it was the "best comment ever", that I realised I myself was not doing my usual smilies.

Why wasn't I smiling? You see, we were in a situation whereby we were repaying 'Technical Debt'. I know this because Stephen gave us a great talk on it a few months ago. I guess I always knew what it was since I've had to clean up other people's messes before but his talk really rammed it home how many multiple times we actually have to pay it back. Once in technical debt, you spend continuously more trying to get out of it. It's almost like it spirals out of control and in some of those cases, many people's fixes are just papering over the cracks (another colleague's comment today).

The General Problem

So there we were, trying to figure out what the hell was going on with something which had about the same tensile strength as a piece of chewing gum. It was inherently brittle and it just pained me to wonder why and how it was originally set up as it was.

As it turns out, the problem above wasn't the overall problem but was at the end of a long list of problems. The root cause problem however is in the way this particular part of the project was set up. It was done in a hurry in the first place so that the client could get something up and going 'as fast as possible'. I'm guessing this is what the client wanted.

If you're anything like me, then as soon as the client says 'as soon as you can', 'by tomorrow' or 'ASAP' then you know you're onto a losing situation already. Even if you argue, refuse or try to clarify why this isn't a good idea, you're usually stared back at with a I'm the client and I'm paying for it, so you just do it' look. By then, no matter what good reasons you give, it then becomes a powerplay in which you're bound to be on the losing side - for reasons other than technical ones.

Another negative in all of this is the fact that the client - in a fair majority of cases - may actually be an internal person who is working alongside you. This person might be someone in a higher position, a manager or maybe just someone with the loudest voice. The end result is the same; you're left to do a sub-standard piece of work against your wishes. And no matter what you argue, how you put it and explain the reasons why this decision is a bad mistake, you're still forced to do it.

This doesn't sound good does it?

And you know that ultimately, it's going to be you who has to clean up the mess afterwards. Let's face it, you're the person most intimately involved in the code and therefore you just know why it's going to fail. It's so clear to you yet still, there is nothing you can do about it. Yet all these other people who don't know the code as well as you force you to do it. My brain hurts thinking about how this can ever be a good thing.

History Repeats Itself

I don't blame the people before me for what happened today since I wasn't there, I wasn't in the situation they were when those decisions were being made but I can only imagine that they were left with no choice since they had to get this thing going 'ASAP'. Granted, I might have done something different in their situation but that solution might not have been much better than the one we were left with today.

So what was initially designed as something to get 'up and going very quickly', soon descended into a botch job that no-one liked, no-one took ownership of (because it was a botch job) and therefore that particular subsystem was left to rot and die unloved and in a state of disrepair. Eventually, it all came to a head when the brittleness of the solution came back to bite us - all of us - on the sensitive behind! No-one really likes being bitten on the bum no matter what they say!

Before we move on, let me just re-iterate one part of that previous paragraph, and I'm going to put it in a quote so that if you skimmed over it just prior to this paragraph, you'll definitely see it this time:

... no-one took ownership of [it] (because it was a botch job)

This is one of the most important things in software and probably in lots of other walks of life too. If something is so bad that no-one wants to look after it, then you're on to a losing situation already. If a particular job was done correctly (because they were given the correct amount of time and support) then it would be easier to maintain and for people to actually take ownership of it. That way, it wouldn't rot in hell like all those other bad pieces of software out there do.

This in itself is bad, but here is something even worse ... prepare yourself now ... in our industry, we've seen this happen a thousand times before, no-one has ever learnt their lessons from this and yet we'll see it again and again and again in the future!

That's just sad. Really sad.

All I can do at this moment is slap my forehead and shout "Craptastic Batman"!

Who Pays to Fix Things Up

At first glance, it turns out that the people who have to pay to fix the whole mess up is us. The client certainly won't be billed for this situation I'm sure. So it turns out we're paying for it. In fact, we're paying for it in many more ways that one:

  1. our time spent to fix it up
  2. our developer's energy since it is quite a stressful situation
  3. our developer's non-work time, since it had time spent on it over the weekend
  4. our enthusiasm wanes for something that wasn't already initially liked
  5. our time (and therefore money) to re-implement it properly, in a good way and without duct tape

In fact, it's not just us paying for it. The client also has to pay for it, though not in a direct monetry sense:

  1. people using that part of the system couldn't use it for a while
  2. some client's time was spent liasing with us at every step of the way
  3. other areas of the system were slower or substandard and therefore affecting even more people using it

Finally - and this is the worst of all - the visitors to the website also had to 'pay' ... since they received a substandard experience because of the problems. Either that costs the visitor a little bit of time or it may result in their eventual rejection of the site and never to return.

Shortlist for Clients and Managers to help 'Make Things Better' (TM)

To finish off on a high point, here's my quick checklist for making things work out better from the start. This is not a technical list but a list which can be used to just generally make things suck less:

  • when the developer says something will take 32 hours, don't say "do it in 16" - they know the code better than you, believe that if nothing else
  • if you have an idea for a new feature, ask how long it will take first; don't say "we want it by Friday" - if you haven't had this feature up until this point, then you can do without it for another short while until it is done properly
  • if you desparately need a feature for a particular date, please think of it in advance or at least don't expect other things to keep on trucking. Prioritising is the key and that'll really help things
  • kthxbai

See, I told you it was a quick checklist. Now go and mull it over and let me know what you think.

:-)

Labels: website, geek, planet-geek, developer, planet-catalyst, bugs

Inserted: 2008-10-28 19:51 (1 year, 9 months ago)

Save Us

I just stumbled across a post which I think would make all of us happy.

It's called Save the Developers - enough said!

Labels: planet-catalyst, web-development

Inserted: 2008-10-12 23:19 (1 year, 9 months ago)

"A Wry Smile" about Skype

Glyn Moody has just written an article on why Skype should be open sourced.

Why eBay Should Open-Source Skype is an interesting read. Whilst I think open-sourcing Skype would be good, it would be hard to convince eBay to do it. So Glyn's views that everyone should get behind an open source version of it doesn't get a look in until it actually is open sourced.

Alternatively, the FSF's list of High Priority Free Software Projects should be looked at and considered the best approach at this time.

Yes, an open source version of Skype will win but if that doesn't happen, getting behing Ekiga and the other open source VOIP programs and open VOIP protocols is the best thing to do at the moment.

Labels: skype, planet-geek, planet-catalyst, voip, ekiga

Inserted: 2008-10-10 08:18 (1 year, 9 months ago)

Help When Writing Blog Entries

Over the past few weeks, I've been reading a few blogs about writing. Mainly they're designed for people writing blogs but these guys also write for magazines, newspapers and other places too.

So far, I've been really enjoying exploring two sites in particular:

Once I start reading an article on CopyBlogger I end up doing the Wikipedia thing. I find myself with 7 or 8 tabs open with them all still to read.

Hopefully my writing style is improving and I'm really happy with my latest entry on Retire at 40, titled One Technique on How to Start Saving.

I'd seriously recommend subscribing to CopyBlogger and ProBlogger also has fantastic articles.

Labels: personal-finance, planet-geek, planet-catalyst, writing

Inserted: 2008-10-08 12:25 (1 year, 9 months ago)

Optimising a Blog the Non-Technical Way

This is a technical blog but I'm not talking technical for a moment. I'm talking content and other things around running a site. It's something I have never really done but over the past couple of weeks, is something I've been enjoying a lot.

Granted, when we see a problem, we generally see a technical solution to it, but I want to look at this from a different angle for a moment.

Take a look at my new blog, Retire at 40. Yes, I know the subject matter is a bit out there but consider the layout for the moment and not yet the content. Also consider some of the other things I have been doing to try and get it off the ground.

Layout and General Stuff

Here's a list of some of the tweaks and other things I have been doing in the last two weeks. Generally I change just a bit at a time and hopefully so that it'll help capture more people, more subscribers and with less clutter.

  • using Feedburner for my feed so I can see my subscribers
  • added Email Subscribers to the mix
  • moved the RSS and Email subscribe information to the top of the page
  • also put them at the bottom of each (individual) post
  • using Google Analytics to see my hits (currently almost 600 hits in just 21 days :-)
  • getting myself 'out there' by posting a guest entry on another Personal Finance blogger, SingleGuyMoney - Being Green and how it Saves you Money

Content

Now onto the content (but not the subject matter). Here, I have been reading a few other blogs to help in this department. Some of the things I have been trying to do are:

  • use a Creative Commons picture on every post
  • outlining my post before I write it
  • putting subheaders into the post, such that it is easier to manage and read - that storyline feel to it keeps readers interested
  • writing as though I'm talking to you not as though I am writing about me (Note: this blog is about me, so that's why I do it here.)

I have also been reading a number of blogs about writing copy such that I can increase my skill in this area too. Of course, you can read all you like but it's all about actually doing it. Again, this new blog gives me an outlet to practice and hone my writing skills.

Future Plans

These are some things I plan to do over time when it makes more sense:

  • remove the archive completely since no-one really uses it (do you?)
  • properly categorise all my posts into a converging set of tags, and show that instead
  • put the 'Digg This' button back on each post when I get more subscribers
  • promote myself more, either as a guest on other blogs, getting guests onto mine or (as is traditional) commenting on other peoples
  • keep reading about Personal Finance, writing in general and - since I can't leave this out - technical bits and pieces to help put all this in place
  • start learning more about adverts, affiliate schemes and even direct sponsorships

Oh, and by the way, I'm really enjoying using someone else's hosting service for my blog. I'm sure a few of you wonder why I'm using Blogger instead of my own CMS, but yes, this is also an experiment too (did you notice I separated my stylesheet out onto GooglePages so it didn't have to be included in every page from Blogger - something I still consider a deficiency in the Blogger service).

Progress

So far, I am happy with what I have done and with what I have been learning. It turns out (as always) there is more to it than is initially apparent. As things start happening, I'll keep you posted about how it's going and what other changes I shall be making due to what I have been learning elsewhere.

Oh, and if you're interested in the whole Personal Finance field (like myself and Stephen) are, come talk to us since I find it all very interesting. As with all the other subjects I have touched on today, there is plenty more to learn.

Labels: personal-finance, planet-geek, planet-catalyst, blogging

Inserted: 2008-10-04 00:41 (1 year, 9 months ago)

Software Freedom Day Happenings

On Saturday I spent a large part of it talking to other geeks and generally just hanging out.

At Software Freedom Day there was both a barcamp and a hackfest, though I only made it to the barcamp. I've been to hackfests before and just wanted to see what the unconference was like.

It turns out it was good. One of the sessions I went to wasn't quite so good, one was just chatting with a couple of others, in one I learnt alot about Xapian (which looks really good) and in another we talked about distributed source control and other things (but mainly focused around Git).

The setting in the town hall was pretty good though the layout of the rooms was such that there was always a 'front'. What I would have liked to have seen was more a 'circle' so (like I commented at the end of the day) everybody who turns up is on an equal footing with anyone already there.

I'm certainly not a fan of the rooms with projectors in them. Not only does this focus to the person in control of the projector but what should be an informal chat session gets hijacked by the people who were able to get in with slides beforehand. I understand that some of these people are sponsors of the event (for which we truly are grateful) but please, just say it's a presentation and not pretend that it isn't. At least that way we know what we're getting ourselves in for.

The hackfest area seemed to be really lively those couple of times I did go through though I suspect I'll still stay in the unconference next year (let's face it, I hack with people at SHDH once a month already).

So overall, a really enjoyable day and a great day to chat to random other people. Can't wait for next year already. Congrats. and thanks to the organisers for putting up the whole show.

Labels: open-source, planet-geek, planet-catalyst, software-freedom-day, linux, shdh

Inserted: 2008-09-22 21:31 (1 year, 10 months ago)

Fun Roller Dicso

Last week a friend of mine asked if I wanted to go to the Roller Disco in Kilbirnie which was on last night. At first I said 'no' but I knew I'd be going.

Glad I did in the end since it was superb entertainment and it lasted almost three hours.

I have my own inline skates which I bought way back in 1999 and probably used them 20 times over the next 2 years. Haven't used them since.

For ages I've been thinking of getting back on them and having a go up and down Oriental Parade - talk about the pressure of not falling - but I always just decided not to. Probably because of what other people think, which flies in the face of the fact that I usually don't care what other (strangers) think.

As it turns out, I'm actually OK on my feet so I'll definitely be 'hitting the streets', or whatever the funky term is these days, and having a bit more of a go.

Remember to say hi if you see me out and about when the weather's nice but please don't take the piss out of my knee, elbow and wrist guards :-)

Labels:

Inserted: 2008-09-14 10:12 (1 year, 10 months ago)

Long Term Plans

I'm hopeless when it comes to short-term plans. I never know what I'm going to have for tea, I don't have a diary to tell me what's happening next week (though I usually remember) and I have no-idea what I did last week.

However, my life has usually revolved around some quite long term plans, most of which happened almost exactly as I expected with some leeway here and there.

For example:

  • I knew when I started work that I would come back to New Zealand to work - it took 4 years instead of the original 2 I expected
  • I paid off my Graduate and Student loans before I travelled again - which took 2.5 years instead of the planned 4 years
  • I bought my house before I turned 30, two weeks before in fact
  • my next plan is to travel around NZ for 6-12 months in a campervan sometime between 2011-2014

Since I bought the house I've been saying to everyone that I planned to pay the house off by the time I was 40. Some people gave me interesting looks when I said that but seriously, that's what I'm planning.

In fact, I'm planning a lot more than that. Recently, I have decided to go from a normal five day working week to a four day week. I remember exactly when this idea came into my head - last Christmas/New Year - since it was a good time to work a couple of days, have a day off, work a couple more and have a couple more days off. It just felt right!

In January, I asked at work if I could do this magical four-day work week. Luckily for me they said yes though between us I delayed it twice due to curent project needs. Finally, 9 months later, it's now happening :-)

This has made me think though. Now that I'm earning less I need to spend less. It's something I've been thinking about for a while but finally I am having to do something about it. As I said, I cut down some expenses when I bought the house but now I'm earning less, I have to cut down more. Already I made changes earlier this year when I moved from Seatoun into town ... it's cheaper rent and I don't have to buy a bus ticket either. Already I'm saving a lot which offsets against my lower income.

But here's another twist to the tale. As well as still wanting to pay the house off by the time I'm 40 I also now want to retire at the same age AND at the same time as only working 4 days a week.

Crazy? Yes. A little bit mad? Of course. Unobtainable? Probably. But here's the interesting bit - if I aim for 40, I might just get there by the time I'm 45.

Financial independence by the time I'm 45, I suspect anyone would want that.

To help my on that road, to make it open so that people can see my progress, I shall be keeping a blog which will include my ideas, some facts and figures but mainly my tricks and techniques to making it happen. I'd been thinking of doing it for a while but now that I'm 4 days a week, the time is ripe.

I also know that having the support of another person also helps you along. Stephen and I have already discussed a couple of things to do with Frugality/Savings/Retirement Plan (call it what you will) so I thought it would be good to get my blog up and going too.

There are only two articles so far but please subscribe to the RSS Feed for further posts.

As I say in the intro: Wish me luck!

Labels:

Inserted: 2008-09-13 12:24 (1 year, 10 months ago)

Stuff to do for Cil

Whilst I was away, there were a number of things cropping up that people wanted for Cil.

The two most interesting requests that people have submitted are:

  • addition of UserName and UserEmail to the .cil config file
  • ability to have a cil work command

The 2nd idea strikes me as being really useful so thanks to Yanick for all of his ideas, keep them coming.

Both of the ideas above are good but there are just a few things I'll want to discuss with the authors. There were also some requests that I create a mailing list for Cil development - now done - so we can talk these things through.

Please join up if you are interested in Cil and where this little adventure might take us.

Finally, a big hello to everyone ... I'm back in the country so I'll see you all very soon.

Labels: cil, planet-catalyst

Inserted: 2008-09-05 00:45 (1 year, 10 months ago)

Cil Hits a Nerve

I'm amazed at the reception Cil is getting so far. Further news now is ...

... Cil has been made a featured project on GitHub's Homepaage (though you have to be logged out to see it).

I spoke with Tom Preston-Werner a couple of weeks ago about projects which help drive Git adoption and thought he would be interested in Cil. He told me he'd feature it on the front page of GitHub so thanks very much Tom, that's awesome.

My Ohloh stats on Cil are also looking good and will soon show that the project has already had 6 contributors, some of whom have jumped completely out of left-field.

Thanks to everyone for helping out so far.

Labels: git, cil, planet-geek, planet-catalyst, github

Inserted: 2008-07-31 21:28 (1 year, 12 months ago)

Cil is now in Debian Testing

Cil has been through Debian Unstable and is now in Debian Testing.

If you didn't know, Cil is a command-line issue list which lends itself well to distributed bug tracking. It saves issues, comments and attachments locally and already there are some powerful features and ideas in it.

Cil v0.5.1 is now in testing and hopefully will be in the Lenny release. That particular version of Cil has all of the basic structure required to start using it and a number of great commands to help use it.

There is no v0.6 of Cil yet but there are a number of things planned. I added some initial abstractions about how Cil can integrate with various VCS systems and SamV has gone one step further and added some actual features which integrate even more to what I initial imagined. v0.6 will hope to tie up and pull together a number of loose ends around this whole area.

Further out, there are even more ideas on the horizon but I shall tell you about those closer to the time.

Some of you know I shall be off on my hols shortly so it may have to wait until after that but as I said, v0.5.1 is a nicely round and complete version to appear in Lenny. Have fun and happy hacking.

Labels: debian-lenny, cil, debian, planet-geek, planet-catalyst

Inserted: 2008-07-22 18:18 (2 years ago)

Problems with Google Reader

It's a web service. Which isn't bad in itself but that means there are many things missing or broken which I CAN'T CHANGE!

For example, let's take a look at one of my subscriptions. I was going through them today and filtering out those I didn't want to read anymore. Every now and again I stumbled upon something which just hadn't had any updates for a while.

Take DabbleDB for instance. I can't remember the last time I read a blog entry. Surely they're still around? I looked at their feed URL http://dabbledb.com/blog/?feed=rss2 ... which redirected me to http://blog.dabbledb.com/?feed=rss2 (and ignored the param). I then found their real feed right here http://feeds.feedburner.com/DabbleDB.

Yes, they're still around and very much alive and kicking. So why didn't Reader tell me what had been happening and that the feed didn't exist anymore?

I suspect there are a number of feeds I added over time where I haven't read anything from them in ages and all because they have moved the feed elsewhere.

What am I to do about it? Continuing on from my half-baked plan to use on-line services less and less, I am about a quarter way through writing a small RSS Reader I can deploy onto my site (I couldn't find something that already existed). It'll only be small since it'll only serve one person (you!).

Already I have an outline plan and some code but I have a nice feature set forming in my head. It'll give you a lot more information about the feeds you read. For example have you ever wondered:

  • when the feed you're reading last updated?
  • when was the last time you retrieved it?
  • how many posts have they done in the past month or even year?

And of course, this isn't on the desktop, it's on the web so you can read your feeds from anywhere. A nice 'Next' button in your toolbar would be handy, as would the ability to preview something instead of having to go there.

My plan is to be able to have your feeds public since that would be kinda cool, be able to click them and have it remember that you've read certain posts, and (thanks Donovan) I may even have something like a star so I can click interesting posts to share them.

Francois also told me about the Franklin Street Statement the other day. Whilst I might not actually pledge to it myself I do intend on releasing this software under the Affero GPL which will be awesome. Not because a big company will come and use it and therefore have to contribute back changes but so that anyone can use it and contribute back.

As I said, I'm just starting but hope to have something ready in a few days time.

As a final note, I'd like to say that I've been using Google Reader quite happily for ages and it has been really good. Now though I'm of the opinion that no matter how good, bad or indifferent a webservice is, it is always better when it is open.

Labels: google, planet-geek, planet-catalyst, rss-reader

Inserted: 2008-07-16 23:22 (2 years ago)

QR Code for http://kapiti.geek.nz/

The Google Chart API now supports QR codes.

QR Codes now available on the Google Chart API. Here's mine for http://kapiti.geek.nz/:

And the link I did it with.

I originally saw this because Brad Fitz has used it to put on his Facebook profile image which is interesting.

I guess if image search engines want to know where an image originally came from, they can scan for the QR Code

Taking this futher, I can think of one really good use already. You could put it on your Creative Commons licensed Flickr images and that way, the attribution part of publisher's side of the deal is already fulfilled. That can only be a good thing (as to whether they want a black and white pattern in the corner of their published images is a different story).

So I'm already defining a small protocol in my mind which might be quite nice.

There are 4 corners of an image so maybe something like this:

Any thoughts (apart from the fact it might look ugly)?

Labels: creative-commons, qr-code, planet-catalyst, google-chart, kapiti-geek-nz, flickr

Inserted: 2008-07-11 10:11 (2 years ago)

Cil News

There have been a number of good things things happening with Cil in the past week or so.

Just a few quick notes to start off with:

When writing Open Source Software, it usually feels good to be able to give something back but it also feels better when someone is helping you too. Francois deserves all the credit getting Cil into Debian and a lot of the credit for many other features already in Cil.

Now I just need to get my act together so I can contribute to email-reminder - I promise there will be patches before sunrise.

Labels: cil, planet-geek, planet-catalyst, dbts

Inserted: 2008-07-05 19:13 (2 years ago)

Cil v0.4.0 released

This release has a number of new things and functionality.

Here's the short version of the changes, though there are quite a few since Saturday's release:

  • now reads a ~/.cilrc config file, so set your UserName and UserEmail in there
  • you can now filter on --is-mine which takes your email from your ~/.cilrc
  • you can now use shortened hash names for issues/comments/attachments, so long as they are unambiguous
  • a new command called 'am' has been added so you can process email messages into either new issues or comments on existing issues (ToDo: processing of multiple messages in actual Mailboxes)
  • allows dependencies between issues so you can state which DependsOn or Precedes another

Documentation has been made a little nicer too.

There are still lots more ideas to get through but I'm sure it'll slow down at some point. As always, thanks to those who provide me with inspiration and ideas, you know who you are.

Have fun, let me know how it goes and happy hacking.

Update: fix to packaging, patched to v0.4.1, see the main cil page for tarball details.

Labels: cil, planet-catalyst

Inserted: 2008-07-02 23:47 (2 years ago)

Why I'm Passionate about Perl

I saw this meme on Grant's journal (huh, who keeps a journal these days, I knew he was old fashioned). Not sure where he got it from but I thought I'd do it anyway.

\b{The person who introduced me to Perl showed me that...}

Erm, nothing. I was the same as Grant. I introduced myself to Perl and I'm glad I did. At the time, I was living in Germany, had a crappy old laptop, no webbernets and lots of time. I had to do something and somehow, Perl won.

I first starting using Perl to...

...do my own photo gallery website. And yes, I wrote my own templating language. I love the fact that I did it and I think by doing so, my passage towards being a true Perl programmer was complete. TMTOWTDI! It's my party and I'll cry if I want to.

I kept using Perl because...

...after only a few days, I was connecting to The Gimp and writing Perl-Fu modules to generate the graphics, the thumbnails and all the buttons on the site (duly swapped with onMouseOver and onMouseOut). The fact that this language was reading in XML, writing out HTML, reading in jpgs, writing out lots of other images and all these other things made me think that this language was special. At the time, I just didn't know that it wasn't a language at all, and instead was an addictive kind of glue, dressed up and disguised as a language.

I can't stop thinking about Perl...

...because it just encompasses everything I believe in. It has power, expressiveness, individuality, schizophrenia and duct tape (lots of it). It's also free and it has a great community, which are both hugely important factors.

I'm still using Perl because...

...I haven't yet found anything better than it. I'm afraid it's that simple. Other scripting languages don't seem worthwhile enough (or different enough) to spend time on and it's only completely new paradigms like Erlang, which I would consider learning. Whilst a lot of Perl people are saying "Ruby until Perl 6", I'm saying "Perl until Perl 6".

I get other people to use Perl by...

N/A. I don't say to other people that they should do anything. Then again, there's no harm trying to convince someone to use something by showing them it's better. I mean, show them a thousand line Java file or a 10 line Perl program. Also show them ACME::EyeDrops and say "There, you do that". If they reply with "Why would I want to?", you've just won the "Which is more fun?" argument.

I also program in ... and ..., but I like Perl better since...

...as stated before, I've not found a better language, though in the past I have written stuff in C, C++, Ruby, Java, Ada 83 (Ravenscar Profile) and a few other bits and pieces. To be honest, waiting for stuff to compile just bores me to tears. It used to take me a thousand hours to get an Ada program to compile and once it compiled, there was no point running it since I knew it would work! Perl is a refreshing change :-)

Labels: perl, planet-geek, planet-catalyst

Inserted: 2008-07-02 21:33 (2 years ago)

SoCNoC 2 a Success

Despite my own failure at doing SoCNoC this year, a number of other people have and it is they I'd like to thank for making SoCNoC what it is.

Throughout the year, a few of us behind the scenes in KiwiWriters do lots of work to make sure we're ready for SoCNoC during June. Sometimes it feels like a lot of work but when it starts, it's all worthwhile.

And this year we have managed to break a number of records. Here's a quick run-down of some of the more memorable figures:

  • 143 participants (2.4x last year)
  • 32 winners (2x last year)
  • 2,635,755 cumulative words written (2.6x last year)
  • 58,000 page impressions (2x last year)
  • cost - free (same as last year)!

and lots and lots of fun in to the bargain too.

Well done to everyone who completed it. Special congrats. to our organisers who not only did all the work but managed to write a novel too: Kerryn, Travis, Cassie, Pam - and hello to Jane too!

Here's looking forward to a record breaking 3rd SoCNoC next year!

Labels: kiwiwriters, socnoc, planet-catalyst

Inserted: 2008-07-01 21:46 (2 years ago)

New Cil release v0.3.0

Here's another release of cil for your perusal. Staying true to the "Release early, release often" mantra, I hope you have fun playing with it.

I'll quickly go through all the features in this release:

Filters when Listing Issues

For example:

 $ cil list --label=Type-Critical
 $ cil list --status=New
 $ cil list --assigned-to=andychilton-at-gmail-dot-com

(Note: --label and --status were in v0.2.1.) These can be combined too. For example, this is the command line I used to make sure there were no outstanding issues for this release of cil:

 $ cil list --is-open --label=Milestone-v0.3

and opposite to that, for the changelog I could figure out what had changed since the last release by doing this:

 $ cil list --is-closed --label=Milestone-v0.3

If I was on a big project, I'd probably cron something like this to send me an email each morning:

 $ cil list --is-open --assigned-to=andychilton-at-gmail-dot-com --label=Priority-Critical

That's a pretty nice filter :-)

Added a '.cil' Config File

To be able to do some of the filters above (e.g. --is-open and --is-closed) cil now reads a config file and can determine which statuses and labels are valid. There are also lists to say which statuses are considered open or closed. Of course, if you want neither of features you can just turn them off (which is the default behaviour).

Added a 'fsck' Command

Cil saves it's issues, comments and attachments in the filesystem which isn't usually a good way for (slightly) relational data. The new 'fsck' command can help you figure out missing entities though. For example, if an issue is missing its comments or attachments and whether comments or attachments have been orphaned. It also runs some validation against each issue. Validation at the moment consists of checking statuses and labels in their respective allowed list.

Here is some example output you might see from this command (usually if you or someone else has not been tracking the right things):

 ===============================================================================
 --- Issue c4fa2e27  -----------------------------------------------------------
 * StatusStrict is turned on but this issue has an invalid status 'InProg'
 * LabelStrict is turned on but this issue has an invalid label 'Something'
 --- Issue 1f67bc27  -----------------------------------------------------------
 * comment '8dfe256c' listed in issue '1f67bc27' does not exist
 * comment '99b20701' is listed under issue '1f67bc27' but does not reciprocate
 * attachment '29afc3ef' listed in issue '1f67bc27' does not exist
 ===============================================================================
 --- Comment 99b20701  ---------------------------------------------------------
 * comment '99b20701' refers to issue '893f7ea6' but issue does not exist
 ===============================================================================
 --- Attachment 37873839  ------------------------------------------------------
 * attachment '37873839' refers to issue '8af89d74' but issue does not exist
 ===============================================================================

More validation checks will be in v0.4.

Bash Completion of Commands, Options and Entities

(Where 'entities' are issues, commands or attachments.)

As stated in a previous post, there is now bash completion for cil.

Working Practices

As I said earlier, I use a few command lines to let me figure out when I can release a version. For example, the next release is going to be v0.4.0 (barring any bug fixes to v0.3.0) so I tag all of the issues I want done for that release with Milestone-v0.4. This makes it easy to see what needs doing and what is already done:

 $ cil list --is-open --label=Milestone-v0.4
 $ cil list --is-closed --label=Milestone-v0.4

For example, an issue might have been added at some stage in the past, complete with labels:

 $ cil add
 ... added issue 'cafebabe' ...

I usually commit the new issue to my VCS immediately. When I start working on it, I'll mark it InProgress, even if it is just locally. Sometimes I check this in too if it's going to be longer than a few hours:

 $ cil status cafebabe InProgress

Once I've finished hacking on the issue and I'm happy with it, I set it to Finished and add a comment to say what I've done:

 $ cil status cafebabe Finished
 $ cil comment cafebabe
 ... added comment 'decaf7ea' ...

I use Git for my VCS so prior to check in I stage all the working file changes but also make sure Git is tracking the issue properly too. It already knew about the issue file but I need to add the comment file that goes with it:

 $ git add issues/c_decaf7ea.cil

Finally when I commit, I commit the code, the issue and the comment all together. In the message I usually put the text '(closes #cafebabe)'. This keeps everything together.

What's Next

The next release of cil will be Milestone-v0.4 so I'll add that label to a few items I want in it. If there is something I want for the future but haven't roadmapped them yet (into v0.5, v0.6 etc) then I just put a Milestone-Future label on them so I know I want to do them but just don't know when.

Happy hacking and look out for v0.4 sometime in the next week or so.

Labels: cil, planet-geek, planet-catalyst

Inserted: 2008-06-29 11:05 (2 years, 1 month ago)

Cil now has Bash Completion

Another day, another feature added to cil. It's rocketing along.

I've never written anything for bash completion before (someone else has always done it for me) but I had a go at it tonight. After an hour and 15 I had it working quite well.

I was suitably impressed with the whole thing since even though I knew doing it for commands and/or options would be easy enough, I managed to do it for a few other things too (more later).

For example:

 $ cil a<tab><tab>
 add attach
 
 $ cil s<tab><tab>
 show status summary
 
 $ cil --<tab><tab>
 --filename --help --label --path --status --version

That's all happy and nice but the following feature is the killer and will make working with issues a breeze. It also completes the actual issue/comment/attachment name, giving you the choice of the correct type where necessary.

Let's say your issues/ dir contains three issues, two comments and one attachment:

 $ ls -1 issues/*.cil
 issues/a_85eceee9.cil
 issues/c_d8dd779f.cil
 issues/c_feb65ae7.cil
 issues/i_02ee35bd.cil
 issues/i_5c88cb30.cil
 issues/i_98203ce8.cil

When doing the following, it completes to one of the three issue names:

 $ cil show <tab><tab>
 02ee35bd 5c88cb30 98203ce8

as it also does for the other commands that act on issues (status, edit, comment and attach).

Another example would be for extracting attachments:

 $ cil extract <tab><tab>

completes to:

 $ cil extract 85eceee9

This is pretty good stuff already but I can already see that it can be used a lot more in the future...

Let's say you allow the following statusus in your issues: New, InProgress, Finished and WontFix. Then, setting the status of an issue would work like:

 $ cil status 02ee35bd <tab><tab>
 InProgress Finished New WontFix

Really straightforward and really fast, which are basically two of the things I wanted cil to be from the start - I just didn't realise it would be so easy :-)

Seeing as I try and credit people where I can, thanks to Francois for the suggestion of adding bash completion. It's given me a chance to learn something new to me but very powerful.

Note: this feature is in Git and will be in the v0.3.0 release.

Labels: cil, bash-completion, planet-catalyst

Inserted: 2008-06-24 23:44 (2 years, 1 month ago)

If It's us or Google, then it is us!

OpenGeoData has a post today which talks about Google's new MapMaker. It seems the Ad Broker wants to own what you do but gives nothing back.

Needless to say I'm completely disappointed in Google yet again but that's coming as no surprise these days. Head over to OpenGeoData and read the entry for yourself - Google Want to be TeleAtlas

Recently, I've been looking at OpenStreetMap a lot and have tried (and tried) to get something going so that I can map both Seatoun and Mt Vic. I refuse to install Flash to use their web editor but also the version which runs on Java isn't working for me either!

A short while ago, I thought that I'd like to make a nice, small and simple Gtk version but I just had a better idea. What about making a JavaScript version? That would be pretty cool.

Currently I have no time but this might be one of those ideas that simmers for a while and then one day, I try it and see what happens. I fear it will be a big project but wouldn't that be just awesome!

As for helping Google map the world and taking your data, thxb'nothx.

Labels: opengeodata, planet-catalyst, openstreetmap

Inserted: 2008-06-24 22:20 (2 years, 1 month ago)

Cil with New Features

Already there is a lot of news on the 'cil' front just 24 hrs after releasing v0.2.

I've had a number of enquiries about \l{cil|/software/cil.html} consisting of emails asking for help, emails giving advice but even better fixes from both \l{Francois|http://feeding.cloud.geek.nz/} and \l{Sam|http://vilain.net/}. Thanks guys.

Francois has also already uploaded v0.2.1 to Debian Sid for inclusion in Lenny. Many thanks Francois, it's a pleasure being able to work with someone so passionate and involved in Free Software. We all have lots to learn from you.

Release v0.2.1

Anyway, I'd just like to say that v0.2.1 released earlier tonight had the dependency on Term::CallEditor removed to simplify a couple of things. Also, there really wasn't that much code in there anyway.

Working towards v3.0

If you get the HEAD of the cil git repo, you'll already get some new funky features such as the following:

 $ cil list --status=New
 $ cil list --label=Release-v0.2
 $ cil list --label=Type-Enhancement

These, of course, can be combined:

 $ cil list --status=InProgress --label=Milestone-v0.3

and you can also use these same filters with the summary command.

From issue #85eceee9, there are also plans to have something like the following too:

 $ cil list --assigned-to=andychilton-at-gmail.com
 $ cil list --has-attachments --has-comments
 $ cil list --is-open
 $ cil list --is-closed

(These last two will only happen when there is config to say which Statuses are Open/Closed.)

I'm liking these filters already and with the new ones above it'll be great. Heck, I'm even thinking of cron'ing various filters so I know what I have to work on each day :-)

Other Issues

I have also added an issue, #98203ce8, which describes how to add proper searching to cil. This will supplement the above filters quite nicely.

BTW: I have searched and searched and searched for a nice, small and instant indexing system within the Debian repos. I've tried a couple of things which didn't quite work how I wanted it, so if anyone has any ideas, I'd love to talk to you so get in touch.

e.g something like this would be fantastic:

 $ cil reindex
 $ cil search 'Project Blah refactoring'
 $ cil search 'screenshot table formatting'

Then we'd just list the issues found. It should be very simple with no setting up (except inside cil itself.) If git can 'init' and cil can 'init' then search should be able to set up real quick too.

And finally...

I'm already using cil to track itself and I'll be shortly adding it to most of my other little projects too. I'm already getting quite competent at getting at the issues, adding, editing them, making sure they're in the repo and all of that jazz. It's coming together quite nicely.

Labels: cil, debian, planet-catalyst

Inserted: 2008-06-24 01:03 (2 years, 1 month ago)

cil v0.2.0 released

I'm happy to announce that cil v0.2.0 is now available for download.

When I released v0.1.0 it was a test release for two reasons:

  1. that people could try it
  2. that I could figure out if the project was viable and that people would use it

While (1) didn't happen, (2) did. I got lots of feedback even though no-one was using it. I did tell people it wasn't quite where I wanted it to be but this release changes all that.

Now it has all the makings of a tool which can just get better over time. Obviously it being v0.2, there are some things it is lacking but as it is, it's perfectly usable and nicely contained.

Some new features of cil v0.2 (over v0.1):

  • save format of issues has been updated and is nicer and more flexible than before
  • extra commands to help with managing issues themselves
  • comments work and are more generic than before
  • attachments can now be added to issues

So far, most of the commands I added to cil were quite obvious but already there are some ideas for commands to allow you to work a lot faster. Such as:

 $ cil status ISSUE Finished

Quite neat huh?

See cil for more information and also see this cil example for more of an idea about what cil can do.

Before I sign off I'd just like to point out one commit I did earlier today. My vision for cil is so that you can keep your bug tracking inside your repository. This means you can do things that weren't possible before. For example, closing the bug along with the commit(*).

This commit for example shows you that along with the fix, the bug gained an additional comment and the issue was closed, all in the same transaction. That's pretty cool.

So guys, go and have a play with this one. Thanks to Nigel, Francois and Martyn for allowing me to bounce ideas off you. And please, keep those ideas, suggestions, feedback and more importantly, patches, coming ;-)

(*) Yes, I know you can link your version control with your bug tracking system - usually with sticky-tape and superglue - but when they're in the same place, it's much easier :-)

Labels: cil, planet-catalyst, distributed-bug-tracking

Inserted: 2008-06-22 17:48 (2 years, 1 month ago)

Project AwsSum Update: Added 'Copy' to S3

Amazon added the ability to 'copy' a key within or between S3 buckets.

This functionality can also be used to change the metadata of an object too.

For example, using the thin-layer commands in Project AwsSum, you can do things like:

 $ s3-rad -b mybucket -k NewKey.jpg -K FromKey.jpg

As I said, you can also copy between buckets (so long as they are in the same location, either the States or Europe currently):

 $ s3-rad -b mybucket -B frombucket -k key.jpg

As you can see, you have to specify a destination bucket and key but you may leave off the source bucket and/or key. While the Amazon API requires everything, my S3 library fills in the blanks.

If you try to copy a key onto itself hwoever, you'll get an error back from Amazon:

 $ s3-rad copy -b mybucket -k image.jpg
 InvalidRequest: The Source and Destination may not be the same when the MetadataDirective is Copy.

but you are allowed to do this if all you want to do is change the metadata, in this case, the Content-Type:

 $ s3-rad copy -b mybucket -k image.jpg -m REPLACE -c 'image/jpg

Whilst the CopyObject operation in S3 is still beta, there has been much discussion about it on the AWS forums and I suspect the API will be final now.

Note: for those using s3bak you can now add a DefaultBucket to your ~/.awssum config file, thanks to a suggestion from Francois.

Labels: project-awssum, planet-geek, planet-catalyst, s3, aws

Inserted: 2008-06-15 12:30 (2 years, 1 month ago)

Mad Rush for SoCNoC

Seeing as I had only written 1,283 words so far this month, I will have to make an extra special effort to get this novel out this month.

I have though, made it even harder than that since I have thrown those already written words away and started again. From scratch. With nothing.

This might sound like madness but in fact I'm a big fan of symmetry and round numbers. It turns out, this being the 11th that there were 20 more days left in the month including today.

Of those, 14 are weekdays and 6 are the weekend. Therefore to get 50,000 words I have to write 2,000 words/day each weekday and 4,000 words/day at the weekends.

I don't know about you but those numbers appeal to me and I actually feel better for doing it. Don't ask me why because if you did I'd just reply "Because that's how my brain works!"

This word count is totally do-able and it'll take outside influences and factors to stop me achieving it, much like they have been stopping me so far this month.

Wish me luck and I'll see you again at the end of June.

Labels: symmetry, socnoc, novel

Inserted: 2008-06-11 23:48 (2 years, 1 month ago)

Big News, Big Number

Today at around 12:45 the cumulative total words written in this years SoCNoC passed the one million mark.

Let me say that again, we passed the ONE MILLION words mark. That's just fantastic news and congratulations to all those taking part.

Take a look on the KiwiWriters homepage to see for yourself.

Whilst last year we managed almost a million in the month, we've sailed past it after 10.5 days. Plenty of time to hit two million though I know the word rate will slow down somewhat.

Oh, and I still haven't added my 50,000 words. In fact, I still haven't written them ... but you know, that's only a small problem.

20 days left for me to catch up :-)

Labels: kiwiwriters, one-million, socnoc, planet-catalyst

Inserted: 2008-06-11 14:50 (2 years, 1 month ago)

It Never Stops

This month has been hectic. Last month was mad too because I moved house. Work has been crazy recently too.

This month, I signed up for doing a novel. Seeing as I am a founder member of KiwiWriters, I have to do it. So far, I haven't managed to get into it yet but then finally, when I thought work would settle down, it went beserk again. Hopefully it will settle down sometime soon otherwise I'll never get this thing written.

I'm happy and settled into the new flat now though so that helps. Finally I can see the carpet which is always a bonus.

And then, when I thought I'd be able to get into my novel for SoCNoC, I somehow volunteered to do a talk at PerlMongers tomorrow night (Tuesday). Silly me.

Then again, I've just written the talk and I'm happy with it. It's only short but I'm hoping to open it out into a discussion at the end of the presentation. It's about my idea of a distributed issue tracking program, initially conceived as 'cil'. There are already a few people interested in it including both Nigel and Francois so hopefully, they'll ship me patches (hint hint ...) though their ideas have already been immensely invaluable. Thanks lads, it's always a pleasure prying into your brains.

Labels: cil, planet-catalyst, distributed-issue-tracking

Inserted: 2008-06-10 00:12 (2 years, 1 month ago)

Wellington Rocks

And no, I'm not talking about that heavy metal thing over Easter.

I'm talking everything, all the time.

It's just an amazing place.

Labels: planet-catalyst, wellington, happiness

Inserted: 2008-06-07 10:29 (2 years, 1 month ago)

Nearing Half a Million Words Already

SoCNoC is not yet 5 days old but already we're nearing half a million collective words. Obviously over time, people will either finish, slow down or drop out but so far it's been amazing.

Yesterday I put a collective word count onto the front page of KiwiWriters so everyone could see our total. Not that I'm contributing much - am still only on 1,283 - but I hope things will settle down and I can get writing again to help push that total higher.

Last year we almost made one million words for the whole month so we're well on the way to smashing that figure. Fingers crossed.

We hit a different record on Sunday too, managing to get 3,600 hits in a single day. And the next day we smashed it again with over 4,300 hits on a single day. It's a belter!

I apologise to those people who don't find these figures as interesting as I do so unless we manage even more amazing facts and figures, I'll keep them to myself (yeah, right). Maybe I'll post some totals at the end of the month.

Labels: kiwiwriters, socnoc, planet-catalyst, collective

Inserted: 2008-06-05 21:51 (2 years, 1 month ago)

It's Gone Ballistic

Just the other day, we were talking how ninety-something participants at the start of SoCNoC was good.

Well, less than two days into it we're already onto 123 participants and I'm sure we'll get a few more too. Last year I predicted that we'd get to 120 - double last years total - but I never actually thought we'd do it.

It just seems to have gone ballistic over the last couple of days. I've tried to write but managed only 1,283 words since the start. There have been so many other things to do, it's plain crazy - but then, that's why we all got into in the first place!

Anyway, I should easily be able to pull it back like I've done in the past but at the moment, I'm just enjoying everything about it. Now I wonder if we'll collectively hit two million words. I would find that staggering.

We've certainly received a lot more hits on the site over the past few days too. I reckon there are some companies out there in New Zealand who don't get as many hits in a year as we're going to get in June but I will post the full figures once the month is out.

As Nigel said to me recently, it'll be a good test for Zaapt too, but in all honesty I reckon it won't push it until we get close to a million or two million hits in the month. Here's hoping!

Labels: zaapt, website, hits, kiwiwriters, planet-geek, socnoc, planet-catalyst

Inserted: 2008-06-02 22:42 (2 years, 1 month ago)

SoCNoC has Started

Already, we're underway for the Southern Cross Novel Challenge.

A few people have stayed up to chat in the KiwiWriters chatroom and Kerryn Angell (founder of KiwiWriters) set us all going once midnight passed here in NZ.

Starting the month off with 98 participants is a good start and I think we'll even get a higher percentage of winners compared to last year too. With people all around New Zealand and Australi to Finland, the UK and the US, it's truely a worldwide event now.

To all those participating in SoCNoC 2008, have fun and happy writing.

Labels: kiwiwriters, socnoc, planet-catalyst, kerryn-angell

Inserted: 2008-06-01 00:20 (2 years, 1 month ago)

SoCNoC is Almost Upon Us

I haven't written much about KiwiWriter's SoCNoC yet this year but I have two reasons why.

The first is that I've been out of action, both mentally (hard at work), physically (moving house) and electronically (a myriad of problems getting back online).

But the good thing is, I don't actually have to write much for SoCNoC this year because other people are doing it for us.

Here's a few examples:

...but the best site goes to redfox for a dedicated mini-site:

You also know when things are taking off when people out there start making things for your site you just didn't expect :-)

In the real life side of things, we had write-ins in Wellington last year but this year we expect to have write-ins in Wellington, Dunedin and Palmerston North, as well as a NZ on-line kick-off party and an American one too :-)

For the techies and the stats people. May has already been a quite fantastic month. We have:

  • 87 participants
  • gotten over 20,000 hits on the site this month
  • had over 2,000 visitors
  • and gained over 120 new sign-ups

So far, it's going really well but hopefully June is going to be even better.

So if you're still pondering whether to write your first novel, why not just sign up anyway, accept the challenge and see what happens. You'll probably be surprised at what you can do :-)

Labels: kiwiwriters, socnoc, planet-catalyst

Inserted: 2008-05-29 22:34 (2 years, 2 months ago)

Quick Help Moving from SVN to Git

Recently, I moved my Zaapt repository from a Subversion repository on Google Code into a Git repository on my server.

Here's some (really) quick instructions on how I did it. I'll be using it as a quick guide later and it may come in useful for you too.

If you want more detailed explanations on hosting Git repositories, see Nigel's excellent and more in-depth explanation. His takes you through a lot more cases (including the continued use of SVN, whereas this is about cutting the line completely).

Notes:

  • the local machine is called 'alpha'
  • the remote machine is called 'beta'
  • you will access the repo over ssh+git
  • it is private and not public
  • you repo will be stored in /var/lib/git which is writable by you
  • the project is called 'zaapt' but replace that with your projectname

Firstly some setup:

 alpha$ cd /tmp
 alpha$ mkdir zaapt
 alpha$ cd zaapt
 alpha$ git-svn init http://zaapt.googlecode.com/svn/trunk/ --no-metadata

Then, you need to tell Git how to map Google Code usernames into commit names. I'm the only one who has commited to Zaapt so I just need one line:

 alpha$ cat > /tmp/users.txt
 andychilton = Andrew Chilton <andy@example.org>
 alpha$ git config svn.authorsfile /tmp/users.txt

Then you do the actual import. Two notes here. The first is that you don't want the initial repository version since that was created (as user nobody) when your Subversion repo was set up. The second I'm assuming you know the final version of your repo is 447:

 alpha$ git-svn fetch -r 2:447
 ...etc...

Earlier I said that we would be hosting our repository on our own server, so let's get a bare-bones repo without any of the SVN cruft left:

 alpha$ cd ../
 alpha$ git clone --bare --local zaapt/.git zaapt.git 
 alpha$ chmod +x zaapt.git/hooks/post-update
 alpha$ vim zaapt.git/description

Now copy the repo to your server. I'm assuming you want them in /var/lib/git:

 alpha$ scp -r zaapt.git beta:/var/lib/git

You're now done with everything we created in /tmp/ so remove them if you like. Now get a fresh clone of the new repo:

 alpha$ cd ~/git/
 alpha$ git clone ssh+git://beta/var/lib/git/zaapt.git

And if you want a checkout at the far end too:

 beta$ cd ~/git/
 beta$ git clone --local /var/lib/git/zaapt.git

That's it. Simple but it gets the job done for what I wanted it for.

For further reading, see Nigel's page above, Sam's extensive page on An introduction to git-svn... and Chris' page about publishing git repositories

Labels: git, planet-geek, svn, planet-catalyst

Inserted: 2008-05-11 22:10 (2 years, 2 months ago)

SoCNoC is going to be mad again!

Last year's inaugural SoCNoC was an astounding success. None of us believed we'd made so many people write so much.

Here are the vital stats from last year:

  • 60 people signed up
  • 36 people wrote something
  • 16 finished (reached 50,000)
  • almost 1,000,000 cumulative words were written
  • many hours of fun were had socialising during it - writing isn't a lone sport anymore

This year we've been aiming at doubling it and getting to 2 million words. At first, I wasn't sure but here's a blog entry I found for this time last year:

Amazing take up for SoCNoC

By the 10th May last year we had 19 people signed up. This year we already have 44. That's over twice as many so let's hope it pushes on like this all the way through to the end of June.

I've said before that it's amazing how just a small group of friends and KiwiWriters.org organisers can influence such a great number of people to try something new and different. Not only that, but it's a whole lot of fun to do too - in between all the hard work of course!

It definitely pays off though. We might not be the biggest writing site in New Zealand [citation needed] but we're certainly the most exiting [weasel words] :-)

Labels: kiwiwriters, planet-geek, socnoc, planet-catalyst

Inserted: 2008-05-11 00:11 (2 years, 2 months ago)

Things on the Go

Wow, it's been busy recently. Just thought I'd keep you abrest of what's been happening.

I've been:

As you can see, I'm liking Git :-)

Labels: git, cil, zaapt, debian, kiwiwriters, socnoc

Inserted: 2008-05-07 22:15 (2 years, 2 months ago)

Challenge Yourself, Do SoCNoC 2008

This coming June we're holding the second ever Southern Cross Novel Challenge where we KiwiWriters challenge you to write 50,000 words during the calendar month.

I have signed up already and am happy to show off my participant's icon:

If you've ever thought about writing a novel or even just fancy trying something different, joining KiwiWriters and challenging yourself is a great way to expand your mind. Yes, it's that good!

So come on over and let's have some fun.

Labels: kiwiwriters, socnoc, planet-catalyst, writing

Inserted: 2008-05-04 23:53 (2 years, 2 months ago)

Good News from Google about OAuth

It seems it is still somewhat unofficial, but Google intend to allow you OAuth access to your data. Excellent news!

It also seems that Google are planning to open up all of it's Data APIs to be OAuth capable, starting with the Contacts API.

See this announcement in the OAuth group.

Well done Google. That's a great step forward. Now let's see it keep going that way.

Labels: google, planet-geek, planet-catalyst, oauth

Inserted: 2008-04-26 22:14 (2 years, 3 months ago)

Yahoo! Turning! Itself! Into! Social! Network!

...but at least it is honest about it, unlike Google.

This new initiative by Yahoo!, the \l{Yahoo! Open Strategy|http://ycorpblog.com/2008/04/24/developer-welcome-mat/} is much like Google's \l{App Engine|code.google.com/appengine/}. Except they are being honest about it, unlike Google.

Instead of saying that you now have cloud computing and you can run on our hardware, Yahoo! just blatently said "make apps for our latent social network". I think that's really what Google should have said at the launch of App Engine because as far as I can tell, that's all it is.

So looking at it on the social network level, Facebook, MySpace, Bebo, Google and now Yahoo! are all competing to be the largest social network. Amazing how everyone is base-lining at that (all due to Facebook's immense success).

I'm not a big fan about much of this though since it still doesn't help promote what I want.

Instead of competing social networks, I want collaborating social networks. As I've said before "data wants to be free" and in any of the sites mentioned above that is not the case. In fact, it just locks users in more to that platform. Also, it means you have to choose which site to write apps for, unless they already allow Open Social apps (Orkut does, but Orkut isn't that big a player).

Fair play to Yahoo! though since I think that this will be a great step for them. Still, I wonder what their next strategy is. First it was a web directory, then a search engine, then a web portal and now a social network. They seem to transform into whatever the current flavour of the month is. What's next? Anything but a Microsoft subsidiary!

P.S. And no, I'm not a Google basher, I just like commenting on where I see they're doing it wrong. You can't be mad at a company that is putting $6.5 million into open source this year. And no, I'm not a Yahoo! lover either, I left them a long time ago due to all the adverts in their terribly implemented Yahoo! Mail. Just so you know I play fair, GMail is awesome and Flickr is the best there is (except they now allow horrible videos - what a complete waste)!

Labels: google, social-network, open-social, planet-geek, planet-catalyst, cloud-computing, yahoo

Inserted: 2008-04-25 12:18 (2 years, 3 months ago)

The Footy

Just thought I'd update you all on 'The Footy'. Still something I miss from the UK but nevermind, there are things over here in NZ which can compensate for it.

I never wrote much about the Wellington Phoenix in the A-League last season. Overall it was a good year though I think we were all very optimistic at the start of the year. In the end, I think we did well and I'm glad we weren't bottom (thanks to Perth Glory for all those lovely points). I can't wait for the new season later this year.

Since December, I've been going to watch Team Wellington play in the NZFC instead and amazingly, after coming 3rd in the league, they managed to beat Auckland City in the play-off on Saturday and we look forward to a final with Waitakere United this coming weekend.

Liverpool also started the English Premier League well and finally it looked like the years of hurt would be over but no, we had a mid-season slump like we usually do and then you're out of the race. Since then we've been playing fantastic football (which proves we can do it) and have also had another great run in the Champions League.

Finally, my own endeavours. As usual, I'm still playing in the WIS Wednesday evening League 2 with 'Old Ladies from Picton' and am now also playing with 'Beerpots' in the Monday evening League 2. We also had a go at the outdoor competition earlier on in the year but got knocked out in the quarters. So overall, I'm enjoying it immensely with the main problem being my shooting - I get in the right positions but I need more accuracy.

Anyway, I'm just glad the footy and my involvment in it has gotten bigger this year - I so miss watching Football Focus and MoTD on Saturdays but at least there are some substitute footballing antics which help me along.

Labels: wellington-phoenix, liverpool, footy, team-wellington, 5-a-side

Inserted: 2008-04-16 23:12 (2 years, 3 months ago)

Haha, lol, I haz Memcached

Quote from Port 25, a blog which describes itself as "Communication from the Open Source Community at Microsoft".

Reading this post from the Port 25 blog, it says:

Oh, but wait, what is memcached? memcached is really nothing more than a cache service for accessing data. Its origins are as a cache service for the RDBMS used by Facebook.

If you think that's true, then you don't deserve to have it. That's is all.

(BTW, the link in their very first paragraph to Danga states in the second paragraph that it was originally developed for LiveJournal, which we all knew.)

kthxbai

Labels: memcached, brad-fitzpatrick, danga

Inserted: 2008-04-16 18:58 (2 years, 3 months ago)

Client Editing of HTML should be Banned

It is well known that the large majority of HTML pages out there are invalid HTML, use custom tags and have layout information mixed in with semantic information.

The real surprise though is that a lot of these pages have been crafted by professional designers and developers over the years. People who are actually being paid to create these things. Properly you might think. But no, not even close.

So if the people who are being paid to create the HTML can't create it correctly, what hope does that leave someone who isn't trained in it at all?

The answer is (of course) none. No hope whatsoever. Even assuming they have had minimal training in HTML, it just isn't enough.

But why is that whenever we have a new client and they say "And we want a WYSIWYG to be able to edit everything" we say without hesitation "Of course". In my view, the customer is not always right and it is wrong to give them that option.

I'm of the opinion that WYSIWYG editors are bad for clients to use especially because most editors generate HTML. The client moves on from wanting some minor formatting buttons and quickly on to "we want to edit all the HTML in the world directly".

This just causes problems. Not just immediate ones but long term ones too.

Firstly the client starts creating weird and wonderful effects (as shown today on Contented). Soon enough they start creating invalid, inconsistent and badly formatted HTML. It gets even worse when <font>, color="#bbb" and unclosed tags start appearing. Don't even get me started about embedding JavaScript in tags to popup a video window - it's not nice and it ain't pretty.

(Aside: I tried to explain unobtrusive JavaScript to a client once but I'm not sure I was explaining it on the right level even if there is such a level as a correct one.)

Even ignoring the actual edited HTML it also leaves the rest of the nicely groomed and well maintained site at the whim of someone who knows nothing about the web let alone the subtleties of HTML.

This practice is incorrect and this function should never be given to the client. It's in their best interests not to be able edit HTML and this practice should be changed.

Instead, clients should be given one of two options:

1) a a semantic markup language they can use which is relevant to their site. Anything to do with styles, layout and formatting is no concern of theirs. Instead they should know what a heading is, a paragraph, some emphasised text and what a link looks like. If you want to give them higher abstractions, how about an external link or a popup one. What about an embedded picture from a local store or from Flickr, or even a YouTube video. This is easy from your point of view and simpler from theirs (no more HTML cheat sheets for the editors).

2) or give them proper editing screens in the CMS which lets them edit only the content of the site. Whenever something should look different it should be because it is different not because someone says it should look different. The Content Management System should be for editing content and content only. It is not a Content, layout, formatting and stylesheet Management System. (And no, I don't believe they should be able to move blocks around in the CMS either but that's a different story.)

Let me give you an example of what happens now and what really should be happening. Let's say you have blog entries on the site each of which has a headline but depending on what type of blog entry it is (technical, opinion, guest), the sub-heading should look slightly different.

What happens now is the following. The editor says to himself:

"Hmm, this blog entry is an opinion piece so the subheading should be blue and bold, but this one is a newsflash, so the subheading should be red and flashing!"

This is bad. Bad, bad, bad.

To fix this you need to do some research on how many different types of blog entry there are. It's not so hard really.

You just quiz the client on how many blog entry types there are and arrange for the appropriate tickboxes, drop-downs or select boxes to appear in the CMS. This way the styles for every blog entry type are correct, consistent and don't look terrible. Furthermore, they are semantically defined rather than syntactically defined. (You have heard of the semantic web, haven't you?)

And finally, if those advantages weren't enough this last one really drums it home. When the site's design is changed in 2 or 3 years time and the blog entries have to look consistent with the new design, showing the sub-headings with the new correct styling is trivial.

Try doing that when your subheading has invalid, unknown and inconsistent HTML in it. Furthermore, if you think sub-headings are a problem, just wait until you get onto the blog entry itself, spotted and pitmarked with nasty HTML all over the place.

All I can say is, good luck to you or the poor person who has taken over on the project. That's going to one beast to untangle.

Labels: web, html, cms, planet-geek, planet-catalyst, content

Inserted: 2008-04-15 22:08 (2 years, 3 months ago)

Why Google App Engine Locks You in Even More

The original title for this blog entry was "What's the difference between Google and Facebook?" Answer: Google is even worse than Facebook.

Let me explain what I mean by that and then I'll tell you why I changed it.

Google have finally entered the cloud-computing world for us mere developer mortals, a whole two years after Amazon gave us S3, EC2 and other web services. If you're a regular reader of this blog, you'd think I'd be excited about this piece of news.

But I'm not and here's why.

Cloud computing, massively parrallel systems, distributed data storage and other things like that really interest me. What I want are the basic tools such that I can mold them, manipulate them and add to them to fit my needs. Basically, I want to use them however I see fit and I want to be able to do what ever I like.

But Google App Engine doesn't let you do that. It has some nice interfaces, yes, but in reality all you get are some abstractions built atop of Google's infrastructure. A lot of people are chuffed that they can now play with GFS and BigTable but in reality, how much of that do you actually see. Not much. It's just an API to you and me. An API written in Python which can only be run on Google's infrastructure.

So let me just recap that for you. To run your app on Google's infrastructure, you must use their code, their interface, their abstractions, their (single so far) language and their environment.

All in all it doesn't give you a lot of freedom. In fact, I don't see much freedom there at all. It's no argument that you'll be able to create great applications using all this infrastructure (think Gmail and Google Reader) but it's not that that I'm arguing against. You will have some slight leeway but really, why would you do it yourself when Google's way is just so much easier?

So far, I have told you that you have to do everything on their terms. Their language, their hardware etc but let me tell you something that concerns me even more than that.

It's also the fact that you'll be using their users. An API of their own design plugging in to their Accounts. You'd be able to do it yourself, sign up and manage your own users but in an environment like that, why would you?

This all reminds me of Google Gadgets - except you can write it in Python instead of JavaScript. You also get a little bit more functionality too but you're still using their infrastructure and their users.

I don't know about you but this seems like a bad idea to me. And now we're back to what this post was originally titled.

"What's the difference between Google and Facebook?"

Answer: Google is even worse than Facebook.

Let me explain.

Facebook has created a massive walled-garden of users, with high walls and plenty of pleasures inside to get those users in and not let them out. Hotel Calinfornia if you will except you can't even check-out let alone leave.

Keep the users inside, don't let them look at the rest of the web (in some cases, pretend it doesn't even exist) and just lock them in as much as you can. Facebook has turned into a horribly closed and restrictive site. That is why I quit earlier this year.

Over the years, Google have been doing the same except the walls have been growing a little more slowly. One new application at a time. The walls have been growing taller, lock-in has been getting bigger and finally we'll realise that we're inside a huge dome built on Google's servers and no-one can find the windows. Then all we can do is watch everyone suffer under the immense pressure of using all of these apps and not ever getting away from Google hosted stuff.

Just like the applications in Facebook. Yes, techically they can be hosted wherever, but the users are still locked in.

This is all made even worse by the fact that Google also made something that would stop Facebook having the monopoly on external applications for users - namely in the shape of OpenSocial.

I have written before why I don't like Open Social. Before they told us what it was about, I was really looking forward to having authorised access to user data. That wasn't what OpenSocial turned out to be - which is sad - and all we got was the ability to put applications into other sites. Again, Google App Engine is like this but worse - the only site (in regards to users) all of these new apps will run in, is Google's.

So more apps, more users, more developers to write more apps which attract more users and hence ... you see my point. And that's exactly their point too (stated in the introduction).

Which is funny, because that really reminds me of something else too. Vendor lock-in - but this time replace software and file-formats with users and applications. That's about where Google is at the moment and it's only getting worse.

Luckily some other people are also concerned about this. I can only hope that what Francois said to me today comes true. That Google can get it wrong at the start and it can get better as time goes on. I hope he's right and I truly hope that Google's "Do No Evil" policy wins through in the end even if that is debatable sometimes.

What Google can do to alleviate some of this is allow more open access for users and their accounts. It's a two step process with a third note:

  1. become an OpenID provider and make each Google Accounts an OpenID
  2. become a real OpenID consumer and allow sign-ups and sign-ins to Google Accounts with OpenID
  3. and no, allowing OpenID comments on Blogger and providing OpenID on Blogger in Beta is not good enough

(Note: None of these things provide technical freedom from their AppEngine infrastructure but I consider the user data is more important than that.)

I'm not holding much hope out though and whatever they do, I'm sticking to my view that Google are getting too big and too strong. At some stage in the future, their dream and marketing of an Open Web will descent into an Open Web of mostly Google Accounts and Google hosted apps and that's when we'll suffer.

But what can we do?

The easiest thing is for me to do what I did with Facebook and just quit Google. But the thought of finding replacements for all those services I'm using is too much - Gmail, Reader, Calendar, Bookmarks, Analytics and a few others I use. Some of which can be easily replaced (Magnolia for Bookmarks) but others less so (Analytics?). Now I realise I'm locked in and it doesn't sit pretty.

There's not an easy solution for this and one I'm thinking very hard about at the moment.

Earlier this evening, I finished re-watching the original Star Wars trilogy so I will leave you with a quote which seems apt for this situation. From the enigmatic Han Solo:

"I've got a bad feeling about this."

And the final thought for this post; let's just hope that Google never turn to the dark side.

Labels: openid, google, walled-gardens, planet-geek, planet-catalyst, facebook, app-engine

Inserted: 2008-04-11 00:16 (2 years, 3 months ago)

The Internet Wins Again

Every so often, the originality of the internet just amazes me.

Recently, after I've watched a film on DVD, I have watched the trailers afterwards to see how they put them together. Each time I have been amazed at how many times they throw clips in there - completely out of context - to make the trailer more intense.

It always just seemed a little fake to me and also proves that you can't trust a trailer to guide you on how good or bad the final film will be.

As conclusive proof, I just stumbled across a competition run in 2005 - as the BBC News reports:

In 2005, a film-making body in New York issued a challenge to America's assistant film editors - take an existing movie trailer, and re-edit it in an entirely different genre.

I have just watched three trailers which were entered into the competition and they're all hilarious. See for yourself:

and my personal favourite:

As I said, proof you can't trust the trailer and further proof that the internet is a funny place.

Labels: tinternet, planet-geek, planet-catalyst, trailers, movies

Inserted: 2008-04-06 11:04 (2 years, 3 months ago)

Playing with EC2

Once upon a time, I worked on the European Space Agency's Beagle2 probe which was supposed to land on Mars. Well, this isn't a story about that. That would be too sad.

But I do remember telling my brother that for the first few weeks of the project, I was "playing" with the prototype board trying to get it to run some Ada 83 programs. He started laughing at me and I asked why.

"Playing with something that costs millions of pounds - doesn't sound right to me."

But I explained to him that the only way to learn something is to have a play with it. That's what kids do and sometimes as adults we forget that it's not just one way to learn but the best way to learn.

Here's an opportunity to find out what all the fuss is about over the Amazon Web Services, specifically EC2. I have written an article called Getting Started with EC2 so just go over there and have a play.

And the funny thing is, it's just so easy, it's almost childsplay.

Labels: project-awssum, planet-geek, ec2, planet-catalyst, amazon

Inserted: 2008-04-03 23:45 (2 years, 3 months ago)

Introducing Project AwsSum

There's a lot of excitement happening in 'cloud' computing at the moment and I'm not surprised. People are finally realising the usefulness of fully distributed and tolerant systems.

I have harped on about Amazon and their Web Services on a number of occassions (dating back to October 2006).

Back when I first wrote s3bak I downloaded and installed the example Perl code Amazon provided 'as is'. But that wasn't good enough, I wanted to know more about the protocol itself.

Of course, there's no better way of learning something than actually doing it so I started implementing a library to talk to SimpleDB. Then I figured out that SQS and EC2 were pretty similar beasts and it just so happens that S3 could also be done in a similar way.

After a few weeks of hacking, I now have a reasonably complete set of simple modules which can talk to all of SQS, EC2, S3 and SimpleDB.

Project AwsSum comes with some straightforward command line scripts which allow you to execute commands against the services and see what's actually being queried under the hood.

However, the most interesting thing I've been working on are the new types of programs I would never have written if these services didn't exist.

As an example. I did 2 lightning Perl Mongers talks in March. The first was Talking to Amazon Web Services and the second Playing with Amazon Web Services (as always in lightning talks, they weren't long enough or in-depth enough). But I did write a program to demonstrate the power.

Using both SQS and S3, I wrote 5 simple programs to interact using only the queue as the interface between them (and only 3 of these were necessary). It's a simple demonstration but it shows the power gained by writing loosly coupled code. Quickly running through them:

  1. put-image.pl - just uploads images to S3 and places the filename in the queue
  2. process-images.pl - polls the queue for messages and if it finds one, downloads the image and creates thumbnails of different sizes. It then re-uploads these new images into S3.
  3. generate-gallery.pl - generates and index HTML file using a list of what's in S3

(report-queue-progress.pl and report-bucket-contents.pl just report on the status of the queue and the files being stored.)

So in about 350 lines of code (130 being the processor) I have a simple gallery which uses no webserver, is fully distributed, is resilient to hardware failures and was written in less than a couple of hours. It also comes with an Amazon SLA which is higher than you could do yourself. And did I tell you the price - all this for around 3 or 4 US cents per month. Not bad eh?

If you want to have a play with Project AwsSum you can git clone at git://github.com/andychilton/awssum.git. I'd love to hear feedback - and remember, it's a work in progress :-)

P.S. I also have a tutorial giving examples of how to get started with EC2 using some of the newer features which have only just been released! Seeing as Geoff is giving a talk to us at Pizza Thursday tomorrow, I don't want to give the game away (just for you vex).

Update: so Pizza Thursday is *NEXT* week - I got it wrong. I apologise. Pizza Rage ensues on #catalyst.

Labels: project-awssum, planet-geek, planet-catalyst, amazon

Inserted: 2008-04-02 20:12 (2 years, 3 months ago)

How True

The following article made me smile.

I don't necessarily agree with all of it, but a lot of it is true. The Worthlessness of Code.

I especially agree with the bit about having to re-write it every so often. We work in an industry where bit-rot means we have to replenish everything we do faster than in any other industry (and yes, I know that's a generalised term).

Quick aside: on the subject of small blog posts like this one, I really should get a Tumblelog up and going.

Labels: planet-geek, code

Inserted: 2008-03-26 22:28 (2 years, 4 months ago)

Everywhere I look, I find Shiny

Brenda is definately getting known these days. Involved in lots of groups, starting many of them and now this.

Wellington Geek Girl Dinners obviously went well the other week but it seems to have already made news elsewhere - like on the Google Open Source blog (stumbled across in my feedreader).

Well done Brenda!

Labels: brenda, planet-geek, geek-girl-dinners, planet-catalyst, catalyst

Inserted: 2008-03-22 11:43 (2 years, 4 months ago)

Picture within a Picture

There's something quite nice about this photo, for more than one reason.

Firstly, let me tell you what this photo is all about.

It was recently Flickr's 4th birthday and they were having a party. To celebrate, they printed out 3,800 photos and put them all up on display. So I added one of mine to the Flickr turns 4 pool so they could use it. Here's the one I added.


Photo by andychilton

After the event, I saw a Flickr blog item which showed a number of the boards upon which they stuck all the photos. After a bit of searching, I eventually found a board with my photo on it.

But even better, in the most recent Flickr blog entry, there was another photo which also showed mine (bottom left). On the board, mine is the one 3rd from the left and 5th from the bottom.

It's not often you get your photo onto the Flickr blog even if it is a picture within a picture within a page.

Labels: photo, planet-catalyst, flickr

Inserted: 2008-03-20 15:54 (2 years, 4 months ago)

Adventures with Erlang

I started learning Erlang today and already I'm liking it.

For a couple of months I have said that I will learn Erlang and finally I've started.

Firstly, I'll tell you why I started today (apart from the bad weather) and why I want to learn Erlang, and secondly I'll tell you my thoughts on the language so far.

Why today and why Erlang?

The reason I started today is because of a culmination of a number of things. Recently I have been playing with all the AWS components S3, EC2, SimpleDB and SQS. Playing with them in Perl has been a good experience and now I know what's required to make it work - by this, I'm not talking about just querying them and seeing the results, I'm talking about a big project with the ability to scale out once demand gets high.

So my plan is to get a project up and running on EC2, using all of S3, SimpleDB and SQS and to make sure everything is massively parrallel.

Erlang fits into all this because it's a good idea to try and do it correctly from the start. It almost seems weird to think of using Perl to run something like this. Also, I really want to learn something new and out of all the languages that have tried to get my attention in the past number of years, none have gripped me and certainly none as much or as quickly as Erlang has.

I notice that Erlang already has a few web servers which can be used as well as lots of other freely available libraries. Amazon also uses Erlang behind the scenes for SimpleDB itself - no coincidence I'm sure. So overall, a culmination of wanting to do a project, use a massively scaleable architecture and learn a new language have all come together at exactly the same time.

What I think of Erlang so far

So far, I'm really enjoying it. I have learnt a shedload already and I can feel a lot of information sinking into the old grey matter. At first, I looked at some of the syntax and just shook my head but as always, once you start, it just begins to make sense.

In reality, I've done a little bit of Lisp and Scheme in the dim and distant past and so far I haven't actually seen that much which is new to me (though I'm sure that's to come). Obviously Erlang borrowed heavily from Lisp though which helps me understand some of the weirder parts of the language. All the power that recursion, passing functions or returning functions from functions isn't phasing me since it's made sense to me for a while. Also, being able to build the language up is another helpful thing you get if you really need it.

(I've always said that Lisp is the next big language but not in it's current form. All the other languages are just re-implementing certain parts of Lisp as they see fit - 40 years late. Erlang has already done that AND put it inside a concurrent environment too.)

The fact that variables don't change kinda struck me as weird but again once you start making functions and calling them, you almost forget that you can't re-assign to variables any more - it's just not something you really want to do anyway (much like you don't use (let ...) much in Lisp). It's all about the functions!

One thing that is new to me is the whole message passing thing. I also cottoned onto the fact that objects and variables are replaced with processes and that's where all the magic is.

Already I have created libraries, functions with different arity, tail-recursive functions, played with tuples, retrieved a web-page (learning about receive) and even had my own chat room and simulated a number of users all talking to each other.

There seems to be a lot of really clever people doing Erlang at the moment and it's definitely a great time for it to flourish. Having huge resources like at Amazon AWS and multi-core processors getting constantly bigger, now is the time for a language to step up to the concurrency plate.

So all in all a very productive day. I think I have the basics of the language sorted - in reality there's not much there - but now I'll need to sit down and fully work through more of the other concepts it introduces.

It certainly needs a different thinking cap to anything else I've used and that's going to be both an interesting challenge and a bit of an adventure.

Labels: planet-geek, planet-catalyst, cop, aws, erlang

Inserted: 2008-03-03 00:12 (2 years, 4 months ago)

Zaapt is getting Me Excited Again

After a short hiatus, caused mostly by the summer, I'm back to hacking Zaapt.

I'd forgotten how much fun it was too. I've done even more tidying up due to KiwiWriters being upgraded and I've fixed a number of things in both Zaapt and KW itself.

Once I've done a bit more on KW, I'll probably start on the work for v0.2 of Zaapt. That should be lots of fun too.

Labels: zaapt, kiwiwriters

Inserted: 2008-03-02 01:25 (2 years, 5 months ago)

Upgraded Kiwiwriters

After a few months of intense development and procrastination (yes, you can have both) I've finally upgraded KiwiWriters.

It's been a long haul. The last time KiwiWriters was updated was way before a number of changes that have been made to Zaapt. I won't go through all the details, but here's a rundown of the technologies that have changed under the hood.

  • changed OS from Debian Sarge to Etch
  • upgraded from Apache 1.3 to Apache 2
  • Postgres 7.4 to 8.1
  • an earlier Zaapt version to Zaapt 0.1 rc1

I know there are a few things I've missed but I plan on fixing those up over the weekend. It was about time I just did it rather than wait around anymore. Also, it's not a mission critical site (and it's volunteer work) so it gets as much time as it gets because no-one's paying for it :-)

Anyway, I'm glad to have finally done it because this means KiwiWriters is now using Zaapt v0.1 and now I can start of development for v0.2.

Excellent news :-)

Labels: zaapt, kiwiwriters, planet-geek, planet-catalyst

Inserted: 2008-02-28 23:57 (2 years, 5 months ago)

Your Environment

You are a product of your enviroment therefore your productivity is also affected by your environment.

Following on from yesterday's post regarding productivity, I'd like to now address the issue of how you can overcome these interruptions and hence increase your productivity (note that this article is aimed at people who work in a traditional office).

It was fairly obvious from the previous post that by removing as many distractions as you can from your developers you can get more out of them. But surely it's impossible to deal with them all isn't it? That's right, you can't. You have to deal with each one separately. The good thing is though like most sums, if you add one to the running total you come out at the same answer as you would if you took all of them together. In fact, you probably come out one better.

There are various forms of interruptions but I'm going to categorise them into four types: personal, technical, client and electronic.

Personal Interruptions

I consider these interruptions to be normal phone calls or when co-workers wander up to your desk in search of help. There is not much you can do to stop this form of communication but in reality most of these interruptions are fairly brief. They can usually be kept to one sitting such that when the questioner walks away from your desk, they have a fully formed answer which will keep them going for a long time.

Therefore, out of the 4 types of interruptions, these are the least invasive. You can stop them a little bit but generally these should be fine (for example, a previous team-leader of mine used to put on large construction worker's earmuffs to denote that she was not to be interrupted). So if you manage to conduct most of your interruptions either by phone or in person, then you'll be well on your way to being a highly productive developer.

Technical Interruptions

What I mean by these are the messages that are generated automatically by the systems you're managing. The messages themselves may arrive by SMS, IM, email or a myriad of other communication mediums. These types of interruptions are necessary but minimising how many you get is very important. There is no point interrupting someone for something that they can completely ignore. If the recipient can ignore a message then it means that the message itself contained zero information.

The best way to deal with these interruptions however is to have one person nominated on active duty. It is they who has to deal with any and all of these messages. During the course of processing one, they may have to call in the help from another member of the team but mostly the team's documented procedures should be able to get them out of trouble.

Unfortunately though these automatic messages are usually sent to a predetermined mailing list with numerous recipients but things like email filters can help in this respect.

So the best way to deal with these types of messages is to not receive them at all (unless you're the one dealing with them).

Client Interruptions

Client interuptions are a necessary evil. You can't create, sell and profit from something if you don't have clients. Lots of these interruptions are caused by email but there is a simple solution. Phone them up. If you're lucky enough to have your client in the same building as you, go and see them for a quick chat.

Clients also have a secret weapon up their sleeves though - they can create numerous different types of interruptions. Many times they want you to investigate something quirky, quote for something new, report on some data or do many other types of unusual request. There's nothing bad about any of this this but again, speaking to someone either on the phone or in person saves lots of time in the long run. If you need a written record of what was said, put it in your wiki or onto the relevant item in your issues list.

Sometimes the request virally spreads through to the rest of the development team such that more than one person is dealing with the whims of whatever the client sees as important today. This can (and should) be attacked at the front line. Each team should have just one interface person who is the first port of call for the client. This way the rest of the team is shielded from these interruptions and can get on with their own tasks (in that highly productive fashion we all aim for).

Every now and again, it might be a busy day to field all of the clients wishes such that one person can't handle everything. In this case the interface person will have to call in one of the busy developers for help. This isn't a problem since it is only a very occasional event. This is also true if the interface person can't actually fulfil the request. The bonus here though is that the interruption to the develper will be positively blazing since the interface person has already accrued as much information from the client as they need.

So all in all, these interruptions are necessary but there are ways of minimising this type from the team as a whole. The interface person deals with the main bulk of it and this job is rotated as necessary. That also means no-one gets tired of being constantly interrupted and not getting anything else done.

Electronic Interruptions

This category is the most invasive of all the interruptions and consists of email and instant messaging. The reason these things are so invasive is because of the long tail they create as soon as that initial message is sent.

These days, both of these forms of communication have become excuses for not having to actually speak to people. Instead of picking up the phone or wandering over to someone's desk, people just flick off an email or message and seem to hope the problem is now on someone else's desk. This is pure laziness and in reality causes more work than is necessary. The recipient firstly has to read the original email, interpret it, understand it (sometimes an impossible task) and finally respond to the message - in most cases by writing an email in reply. This email then goes through that exact same process at the other end.

If the sender had decided to pick up the phone (let's assume they're not in the current vicinity otherwise it just makes this situation even worse) the whole conversation could have been over within minutes. As it is, email is assumed to be instant and the sender expects a reply instantly too. As you can probably guess though, there is nothing instant about email at all. Not only does the email conversation then become a time hoarder, it also means that the developer is interrupted on numerous occasions during the ensuing tennis match (think of those long threads that just never seem to end). This doesn't even take into account that email can be misinterpreted and can easily turn into a pulling-your-hair-out moment. Think about it, how often have you been as annoyed at someone on the phone as you have been at their emails. I'd hazard a guess at almost none.

In the past, the advice given was to just check your email a few times a day however that just doesn't work. The problem is that we live in an instant society and therefore people expect answers within 10 minutes tops. How many times has someone come up to your desk and said "Did you read my email?" The email they talk about was sent less than a few minutes ago. Surely it would have been easier to just walk up in the first place. It certainly makes for a faster conversational turnaround.

Instant messaging is similar in the amount of time it takes to process. Even worse, there are ever smaller amounts of information in an instant message than there is with email. This also hoards time waiting for each response, let alone the fact that the original question didn't contain enough information for people to actually answer it correctly. Most of the time an answer is given and the original questioner then posts further information about why that answer given isn't even relevant! Or they suddenly found the answer by searching the internet (which they could have done in the first place and actually saved time for themselves let alone that of other people).

IM can also cause even more time wastage too. Many times I have seen the original questioner just keep asking further and further questions, simple questions with simple answers. Yet almost 40 minutes down the line the original question still hasn't been answered and mostly a quick chat with one or two people could have sorted the whole thing out in minutes.

But wait, there is one final sting in the tail for instant messaging and this one is a poisonous one. Not only has the original questioner distracted (usually) more than one person for 40 minutes, they have also distracted the numerous other people who also read that same channel. Currently in work, we may have something over 50 people on our internal IRC server. That's a lot of time spent reading useless questions which could have been answered in seconds in person.

There is a simple solution to both email and instant messaging distractions. Figure out who the best person to ask is and either go over to their desk or phone them up. If they're not the best person to ask they'd probably be able to point you to someone more capable.

But what happens if you're the recipient - easy peasy, phone the questioner up or simply go over to their desk.

Conclusion

Unfortunately, this post has become a lot longer than I originally anticipated. It has touched on a number of things but hopefully in some detail. Ultimately, removing most interruptions is best, dealing with certain interactions in a particular way helps stop others being distracted and finally, converting the invasive interruptions into less invasive ones helps enormously.

All in all, minimising interruptions means more development time, more time to be in the zone and much more productivity from your developers. Probably of an order of magnitude.

Labels: programming, planet-geek, planet-catalyst, productivity

Inserted: 2008-02-26 23:37 (2 years, 5 months ago)

Context Switching and Developer Productivity

We all know that when a developer gets interrupted from whatever he's doing, it wipes out a large amount of time, concentration levels and ultimately productivity.

Even ignoring what some really clever people say, sometimes you just know you're not as productive as you should be. Why? Because by the end of the day you think you yourself "Wow, I did nothing today". That's not always true, you've definitely done something but it just feels like you've done nothing.

So why is that whole lotta nothing feeling cropping up? Well let's look at three typical days at the office.

Every day starts out the same. You wake up, you go to work and just before you go through the main doors you think to yourself "Today, I'm going to finish that task off that has been bugging me for a while". It's the same every morning and the only variable is that task - it changes every so often.

Then you get three typical types of day.

The Highly Productive Day

A highly productive day is when you just hit the right notes the whole day. By hometime your forearms ache a little because you've been furiously writing tests, completing code, checking stuff in and deploying to the staging environment. You've been in your own little world, your concentration levels were amazing and everything just worked. Awesome. Time for a beer.

The Highly Frustrating Day

A highly frustrating day is when you've been busy all day, you've managed to get a lot done but there were a few things which just didn't work out. For whatever reason, that library you wanted to use didn't work as you thought, that weird bug in the browser killed too much time for your liking and finally you realised that what you had been developing was slightly wrong and you had to go back and change a few things. Days like this happen all the time, it's not your fault, you know it could have turned out differently but you have also learned a few things and tomorrow is going to be great. A little frustrating but you move on. Time for a beer.

The Highly Interruptive Day

Then there is the highly interruptive day. That task you have been working on didn't get more than 12.5 minutes attention per sitting. Something went wrong with the system which you had to fix up. The phone rang on numerous occasions. You had to quote for new work. People kept on coming up to ask for help. Finally to top it all off, that 12.5 minutes you did get to spend on your task didn't really work because your brain was so frazzled you literally figured out where your cursor was in the editor and then wondered what the hell you were editing in the first place anyway. You decide to go home instead of staying late because you just feel tired. Now it's definitely time for a beer.

So the main question about each of these three days is, which can you improve on? Obviously the Highly Productive Day was a good one. There's always room for improvement but hell, you felt awesome today. Things just worked out and you had loads of time to spend on that task. Also, during the Highly Frustrating Day you had lots of time to spend on the task but in all honesty these things just happen and you move on. Most days are somewhere between these two extremes.

Which leaves us with the Highly Interruptive Day. You fixed a couple of things, checked in some code but in all honesty you realise that that task you've had at the top of your list for weeks is still in exactly the same position it was in this morning. Granted, you moved a few lines of code around, you added a test and you even fixed some stuff but mostly you're exactly where you were before. The interuptions just kept on coming. Before you had finished dealing with one of them, the next interuption would turn up. Context switching when interupted takes lots of time anyway but context switching between interuptions - well, that makes for one unhappy programmer. Nothing seems to get done.

And after all that, you have no idea whether today should have been a Highly Productive or a Highly Frustrating day. You've done so little work you couldn't even gauge how it went. You can justify things by saying "Well, I'm basically a consultant now anyways" but really, you're expected to be a programmer, producing excellent code in what little time you actually have to develop.

So there lies the problem with the Highly Interruptive Days. In both of the previous cases you managed to do things, learn from things and improve things. But in this final case, you managed nothing.

Something funny then happens. As you're going home, you start switching off from work and start thinking about that other project you've got on the go. That one you have at home where you've been playing with new technologies, creating free software or just learning for the sake of it. Just to prove something to yourself, you realise that in the two hours you've spent hacking away with just an ambient bit of music in the background, you've produced more high quality code that you will in the rest of the week. No-one phoned up, no-one sent you email, or IM messages or came knocking on the door. You spent a solid two hours developing code, you were in the zone and it's actually still before midnight.

It's almost depressing to know that it still can be done if it wasn't for all those other inputs switching you out of context and just plainly getting in the way. And the worst thing is, you know tomorrow is going to be exactly the same.

Labels: programming, planet-geek, planet-catalyst, productivity

Inserted: 2008-02-26 00:53 (2 years, 5 months ago)

Amazon Web Services with Mike Culver

Tonight, we got a good opportunity to hear and see what Mike Culver (Web Services Evangelist) had to say about Amazon Web Services.

It was a good talk. A bit fast to go through everything but that's a reflection of how much Amazon have to offer. Lucky for me, I knew most of it but I did learn a few things along the way. Especially from the demo of using EC2. I wish he could have spoken more about SimpleDB though.

As it turns out, my plan to ask if I can be added to the Beta program for SimpleDB worked and I have just sent an email off asking if I can join it. So yeah, that makes me very happy.

The good thing is, as you know, I've been playing with S3 and s3bak a lot recently, but I've also been making a program to play with EC2 as well. It's actually not that big but already there is some good functionality. My plan to make a small command line interface to both SimpleDB and SQS is also in the pipeline.

It certainly is exciting to be playing with these technologies and while there are some criticisms against them, I'd say to see them as they are and watch them advance over time. The whole point of the whole setup is to be easy to use and it's up to us application developers to use them in new and enlightened ways, adding value along the way.

However, I do see a different problem though - oh so many ideas and oh so little time.

2008-02-20 10:31 - Update: I've just been added to SimpleDB Beta. Wow, they work fast :-)

2008-02-20 19:32 - Update: Don Christie (president of NZOSS) has linked to this article from his Pass the Source blog - When Amazon Comes to Town. Out of the 4 quotes of feedback, mine was the top one and one which I will try and expand into a bigger article later.

Labels: ec2, simpledb, aws, mike-culver, sqs, planet-geek, planet-catalyst, s3, s3bak, amazon

Inserted: 2008-02-19 22:07 (2 years, 5 months ago)

Other things I've been up to

I haven't posted in a while, but thought I'd let you know a couple of other things I've been up to.

It seems to have been pretty busy lately with 'just life', heading places, seeing people, enjoying the sun, but I really should get back to doing a bit more development stuff.

As a bit of an experiment, I have also been playing around with Flickr a lot more (please M$, don't buy Yahoo!, even if they are only good for Flickr). I have even set up a couple of groups too.

The first one is something that Donovan and I have been chatting about recently and that's having examples of NZ Native Trees so people can learn a bit more about them (okay, so I can learn a bit more). There is also a blog for NZ Native Trees which will showcase good example photos now and in future it will show tree, trunk, leaf, flower and seed examples of each native. It's a bit task (there are so few on Flickr) that we're going to have to take a lot of photos ourselves. If you can help, please add your photos, with tags, to the group.

horoeka aka lancewood
Photo 'horoeka aka lancewood' by Brenda Anderson

The second group I started is one called Amazing Structures. I've always been fascinated with what humans can engineer on such a large scale. Already there are lots of photos (and I've already learnt my lesson to put a limit on what people can post) so hopefully that will kinda snowball. Again, I have a blog showcasing some of the best photos.

My favourite so far is this one:

HSB Turning Torso
Photo 'HSB Turning Torso' by olafuringi20

Wikipedia: Turning Torso

Have fun!

Labels: photos, amazing-structures, planet-catalyst, nz-native-trees, flickr

Inserted: 2008-02-14 19:43 (2 years, 5 months ago)

Working for Catalyst in Wellington

Yesterday I was asked to write a short testimonial describing working for Catalyst and living in Wellington from the point of view of someone coming here from abroad.

A number of \l{Catalyst|http://www.catalyst.net.nz/} employees are off to \l{LCA|http://linux.conf.au/} next week and my testimonial will be placed on the back of a leaflet to be given out to prospective employees during the \l{Open Day|http://linux.conf.au/programme/open-day}.

What I'm putting here is the original version (slightly edited) though I think it will be shortened somewhat due to a lack of space on the leaflet.

- --

Testimonial

Years ago my brother told me that he couldn't see himself living anywhere other than Coventry. Coming from Liverpool and living in Manchester at the time made me wonder how completely crazy my older brother was. Of course, at that time in my life I knew I still had the world to see.

Since then I have lived in London, Frankfurt, Perth and Wellington for varying times between six months and five years. You could say that I have now seen the world. By the way, the five year stint is Wellington and still ongoing (and no, I have no plans to leave - yet). There are many reasons I could use to explain why I'm still here but for the moment I will offer just two. It's quite simple - work and play.

So let's get the mundane one out of the way first - work. Ahah, see I fooled you. Work isn't actually the mundane one of the two (neither of them are) but let's discuss work anyway. It seems that work is apparently something which is a daily grind, another day, another dollar and a myriad of other boring phrases used to describe our nine-to-five work habit. I'd like someone to show me this 'work' they speak of which everyone else seems to consider that nasty time-consumer we force ourselves to do five days out of seven in return for monetary compensation.

My version of 'work' seems to be a lot different than that most other people seem to always moan about. Of course it's a lot of hard work (and I won't be naive enough to tell you otherwise) but there are certain advantages of working for Catalyst. The knowledge and talent of the people inside Catalyst is higher than any of my previous employers and always a great source of new ideas and learning. The open source slant within the company from the outset to the newest employees is self-evident. Talking to and working with people who contribute every day to Perl, Linux, Debian, MythTV, Moodle, Drupal and various other open source projects is a big eye-opener and I feel privileged to work with such bright and open-minded friends.

And that's the other thing you'll get at Catalyst - friends, not just colleagues.

Which leads us on to play. Fridays usually kick the weekend off with drinks and food at work, which always includes homemade bread from the staff disguised as bakers. Wellington being such a vibrant and small city means wherever you go, you're sure to bump into people you know. This gives the place a nice family atmosphere though of course there are also plenty of things to do for younger couples or singletons.

Having lived in a number of cities throughout my life, I have finally settled. It seems that one of my favourite phrases at the moment is "I love Wellington, me" and whilst that's my accent talking, you can see quite clearly what it means.

There's always something around the corner, something new, something different and something challenging, in both work and play. I honestly can't see myself living anywhere else so why not come and see what you're missing out on.

Andrew Chilton - Senior Developer

Andrew has lived in 5 different countries, worked for organisations of under 50 employees and over 13,000 employees, worked in the film industry, the space industry, has an Open Source project he is proud of and has eaten well over 79 bowls of Coco-Pops in the last three years (okay, that last one isn't quite true).

Labels: open-source, planet-geek, planet-catalyst, wellington, oss, catalyst

Inserted: 2008-01-24 22:51 (2 years, 6 months ago)

Latest Pic I Like

I've added some more pics to my Flickr account.

When I first started this blog, I did a few weeks with a WPoW - "Wellington Picture of the Week", but it turns out I didn't do it for long.

Anyway, with my new camera, I'm uploading bits and pieces and will blog about one or two here. Don't worry, I won't go over the top with photos, just one or two posts a week maybe.

Here's todays, taken in Seatoun:

20080112_182353

Hope you like it.

And as with most things I do these days, I'm giving it away free. All my photos on Flickr are licensed under the Creative Commons "Attribution-No Derivatives" license (shame Flickr hasn't updated to v3.0 of the licenses yet).

Go nuts!

Labels: sky, photos, wellington, silhouette, wpow, flickr

Inserted: 2008-01-18 01:04 (2 years, 6 months ago)

Software Driven by Imagination

For years, it has been said that Free and Open Source Software is created when someone has an itch. That may be true, but I'd like to present a view after that initial itch has been scratched.

I'll start this entry as a question and answer session.

Question: How many times have you created a piece of software - one which scratched that initial itch - but once the initial problem had been solved you stopped working on it?

Answer: Loads. Not one or two, or even five or six. I'd say upwards of 10, maybe even 15 or 20. I even have old repositories to prove it.

Question: Why is it that once the problem is solved, work is almost immediately dropped?

Answer: Mainly it's because the challenge of fixing whatever the itch was then goes away and the itch dies down. Also because the interesting thing you wanted to solve is no longer interesting. It's sad to say that because of this no-one ever sees the beautiful code you stayed up for three or four nights crafting.

Question: So how does a project move from the initial itch stage into being a full blown development project.

Answer: Imagination.

And there you have it, it's that simple. Imagination is the driving force behind any large project. Without it, the project stalls and nothing else gets done. As proof, let me give you a few examples:

  • imagine if all the computers in the world were able to talk to each other
  • imagine if everyone in the world could get free access to information, including reference material and education
  • imagine if anyone could run the software they choose to, for free, and be able to exchange both it's source and any documents in any way they please

Hence, from the above musings, the internet, the World Wide Web, Wikipedia, Linux and ODF all came into being. Though they might have had different thinking at the time, I suspect each of these projects stemmed from someone's first itch but only carried on because of their imagination.

Imagination is important because otherwise projects would just stop. If the itch has been scratched, even if the software is also released as Open Source, no new development will happen since there is nothing taking it anywhere. There is nowhere left to take it - it has fulfilled its destiny (think grep).

The only thing that can take that project forward is imagination. You need to be able to figure out what the next step is, where you want to go and where you want to be. Even if the original need has been fulfilled, imagination means there is always something to do next.

I was thinking about all of this on the bus on the way home from work. I'd just had a conversation in which the other person stated that various government organisations had listed Drupal and Plone as their preferred CMSs. I had been pimping Zaapt as something that is ready to be used in a production site. Granted, those other CMSs have a few more features than Zaapt - and I can point to a few reasons why - but it just seemed that because these other two were the preferred CMSs that Zaapt wouldn't get a look-in. Or indeed any other CMS for that matter.

So that's why I'm glad that I have imagination. There have been many times recently that I have imagined when Zaapt will be used on big projects, hell even government ones. And the reason is because I always wonder what I can implement on Zaapt next (e.g. the list of features needed for v0.2 even though v0.1 is only just feature complete).

At first, you'd wonder if that closed thinking would put me off. Certainly, I'm disappointed but it doesn't worry me, besides, I like a challenge. Zaapt has already scratched my initial itch and fulfils all of the initial problems I set out to solve - in fact, the itch disappeared a long time ago.

But yet somehow Zaapt is now one of only a handful of projects that I have kept developing consistently over the years. The main reason for this is because I have an imagination. There are so many places to go with it, things to do, places to see, all fulfilled by the usual constraints - time and resources - but gladly not constrained by imagination.

And I imagine that Zaapt will eventually be the biggest CMS built with Perl[1], which was always one of my original intentions :-)

[1] Yes, I know that is a tall order and maybe that's not just imagination but a dream - still, we need that too.

Labels: perl, zaapt, drupal, cms, planet-geek, planet-catalyst, plone

Inserted: 2008-01-11 20:25 (2 years, 6 months ago)

Some Cool Stuff Coming Up

There are a few things in February I'm really looking forward to.

Firstly, it looks like Grant has snared Damian Conway to come and speak to us at Wellington.pm . That is going to one awesome evenings.

And secondly something which made me smile. I read the Amazon Web Services blog and saw this article about New Zealand and Australia the other day. So I followed their wiki entry to this page about Mike Culver's Schedule only to realise that he's already coming to WellyLug/Catalyst :-) It seems that Brenda was to blame for this - so thanks Brenda.

Also, Brenda, Reed and co. have been busy figuring out which language to use next (and it even got posted on PerlBuzz). I'd have also said Ada is Anal but then, I had to do Ada 83 (Ravenscar Profile) for 9 months once.

Labels: programming, planet-geek, aws, perlmongers, amazon

Inserted: 2008-01-10 00:28 (2 years, 6 months ago)

Playing with Flickr

After getting my new digital camera today, I've started uploading some pictures to Flickr. It's fun.

Instead of using Flickr as a store for all my photos, I'm just going to upload some of my favourites. Unfortunately, today I couldn't go out and take any nice pictures because of the terrible weather, so I took a few just to play around with the camera.

20080107_154827

That's just the small version since I thought the medium version was 400 across and not 500 as it actually is.

Anyway, here is another photo to enjoy:

< <div style="text-align: center;"><a href="http://www.flickr.com/photos/andychilton/2174255167/" title="20080107_185926 by andychilton, on Flickr"><img src="http://farm3.static.flickr.com/2016/2174255167_9c87feef1e_m.jpg" border="0" width="240" height="180" alt="20080107_185926" /></a>
</div>

And you can see more at andychilton's Flickr page. If you have an account, go add me as a contact.

Labels: photos, wellington, flickr

Inserted: 2008-01-08 00:17 (2 years, 6 months ago)

S3 Revival

After lately talking to different people about the Amazon Web Services, I have become interested in them again.

And after ages and ages wanting a place 'in the cloud' to store my files, I decided that I'm not going to wait for Google's GDrive, but instead am going to use Amazon's S3.

So, all those old photos I have dotted around are currently being uploaded. I'm using a program I wrote, s3bak, and whilst I haven't touched it much in a year, it's still working fine. It's even got some nice features. Think I'll be hacking a little on that in the next week or so.

Anyway, it'll be more important to me tomorrow when I finally get myself a new digital camera. It's not top of the range but the price/functionality is exactly what I wanted. The Canon A570 IS isn't too expensive but has some of those things I like, such as aperture and shutter priority.

I also think things like S3 are underused in some commercial senses. There's certainly one thing I'd love to use it for in work and it would save buying a lot of hardware and save a lot of hassle.

As I said to someone recently, "because it's on the same system Amazon use, if something goes wrong, they would stand to lose a lot more money than you would" - hence, the reliability of the thing is phenomenal. If it's good enough for Amazon, then it's good enough for my backups.

I also intend to use it for various web projects I have brewing too. Not to mention EC2 and the other Amazon Services.

Labels: photos, planet-geek, ec2, planet-catalyst, s3bak, s3, amazon

Inserted: 2008-01-06 23:36 (2 years, 6 months ago)

New Year Novella Challenge

Over on KiwiWriters, we're doing a new type of challenge this new year. Write a novella during January - it's that simple.

Many people are scared off from either NaNoWriMo or SoCNoC because it sounds like a daunting task. Fifty thousand words in a month really is a good challenge but here is an alternative for you.

Much like there are marathons and half-marathons, KiwiWriters now presents the half marathon of writing challenges. The New Year Novella Challenge (along with a forum) is a great way to get started in doing stories that are just that bit longer, and you never know, it might give you a taster for one of the bigger challenges later in the year.

Anyway, here's my participant's icon:

As always, I finish this post with, Join Us.

Labels: new-year-novella, nanowrimo, kiwiwriters, planet-geek, socnoc, planet-catalyst

Inserted: 2008-01-02 01:15 (2 years, 7 months ago)