Entries for label: planet-geek

Found 81 entries.

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 (3 years, 3 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 (3 years, 3 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 (3 years, 4 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 (3 years, 4 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 (3 years, 4 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 (3 years, 4 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 (3 years, 6 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 (3 years, 7 months 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 (3 years, 7 months 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 (3 years, 7 months 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 (3 years, 7 months 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 (3 years, 7 months 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 (3 years, 8 months 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 (3 years, 8 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 (3 years, 9 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 (3 years, 9 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 (3 years, 9 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 (3 years, 9 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 (3 years, 10 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 (3 years, 10 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 (3 years, 10 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 (3 years, 10 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 (3 years, 10 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 (3 years, 10 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 (3 years, 11 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 (3 years, 11 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 (3 years, 11 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 (3 years, 11 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 (3 years, 11 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 (4 years 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 (4 years 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 (4 years, 1 month 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 (4 years, 1 month 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 (4 years, 1 month 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 (4 years, 1 month ago)

Zaapt is One Year Old

A few days ago, Zaapt became one year old. But the best is yet to come.

It's been a great week for Zaapt this week. Not only has it passed it's first birthday (born on first check-in) it's also had a lot of development done on it. The models were improved in Sep/Oct and this month it's been the controller side of things. The views didn't need much change but maybe a minor tweak here or there.

I mentioned the other week that I am now using the issue list on my Google Code Project Homepage. At this very moment I can tell you that there are six issues I have to do before I release v0.1 - which will be an amazing achievement. It will also signify the first release which I will be happy for other people to start using - before now it was still in a little flux.

As 2007 finishes up, I look back on the number of hours I've put into Zaapt and see that it's all been worthwhile. I have spent a hell of a lot of hours on it but to now have a CMS written in Perl and using PostgeSQL as it's main store is just great. It was always an ambition of mine to have that combination and Release v0.1 will realise that (note if you Google for cms, perl and postgres, Zaapt is in the top 10 hits and has been since March).

As Nigel a friend of mine said to me recently, "We just shake you and a site falls out" - which just proves how easy it is to create a Zaapt site.

So 2008 will be a belter of a year for Zaapt. I'm aiming to get it into Debian with the help of Francois Marier so after the v0.1 release, I'll sit down with him and figure out what I should do before we put it in - he doesn't know this yet :-)

Finally, just to give you a glimpse of how interesting Zaapt will be next year, here's a quote from one of my current open issues:

This issue also implements an idea I've had for a while in which models can also be mash-ups of other models. In this case, one model is referencing another. In another case, who's to say that a model might not just link together a blog.entry, a gallery.picture and a map.location.

Wouldn't that be oarsum - "CMS mash-ups".

Labels: perl, zaapt, cms, planet-geek, planet-catalyst, postgres

Inserted: 2007-12-24 17:32 (4 years, 1 month ago)

Zaapt has Issues

For ages I have ignored the issues tab for Zaapt inside the Google Code site but I decided that I had so many plans and ideas rolling around in my head, that it made sense to get them down.

So tonight I have just entered 18 issues which I need to work through over the next few months.

Currently there are two bugs, two tasks and the rest are enhancements.

So you can see that I think Zaapt works pretty well but there are still plenty more things to do.

Google Code Project Hosting and its issue list is also helping more than just listing the issues. It is also helping me figure out which issues I'm going to fix before I release v0.1 of Zaapt and which ones I can leave until v0.2 (milestone ordered list).

This also means that once those ones are done, I know it's time to release. A bit like TDD whereby you know your development is done when all your tests pass (we hope).

P.S. I just found a bug in the issue search so I'll report it to Google once I gether evidence.

P.P.S. The grid view is awesome. On that page I'm categorising the 'y' axis as Which version of the software the issue relates to and the 'x' axis as The release in which it will be fixed. That's pretty cool.

Labels: zaapt, planet-geek, google-code, planet-catalyst

Inserted: 2007-12-07 00:30 (4 years, 2 months ago)

Delegating Control to Others

For wellington.geek.nz, we now have other people administering certain calendars.

Well okay, we have one person administering their own calendar (read about it on the new blog) but it's a start and here's why.

Before now, I have usually given out blanket permissions to do something on a site (e.g. on KiwiWriters) but now it's much more refined. I'm creating specific permissions, with specific roles and correct assignment of such and therefore being much more detailed about who can do what.

This is all possible because I recently added RBAC to Zaapt and this is proof it works and works really well.

There are still lots of things to do on Zaapt but as each day passes, it gets more complete.

Labels: zaapt, planet-geek, planet-catalyst, wellington-geek-nz

Inserted: 2007-12-05 00:26 (4 years, 2 months ago)

Blogger in Draft now Accepting Comments with OpenID

Exciting news for people who comment on Blogger blogs. They're now accepting OpenID on BloggerInDraft so soon enough it'll be phased into the rest of Blogger.

So on their post announcing that Blogger will accept comments using OpenID I decided to leave a comment there using my own identity.

And it worked - beautifully. It even asked my OpenID Provider some other details such as my name. I allowed them to do this and sure enough, my name appeared with the link to my site. So that's pretty cool too (I only typed my site url).

Anyway, I got number nine in the comment list.

So now, that means both LiveJournal and Blogger both accept OpenID for comments. I reckon that must mean that a large majority of blogs on this planet now accept OpenID - so let's now get Wordpress and Typepad to do it too.

Labels: livejournal, blogger, planet-geek, wordpress, planet-catalyst, open-id, typepad

Inserted: 2007-12-01 00:15 (4 years, 2 months ago)

Good News About the EeePC

It looks like Asus are going to adhere to the GPL and fix the violations they've been accused of.

Thanks to Cliff Biffle who wrote ASUS eeePC: First impressions and GPL violations and probably many more like him, Asus are fixing up what I think was probably just an oversight. It may have been on purpose but I suspect (and hope) not.

Anyway, they're remedying their lack of providing the source code for their Xandros based OS on their EeePC. Beforehand, they had provided some source code but apparently it was incomplete.

Hopefully this means that all the Open Source people out there can hack on something that already works rather than have to do something from scratch. Of course, people will do their own things too which is the way of the world in Open Source but now they can also use the newly released Asus code as a starting point.

Oh, and the release of an SDK for developers also looks like a good thing.

It's already looking up in the EeePC world. It was good enough before but now it's even better.

Labels: planet-geek, planet-catalyst, eeepc, asus

Inserted: 2007-11-29 14:24 (4 years, 2 months ago)

wellington.geek.nz is Now LIve

Brenda and I have been working on a new site for all the Wellington Geeks out there. And it's now live.

After trying to do about a thousand things this month, one of them is mostly ready. Brenda and I have been working on http://wellington.geek.nz/ recently and it looks like people have found it before we were fully ready to release.

As it turns out, that's okay, Release Early, Release Often is the Open Source mantra so that just means we get more eyeballs at it earlier rather than later.

One good thing is that doing the site made me add a new Calendar model to Zaapt and now that's up and going very well. We'll also use the new Calendar model over on KiwiWriters so everyone will know when all the challenges are. It's great how all these sites benefit from each other :-)

The one issue I need to fix up for wellington.geek.nz is the fact that it thinks it's yesterday for most of today since the server is running on Central European Time (it's in Denmark), but I'll fix that up soon when I get a chance.

We have some thoughts and ideas for the future so hopefully some of these will be added in the near future.

  • being able to change the right hand calendar to Next/Prev month
  • RSS feeds for the events
  • iCal feeds that you can put in your own calendar tools

... and probably more, so let us know if you have any suggestions. The site is still beta (I've always wanted to say that) so please be kind.

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

Inserted: 2007-11-19 10:21 (4 years, 3 months ago)

Debian EeePC Awesomeness

Good news for the Asus EeePC - in my eyes at least.

After I got my shiny new Asus EeePC last week I knew a community to put their own Linux distro on it would grow around it soon enough.

The OS that comes pre-installed is a Xandros-based system and while I'm happy with it now, I'll eventually replace it. Lots of people have already installed Ubuntu on it, though they had to use ndiswrapper for the Wi-Fi (new Atheros chipset apparently) and also suspend doesn't quite work yet.

Lots of people have also been adding both Debian repositories and Xandros repositories on the assumption that they will work, but there are also reports that some things stop working. I'm also not convinced that they'll be completely compatible.

But there is good news on the horizon. I thought a community to port Ubuntu properly onto the EeePC would crop up first but already Ben Armstrong has stepped up to the plate with his Debian-EeePC project.

Happy happy joy joy! I can't wait.

Labels: debian, planet-geek, planet-catalyst, eeepc

Inserted: 2007-11-11 21:30 (4 years, 3 months ago)

Google Almost Announces OpenSocial

It seems details are leaking about Google's new OpenSocial application API.

It also looks like the launch date for Open Social will be on Thursday which is what was rumoured at the end of September.

Unfortunately for me, it doesn't sound like what I was hoping for. I was hoping that there would be Application Services, Data Services and Mashup-Services and that you could do it on your own site anywhere.

From what I can tell, the Application Services and the Data Services will be there, but the Mashup Services won't be. This is because the final point above - being able to host your services anywhere - doesn't seem to be allowed.

So far, it looks like the API is for Application Services to be embedded into the Data Services' own website. Limiting or what?

As you might be able to tell, I'm a little miffed about that since for me, the big adventure was to open up where you can host your applications/mashups and not just copy Facebook's walled-garden approach and embed all the applications within one site.

It looks like my initial look at OAuth will be the thing that now excites me most and I'm going to have to start reading a bit more about it. I feel that this can be used for what I would like to see in the real Open Social scene ...

... and what is that? ...

... that the Data is open (using proper Authentication of course), and not just that the Application API is open.

The fact that an Application API is open really just means it is a standard and nothing more than that.

Things have changed in this day and age. The application doesn't matter anymore because the web is the application. Not one site. Not a few sites, but the whole web.

And while we used to say Content is King, in reality these days Data is King, or even more specifically Social Data is King.

Over the next few days, I hope to learn a little more about Google's OpenSocial and I'm almost preying it isn't what I think it is now.

Labels: google, open-social, planet-geek, planet-catalyst, oauth, magnolia, social-graph

Inserted: 2007-11-02 10:00 (4 years, 3 months ago)

I'm Releasing my Novel under Creative Commons

After attending the launch of the NZ versions of the Creative Commons licenses, I've decided to release this, my third novel, under a Creative Commons license.

The Creative Commons Aotearoa New Zealand site and NZ specific licenses were launched last Saturday and I had the pleasure of attending. It was a fantastic event but I shall be writing it up another time. Let's just say that I was amazed at the number and type of people who turned up.

In honour of the new license, I shall be making my NaNoWriMo 2007 novel available under a Creative Commons Attribution-No Derivative Works 3.0 New Zealand License.

The novel is called Macy Lights and the Battle for Ashton's Gate and I shall be filling in each day's quota, so check back every day for a new installment.

At the end of the month, I shall tie up all the pieces together and produce a book that I will print using Lulu. You are welcome to order a copy off me (to be honest, it's not going to be that good but hey, it's for the kids) and any profits will be given to a charity to be determined by me - I hope to find a writing/reading based charity here in New Zealand, so I'd appreciate any comments. Unfortunately, price is also to be determined but I don't expect it to be too high.

Depending on demand (yeah right) will depend on when and how many I order, so please be patient.

Overall, this is mostly an interesting excercise for me so it'll be interesting to see how it turns out.

Wish me luck.

Labels: nanowrimo, planet-geek, macy-lights, planet-catalyst, writing

Inserted: 2007-11-02 00:38 (4 years, 3 months ago)

And we're Off

NaNoWriMo has begun and I've got a flying start.

We in Wellington had the Kick-Off gethering last night and it was great. Amazingly we got 17 people there and I know there were more who intended on coming. Overall though, it was a fantastic start.

And now, we're just 8hrs 25mins into it and I've already got my daily word quote. I'm on 1685 and I would love to double that tonight. I'm making no promises though I intend to finish at least more than a few days early this year.

The other news is, I shall be posting each and every day's writing on this site. I'm as yet undecided if I shall be just putting it up as content or as a blog, but I'm leaning towards the former since I already have a writing section and even though it's based on time (one a day) it's actually for a brief moment (one month). Every so often I'll point to any new stuff there from here so you don't miss out.

Wish me luck :-) This is going to be oarsum (oh wait, I should say awesome if we're talking about writing and not geek stuff).

Labels: nanowrimo, planet-geek, macy-lights, planet-catalyst, writing

Inserted: 2007-11-01 08:29 (4 years, 3 months ago)

kapiti.geek.nz Now on Etch

After almost all of October being spent on polishing and shining Zaapt, I'm now making the move to Etch and Apache 2 from Sarge and Apache Perl.

After telling you about my refactoring on Zaapt I'm now migrating my sites over to Etch with Apache 2.

This site, kapiti.geek.nz, is the first to move. I did it last night and generally it went quite well. I got most of the bugs out last night before I switched DNS so that was good. I did find one this morning however regarding my RSS feeds, so I apologise if you had to wade through a list of broken links to my site from your feed reader this morning (one silly '/' is all that caused it).

Since then, I have found a few other back-end things which needed fixing, mainly caused by the migration from the old roles and privileges to the new RBAC. Overall though, I'm really happy. I may find some more problems when I migrate Zaapt and Zaapt Simple but hopefully all those things will be ironed out by the time I migrate KiwiWriters.

Labels: zaapt, planet-geek, kapiti-geek-nz

Inserted: 2007-10-22 13:00 (4 years, 4 months ago)

Zaapt is Unrecognisable from Two Weeks Ago

For a while I've wanted to refactor a lot of stuff in Zaapt and I finally got my chance to do it and much more.

I've been meaning to tidy up a few things in Zaapt for a while and over the past two weeks I've hacked on it lots and lots.

In short point form, the changes I have made are:

  • updated the sessions to be Apache 2 compatible
  • tidied up all the DB access modules
  • re-worked a number of components into processing/rendering pairs
  • added proper RBAC to Zaapt

As always, a small list doesn't do justice to the amount of work I have actually put in. Add to this that fact that I've been hacking on it constantly since the end of June and you can see where Zaapt has gone in the meantime.

In fact, Zaapt is still only 10 months old so it really has come a long way from being nothing beforehand.

Here, I'm just going to touch on a few different things related to recent happenings in the Zaapt world.

More Interest

There is more interest from other people around Zaapt these days but still no hard-and-fast site to say "hey looky over there, there's a Zaapt site and you know what and I didn't make it". I can't wait for that day to come and I promise you, it'll come before Zaapt is 1 year old.

Or at least, I hope it will.

From Apache Perl to Apache 2

This is something I had to do which just made sense. Apache Perl is looking a bit long in the tooth and of course, it's going to be removed from Debian in Lenny so I had to move away sometime.

As it turns out, porting Zaapt over to Apache 2 wasn't that hard, just a little picky. I had to change a few little things here and there once I'd Googled for the information I needed but mostly it was harmless.

From Sarge to Etch

Most of my sites are still running on this Debian Sarge box but I now have one running on Debian Etch. In the next week or so, I'm going to start porting all the sites over to the new box from the smallest to the largest. Firstly, Zaapt itself and Zaapt Simple, then kapiti.geek.nz and finally KiwiWriters. As they say, "it's quicker to build a 5" telescope and a 9" telescope than it is to build a 9" telescope".

From weirdness to Roles and Permissions

After I showed Donovan how my old privileges worked, I knew it was confusing by the look on his face. The good news is however that Zaapt now has a good implementation of Role-Based Access Control and it's much the better for it. Currently it does the simplest level but it's easy to add some of the more advanced levels later even though I think that will be unnecessary.

Adding RBAC has been the hardest change I've had to do to Zaapt so far. Not because it was tough, just because RBAC is implicit in a CMS like Zaapt and used in a lot of places. I had to change a lot of the Mason processing components as well as the database schema.

This addition to Zaapt had to happen now because otherwise it would become even harder later on when more sites, more users and more content models are using it.

Finally, because I'm changing servers, it gives me a prime opportunity to test it all works when I migrate the databases across but before I switch the DNS.

From Development to v0.1

Zaapt is still young but it is almost ready for the first official release. I know about the adage "release early, release often" but I just never felt that Zaapt was in that release position yet. Still you'll note that I'm only going to release as v0.1 but that's just because I know there are many more things to do before I get to a v1.0 state.

I will however now adhere to that phrase, moreso in the "release often" thing. That way, to upgrade from one version to the next would be relatively easy and certainly less of a headstrain.

And finally... a New Site

I wanted to get a simple-ish site going on Debian Etch, Apache 2 and all the new refactored stuff so I created Amazing Structures just as a hobby site. So far it just maps a few structures within a few categories but this is going to be expanded over time with many more features planned along the way.

As it turns out, its use of in-built Zaapt content models is straightfoward, but the site also has a very complex custom content model of it's own.

This is another great example of a custom content model which extends Zaapt without any trouble whatsoever. An even better example of a custom content model is the Challenge model (using SoCNoC as an example) over on KiwiWriters.

That's it for now, but remember to lookout for a v0.1 of Zaapt in the next few weeks (and as a bonus, with a new Event content model too).

Labels: apache, zaapt, debian, planet-geek

Inserted: 2007-10-20 02:03 (4 years, 4 months ago)

I'M IN UR DRUPAL HAKFEST HAXING MI CMS

...and having a fun time too!

I said to Brenda the other week that I'd come along to her Drupal Hackfest, but said I'd probably be hacking on Zaapt - which I am.

So far, I have refactored the Account model so it's a lot nicer and uses a lot of the newer functionality contained within Zaapt.

Now, and this is the big one, I'm going to hack in a better Accounts/Roles/Permissions. My original implementation wasn't far from wrong but I've decided it's time to make it right.

Once that's done, plus a few other fixes here and there and I will decide if it's time to finally release v0.1 of Zaapt.

Ah, happy days.

Labels: zaapt, drupal, planet-geek

Inserted: 2007-10-13 16:21 (4 years, 4 months ago)

PerlMongers and NZPGUG in Welly

Warning: advert for geeks to unite.

As has been always this year, I'm going to the Wellington PerlMongers meeting tomorrow night, so if anyone is interested, please come along. There are four speakers lined up so it's going to be a busy one.

Also, there is a new User Group starting next month. A few others in Catalyst (I think Finlay, Brenda and Penny) have been organising getting the New Zaland PostgreSQL Users Group up and going so put the first Tuesday of each month in your calendar for that one.

Labels: perl, planet-geek, postgres

Inserted: 2007-10-08 23:39 (4 years, 4 months ago)

Everyone is getting into the Sharing Data Space

Ma.gnolia.com is also getting in on the act.

From a webpost on the Ma.gnolia.com blog, they are releasing a new specification called Open Authentication specification (OAuth).

The thing is though, they are calling it Open Authentication but really, it's not just authentication, it's actually also (maybe sneakily) authorisation too. Authorisation to your data, that's what.

Using Open Authentication certainly does allow one site (the web app) to confirm with another (the identity server) that you are who you say you are. But there is more to it than that...

It also allows the web app to gain access - on your say-so of course - to your private data on the identity server.

(As an aside, I think that Open Authentication, or OAuth, is actually a misnomer and really should be named something else.)

This can be most easily thought of as an example where a photograph printing site wants access to a user's images at their favourite image sharing site.

This OAuth specification is along the same lines as quite a number of different specifications which allow for authentication and authorisation of data access which are vying for adoption throughout the rest of the web. Much like what I said last week about the possibility of Google opening out their authentication/authorisation, it'll be interesting from here on in and the good thing is, if there is enough people looking at the problem and creating solutions, the best one will probably win - or maybe the biggest one.

One thing I forgot to mention in last week's post is about the type of data that can be shared. For example, having Ma.gnolia as your identify server and your data manager will give you access to your bookmarks from other web apps if given authorisation, but from this provider, that's all you can get at - since that's all they keep.

Opposed to this is some new abilities within Google Mashups which allow you to store any type of data against each user. When it was first released, you could only access the \c{${app}} variable (I need to confirm this) but now there is a \c{${user}} variable too.

So again, this is another step along the road where you'll actually be able to create and store anything with anyone and access it from anywhere, on the assumption that Google's new API allows this.

That's a lot of options and very much inline with the true spirit of the web.

Life is good.

Labels: google, planet-geek, planet-catalyst, magnolia, social-graph

Inserted: 2007-10-05 16:05 (4 years, 4 months ago)

I Can't Believe I Didn't See this Before

Things are looking good in the 'open' social networking scene.

For a while now, I've been interested in OpenID, open sharing of information and also the social graph everyone is talking about.

Heck, I even told a (non-geek) friend of mine the other day that 'information wants to be free'. He was laughing at me - very hard (hi Dave).

As it turns out, all the different thoughts and plans lots of people all over the globe have been having about how to open the social network out will all be pushed aside if this happens.

The interesting thing is though, even though it might turn out to be a big launch for Google, I think they've already started with the opening out of their GData JavasScript Client Library of Calendar. And we're promised, more of their Application API's to come.

The difference between this client library and the preceding ones is that it allows anyone to mashup an application of theirs to be writable as well as readable. What this means is anyone out there on the internet can now 'program' Google's Applications using a JavaScript library. The aim of GData in the first place was to standardised their internal applications this way so it's no surprise it's now writable.

The main point about this write thing is that, to be able to write to something of yours (yes, you own it, it's your data), that means the application has to know who you are - which is authentication.

So hang on let's recap:

  • random website (example.com) wants to create an application using your calendar and your friends as source data - let's say a birthday party invitation application
  • they mash something together on their own website (example.com/party-invitation.html)
  • you connect up, say you're andychilton_at_gmail.com and they ask Google to confirm this
  • you're confirmed and you also allow the Party Invitation site to access (some of) your personal data
  • you create a party, it gets added to your calendar and invites gets sent out to all your friends

Does it sound like Facebook to anyone?

Yes, but there is one big difference. To create an application, you don't have to do it inside Google as you do with Facebook, you can just go ahead and do it.

That sounds like progress to me :-)

Two other things we need to consider are authentication and the personal data we're talking about.

For authentication we already have OpenID which can say that you are the owner of this particular identity. So maybe November 5th is the big day for Google giving all of their accounts users an OpenID (yay!) Even though they don't need it and their APIs won't use it, it would be really nice of them to do it.

So, the personal data that will be used in these PWMU's (Private Writable Mash-Ups) that might be used by an application may come from Google... BUT, and this is the best bit, I suspect that anyone in the world will also able to create an application which has a PWMU API which implements all the necessary features that the GData API does.

So, finally, what does this actually mean.

It means that anyone can provide an Authentication service, anyone can be a Data service and anyone can create a Personal Writable Mash-Up service.

Sounds like decentralised control of everything - which is exactly what the proponents of the Open Social Graph problem want.

The fact that OpenID creator Brad Fitzpatrick now works for Google and is leading this project gives me even more confidence that things will go in the right direction. As the techcrunch article above states, if Facebook is 98% open, then Google will be 100% open.

And let me finish on a more personal note. I've been planning on adding OpenID to Zaapt and hence KiwiWriters in the next couple of months but let's just imagine some other possibilities. We could create an application which implements a Work In Progress API which allows you to read/write you WIP information from any mashup site. Let's say that in the future people decide to move away from KiwiWriters (let's hope not), then they can copy/move the data that they own to another site which implements the WIP API. This means that the user is free to choose the best provider they see fit AND they actually have the ability to do it. Talk about keeping providers on their toes :-)

P.S. Most of the second half of this post is speculation about what will happen, but yeah, either way, it's going to be very interesting.

Labels: openid, google, planet-geek, planet-catalyst, facebook, social-graph

Inserted: 2007-09-28 10:47 (4 years, 4 months ago)

A Big Day for Kiwi Writers

After a long time planning, developing and testing, Member Challenges are now live on KiwiWriters.

Today saw the launch of a brand new section of the KiwiWriters site; the ability for members to create their own challenges. Not only that but it can also be of one of a number of different types of challenge too.

Most writing sites which hold challenges have two limitations, both of which I always wanted to avoid:

  • they seem to only hold one per year (or at least just one at a time)
  • the challenge itself is usually of one particular type

From the very start, the KiwiWriters committee said "let's have member challenges" (I forget who's idea it was), so since that day I've been planning on having something completely flexible. I have blogged about this before - My Proudest Moment for KiwiWriters - and all that hard work is now paying off.

We allow writing challenges, editing challenges, time-based challenges, preparation challenges and random-other-stuff challenges. There is plenty of variation and scope for whatever it is people out there want to do and best of all, they can do it whenever they want, there's no need to wait around for one of those other challenges to start. Also, any other member people can join in your challenge too, which after all, was the whole point in the first place.

Gladly one member has already added our first ever member challenge - Survival of the Human Race and we're hoping for a number of people to join. So overall, it's been a very exciting day.

Now then, it's not often I boast but for the first time in a while, I'd like to blow my own trumpet (as it were). Technologically speaking, I'd like to summarise what the KiwiWriters challenge part of the site has over and above all the other writing sites I've seen:

  1. most sites only have 1 challenge a year, we have many
  2. most sites only have 1 type of challenge, we have many
  3. most sites only have challenges that the administrators add, we also allow our members to add them
  4. some sites remove everything from the site regarding the old challenges, we keep a 100% record of everything

We also have all these added extra features too which not all sites have either:

  1. working within everyone's own timezone
  2. saving of each day's progress
  3. a history of every challenge each member has ever entered
  4. automatic certificates and progress banners
  5. plus, soon to come, progress charts for each member for each challenge

So overall, it's been a hell of a lot of work to get everything going and now I'm just hoping that this new feature will be the 'killer app' for the site and that lots more people will start using it.

One area I'd love to expand is to get writing groups to use our site for their own challenges. Setting up infrastructure like that and getting it going is quite hard and really time-consuming. People shouldn't have to do all that themselves and instead, I've already done it. Instead, they just go to the site, create a challenge, get people to join and away you go. People don't even have to look at the rest of the site if they don't want to but hopefully, that would be a good drawcard to introduce people to other parts of the site. It's a great tool for encouragement and for being pushed (or pulled) along with a wave of other people.

One of my biggest dreams however, is to get schoolteachers, obviously English teachers, to add their bigger homework/project assignments as a challenge within the site and to get all of their pupils to accept the challenge. Just imagine all those extra words the kids would write if they knew their best friend was ahead of them. We all know from experience that doing something in a group gives you more encouragement, a greater sense of involvement and an incentive to do even more than you could ever imagine. I think that this would be a great way for kids to write more and have lots more fun in the process...

...after all, that's exactly what the whole site is aiming to achieve.

Labels: planet-geek, member-challenges, site-challenges, planet-catalyst, kwi-writers

Inserted: 2007-09-16 00:09 (4 years, 5 months ago)

Friday's After Work

On Friday afternoon's a lot of people stay around in work for beer o'clock. I do too, but not really for the beer.

Free beer, fresh bread and lots of chips and dips is great in anyone's book but I enjoy sticking round in work on Fridays for a whole lot of different reasons.

Instead of going to the cramped and loud room where everyone is gathering and chatting, I usually just wander the office, find someone to talk to and say "So, teach me something you learned this week." It reminds me of the mathematician Paul Erdős who used to turn up at colleagues houses and say "my brain is open." There's something I like about that, it's kinda cool and very geeky.

So for the past 2 months or so I've wandered past people's desks, sat down and just started talking. A few times, I've just stayed at my desk and one or two people would come and sit and talk. I find it a good situation to be in since then you can chat for real and get to know people a lot more than you do during the normal (hectic) work week.

Tonight was really, really good. Beer O'Clock was on my level today so I just sat at my desk. Firstly I had a good chat with Finlay about projects, technologies and management. Then, there were a number of us geektalking (and we even had Nathan Torkington there who is visiting Wellington for Bar Camp tomorrow). Sorry, but geektalk is always interesting.

Finally, Brenda, Caroline, Aaron and Joh were all teaching me sign language. I knew Brenda knew it but hadn't realised how many others did too. It's something I've been interested in for a while but never really did anything. Back in 2000 I printed off the signs for the alphabet and some other beginner's stuff, but there's nothing like having a group of people to learn from and ask questions of.

My first impressions of sign-language is that it's a really creative language. I laughed at a number of signs, such as the ones for various countries (like France, Italy, Russia and Germany) since they actually seem a little outdated. But better than that, signs for people themselves are really cool. It's about taking something to do with sign, a letter, or maybe two, an altogether different sign, mixing them together or with either the personality or the physical appearance of the person and creating something new. So, a letter, a pre-existing sign, a name, a personality and producing something (almost) unique for that person.

Caroline's sign, suggesting long shoulder length hair is very cool. Brenda's (Shiny) suggests something shiny or glittering by throwing your fingers apart (sorry, hard to describe in words, sign is so much easier) and Aaron's, using two thumbs (because pointing to one thumb is for the letter 'a') to point to his dimples on his cheeks is the best of the lot.

What it comes down to is, that people's sign-names are basically mash-ups of sign itself and the person they are for :-)

Wellington's sign is also kinda cool and I'll tell you how to do it. Take your main hand and put your 2nd, 3rd and 4th fingers up with your palm away. Then, move you hand from side-to-side as you also lower it from eye-level to chest level. Yep, that's the wind and rain you're hinting at and that means Wellington. It's brilliant and I love it.

A task I shall be setting myself for this week is to find an evening class somewhere so I can take sign language and learn a bit more. Also, like learning any other type of language (linguistics or programming) it's much easier to learn if you have people to practice with. So Brenda, Caroline, Aaron and Joh, I shall be looking for you guys so I can practice some more. It's lots of fun.

Labels: beer-oclock, planet-geek, sign-language, planet-catalyst, geek-talking

Inserted: 2007-09-14 22:49 (4 years, 5 months ago)

Converting kapiti.geek.nz to Zaapt

Over the past couple of nights I have redesigned my site and currently have a staging version of it all set up and ready to go.

The main reason for re-doing the site was so that I could convert it into a Zaapt site. As stated before, currently this is running using some software called Slym which was a precursor to Zaapt. Also, the old modules are no longer maintained and were starting to get on my nerves - anyone notice my blog's archive dates don't keep up? :-(

All in all, the redesign hasn't taken very long at all. In fact, getting a site up and going with Zaapt is just getting quicker and quicker. Recently, I checked in some code into the Zaapt Demo project which creates a basic (and Debianised) site upon which you can add things. To get that up and going takes about 3 minutes from start to finish - customisations after that take longer of course.

So the conversion from this site to the new one took something under six hours! That includes about 3 hrs of setting the site up, templating the HTML and some quick testing and about 3 hrs for the data migration script for everything in the old database. Currently, I'm copying and converting three lots of content sections, one blog and lots of comments and labels.

So all in all, I think getting the site going in less than 6 hours (including a data migration) is quite impressive. Also, when I got the Zaapt and the Zaapt Simple websites going way back in March it only really took me three days to get those going - and they've hardly been changed since.

Also this week, Don has stated that he may also switch to Zaapt so that makes me very happy. Finally, Zaapt will be used by someone else. It's not that I'm pressuring him :-) but that would be oarsum when it happens.

It does mean however, that the Zaapt sourcecode will now be under scrutiny from my peers. This is a really good thing (I'll know if I'm on the right track) but may also be embarassing (for those times when I've been slack or silly), but hey, that's what free and open source software is about :-) Just having someone else use it will be great...

...and nothing makes me happier.

P.S. the new design will be launched on Sunday just so I can add some spit and polish tomorrow

Labels: zaapt, planet-geek, planet-catalyst, kapiti-geek-nz

Inserted: 2007-08-18 02:49 (4 years, 6 months ago)

Latest Happenings

Just a quick catch up on what I've been doing.

This past two weeks, it seems I've been out more than I've been in. Take this last week, you know I went for Rock'n'Roll on Monday and Indoor Soccer on Wednesday.

Well, I also went to see Danny Bhoy on Thursday (who is the funniest comedian I've ever seen, no doubt about it) and went to see the Wellington Phoenix on Friday. I'll get a season ticket for that very soon.

But, the best thing is, even though it's been busy, I have managed to add a new Gallery type to Zaapt. It's mostly finished with a few tweaks to make but it is site usable already. I shall be using it on a site very soon - which will be posted here - so watch out for that.

Labels: zaapt, planet-geek, planet-catalyst

Inserted: 2007-08-13 00:05 (4 years, 6 months ago)

Public Sign of Unity

As a public sign of Unity, I shall be linking from this blog entry to the official OpenID community site.

Here are some details about a nasty bit of URL exploitation which is just plain wrong.

As a public show of unity, I shall link to the OpenID Community Site and not the one doing the exploitation. I did consider linking to the openid.net site using the words openid and org but I fear that's as bad as the original exploitation, so I shall refrain from it.

Finally, if you do require an OpenID, I would wholeheartedly recommended MyOpenID which has also been improved recently to show a log of your recent activities. I can recommend this because it's the one I use.

If you want to research this yourself, take a look at the OpenID Providers on this list.

Labels: planet-geek, open-id

Inserted: 2007-07-21 00:11 (4 years, 7 months ago)

My Personality Type

What type of personality are you on the Myers-Briggs test?

On Kerryn's blog, she posted that she had done a personality test and showed us the results.

I went and took the test too. In reality, it tells you only what you tell it, but it's funny how it fills in a few gaps and you think 'that's so me'.

But first, let me tell you a little story. You have to answer 4 questions and each has two answers. I noticed at the top that it is considered that there are 16 personality types. So yeah, 2^4 is 16.

I finished answering them. I knew the answers to Q's 1, 3 and 4 straight away but I wasn't sure about Q2. I answered it as best I could and found out my result. I'm of type ISTP, which is a Dominant Introverted Thinking. You can read what it says about me as an ISTP here.

Now, this is where I hit a problem with the page - it only gives you 8 explanations - but whoa, you said there were 16! I, as an ISTP, is lumped in with INTP, and yes, that happens to be Question 2 so obviously those personalities are quite close to each other.

In my quest for finding things out, there was another link to another page of explanations of The Sixteen Types at a Glance. It turns out that after reading both ISTP and INTP that I am more like the former than the latter - which was my answer to the original question.

Anyways, I'll just point out a few sentences from some of the descriptions I found to be quite interesting:

  • They distrust action taken too quickly without the necessary investigation.
  • They are fiercely independent, seeking input and comments from a chosen few.
  • When reporting to others, they need to establish credibility first: their own and that of the person they are reporting to.
  • They are less interested in running the world as they are in understanding it.
  • They may spend a lot of time defining words, concepts and systems in order to define a problematic solution.
  • Although they do have a spontaneous, even playful side, what people often first encounter with them is their detached pragmatism.

So yeah, a perfect fit for a programmer I think. I particularly liked point 2, the second half of which is exactly what I was talking to Kerryn about yesterday. Very strange.

Labels: planet-geek, personality, myers-briggs

Inserted: 2007-07-20 23:37 (4 years, 7 months ago)

A Superhero? I'm not.

I decided to submit Zaapt, my CMS, to Ohloh and here's the results.

The page for Zaapt on Ohloh shows a few interesting things about Zaapt the CMS.

Firstly, they show that I have done 3,039 lines of code, by hook or by crook (of course, they don't know that I have Perl generating at least a thousand or so more than that). I thought I'd done more than that, but hey, at least it's succinct. As it stands, they estimate that, at something less than 1 Person Year averaging $55,000USD a year then the Zaapt code base is worth a whopping $34,834USD.

It turns out that Zaapt is 7 months old today so I reckon I've done well to get it where it is now. Though I don't believe the calculations Ohloh generates I guess it's just an indication of what's been happening on the project.

What's more interesting is the code analysis page. I always think I comment code about right - who doesn't? - so I might have to compare (my 12.1%) with other projects and see where it fits in. I suspect that the weird mix of HTML/Perl in Mason might throw the 'Languages' used off a bit. Certainly there is more than 3% HTML and much less than 73% Perl so I reckon all Mason files are treated as solely Perl.

In the Contributors section (yes, I'm the only one), the other feature I find quite useful is my personal metrics for Zaapt. It's nice to see how many commits and lines I'm changing (per language and) overall on a monthly basis.

It's just a bit of fun so I'm not too bothered what it says, but it is interesting. I'd also like to know what adding the KiwiWriters repository would make all these figures. Unfortunately that SVN isn't public so I can't. Maybe I'd hit $50,000USD for half a year's very part-time work.

Not bad eh!

Labels: zaapt, cms, planet-geek, planet-catalyst, ohloh

Inserted: 2007-07-20 00:03 (4 years, 7 months ago)

Open Letter to Information Technology Division, Commonwealth of Massachusetts

The Information Technology Division in the Commonwealth of Massachusetts has chosen to push through the use of ECMA-376 OOXML as an 'approved standard'. This is a bad decision and is subject to a very short public comment period that will expire on 20th July. Here, I present an open letter from me, a Citizen of New Zealand, to the ITD on how this decision will adversely affect themselves, others, me and my country.

This letter was sent to 'standards at state.ma.us' and copied to Pamela Jones at Groklaw.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.

---

Information Technology Division
Commonwealth of Massachusetts
Attention: Beth Ann Pepoli

Re: Public Comment on ETRM Draft 4.0

Dear Ms. Pepoli,

I write to you in regard to considering adding Microsoft's OOXML to your list of approved standards in the Enterprise Technical Reference Model (ETRM) 4.0.

Firstly I urge you to look further into the ECMA-376 Office Open XML standard to discover for yourself a number worrying inconsistencies [1], incorrect fundamentals [2] and dubious instructions [3] contained within the so-called standard. The standard itself reads more like a 'what Word does' rather than 'what an open document should describe' which is unlike any other open standard I know of. All of this is even before looking into the almost impossible technicalities of implementing such a long specification in itself, something that even Microsoft will find hard to do, let alone an independent software supplier. Considering that an alternative format, ODF, is already specified completely, already has a number of independent implementations and already provides a future proof format I consider the proposal of OOXML not only wrong but also redundant.

As shown in the above links, there are many arguments against OOXML but I shall not concentrate on those since I'm sure that others who write to you in regard to the same subject will already point these out. Alternatively, I'd like you to consider the following situation.

It has been recently reported [4] that the UK National Archives has chosen to access their old proprietary data using a proprietary operating system running a proprietary emulator to run old proprietary programs [5]. This, in my opinion is the wrong way of doing it. While this might be one solution to reading the data, there is no mention of actually converting it to a new format. If they did, in their case the UK National Archives may choose to convert to OOXML but this still leaves them in exactly the same position as they are now - their data will still be stored in what is essentially a proprietary format which can only be read by programs from one company, Microsoft.

No matter how you look at it, this still equates to a monopoly for one company and leaves the UK National Archives in the same position Microsoft admitted to putting them in in the first place. This is the same company who, by stating that OOXML is an 'open' format (they're wrong [6]) is trying to push ODF (a truly open format) off the rails and into oblivion. Who is to say that in 3 or 5 years time, if ODF has been pushed aside, Microsoft won't just go back on their word and create incompatibilities with OOXML just like they have deliberately done with previous versions of Word itself.

This then means that you are in exactly the same position, or worse, as you were previously and the good judgment of specifying ODF as an approved standard in ETRM 4.0 will have been all for nothing. It will also leave us in the 'digital dark age' Mr. Frazer, Microsoft UK, predicts, at his company's doing.

Finally, I'd like to mention why I, a Citizen of New Zealand, would want to write to you regarding your choice of approved standards within your state and how that affects me and my country.

You are probably aware in the importance of your decision for the future of data standards and accessibility. We live in an information age, a data sharing world, the Internet Revolution and make no mistake about it, this revolution is just as important as the Industrial Revolution before it, if not much more so. It is important that our decisions now are good not only for us but for our future and for those that come after us. Were it not for completely 100% open standards in the computer world this information age could never have happened. Computers wouldn't even be able to talk to each other let alone speak the same language, if truly open standards had never existed.

Countries like New Zealand are influenced heavily by decisions made in other countries. As a small country, we are ripe for the Government to take a stand against phony standards and choose to save and store all our data in open formats. It's an ideal situation to be able to choose open standards such that the Government won't waste public money on converting from one proprietary format to another and still get it wrong. We can't afford to spend millions of New Zealand dollars on incorrect storage and conversions to broken and incomplete standards unlike the UK tax payer is being forced to.

Massachusetts, as a state of 6.4 million people and we, New Zealand, as a country of 4 million people have many similarities and therefore any decision you come to may affect decisions that we, or other governments or central organisations throughout the world, make. This is a fantastic opportunity for you to take the lead, take a stand and show the rest of us the way.

So finally, I urge you again, please do not accept the ECMA-376 OOXML proposal as an approved standard in the ETRM 4.0 and choose only those which attain a 'true' standard, such as ODF. This will enable countries like New Zealand to point to previous examples, such as Massachusetts, where open standards have worked, are being used, have saved money and also have the freedom to choose supplier of such solutions. None of this would be true if ECMA-376 OOXML is chosen as an approved standard.

Yours sincerely,

Andrew Chilton

[1] http://www.grokdoc.net/index.php/EOOXML_objections#Ecma_376_is_immature_and_inconsistent
[2] http://www.robweir.com/blog/2007/07/formula-for-failure.html
[3] http://fussnotes.typepad.com/Achieving_Openness_1point0.html#sdendnote8anc
[4] http://news.bbc.co.uk/2/hi/technology/6265976.stm
[5] http://kapiti.geek.nz/random/updating-proprietary-file-formats-the-wrong-way.html
[6] http://www.onlamp.com/pub/a/onlamp/2007/06/14/achieving-openness-a-closer-look-at-odf-and-ooxml.html

Labels: ooxml, ecma376, planet-geek, planet-catalyst, odf

Inserted: 2007-07-15 01:43 (4 years, 7 months ago)

Timezones Freak Me Out

I've been playing with Timezones inside PostgreSQL for the last wee while, experimenting and trying to figure some things out.

The first thing I figured was that I couldn't use NZT, NZST or NZDT or any of the other acronyms (CEST, UTC, GMT, CET, CST, PST etc) for timezones since they are always calculated as offset from UTC.

Instead I realised that I would have to use something along the lines of America/New_York, Europe/Helsinki and Pacific/Auckland. This way any Daylight Savings Time will be automatically incorporated in any time calculations I have to do.

This is where the problems with Postgres started.

Using Postgres, you can ask for a date at a particular time zone, such as:

 db=> SELECT CURRENT_TIMESTAMP AT TIME ZONE 'NZST';
           timezone          
 ----------------------------
  2007-07-12 23:01:37.020998
 (1 row)

We knew that would work even if it isn't what I actually want. I also played with setting the time zone in the database session:

 db=> SET TIME ZONE 'NZST';
 ERROR:  unrecognized time zone name: "NZST"

That's a little strange! Why can I specify it as a time zone in a query but not as a default. Alright then, I'll try something else, something more akin to what I want anyway:

 kiwiwriters=> SET TIME ZONE 'Pacific/Auckland';
 SET

Aha, that's more like it. It recognises exactly what I want it to be. I didn't actually want to do this since I thought it would be better in the query. Okay, let's try it in the query:

 db=> SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Pacific/Auckland';
 ERROR:  time zone "pacific/auckland" not recognized

WTF?

In the query you have to specify the time zone as an accronym (which may be wrong for 6 months of the year) and trying to set the default you can only use the location style. The other two combinations don't work which I find strange.

In which case, I still need to do something magical to get it all working. Today when I was thinking about it, it clicked that I could get around this, but before that, let me tell you the two things I need to do with these time zones.

Firstly, I need to know if a local time in a particular time zone has passed. For example, I want to know if 2007-07-12 11:59:59 has passed for me in Pacific/Auckland and also at a later stage, that same local time has passed in America/New_York. Quick test:

 db=> SET TIME ZONE 'Pacific/Auckland';
 SET
 db=> SELECT CASE WHEN CURRENT_TIMESTAMP > '2007-07-12 23:00:00' THEN 'Passed' else 'Not' END;
   case  
 --------
  Passed
 (1 row)
 
 db=> SET TIME ZONE 'America/New_York';
 SET
 db=> SELECT CASE WHEN CURRENT_TIMESTAMP > '2007-07-12 23:00:00' THEN 'Passed' else 'Not' END;
  case 
 ------
  Not
 (1 row)

Well, that looks good. I knew I couldn't ask for the timestamp using a location time zone so I have to set the default time zone first. So far this seems to work.

Secondly, I have to figure out when a particular time zone has just passed midnight. This way, I can do some processing just after midnight for each time zone and have it save off some data. For this, I need a big list of time zones. Luckily for me I found that the /usr/share/zoneinfo/zone.tab file in Debian stores all the info I need and more. Wikipedia also has a list of time zones by country. I shall use the former since it is already machine readable and I need to insert all the time zones with their textual info in the database.

As it turns out, there are 394 different time zones which I bet you didn't guess (although maybe some of these are the same, just named differently). Here's a bit of analysis on each time zone.

I wrote a little script to loop through all the time zones, set it and retrieve the CURRENT_TIMESTAMP. I ended up with a big list like this (alphabetical order):

 2007-07-12 11:17:03.967815+00 - Africa/Abidjan
 2007-07-12 11:17:03.967815+00 - Africa/Accra
 2007-07-12 14:17:03.967815+03 - Africa/Addis_Ababa
 ...
 2007-07-12 21:17:03.967815+10 - Pacific/Truk
 2007-07-12 23:17:03.967815+12 - Pacific/Wake
 2007-07-12 23:17:03.967815+12 - Pacific/Wallis

Not very useful but interesting nonetheless so I decided to also show them in time order instead. As it turns out, many of the almost 400 time zones are currently the same time (obviously). I was expecting a few more than just 24 since I knew some time zones were on the half hour and others were at UTC+13 or so. I was a little surprised however to see that there were currently 39 different time zones in play. So how many of each (for NZST 2007-07-12 23:23:12.967336+12):

  4 - 2007-07-12 00:23:12.967336-11
  5 - 2007-07-12 01:23:12.967336-10
  1 - 2007-07-12 01:53:12.967336-09:30
  2 - 2007-07-12 02:23:12.967336-09
  5 - 2007-07-12 03:23:12.967336-08
  8 - 2007-07-12 04:23:12.967336-07
 18 - 2007-07-12 05:23:12.967336-06
 24 - 2007-07-12 06:23:12.967336-05
 48 - 2007-07-12 07:23:12.967336-04
 27 - 2007-07-12 08:23:12.967336-03
  1 - 2007-07-12 08:53:12.967336-02:30
  4 - 2007-07-12 09:23:12.967336-02
  1 - 2007-07-12 10:23:12.967336-01
 20 - 2007-07-12 11:23:12.967336+00
 22 - 2007-07-12 12:23:12.967336+01
 46 - 2007-07-12 13:23:12.967336+02
 40 - 2007-07-12 14:23:12.967336+03
  1 - 2007-07-12 14:53:12.967336+03:30
  9 - 2007-07-12 15:23:12.967336+04
  1 - 2007-07-12 15:53:12.967336+04:30
 13 - 2007-07-12 16:23:12.967336+05
  2 - 2007-07-12 16:53:12.967336+05:30
  1 - 2007-07-12 17:08:12.967336+05:45
  9 - 2007-07-12 17:23:12.967336+06
  2 - 2007-07-12 17:53:12.967336+06:30
 10 - 2007-07-12 18:23:12.967336+07
 18 - 2007-07-12 19:23:12.967336+08
  1 - 2007-07-12 20:08:12.967336+08:45
  8 - 2007-07-12 20:23:12.967336+09
  3 - 2007-07-12 20:53:12.967336+09:30
 13 - 2007-07-12 21:23:12.967336+10
  1 - 2007-07-12 21:53:12.967336+10:30
  7 - 2007-07-12 22:23:12.967336+11
  1 - 2007-07-12 22:53:12.967336+11:30
 12 - 2007-07-12 23:23:12.967336+12
  1 - 2007-07-13 00:08:12.967336+12:45
  4 - 2007-07-13 00:23:12.967336+13
  1 - 2007-07-13 01:23:12.967336+14

So, as an example, there are currently 48 time zones which are UTC-4 and just one at UTC+14.

This proves that I can get the current time at each time zone so that's great. The second thing to work out is when one of those reached midnight.

At first, I was going to set up a cron job for every half hour but obviously from this data I'll need to do it every 15 minutes. Calculating when a timezone passes midnight can be done with a few neat tricks PostgreSQL provides. You can extract various aspects of the timestamp such as the hour and minute - you see where I'm going here. In the end, after setting the default timezone to the one I wanted to test, I came up with a quick test to give me a straight 0 or 1. If 1, then do my processing for that time zone, if 0, leave it be for the moment.

 SELECT
    CASE WHEN
        EXTRACT(HOUR FROM CURRENT_TIMESTAMP) = 0
    AND
        EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) >= 0
    AND
        EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) < 15
    THEN
        1
    ELSE
        0
    END AS yes

It's a little warped (any better suggestions welcome) but I reckon it'll do the job. In fact, here's another way I just thought of:

 SELECT
    CASE WHEN
        CURRENT_TIMESTAMP >= CURRENT_DATE::TIMESTAMP
    AND
        CURRENT_TIMESTAMP < CURRENT_DATE + '15 mins'::INTERVAL
    THEN
        1
    ELSE
        0
    END AS yes

If I cron for 0, 15, 30 and 45 mins then I'll pretty much know immediately which time zones have just passed midnight and therefore which ones to process.

It's taken me so long to write this entry, that it's now just gone passed midnight. So, at the moment, the following time zones are considered ripe for processing (both above queries gave the same results), including Pacific/Auckland which is mine:

 Antarctica/McMurdo
 Antarctica/South_Pole
 Asia/Magadan
 Pacific/Auckland
 Pacific/Fiji
 Pacific/Funafuti
 Pacific/Kwajalein
 Pacific/Majuro
 Pacific/Nauru
 Pacific/Tarawa
 Pacific/Wake
 Pacific/Wallis

All in all, I've been battling this for a while and now I think I've got it sussed. I haven't actually done the web page (which checks if a time has passed) or the cron (which checks each midnight) but I'm pretty sure it'll be alright now. I have done the database patch though that is by far the easiest part of the whole thing. It's been an altogether complete pain so maybe you'll find something useful in this lot if you have problems yourself.

Oh, and yes, all of this would have be really easy if I'd just stuck with using offsets from UTC (incorrectly), but yeah, you didn't expect that fudge from me did you?

Labels: postgresql, planet-geek, timezones

Inserted: 2007-07-12 23:54 (4 years, 7 months ago)

Updating Proprietary File Formats the Wrong Way

The UK National Archives have chosen Microsoft to access their old proprietary data by using proprietary operating systems running proprietary emulators to run old proprietary programs.

Put your hand up if you see a problem with that approach (and put one up for me too).

Ah, the joys of silly decisions. Let's look at it from the top.

Natalie Ceeney (chief executive of the UK National Archives) says that they shall only be 'accessing' the data and not actually converting it. That basically means they will become locked into an eternal license-hell-money-eater with MS. Until they convert to something more sane (ie. open), they'll never get out of it. The archives obviously plan on rehashing this whole problem again in 5 years time, at which point they'll find they are in a worse position than they are now, it'll cost 100 times more and they'll end up choosing what should be the right decision now! Shame.

For the benift of the doubt, let's assume that they do convert their old documents to the newer MS Office Open XML right now. Unfortunately, that road still locks them into MS products. No other software vendor in their right mind will ever implement (the supposedly open) Office Open XML format since the standardisation process has been a complete failure at every turn. An unimplemented standard of 6,000 pages just isn't the best way to go.

Why do people never learn? The archives got into this mess in the first place because of MS (along with other companies) and now they'll just get deeper and deeper into this mess. It's just one bad decision after another.

I just hope that when the UK National Archives have to make this decision for a second time in 5 years or so, someone at the top will have a little more sense than to go proprietary again and finally convert to ODF, plain text or a simple markup language. Basically, something they should be doing right now.

If I was a UK tax payer I'd be pretty annoyed annoyed at the moment. It's going to cost a small fortune now and once again in the future. I just hope that the NZ government doesn't make stupid decisions like that on the data we all own.

Labels: no-ooxml, planet-geek, odf

Inserted: 2007-07-05 19:56 (4 years, 7 months ago)

SHDH this Weekend and I Can't Go :-(

SuperHappyDevHouse originated as a monthly hackathon in San Francisco and thanks to a few people here in Wellington, it is now starting over here too!

There's been quite an overwhelming response to go to it I hear. Both Penny and Brenda are 2 of the 4 organisers and you know what, it sounds like it's going to be oarsum (with a capital OAR).

So, I was one of the privileged few that scored an invite for the first event (yay me) but I can't go (which sucks big time).

Then again, I can't be too sad since I'm seeing family for the weekend and it might be the last time I see them for a year or two and even then it'll be sparse.

Still wish I could go though. Some expletives were said when I realised it was the same weekend. And I saw a preview of the T-Shirts today, which are also oarsum.

So sorry Penny and Brenda - will definitely get to the next one.

Labels: planet-geek, planet-catalyst, shdh

Inserted: 2007-07-04 20:53 (4 years, 7 months ago)

Need to Re-write Kapiti.Geek.NZ using Zaapt

This website was a precursor to Zaapt. It laid the foundations for what Zaapt would be based on but with a many more nicer features.

It's about this stage now that I need to re-write this site, kapiti.geek.nz using Zaapt and that means three things:

  • I'll get a nicer interface, more functionality and a better framework (one that is updated, this one is just static now since I'm not developing it further)
  • I have to migrate all the data across. I guess I'll just write a quick script to import all the blog entries and the few content managed pages I have
  • I'll use this opportunity to do a re-design (or should I say re-skin) of the site

As always though, the main problem I have is time. Maybe one day someone will invent a way to make more time to use in each and every day...

...or is that called retirement. :-)

Labels: zaapt, planet-geek, kapiti-geek-nz

Inserted: 2007-06-23 17:33 (4 years, 8 months ago)

It's Official, I'm heading back to Catalyst

I've been waiting until the end of my current contract until I make the news official - though I've hardly been hiding it.

Some of you (and now \l{Jason|/random/openid-presentation.html#comments}) already know that I shall be returning to Catalyst to work, some of you don't know and besides, it's already \l{out there|http://she.geek.nz/archives/432-complete-failure-to-update.html} anyway - hi pennypants, you beat me by a day :-)

So yep, today was my last day contracting but to be honest, I'm not going to talk about it much, except to say that I now know where I am meant to be.

When I left Catalyst before Christmas, it was because of the pull of the new place rather than because I wanted to leave. Maybe it was a rash decision (hindsight eh!) but these things happen. Yes, there were a few other factors but nothing in this life is simple. So instead of seeing out my current contract, I decided to make a decision and go with it - I'm fairly headstrong when I make a decision. I spoke to one of the Catalyst directors a few weeks ago and I said "I'd love to come back, I miss the place and the people too much." He replied "We'd love to have you back" and that was that, decision made.

Ignoring many (many) things that contribute towards work and a workplace, two things stuck out in my mind as being quite important to me. Yes there are other factors, but as I said, I'm ignoring those here.

The first is that, within Catalyst, it's the IT staff who make the decisions because first and foremost the company creates software. Unlike many other places of work the geeks come first - I obviously like that being a programmer and all. For example, in many other organisations (think banks et al) the geeks are just overhead trying to keep things ticking over so that other people can do their work.

Maybe I don't like being an overhead.

Secondly, one of the things I miss the most is the Open Source world. You knew that right? There is so much going on, things you can play with, learn, use open standards (which always comes in handy), new technologies spring up all the time and to top it all off it has some of the brightest people I have ever worked with. I feel it's a constant learning curve with so much to know and everyone is always willing to help.

It just creates a really nice atmosphere and Catalyst pretty much embodies the Open Source world to which I feel such an attachment.

Recently, I started a CMS called Zaapt and knew from the start that I would give it away freely as open source. I may never make any money off this thing and God knows I've put enough hours into it but that's missing the point. I have worked with and enjoyed using other people's software for many years, which they too also open sourced, and I feel that giving back to the community is the right thing to do. Hopefully Zaapt will get bigger so that many other people use it (fingers crossed) and only then I can feel my contribution back to the Open Source community has helped.

So, I have a week off to chill out and go see some family, and I'll be starting on the 25th June. Maybe by then I'll have finished my novel too.

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

Inserted: 2007-06-15 14:58 (4 years, 8 months ago)

OpenID Presentation

Last night I did an OpenID presentation to the Wellington PerlMongers.

I think it went okay. It had a fair bit of introduction to OpenID and a bit more Perl later on. There were lots of questions about it. I think it's one of those things that people have heard about but never really looked at it. So hopefully, it'll get people talking about it a bit more and maybe even have a play with it.

I think it's quite cool and my example (which I'll tart up one day and put here) works quite well.

There were some things I couldn't work out about it though so I'll have to try one of the other modules.

I'll add the link to the slides once I get them up and going.

Update: 2007-06-14 11:58 - Slides are now up - Consuming OpenIDs

Labels: planet-geek, open-id, perl-mongers

Inserted: 2007-06-13 23:37 (4 years, 8 months ago)

KiwiWriters is getting 3,000 Hits per Day

Before SoCNoC started in June, our hit count was ramping up. Now it's gone off the scale.

Our progress over the last few months has been reasonably steady. In February we were hitting a couple of hundred hits a day. In Mar and April, it was more like a few hundred.

Then May really started taking off. We hit our record on about 6 different days, going from 300ish to well over 600 and hitting, 700, 800 and then 900 on the 31st May,

I expected June would take us over a thousand, say 1,500, but it's gone completely crazy. We're now getting almost 3,000 hits per day!!!

Of course, me being the optimist says that if we keep this up and do a few more, then we might even get 100,000 for the whole month. Now that would be something special.

:-) Happy :-) Happy :-) Joy :-) Joy :-)

Labels: kiwi-writers, planet-geek, google-analytics

Inserted: 2007-06-04 22:54 (4 years, 8 months ago)

SoCNoC Underway and it's Already Mad

Just a short post to say hi and that SoCNoC is going mad.

In just two days we have had:

  • an explosion of people, now 80 people signed up to the site
  • 50 people signed up to the challenge
  • we have already passed a collective 50,000 words
  • a new blog on KiwiWriters.org, called the Klog

And last but not least:

It's going completely mad at the moment and I'm sure it'll get madder as the month goes on.

Labels: soc-noc, planet-geek, press-clippings

Inserted: 2007-06-02 19:09 (4 years, 8 months ago)

SoCNoC is about to start

It's finally time for some serious writing.

In about 2 hours, there will be the feint tapping of keyboards as they start ramping up at midnight for the inaugural Southern Cross Novel Challenge.

Amazingly, there are 40 people signed up for it, though I estimate there are at least another 4 or 5 who are doing it but haven't yet signed up. I consider that - even before the month has started - to be a major success.

I'm also hoping to get a lot out of doing this type of challenge again. When I first wrote about starting NaNoWriMo (NaNoWriMo Starts in 1hr 03mins), I had no idea that it would be such an influence and have such an effect on me. Initially, that was because actually doing it and achieving it, I consider to be one of my best ever.

But lots more has happened since the end of NaNoWriMo. I met a whole group of really great people (Kerryn, Jane, Chris, Cassie and Josh, Travis I already knew) and since then we started our own writing site, KiwiWriters, have our own challenges, and in developing the website for it, I now have my own Content Management System too :-)

Isn't it amazing how one tiny thing can blow into something of mega-proportions. Brenda's one line message to the IRC channel in my old work about a year ago has produced all of these things. Wow, just like a domino effect.

And finally in other news for those who don't know, I shall actually be going back to my old work, Catalyst IT, and it shall become my current work again :-)

Ah, happy days are here again. Oh, and wish me luck for the novel.

Labels: random, soc-noc, planet-geek

Inserted: 2007-05-31 22:21 (4 years, 8 months ago)

Bit and Byte's Adventure

Just a few days before my SoCNoC novel starts, I've finally done a brief outline of my story. Please comment and let me know what you think.

Synopsis

Computers don't run off electricity. They run because each and every one of them have some little people who live inside. The little people keep everything working from opening and closing gates, charging the batteries and moving all those teeny-tiny electrons around.

As it turns out 'Bit' and 'Byte' (who are twins and the logical opposite of each other) want to escape from their home computer. Through cunning tactics they switch, charge and spark themselves through the wires. Finally they manage to escape but unfortunately find themselves in the big bad 'Outernet'.

This is the adventure they have battling viruses, spy-ware, drive-by-downloads and ultimately come up against the evil SpamBot! They also find time to fix broken sites, help with compatibility problems and even spell check a webpage or two.

Their plan is to get back to 'localhost.localmachine', their own home.

On their own, this would be a hard task (I mean, who can map-read through network switches anyway), but by making friends with other little people who can help them, they might just do it.

Labels: soc-noc, bit-and-byte, planet-geek, novel

Inserted: 2007-05-28 22:59 (4 years, 8 months ago)

Zaapt Going from Strength to Strength

Recently I mentioned I'd added the ability add friends for users of a Zaapt site - well there's more!

I've now added the ability to Message each other - basically, a very simple form of email. It's small, it's funky and it works really well.

Granted some features are missing, but those are features for email clients and there's no way I'm implementing all that. Instead, people will use personal messaging on the site for two reasons:

  1. so they can swap email addresses and communicate
  2. so they don't have to swap email addresses and can still communicate

It's great. It also means we can chat to other users privately which helps from an admin point of view too!

Anyway, even though KiwiWriters still remains the main showcase for Zaapt (and probably always will be), I don't mind and it's only a matter of time before they both become really big!

Labels: zaapt, kiwi-writers, planet-geek

Inserted: 2007-05-22 23:20 (4 years, 9 months ago)

SoCNoC is Getting Exciting

And the weird thing is, it hasn't even started yet!

Currently, we stand at:

  • 27 participants (which is 8 more than NaNoWriMo's first year)
  • 2 special word count widgets
  • 2 flyers (NZ and General - so please, put them up in your school, your work, your place
  • lots of other stuff
  • and one more thing coming tomorrow I can't yet tell you about

Once all this organisation, code development and general work for the site has been put aside on 31st May, I'll actually be able to write the novel!

It's going to be so cool.

Labels: soc-noc, kiwi-writers, planet-geek

Inserted: 2007-05-17 22:08 (4 years, 9 months ago)

Amazing Take Up for SoCNoC

So far, we now have 19 people signed up to do SoCNoC on KiwiWriters.org

That's actually quite amazing and we're still only the 10th May! Hopefully by the start of June, we'll have quite a few more.

At first, I thought having 10 people would be fun, so I think that any more than that is excellent! So come on, come and join us! Don't forget to sign up for SoCNoC too.

I still haven't prepared anything yet so that's something I'm going to have to work on this weekend. Thanks to Kerryn, she's posted a number of challenges which help with preparation. You'd have to see the forums for full details.

I've also recently added word count widgets to KiwiWriters - making graphics on-the-fly using Perl/Mason, which is always good fun. See my Homepage to see one of them.

Labels: mason, soc-noc, planet-geek

Inserted: 2007-05-10 22:36 (4 years, 9 months ago)

Wotcha Doin' in June?

If you've ever thought about writing a novel, then now's the time to do it. Otherwise, you never will.

Based on NaNoWriMo, we over at KiwiWriters are planning on writing a 50,000 word novel this coming June.

It starts on the 1st, it ends on the 30th and the only goal is to write 50,000 words - which is basically a short novel. I've done it before so I'll be writing my 2nd novel and I can tell you, it's one of the best feelings in the world.

If you've ever thought that you'd like to write a novel, this is the perfect opportunity to start along with a group of very enthusiastic people, all there together for moral support. Remember, if you don't do it now, you never will.

Come along to Kiwi Writers and Join Us! See Challenge information for SoCNoC for further details.

Labels: soc-noc, nanowrimo, kiwi-writers, planet-geek

Inserted: 2007-05-04 18:46 (4 years, 9 months ago)

OpenID is Very Cool

I've just signed up for my first OpenID. It's nice.

The best thing about it is that I'm using this site http://kapiti.geek.nz/ as a delegate to my OpenID provider. That way, if I ever want to move to another provider, I just have to change some of information in the <head> section of my index page and we're done.

Since then, I've used my new OpenID to:

It's very cool.

If you want to use your own site for your OpenID go to this help page - Using your own URL.

Finally, I might try and add OpenID comments to Zaapt or even make it (and hence KiwiWriters) become an OpenID Consumer! Now that would be something special.

P.S. If she hasn't got an OpenID already, I expect Brenda will get one almost immediately after reading this!

Labels: live-journal, technorati, planet-geek, open-id, magnolia

Inserted: 2007-05-03 22:50 (4 years, 9 months ago)

Planet Andrews?

So there is a new planet, for Geeky Andrew's in New Zealand.

I didn't create it, Brenda did. Not sure why, but I think she snapped under the social pressure that is Andrew.

Oh, and I like the design too. Simple and very Red.

Labels: planet-andrew, planet-geek

Inserted: 2007-04-30 20:50 (4 years, 9 months ago)

Just Saying Hello

Thought I'd post to say hi and let you all know I'm not a missing person!

Things have been busy as usual. In short:

  • Zaapt has had a lot of Account Admin done recently
  • I'm putting some finishing touches to a small part of KiwiWriters
  • I've developed another site (but not sure if it's going to be used)

This weekend, I shall be mostly eating chickens. Oh er, I mean, I shall be tieing up loose ends in blogs for Zaapt.

Labels: zaapt, kiwi-writers, planet-geek, fast-show

Inserted: 2007-04-28 13:50 (4 years, 9 months ago)

Life is Busy

For whatever reason (and there are a few), life has become somewhat busy. It's not like at the start of this year, when it was manically busy - instead, it's a good type of busy.

It seems that I have to juggle quite a few things at the moment, both $work and !$work. Instead of settling into one big project, or even two, I have a number of things on the go.

I'm not telling about $work though.

Instead, here's some things I've been juggling at home. I seem to be hitting KiwiWriters every now and again. I did a three-week stint up until a week ago, but it seems that there is always more to do. I'm trying to give it my due attention, but at the same time, sometimes I feel it's a lot of work for a smallish site. It will get bigger though - promise.

I have also been hacking Zaapt a lot, in fact, quite a lot this week. I also have more interest in it but this time I think it'll go a bit further than the nibbles I've already had and a site will appear sometime soon - watch this space.

My plan for Zaapt now is to get a v0.1 out there, but that is still about one or two months away (let's say three for good measure). It' not that it can't be used already - oh no, most of the content management stuff is ready. It's moreso the administration side of things which have been shouting for more user attention instead of me hacking the database.

In the near future, I have plans to implement two new sites and further down the line, another site for a friend of mine. She obviously thinks I'm slacking, or at least, not developing it. As it turns out, it'll be using pretty much everything Zaapt has to offer, so hopefully all this work will pay off.

Anyway, nice to check in witchyer! Laters.

Labels: zaapt, kiwi-writers, planet-geek

Inserted: 2007-04-16 23:11 (4 years, 10 months ago)

New Writing Section

You know, I'm not really a writer, but I do enjoy doing it - that's all that matters right. And the fun of reading it too.

In honour of fun and nothing more (and nothing less), I present a new writing section on this site. In all honestly, I don't expect much in the way of hey, that was great, you should be an author but more in the way of haha, you're such a fool, that was only just slightly funny, but thanks anyway.

Anyway, to kick off the new section, I have added The Time Riders which is a Choose your own Adventure. It's only very small and won't take long to read so please, let me know if you enjoyed it (but please read the intro first so you know under what conditions it was written under - see there, that was my excuse).

Finally, the best part about it though is that all writing that appears on this website under the writing section, will be licensed under Attribution-NonCommercial-ShareAlike 3.0 Unported. See the writing index page for more details.

Just as a thought, if you read a Choose your own Adventure and then under the ShareAlike part of the license, then you'd be doing a Make your own Adventure.

But what if you did that to more than one story...

...Mashup your own Adventure :-)

Labels: kiwi-writers, planet-geek, short-story, writing

Inserted: 2007-04-10 00:49 (4 years, 10 months ago)

Finished KiwiWriters Easter Challenge

After 3 days of hard work, I've completed the 6,000 words required for the KiwiWriters Easter Challenge.

And here is my winner's banner to prove it:

My next problem however, is that I have only written 11 scenes out of 15 I so still have four more scenes to go. I knew I had 15 to write and thought I'd hit around 7,500 words but it looks like it'll be more like 8,000 words in total.

I've promised that I will edit this story, but watch out for a full (unedited) posting here in the next few days.

Take a look at the Easter Challenge if you think you might want to try it next year or for any of the other challenges we have going over at KiwiWriters.

Labels: easter-challenge, kiwi-writers, planet-geek, short-story

Inserted: 2007-04-09 00:28 (4 years, 10 months ago)

Quick Update

I know I've been away for a short while, but here's a quick update.

I am participating in the Easter Challenge on KiwiWriters. It says to write a 6,000 word short story over the long weekend. I have a slightly different plan which will entail 7,500 words. More next week. Oh wait, here's my participation icon:

I've been watching the first season of Scrubs. Dr Cox is Oarsum and Elliott is just, like, amazing (and then I found out that she was the 2nd Becky in Roseanne and I liked her even more)!

Also watched Shaun of the Dead this week too. Funniest film I've seen in a long time.

This blog (or parts thereof) is now being syndicated on http://planet.geek.nz/ and http://planet.nztech.org/.

Finally, there will be some big news over at KiwiWriters today (can't mention it yet)...so look out!

Labels: random, nz-tech, planet-geek

Inserted: 2007-04-05 13:23 (4 years, 10 months ago)

More Fun with Perl

After my article last week regarding Dynamic Method Generation in Perl, here's the conclusion.

See Fun Hacking Perl first unless you've already seen it. It took me a week instead of a day to post this follow up... :-)

Overall, dynamically creating methods can seem like a bit of black magic, some hand waving, smoke and mirrors or all three. But in reality it's fairly straight-forward.

Go take a look at the Class::Accessor module (source) and search for ::$accessor_name (there are 4 instances). It's fairly straight forward and really there are only two steps you have to do:

  1. create an anonymous subroutine (or closure) using sub
  2. inject it into the caller's (being $class} namespace

Of course, there is a few more things you have to be weary of and a few more details to look out for but essentially, that's it.

So far, I now have 5 ways of generating 5 different types of methods. It's kinda cool and means I can remove a lot of template code from Zaapt.

Labels: perl, nz-tech, planet-geek

Inserted: 2007-03-28 22:35 (4 years, 10 months ago)