Search this blog for:

Tuesday, December 18, 2007

alphafoobar.com isn't going anywhere...

Alphafoobar.com isn't, but the author will be posting this type of stuff at nzfusion.com/james

It is part of our new initiative to drag people over to NZfusion and slowly increase awareness in what it is that we are doing there!

So for new news on what is going on, come over to my new blog: nzfusion.com/james

Friday, December 14, 2007

busy building stuff

Have been very busy recently playing around with our web based applications - progress was slowed substantially on Tuesday - my day of real work! But it is still on track.

Will have a questionnaire ready for share the stars early next week. And have been working on Whizzoo intermittently, so the interface there is much nicer. I think I will also integrate it with Facebook and see how that goes - which sort of outflanks some business ideas about whta we were doing with Whizzoo - but I say it doesn't restrict the potential of Whizzoo, it simply increases its awareness and our knowledge base!

For when we integrate Sharethestars with Facebook!

I have also suggested that ShareMyNZ should integrate with Facebook, I've noticed another NZ Community site is advertising on Facebook - but I don't think they have the background to put together a Facebook portal.

Monday, December 10, 2007

Portable Apps!!

I have just posted about moving to Portable Firefox, which I am very excited about, because I have recently discovered that Firefox run in Wine on Linux, gets DNS responses from my stupid Dynalink router, but Firefox run on my linux box doesn't... it's not just firefox. It also gives bogus data to my wget on linux, but not ping. And sometimes if I ping an address or open a page in Konqueror, then I can also open it in Firefox. I've even tried other distros!

So I could try running firefox in wine on linux from my USB, perhaps I can share the instance!

But the really cool thing is there is a stack of applications available on Portable Apps, including XAMPP, which is a bundled install of PHP, Apache and MySQL... which I will be promoting in our development team to get standalone local servers running! - Some of our team aren't particularly eager to become more technical, tools that make it easy to be technical are appreciated!

However, there are a stack of tools I will be excited to get on a USB stick! Including:

  • Firefox
  • Apache, PHP, MySQL
  • Filezilla
  • Notepad++
  • 7-ZIP
  • VLC
  • Putty
  • And MAC OS 7 on a stick... that just sort of sounds fun :)

Portable Firefox

I've loaded my USB key with a portable version of Firefox. This seems to be a slightly different build of Firefox, which seems a little odd to me... as shouldn't any app be easily run from a USB key - what is the windows registry for anyhow? Ps. I don't care!

The benefit of this is I can take Firefox with me where ever I go, and never have to change my bookmarks again!

Friday, December 07, 2007

Extend Firefox 2 competition

This is a competition that is run every year (perhaps next year it will be extend Firefox 3?). So since I haven't thought of this till now, it seems pointless to try and extend Firefox for the point of the competition.

But what a great way to become a known member of the community. Write a killer app, be anounced to the Mozilla world! Of course there are a tonne of great Firefox extensions already... trying to add to many of them will possibly kill Firefox, but as long as you don't get too greedy - and install them one or two at a time everything will work fine.

My favourite aspect of Firefox was it's small size, this is achieved through a lack of functionality - this should be a computer programming and project management mantra - less is more!

You simply don't need all the bells and whistles to make your product (and project) successful. But being able to add the bells and whistles later - that's gold!

But what new tool would take the prize from the best mozilla firefox apps in the world? How many ideas can I come up with that are already taken?

Thursday, December 06, 2007

PHP Singleton design pattern

I think design patterns are stupid, people publish huge books of them, containing things like the singleton - which I think is a pretty basic pattern in Java. And can be implemented using a static self-typed variable and private constructor... hardly seems worthy of its own design pattern to me.

But it does make it easier for me to find this sort of thing in a language I am less familiar with.

This is a very untested implementation of the singleton pattern in PHP. I want to only load the file once. Because that would seem more sensible to me, so the constructor loads the countries list


class survey_countries
{
var $content;

/**
* Create an instance of the survey countries class.
*
* @return survey_countries
*/
private function survey_countries()
{
$temp_file = new common_io_file("../lib/countries_file", /*FILE.*/READ);
$this->content = $temp_file->get_contents();
}

/**
* Return the content array.
*
* @return array
*/
function get_content()
{
return $this->content;
}

/**
* implements the 'singleton' design pattern.
* @return survey_countries
*/
static function get_instance()
{
static $instance;
if (!isset($instance)) {
$instance = new survey_countries();
}
return $instance;
}
}

Wednesday, December 05, 2007

PHP questionnaire application part 2

It was quite a busy day yesterday... obviously I didn't get this completed, or I'd have a link here and would be inviting you all to come along and fill it in! But I think I've made some good progress...

The basic idea I'm building on, is I'll have a questionnaire file and an administrative function that will create database tables and a php page based on that file - an install phase. Hopefully I'll be able to extend this to allow versioning of the questionnaire, so we can make changes on the fly and not lose survey data! But thats is something someone else can do in the future.

Once the php page is created and the database tables created, then the form will be open for business. The same fields (a PHP class I've created for each data type) will be used to validate the incoming data... with the validation parameters written into the generated php file.

Since the tables are generated (one table per question), the database is custom built to the specification of the questionnaire... which means the data validation can occur on the user form, in the php data acceptance layer and in the database. Making it less likely garbage will make it through.

This is similar to a Java Swing form I built a while ago, except this time I am building the form once, and then I built the form at runtime.

I was slowed down, as I had to get a CVS server operational somewhere. Luckily CVS comes pre-installed on our current host: hostmonster! Once we had SSH set up, we could connect to CVS via SSH. It isn't as fast as my previous solution (hosting CVS at home), but it is more available to the other developers on the team!

I also got a wiki for the team online at whizzoo.com/wiki. whizzoo.com is our primary domain at hostmonster, which is fun as we didn't really have any idea what we would do with it! So now it looks like it will be debated for a while and host our primary tools.

Unfortunately, setting up a defect management tool is not as easy... I failed to get both Trac (my preferred solution) and Bugzilla running. Obviously Trac requires more software than I am willing or able to install on our hostmonster plan.

A reader suggested using Lighthouse, but it seems to require I use SVN. Also the interface of Lighthouse is very pretty... but to me it doesn't look like much more than a community message board... I can add milestones and tickets, but I can't assign a severity? I'd like to be using SVN, but CVS it was I've got - for now.

Lighthouse do give an example Beacon file for integration with SVN, it is in Ruby. I don't really understand Ruby. But most languages are very similar - those little features of Ruby are likely to confuse me if I change too much of this Beacon file! So I might be able to get it to work with CVS... but why bother?

I've created a lighthouse project - but discovered its free account is limited to 2 users! ridiculous! So a waste of time using it. We could pay for it... but we'd probably have to buy the top end package to get the number of users we want on it... and looking at the functionality - I think I could build it in a week anyway... then Belle could make it look pretty.

Tuesday, December 04, 2007

PHP questionnaire application

Today I am planning to build a PHP questionnaire application that can take an input file and create a suitable database for the information... I also want it to be able to plug in some sort of results system... so users will be able to view results of the survey after they have voted.

As a starting point I am using this questionnaire example and I'd like to integrate amcharts (or similar for the results).

It is a little optimistic to get this working today perhaps... but we have a lot to do and this is sort of a little something extra, which may be a useful tool in the future if it is done right.

Monday, December 03, 2007

The Brain Map

Brainlandmap
The designers at New Zealand's Unit Seven created this New Brainland Map that visualizes and, er, maps out various neural regions. They used a reference photo of a human brain to model the 3D terrain. Computer wallpapers of the image are free and large color prints on silk paper are available for US$15-US$70 depending on the size. From the project page:

This digital elevation model was then used to create contour line data, relief shading and to plan where the roads and features should be placed for map compilation. Real New Zealand public domain data was then added for the surrounding islands.

Monday, November 26, 2007

Idea 10 : Project management/Source control/Defect management hosting

I'm currently looking into getting our project management infrastructure out there to the next level. And there are plenty of providers filling this niche already. Unfortunately none seem to quite provide us with the service we are looking for, at the right price (nothing - or next to it).

This leaves us to consider purchasing some webspace and deploying the right software for us... and then reselling the remaining bandwidth... for the price that we'd be willing to pay.

So how big would the market be in New Zealand/Australasia? We'd be looking at purchasing a service that allowed us to run Subversion, perhaps Trac/Bugzilla... it would cost about NZ$5 a month. You'd be able to maintain your own source repository and defect management application, with unlimited accounts.

You wouldn't need to worry about licensing the source code.

Thursday, November 22, 2007

Idea 9 : Goodbye blogrush, hello affiliate syndication that works!

Good bye blogrush - you still suck. The problem is to much of your effort has gone into publicising your widget... your widget is all about BlogRush and not enough about the content...

You had some good ideas in version 2.0, but you failed to suspect that the biggest problem was your ugly widget! Sure it is a great way of advertising BlogRush... but to work it needs to be about the content.

So, idea 9 is a blog affiliate syndication that is all about the content - think a massive webring - with a summary of content based on content... but not just from the blogs... also from the widgets homepage. What the reader wants is a little more information about the posts - blogrush camps it to much to fit in its won advertising space. But the reader should also get to go to a random post... or highly rated posts. And authors should be able to select posts they want to promote.

This will help generate more hits to the blogs... thats what they want.

Wednesday, November 21, 2007

Towards a better workplace environment : part 1

We have been talking with business advisers about NZfusion and our possible growth. Part of this has led us to consider the type of business we would like to be. I have thought about this occasionally.. and obviously my idea of what type of business I would like to own is saturated in idealistic naivety!

But I thought I would jot down some of my ideals:

  1. Workers should want to work for the company. This sounds like a gimme - but most employees don't want to work for the company they are in. So I'd like the company to be the sort of places that would win best workplace awards - but more importantly, a company where the employees didn't want to leave.
  2. Custom development pathways - It's getting into how do you stop employees from leaving... employees should be able to develop themselves in which ever direction they want... if they don't know, as most of us don't, then we'll try a little of everything... that is technical, leadership, sales, etc - they'll need it all to work with us anyway, so they should have time set a side to train every week.
  3. Entrepreneurial possibilities, most of our employees will have an entrepreneurial streak - this should be encouraged through weekly sessions and where good opportunities are found - they will get a cut of the profits and we'll foot up with the dev team, experienced managers, marketing the whole kaboom. As we'll be developing everyones leadership capabilities and technical skills and aiming to keep everyone on board, we'll need a lot of new projects to keep them occupied!
  4. Fair remuneration and rewards, this would be a big problem for a lot of IT companies - how do you keep improving remuneration with experience and keep a head of inflation? The simple fact is that to pay employees more - the company needs to earn more. Hopefully continuous growth and correlation between income, development and inflation will help employees understand that to get paid more money - they need to contribute both to the growth of the company and the growth of team members under their lead. Obviously an employee is worth more than their contribution to the bottom line... but more income is required to provide more wages. The best way of contributing to income is through finding new opportunities, the best way of securing income is through delivering those opportunities... so perhaps remuneration could be a small base salary, with large bonus components to provide commissions on sales and new opportunities... as well as percentage based bonuses on delivering on time and budget and royalties from the product use and or sale.
  5. Fun work environment, I think this is possibly the most important aspect...
    1. I spend about $50 a week on cafe espresso coffee.... if we 10 coffee drinking staff, we could consider employing a coffee barista, or at least an espresso machine and providing lessons in pouring coffee to the staff.
    2. Fun work is more than a coffee machine and good coffee, people should also understand how people work and what is the best way of working with people. Compulsory reading for the entire company should be books like Peopleware, which identifies why most software projects fail and how companies can work better to make them succeed.
    3. There should be plenty of collaboration spaces that are comfortable.
    4. There should be unwinding areas... with pool, pinball machines, spacies, table tennis, fussball - that sort of thing.
    5. Each creative employ should have their own office space, including whiteboards and room for others to collaborate in the office.
    6. In a parallel with limiting distractions... creative people should have a separate computer that can be used for internet access and testing as well as a laptop that is purely for work activities. This has two strengths - dedicated work environment without distractions and a computer that can be used for testing releases or even a buffer code/work repository.
    7. Company sports and social clubs... people should interact, even if they will create masterpieces in silence... if it is at all possible to get people working and socialising together, then it should. The result will be fitter, healthier, happier individuals... and the company will be known by a wider audience.
  6. Single sign on to a beautiful internal system... an IT company should be able to sort out its own internal functions! If it can't then why is it bothering to sell things? The beauty of nailing your own internals is that it saves your company a stack of time - and it is a marketable asset - who cares if nobody wants to buy it, you need to have a team of experts running it anyway... if you do manage to sell it, then you only need to expand that team of experts.
  7. ??
In summary, I think I will continue adding to this list and refining my ideas - after all, we don't have any employees at the moment, we are just the 3 founders... I think I have listed the fundamentals: Good marketable internal systems, a healthy and fun workplace, with good honest remuneration schemes, entrepreneurial encouragement, constant personal development planning (and mentoring for those yet to grasp their individual path)... I think that is a good starting point, we've also talked about a very flat structured company, hierarchies are simply overhead (though that doesn't mean no management!) and we will also need to ensure we hire the right people... where ever they are!

I would be interested to hear from other IT company founders as to how they have addressed the workplace environment and if any have tried any or all of the points I have listed above... and have they worked or failed?

PHP Style guide: part 1

I've been slowly investigating PHP style. Currently I am following the philosophy that PHP is an interpreted version of C.. most of my code doesn't use PHP Classes, but when it does I guess it will be more like an interpreted version of C++.

So far this has been a pretty good starting point. But I do notice a lot of the PHP code out there isn't well commented. So as a general rule I am adding comments to every method and as a header to every file. These contain the author name, the creation date and the file name. File are also headed with some information about the functions in the file.

For example:
/*
this_file_name.php

This file contains no functions and is just an example in my
blog in regards to what a file header may contain.

NZfusion LTD.
author: James Little
date: 21/11/2007
*/

Another habit I am finding very useful, is commenting methods on where the hell the are located! So the code looks like I started with some C++ code and commented out everything that made it Object Oriented...

For example:
require_once("forms.php");
/*forms.*/validate_form($form_data);

This makes it so much easier to work out where the function I am calling is located.

Finally, every page contains timing information that is populated into the generated page, so the user/tester/developer can check out how long a process has taken to execute... at the moment this only checks the total generation time, though I think I might pass through an array that adds processing time at each step. Which will help us conduct performance testing on the finished website. Which is a good idea, a while back I was convinced that C extensions would be required to provide a usable human interface, however the timing has shown me that any speed issues are internet based - though this could change when the serverside processing becomes more complicated.

Wednesday, November 14, 2007

Idea 8: Deploy Currency 2.0

This is basically what a New Zealand company is doing... it is an old and true algorithm, but it is recently advertised in New Zealand under the personality of Marc Ellis...

Which is an awesome idea, Marc has celebrity status down under (that's where we like to say we are) and having him involved must have been a real asset in getting things out the door. I wish I had Marc on my side for a few projects I'm interested in building.

But mintshot really is the money - you watch a 30 second add, and depending on how much the company paid (I presume) is how much you get paid to watch it. So you get about M$200 per 30s add. Then you can go and buy stuff... except the stuff you buy is in an auction, so you compete with other people for this stuff that you need (Crate of Speight's thanks) paying money you never really had.

OK, so it is a great idea and if Marc or anybody else is reading - I've a stack of ideas about how you can build on this - seems to me like you are missing some gold. But what I was also interested to see is it is built on Joomla! an open source content management system, which is interesting, I wouldn't have picked it from using the site and I think more community interaction might be cool - but then, how much community interaction is there on TradeMe.co.nz?

It is also using jQuery - but that's probably part of Joomla standard implementation?

Sunday, November 11, 2007

Idea 7 : Web based defect management system built on Twitter

Yeah, I think this is actually what we will build around whizzoo.com - basically a micro-blogging tool with SMS functionality inherintly part of the application. My idea is that it is a micro-blogging tool built around twitter that is really self aware...

I mean that the tool is to send messaging to twitter... but also raise defects in itself and other projects we are running.

How to set up my windows pc

I'm sure I've commented a few times on what to put on your computer, if you are running windows and are lucky enough to be given the keys to your machine by your sysadmin. Well, this seems like an ideal time to write about it, as I have a new box at work that requires my attention immediately... because I have to use it.

The first two applications to go down are:

  1. Firefox, because my system was running IE6 and that simply won't do... 5 min without tags was all I could stand. I could have downloaded IE7, but at MS they still have no idea that people might be able to handle their own system better than they can... so you need to hack the kernal to get IE6 and IE7 running simultaneously. And its not as good as Firefox anyway.
  2. Notepad++, it wouldn't have been the second if I didn't have to edit an XSD file for a document I am writing. And the XSD editing isn't as good as its XML, HTML and Javascript, or even its PHP or Java. But it is better than the other crap on my system. And it is quick to boot.
Configuration of my new windows machine:
  1. I need to turn off the sound, I can't stand the stupid windows startup music, and all of the beeps distract from my music collection. Goto control panel > Sounds, set the audio to no sound. Awesome, no silly startup noise!
  2. No sounds seems to encourage the system beep to be deployed (who's stupid idea was that?) so when I change the volume to almost silent with my headphones on I get a full noise BEEP! Not good for your hearing! To turn it off, open your volume control, changet he preferences to show the system bell, set it to mute. No deafing beep when changing your volume! I might be able to hear when I'm 60 now.. if not, I'll be referring to this post and suing Microsoft.

Friday, November 09, 2007

Foamee scoreboard


This is a follow up to using twitter to save the world...

And I've opened my bar tab at foamee... here is a shot of it... BTW. This is obviously an excellent way to run your distributed project - you don't need it to represent beer, it might be chocolate, or muffins, or coffee... But such a tool adds team to your team... and fun. Most of us won't move on while we are having fun (according to market research I have just made up).

Plus it is an easy way to keep score... I can do it from my cellphone, which means I can do it at the real pub!

twitter + ioubeer = Foamee

I am becoming a big fan of the twitter (and some other micro-blogging interfaces) ... they really capture my personality well, like texting... I'm a man of few words. As you would have noticed.

But I am discovering that the micro update form is ideal for tracking emergencies like the san diego fires. And NZfusion is even investigating similar uses of micro-blogging with whizzoo - but it is in a very early stage!

However I received an update from Twitter that I feel is even more beneficial... I can charge my friends beer using IOU... or vice versa. At NZfusion, we like to celebrate and so we have implemented a system of charging each other beer when we stuff up... and crediting each other beer when we do something good. So I'm encouraging my team mates Jason and Rebel Rabble to get themselves on twitter like me, so I we can ditch this archaic Google Spreadsheet we are using and record our beer scores online in a more modern manner!

For the benefit of all who are interested in twittering and beer... here is the email I received from these microblogging geniuses:


Do You Owe Someone A Beer?

Foamee.com is a fun IOU system built on Twitter that helps you
track who you owe beers to (and vice versa). All you have to do is
follow the account "ioubeer" and then send it @replies. So, say
you owe me a beer for helping you change a flat tire, this is what
you'd send to Twitter:

@ioubeer @biz for helping me change that flat tire

Then, your IOU will show up on the front page at foamee.com.
There's even a way to tell it when that beer has been redeemed.
I think a root beer version is in the works. Maybe even a latte
version? Those are foamy too. Dan Cederholm of SimpleBits design
is the mastermind behind this fanciful creation. We think it's
really cool. Thanks Dan, we owe you a frosty one!

Visit: http://foamee.com
Follow: http://twitter.com/ioubeer
More: http://simplebits.com

Other Cool Stuff

Foamee is part of a growing list of interesting applications that
interact with Twitter. Jott, for example, has created a way to
send a Twitter update by speaking into your phone--your voice gets
converted to text and sent out to all your followers. This is a
much safer solution for people who insist on updating Twitter when
their attention is required elsewhere--like driving!

Twitter by Voice: http://jott.com
More Twitter Apps: http://twitter.pbwiki.com/Apps

Featured Twitter-ers

We have a sidebar on the Twitter public timeline page where we
occasionally mention accounts you might want to follow. For
example, during the San Diego wildfires, KPBS News, LAFD, and the
LA Times had important live updates. The following accounts are
less of an emergency situation but interesting, nevertheless.

SkinnyJeans is wondering if Twitter can help her lose 10 pounds.
http://twitter.com/skinnyjeans

Jamie Kennedy is experimenting with Twitter.
http://twitter.com/jamiekennedy

Maureen is serving up a steady stream of tiny recipes.
http://twitter.com/cookbook

Sara Bareilles is sharing the details of her budding career.
http://twitter.com/SaraBareilles

On the subject of emergencies, that earthquake we had recently in
Northern California was highly Twittered. This blogger captured a
lot of the action: http://tinyurl.com/2xv5el Also, if you're a
Bay Area resident you might want to follow the updates of this
profile http://twitter.com/SFSurfrider regarding the recent oil
spill in San Francisco Bay.

Twitter on the Mobile Web

In case you didn't know, Twitter has a mobile web site that you
can access from your phone's web browser at m.twitter.com. Twitter
developer Britt Selvitelle has been quietly improving the site
recently. It's a great way to check out what people are up to when
you're waiting for a bus or taking the subway home from work.
Britt's Twitter profile is http://twitter.com/bs in case you want
to @ioubeer @bs for making the mobile site!

Introducing alphafoobar.com

With my involvement in the 99 bloggers community, I was encouraged to set up a domain for the community weblog so the site appeared to have greater stability ... persistence... I suppose credibility is the best term to describe it. I was hosting it as alphafoobar.wordpress.com, which to me represented nothing. I don't really care much about the domain name of the pages I visit, but this is the problem with following your gut feeling, it only represents a sample size of one... which is less significant on the internet than it is come election year. If you are George Bush Jnr., then you'd be able to wing it for a few years based on that - so be careful who you call silly!

Since the community spoke out at 99 bloggers, I decided I would trial an independent domain name here at alphafoobar as well. Since my name is James Little, you might think that jameslittle.com would be the sensible choice. Well, perhaps it would be if it was available. It seems my name just isn't unique enough... Jason Sew Hoy is a good name for marketing purposes. Being a matrix fan, I thought a cool h4x3r name would be adequately geeky... but really the name alpha-foobar is pretty meaningless, though foobar is often used as a placeholder term or nothing function in computer programming... the prefix of alpha simply makes a common computing term a username that is typically unique - unless somebody else starts trying to steal my identity!

There are many benefits to owning your unique domain, arguably for credibility purposes, but also for search engine ranking. I'm skeptical of these reasons, but less information for a visitor to type to go to your website must equate to more direct traffic.

I purchased the domain using blogger's interface and therefore through which ever domain partner google prefers. I'm happy with it, it only cost US$10 (which will be about NZ$14) for a 1 year subscription. In comparison, wordpress.com charged $10 just to accept traffic from my domain name! Something that it was doing free before and that blogger.com does for free anyway. It also costs NZ$27.50 (inc GST) to purchase a domain for a year through most NZ resellers. So the domain was a cheap addition to this blog.

What I'll be interested in witnessing is whether having a domain independent of blogger.com does anything at all for the popularity of my content. This is what I seriously doubt, but for less than $15 - thats only a couple of beers on Friday night in Wellington... who cares? I can not have 2 beers this year... I think? It is the 5 coffees I'd really struggle to do without!

Wednesday, November 07, 2007

Idea 6: Social minion marketing army

We all know that one person can not change the world, not even Al Gore, but if that one person goes and talks to winz and recruits a couple hundred unemployed Arts graduates, then that one person is 101 persons and they can perhaps not change the world, but do a damn good job of letting the world know where they were.

What would you and your minions do? Well...

  1. some minions would investigate the search engine optimisations for the web site and also the competition, there are tools for all these types of tasks, so it should take long.
  2. some minions would surf the web using some target market demographics supplied to the company. posting comments to blogs that are of interest to people that are involved in the company. each minions role would be to find and track 100 blogs relating to target demographic.
  3. some minions would write blogs for the company, releasing teasers of product releases and company involvement in the community, either real or cyber... we aren't picky these days.
  4. some minions would be looking for social networking groups on applications like Facebook, Orkut, MySpace, Hi5... Bebo, we'd have open social applications to help us pinpoint likely supporters of our movement.
  5. and some minions would go to market and purchase coffee and beers, depending on what time of day it was!
Who would be interested in joining my social minion marketing army? Sounds like a pretty cool job to me!

Update: This was idea 6,not 7... also I don't mean any offense to BA grads, I was only joking... the idea would be lucky to get such recruits on board. Also, it is likely that such idea would be very easy to run and monitor in a distributed remote structure... as it is already done for things like digging, stumbling etc.

Tuesday, November 06, 2007

kiwiology - featured blog

I am currently in my office at 11pm trying to focus on my day job! The design simply must get through!

But on a brighter note, I am honoured to notice that this blog is the featured blog for the week on Kiwiology! OK, before I get a big head, I suspect that they don't spend too much time at Kiwiology fussing over which blog to put forward... I mean there are so many great blogs from New Zealand, even if you just look at the technology space... you have: Read/WriteWeb, Rod Drury, Rowan Simpson, Neato, Pass the source, Cool kit and stacks more... Read/Write web is rated #19 in the world at technorati.

So in short, regardless of how I was selected, I am stocked! Cheers Kiwiology!

Google addicted to making my life more interesting?

Well perhaps not my life specifically... but Open Social this week... Android and the open handset alliance next week (November 12 will be the release of the SDK).

Ok Open social perhaps wasn't as exciting as I might as hoped, others also feel it was a little over hyped. But it is still an open API to the social world.

The Open handset alliance is expected to be everything that the current mobile market isn't... open, standardised. I suspect that this was a very sensible move by google... the desktop market is all sewn up by microsoft... sure BSD and Linux are competing... but BSD has gained wider acceptance largely because of the Mac OSX and linux is pretty much a cheap web server environment. I run Linux at home, I've run NetBSD and FreeBSD at home... but windows pretty much owns the desktop markets.

Mobile on the other hand is an open ball game... Microsoft has a presence, but hardly anyone trusts microsoft enough to having it running 24x7 on anything... I believe mobile is the way of the future as the PC was the way of 90s and 00s... I suspect the Google OS everybody was joking about is about to be released and it isn't a webOS.. it is run a mobile phone that doesn't need a lot of memory, because it uses Google Docs.

Monday, November 05, 2007

Bugzilla for defect management and feature requests

I was going for Double choco latte also know as DCL. A mate recommended it. But I got an error installing it on my webhost, something like "dcl_createon" does not exist - or something like that. I spent a while trying to find the problem. Then figured that the problem wouldn't occur in the older version (it did) so then I decided I'll try something else...

And I've decided to give Bugzilla a shot. It has a lot going for it, it can be integrated into a number of project management tools (not zoho project though) and it can be integrated into source management programs, like svn and cvs - one of which we are bound to use in the future!

Bugzilla also has some cool gadgets, we aren't using zoho project as much as we should. A lot of meetings a documented on Google docs and then archived there. If zoho was a little lighter, we might use it more often? However, bugzilla has a google gadget, which should promote its use... a google gadget can be loaded into a number of different containers now. And if my assumption is correct and google gadget do implement the opensocial interface, and if NZfusion wants to be a player in this field, then google gadgets should be implementable on our website.

Hmm... Blogger is also a google tool - perhaps it implements open social too?

Idea 5: Open Social portal for Facebook

The Open Social API is just a simple API for accessing basic information in the container, anyone can implement the API.

SO, why not build a wrapper to allow OpenSocial applications to run in Facebook?

All you'd need to do is provide an interface to the Facebook applications that do the same thing... and of course an interpreter for the module.

Ah, easy.

Sunday, November 04, 2007

Google open social here I come!

There is a stack of resources available as google rocks into the social aplication arena. Google were always there of course - we've been able to build google gadgets for ever.

And lets not forget all of the other platforms we can build widgets for. The field is massive and people are only really beginning to realise how big it can be.

However, google has deployed an API that is an open standard. This means it dwarfs a piddly little 30 million facebook users... you can develop for anything that supports it. Actually there is no reason why you couldn't build a Facebook interpreter for the OpenSocial API! Where is it people?

OK, well we might take a look at that.

But first lets concentrate on the other 200 million possible users sitting at their computers typing content and building social network on sites like Orkut, Hi5, MySpace, LinkedIn and a new one I only found the other day called Ning.

Ning is especially cool for a social network because at Ning, it isn't about the site at all... really everyone is a member of Ning... but everybody is also a member of at least one of the speciality social network hosted inside of Ning. I took a look around some of the networks there... and there are plenty... of special note is the open social stuff network.

Google have also launched an open social API blog, to keep us up to date with the applications, containers and major events in our new open social calendar.

And once again I am left with too many links to really describe them all!
Orkut Open Social
Open Social API docs
Open Social Javascript docs

Orkut application anatomy - Orkut is really the Google sandbox arena... I'm not sure what Orkut looked like before I signed up to the Open Social developer program... or sandbox access - the only difference seems to be Applications, but I presume they are available for all Orkut users anyway?

Orkut Sandbox Perhaps this is what I got for my signup (it was free - so its ok).

HowTo create your first google gadget My understanding is it is basically the same.

Hi5 is another Social Network that is supporting open social... I add a where in the world are you google map, slide photo guestbook... it is pretty cool.. they stole the idea from me! ;-)

LinkedIn is supposed to support the platform, but perhaps they are doing it in a more closed manner to support their more mature clients?

Google gadgets dev guide

Google gadgets Hello world example - Google has a pretty cool developer interface that you can actually export, sort of like an open social application... in that you can plug it onto your iGoogle page if you want... I suppose you must be able to plug it onto other openSocial containers now? Or is there a difference between a google gadget and an open social application? I don't think so!

Google gadget tools

Google open social container - if you want to host Open Social Apps.

Open social blog

Ning social network

The following google modules are open social examples, they need to be loaded into a supporting container, like iGoogle - but if you are techy, you'd rather see the xml anyway. Otherwise, try loading them into iGoogle (PS. they aren't developed by me).
A random google module example from Ning. And a sudokupuzz google module.

A good summary of what Open social is and can do... from the ning blog...

Ahh...

Saturday, November 03, 2007

Google Open Social - systems go!

Google has released Open Social, which I think is quite spectacular - I mean to say you will release on the 5th and release on the 3rd? Are they in the software business? Or is this something they started working on before Facebook had apps and finished ages ago... then decided how long it would take to market it?

If that's the way they did it was a really good idea!

Google have partnered with Orkut, MySpace, Hi5, LinkedIn.... the list of partners goes on!

First post of the open social blog discusses the amazing opportunities of the platform...

When you add up the current websites who have committed to implementing OpenSocial, you realize that a developer building for OpenSocial has the chance to reach over 200M+ users in dozens of countries. So over the course of the next few months, we're going to continue laying the foundations of OpenSocial to enable this common dream for a more social web.


To sign in to get access to the open social API, you seem to require a special Orkut account to get access to the sandbox. It appears there may be a wait, I haven't got a response yet...

Using the scroll wheel in Javascript

Using the scroll wheel in Javascript: Ran into this tutorial in my Google reader - so lucky, I mean there are thousands of new unread posts from different RSS feeds in my reader! Would be so much easier if there was a community of bloggers that found good content!

Anyway, you can basically just hook functions onto events to extract the mouse scroll event, just like any other event.

99 Bloggers


99 Bloggers is a (community) blog that I have started to investigate the power of a community blog broaching several topics. Essentially, such a design is similar to any other community site, except the intention is greater openness. And therefore increased visibility of content.

Currently I have about 20 bloggers who have expressed interest and we are starting to exceed 100 page views a day, within the first week of launching. So it looks like 99 Bloggers will be easy to find.
If you are interested in contributing, it is required that you create a Wordpress.com account or leave a post at 99 Bloggers and we'll send you an invite. Once you have signed up, then you are ready to post. You'd better hurry if your interested though, because I'm not going to sign people in for much longer!

One of the authors who has signed up, regularly comments on this blog, wizcoder who is another fitness and technology blogger.

And there are plenty of other great bloggers over there for example webGek2pt0 or web geek 2.0, has just posted a great tutorial about online software to create favIcons and a post on web geek 2.0 about 99 Bloggers and thanksgiving!

There are plenty of other bloggers to talk about including Ritu who also blogs at Work N Play and was the first to post on 99 Bloggers and also the first so far to post a profile! But hey, at least people are posting and the site is taking off!

Friday, November 02, 2007

Open social platform… bigger than Ben hur?


I heard the Google API was coming out soon. But this is way bigger than I was expecting, I was expecting big. But I was expecting iGoogle + Orkut big, not every Social network that doesn't hold a grudge big... Orkut and Hi5 have massive latin american communities... and pretty modest 'western' communities. Bebo is basically the UK, MySpace is basically USA and Facebook is largely university students (thats college in the USA), but Facebook is also the major social network for Australia, NZ, essentially bridging the holes left by Bebo and MySpace and doing a pretty good job of making that the smarter business decision.

But what I'm getting at is the community of Hi5 and Orkut combines will also compete in this niche and their latin american user base is already massive. They also have strong european support. That makes the open social platform massive. If it includes linkedIn, then it also includes a lot of corporate users.

The platform was always going to make the web platform widget industry bigger and stronger. But this is also going to open the ability of these widgets to span markets and possibly build stand-alone applications that sit on users or business websites. Perhaps even building niche social networks based on the social networks already available. Good bye facebook, it has been fun, you helped me find many of my old friends, but your time is almost up, something new has come along.

TechCrunch also has some good stuf on the topic of the use of the API

Wednesday, October 31, 2007

That blogrush thing

I have waited for ages for this blogrush thing, apparently they have taken some blogs off the list. That will make it work better they say... I don't know about any of that.




What I do know is the interface looks alot better - it is easier to change the interface that is on the blog... true, but I mean the application dashboard for blogrush, it is a lot better than it was before, it even shows what posts have been syndicated and how many times and how many people actually clicked through on it. That makes it actually worth having... it would be good if they had more post history, but perhaps they reduce their data retention by only storing your last 10 posts?

You can also go in and filter your content and other blogs content to stop it interfering with your readers...

So I am adding the blogrush widget to this blog again to see how it goes.

Monday, October 29, 2007

Oasis CIQ XML


I've got this project on at the moment where we are transplanting the address system to use International standards. This is what this diagram I've uploaded represents... the CIQ xAL.xsd.

What I need to do is work out how we represent this thing as part of a cSharp (C#) .NET web services application. And I have been surprised to find very little about this international address standard online.

Though the xAL UML diagram looks a lot better than my diagram.


I generated my diagram using the Microsoft.net framework xsd application, it comes with Visual Studio. This application allows you to generate Microsoft supported languages, like VB, C, jSharp and cSharp. Once I had the cSharp file, I imported it into Enterprise Architect. I then had a mess of classes, but the relationships existed. I then spent a little time 'sorting' the diagram so it looked a little less messy.

But I would have thought I'd be able to find an existing c# library implementation of the Oasis CIQ XML standard. It doesn't look like there is much out there.

Update: I have a more manipulated image, got rid of some of the relationships shared by a lot of classes and it looks a little tidier!

Sunday, October 28, 2007

Idea 4: Web2.0 centric community cooking website

I think there are a lot of websites out there that help people find recipes.

My idea is a website that allows users to add recipes and tag recipes using some simple rules. Things that I could see somebody like me searching for are:

  • Recipes with only 3 or 4 ingredients
  • Recipes from various regions
  • Recipes to impress a date
  • Recipes to impress your partner - might be different!
  • Recipes for less than $1, $2, $5, $10 per person
  • Recipes that I can create that contain "something I like" ingredient
  • Recipes that only contain this, this and... this
  • Recipes that contain foods commonly available in "the region I am in"
  • Recipes that contain ingredients all available at the local supermarket
  • Recipes that I can serve for dinner and take less than 30minutes for somebody not Jamie Oliver and Co to make
  • Recipes that are good for you but taste like they are bad for you

I'd also like to be able to request recipes... like when you go to a restaurant and you have something that you like, you could, given a large enough user base, request the recipe and ingredients. Of course, you may not be as good at making it as the chef - but you wouldn't be a real developer if you didn't try and build it yourself every now and again.

There are lots of things that could be added to a website to make it useful these days, and community centric stuff is becoming more available, especially with social network frameworks like Facebook to piggy back on. And Mashup tools like Popfly and Pipes.

Friday, October 26, 2007

Firefox even cooler than IE!!



Well this isn't Firefox, as such.. it is a new application they are developing at Mozilla Labs called Prism.

Why build Prism? Because internet applications are changing the way we work, I use web based email more than traditional client email... I use online documents as much as desktop documents (excluding source code, data, etc), most of my desktop documents are stored on a server that could be in another country for all I know. So Mozilla are exploring a different type of web interface that is optimised towards the application, not the location and history of the internet journey.

What is it? Well playing around with it, it seems to be a web browser without navigation buttons and some other traditional components - like a menu. It does have a menu, but it is very simplistic. For those that have been following this for a while (and it seems it has been for a while), it used to be webrunner, which seems to be based on XULrunner - I've only really started looking at it, but xulrunner is the executable that appears in my task manager. Sorry, it seems more likely that webrunner was a xul application that was run by the XULrunner. Which I suspect is why xulrunner is appearing in my taskmanager and not prism.

What does it do? It seems to be a basic web browser... it doesn't seem to have off-line functionality? You can create shortcuts to your favourite websites (this is like creating a bookmark) except they will run independently of a webbrowser.

What will it do in the future? It is going to be updated soon to grab the favicon of the web application you load and store that on the desktop for you - or you can add your own icon art. It will also allow you to change the CSS of a web application to provide the look and feel you prefer, not that boring blue and white that Google put on everything!

What could it do?
It would be good if it provided offline interaction with websites, this doesn't mean checking your email, or reading your RSS feeds... but it might mean being able to write messages that are sent when you are online, or adding RSS feeds to your reader. You might be traveling on the train and see one that you'd like to read... or think of something you should send someone! ok, it doesn't sound very likely, but I'm sure it would be useful once in someones life.

New application windows are opened when you follow some links, it would be good if it could work out that you want this new application saved and not save the one that you loaded - this might be a bug?

It looks like they are going to integrate the tool with Firefox, so you can add any web page as an application from Firefox (I can't do this at the moment, though it is probably an extension I could add). This would be cool.

You can currently download a windows version of the application, mac and linux will be coming soon - or you can build them! And you can learn a lot more about the application in Alex Faaborg's blog, but this is more about where the technology is going... not really where the technology is now.

Tuesday, October 23, 2007

Sun spot Java implementation of Minority report

I'm a Java developer... typically, though I end up doing a lot of different stuff... I ended up reading about Haskell on the Builder.AU website - I wasn't really sure why they had an article on learning Haskell, it is a cool language functional paradigm instead of imperitive or Object oriented... but it is largely academic (both in theory and practise!) a truely functional language should have no IO, as a true function has the same result everytime it is provided the same paramaters and no side effects. It is the nature of IO that it is a side effect... so making functional languages useful is somewhat frowned upon. Unless that use requires no IO!

Anyway, Microsoft has just released F#, a functional language for the .NET platform, so perhaps the purpose of Builder.AU writing about Haskell is to provide a functional language developers can play with for free, as opposed to getting into F#.NET, which probably has some resource that require Visual Studio?

So why the Minority report... well Haskell was boring and I noticed they had some videos about the minority report! This video demonstrates pointing and clicking using what is called the Sun Spot... there are other videos that describe what this is... the glove she is wearing is a virtual reality glove that she says she picked up on eBay... and then soldered into her sunspot to provide her with some sort of virtual reality Java enabled mouse... seems like it is a little clunky for my world domination plans... but it is moving in the right direction!

Monday, October 22, 2007

what is a whizzoo?

We weren't sure what a whizzoo was or should be... so we decided it might be fun to build a simple tool that allowed people to come along and say what they thought it could be.

Perhaps we will build a social tool that is socially designed?

Sunday, October 21, 2007

Firefox is better than IE!


Firefox plugins...


I broke my firefox install, which probably isn't a very good advertisement, but it wasn't Firefox's fault... I must have installed 20 different extensions and obviously one or two of them did not like each other... so I had to start again and since I'm blogging stuff this is what I added:



Search:


I added Technorati, Wikipedia and del.icio.us search plugins - most of these should work with IE7.0 as well.



Extensions:

  • iMacro Lets me automate anything that I do on the web... including write blog posts - I'm actually getting a coffee at the moment.

  • english dictionary
    My automated blogger uses a spell checker, now I can too. Be warned
    that by default it installed the US dictionary - that one has all the
    Zs and ORs and ONs... not quite what you are after if your from
    downunder. The link if for the English dictionary... here is the US dictionary.

  • ScribeFire
    to optimise my blogging (robot - see above). I haven't used scribeFire
    before, but I am very impressed with what it can do... I'll
    beinstalling this on every Firefox capable machine that I visit from
    now on! It is capable of logging into all of my blogs and letting me
    choose which one I post content to! It is also integrated with my
    Wordpress blog... but probably not my Share My NZ blog... yet ;-)

  • BlogRovr
    Because it looked like it provided cool functionality - going and
    getting blog post about subject I was viewing.. cool. It is a really
    neat aplication, which pulls up post about what you are looking at from
    their collection of posts and displays them in the window. BlogRovr is pretty cool... but I find the googge blogger search better... it just seems faster and not as memory greedy.

  • greasemonkey
    Opens another world of Firefox plugins that I can use to edit page
    content - for example putting google page rank in their search
    results... which may be meaningless soon as Google is talking about where they will go with Page Rank. And I've added SEO tools like the next extension to tell me this stuff...

  • SeoQuake
    Puts some Search engine optimisation stuff drawn into google search and
    right on the page.. so I can see results for any page I am on!

  • Blog web comments
    It is an extension for Firefox by Google... really good at finding out
    who is commenting on the things you are looking at! One issue with it
    is that you should also be able to create posts, but my blogger account
    is a new one with gmail signup and I just don't seem able to log in
    using this tool.



Other stuff:


Subscribe as you surf - this isn't a firefox extension... It is just a handy linkt that will let you open any RSS feed in your google window - you'll have to subscribe to it when you get there though.


If you find yourself repeatedly visiting a website to check for
updates, or if you just stumble across a page you want to keep track
of, you can easily subscribe to it in Google Reader using the subscribe
bookmark.


To use the subscribe bookmark, simply drag the link below to your
bookmarks bar. Then, when you're on a web page, you can click the
bookmark to view it in Google Reader.

Subscribe...


Once you see the feed preview, confirm your subscription by clicking the "Subscribe" button within Reader.

Saturday, October 20, 2007

Radiohead slowly revolutinising the music industry


I read this post by Seth Odin and since I couldn't comment there, I thought I'd comment here. I should possibly do that all the time, I'd end up with a lot of extra content.

Seth says:


If they're smart, they'll continue to change the way they work. Paying for their mp3s should get you into a club, a club with continuing benefits.


I'd say that would be smart - but aren't there already plenty of Radiohead fan clubs, user groups? I'd say Radiohead already utilise these - a search on Google for
Radiohead community
returns almost 5 million results, a search for Radiohead on Facebook returns 500+ members and 500+ groups.

I think if Radiohead want to continue to lead the industry, they'd do several things... one of which would be working out how to use p2p to deliver their product. Another would be managing the user base as Seth mentioned. But perhaps this is completely unnecessary for a business like Radiohead - they already have the numbers, what they don't want to do is drown everyone who buys their music with news.

But many of their users are currently using p2p services like bittorrent, at least if radiohead implement it they'll have a better indication of the number that do.

jquery or prototype?

I've just taken to using the jquery libraries, but one prototype in conjunction with script.aculo.us module that I have noticed and am pretty excited about is lightbox.

So I've started using jQuery for AJAX and Form validation, so before swapping I'd like to know how the two compare in these areas. AJAX appears to be pretty similar between the two. No issues there, it is part of both frameworks. How about form validation? Well jQuery has a good form validation library that I have implemented. Prototype seems to also have a form validation library, which is possibly more powerful? But it doesn't seem as well tested or documented as jQuery and validation may be part of the jQuery framework in the next release.

Not really sure, I'm impressed with some of the libraries built using Prototype and Script.aculo.us... like lightbox, but many of these have been ported to jQuery as well.

Idea 3 Greasemonkey flashget download of youTube video

I don't want to download all video into permanent locations on my computer. I want to be able to watch video without it jumping around and waiting to download. I know that the broadband in New Zealand isn't fantastic, but I also know that video quality will continue to improve as people can upload better quality video.

I just want to be able to go to a website and be able to download and watch a video as fast as I can... isn't most video online such that a tool like flashget can split the file and download multiple streams... and estimate how long it will take so it doesn't start playing until it can realistically keep ahead of the playing content?

I think I have all the tools on my computer, greasemonkey (to embed javascript into webpages - it is a cool firefox plugin), flashget... several video players... it seems like it would be possible to implement... I'd like it on my computer. But I don't want to be downloading video all the time, storing it, finding it and opening it... I want a script to do it all.

I did find a greasemonkey script that exposed the download link for google and youtube, I guess all I would have to do is take this script, alter it to replace the video content with the downloaded file... and all I'd have to do is hook up flashget to download it and work out where the file was saved... if I gave the script increased privileges it could probably do all of this by itself - but who wants a script that downloads and saves files on your computer! Ah yes, well I do... but I think I can trust myself? Can I trust other sites to behave themselves around the script which such privileges though? Nope.

So some manual input obviously required.

Update I did find a downloader for Firefox that grabs embedded video streams, attempts to get them as AVI or similar and will forward through to you flashget downloader. The issue I have noticed with Google video is two-fold, google video appears to be faster than youTube (this probably depends on the picture quality more than the servers) and the download only allows a single stream... for flash get downloader type tools to be useful, multiple download streams need to be available. Once the video is downloaded, you obviously also need to go and find it - like I said, I'm not actually interested in keeping it... I just want to be able to watch links that friends send me occasionally.

Well done Argentina!

I didn't know this game was on TV this morning, I didn't go out of my way to watch it, I was hoping I'd be at work early to catch up on some software design I need to have finished soon! But France-Argentina, a game you would think would be worth watching... it was 3-3 when I turned on the TV and scanned the programming to see if there was anything worth watching today while I had breakfast

Then Argentina scored an amazing try...

Then Argentina scored another amazing try... it was unbelievable and left me clapping and cheering at home, for those who don't know me... I don't usually react in this manner when watching sport, or culture... I may politely clap at the end, if I think that is expected. I may cheer when I am in the stadium, if a performance is worthy, but not at the TV - the TV is an inanimate object... the teams do not benefit from my cheering at home - it is like swerving your body when playing video games - pointless.

But the performance of Argentina was difficult to explain... it was similar to watching the All Blacks losing to France. Only France was on the receiving end... all of the ball and possession, but none of the points.

The last 10 minutes of the first half were tense and it looked like the referee was completely out of his league, finally he took control back and sent off French captain Raphael Ibanez and Argentina's Rimas Alvarez Kairelis, to leave both players with only 14 men just before half time. This led to a lot of players swapping around early in the second half, as France had lost their hooker.

The second half was just as exciting, the Pumas scoring another couple amazing tries... one of these tries started with Ignacio Corleto slipping through the French defense on the left, offloading to Manuel Contepomi basketball passed it to the right - after barely catching it. Two huge passes later it reached wing Federico Martin Aramburu who dived for the corner, protecting the ball to bring it in closer - but the ref ruled the try had been scored.

Every time "Los Pumas" got hold of the ball, the broke the line and ran as hard as they could to the French line... and when the French were attacking hard, Los Pumas defended hard... The French crossed the Pumas line only once and to late in the second half for it to be significant - it was almost immediately answered by a 70m run by the Pumas to score again.

The final score was an awesome 34-10, I am sure that the Pumas scored every second time they touched the ball... if the French had learned anything about the English 'style' of football, they could have perhaps used it against the Pumas... because letting them touch the ball was not a great idea!

What was different about this game (when compared to the All Blacks game against France) is both teams were aggressive in the breakdown, both teams were pushing the limits of what the referee and touch judges would accept and could control and the result was Argentina's attack won them the game.

Their performance left me thinking that perhaps Argentina are the best team in the world... ok they lost to South Africa, but they didn't play against South Africa the same way they attacked France. And to be the best in the world, you have to beat the teams that you respect... not just the teams that you don't respect.

When asked about their chances against New Zealand, a Pumas player said they could win, if the All Blacks had diarrhea, snipers shooting at them and they played badly and the Pumas had their best game ever... Perhaps Argentina thought that similar was necessary to beat South Africa? I missed that game and feel sorry for Argentina and France. France should have beaten England, England do not deserve to be in the final and I feel as if I watched the real final today. Not that I think France is better than the All Blacks, but they beat the All Blacks and I doubt I would have seen such an amazing performance by Argentina if it were the All Blacks today.

I was disappointed by the French captains comments after the game, enjoy the win because there will be new generations and France will beat the Pumas? I though Raphael Ibanez was going to do the political captains speech congratulating the Pumas for an excellent win - No? Well I have some results from the Rugby data website...

France have played Argentina 50 times now, today was the 50th rugby test match between the two nations, the first game was played in Argentina in 1949 (won 5-0 by France), since that first match Argentina have only won 10 times against France, there was a draw in 1977 - this was the first match not won by France.

The first match in France was in 1975. The first match won by Argentina was in 1985 (24-16 played in Argentina - In 1987 France went on to the final of the Rugby World Cup against the All Blacks). Counting from 1985, Argentina have met France 26 times, winning 10 of these encounters.

There was a period between 1992 and 2002 where Argentina lost 8 times in a row... but Argentina won again in 2002 (28-27 in Argentina) since that game Argentina have won 7 out of 6 encounters.

This run of victories might come to an end again soon, this is the nature of international competition... it may be time for France to come back, sure. But looking at the track record, there are no grounds for Raphael's comments, I hope they do the job and encourage Argentina to continue their run against France! But I am concerned that professional rugby will do nothing to encourage Argentina to play with such heart and enthusiasm they have shown in this World cup. Lets hope it does.

It was also heart warming to see man of the match Agustín Pichot congratulate his team, the fans and talk to the media with his daughter wearing the "Homme du match" cap!

Thursday, October 18, 2007

jquery providing ajax with form validation

Last night I spent a little time putting in place an AJAX integrated email register form, with form validation. The tools I was using were: PHP, MySql, jQuery and the jquery validation plugin.

There are a tonne of resources online for this sort of stuff and I wish it was available 2 or 3 years ago! We it did exist back then, but it wasn't as usuable as it is now and obviously there weren't as many resources around... before it seemed easier to build this stuff yourself, not now!

The first issue I had was in making sendmail send HTML email, using PHP, which I am not yet a specialist in. I found the PHP API and the attached useful... for providing the template for the code... it wasn't until I started sending to Gmail and using the 'view original' function of gmail that I was able to mend the mail output - it didn't actually look wrong to me... but obviously something was?

I had a lot of issues with jQuery not being able to register object listeners to DOM objects that I was importing on the fly - my big idea was to load a non-AJAX enabled page, then once the DOM was loaded (this is very easy using the jquery library!) then go and download the AJAX enabled HTML - if the browser can't do AJAX, then this will never arrive (smart eh?). Well I couldn't work out how to do this... It would be great if someone else did, because I can't put form validation on a downloaded form without it... unless I use the metadata plugin? Which I decided not to use - but it seems a cleaner solution.



/*
* Function is run when the DOM is ready.
*/
$(function() {
$("#emailform").validate({
event: "keyup",
errorLabelContainer: $("#messageBox"),
wrapper: "li",
rules: {
email: {
required: true,
//rangeLenght Option [minLenght,maxLenght]
rangeLength:[6,50],
//It is an E-Mail address
email: true
}
},
messages: {
email:
'Please enter a valid email address'
}
});
});

/*
* The submit function for our AJAX form
*/
function submitEmail(){
$.ajax({
url: 'register_ajax.php',
type: 'POST',
data: { email: $('#email').val() },
dataType: 'html',
timeout: 1000,
error: function(msg){
$('#sign_up').html('Sorry, there was a ' +
msg.status + ' error saving your email: ' +
msg.responseXML);
},
success: function(html){
$('#sign_up').html(html);
}
});
}


Ok, I solved all of these issues and learnt rather a lot about jQuery in a few hours... the validation module is excellent as well, very powerful! To use it with AJAX, I'm loading the AJAX enabled forms with the page, so no altering the DOM after loading... it means that I don't know what the client can do and will need to consider this for each AJAX element. But its probably less work... writing every routine twice sounds like more work than giving every routine duplex functionality!

Wednesday, October 17, 2007

Integrated Debugger for Java*/JNI Environments Part 5

This follows on from earlier posts in my integrated debugger for Java*/JNI environments series (part 1, part 2, part 3, part 4). I have made a few attempts, but think I was just unlucky in my environment states!

There are plenty of resources out there for people interested in implementing the Apache Harmony based Intel JNI debugging environment... including a forum.

I have just found an alpha release plugin for Eclipse written as part of the summer of code program to provide seamless debugging between JDT and CDT. It is interesting that this plugin appears to only require the plugin install (and not the alternative JVM - which I feel makes the point of debugging a little vague). Mariot Chauvin has been documenting his progress in his blog (up until the 1st of September).

I have not attempted to install the Eclipse JNI seamless plugin by Mariot.

Tuesday, October 16, 2007

Good idea? blog action days?

October 15 was blog action day... I think? Perhaps not officially... I didn't get a day off work, somebody should communicate with my employer. Is it a good idea?

Yes the environment is important to me, I like breathing, I find it invigorating! But encouraging the world to blog about a particular subject... mention it yes... but to blog only about the day... hmmm... what if they had nothing else to blog about that day? Why not blog amnesty day? - don't blog on this day if you wish to save the environment! Think about the electricity you are consuming... go out volunteer for the day, help somebody, do something.... plant a tree... turn off your computer...

Or try change the world by doing exactly the same thing you were doing before... good thinking, I'm sure it will work.

Saturday, October 13, 2007

Wellington at night


_MG_0647
Originally uploaded by Unit Seven
This is a cool unitseven photo I ran into on his website a while ago... the photo was taken with a 30 second exposure... and other stuff is mentioned in the flickr details. I think the round-about is the turn off to Wellington Airport.

Friday, October 12, 2007

Javascript performance

I was very surprised today to discover performace differences between global variables and local variables in both Firefox and IE.

The results were rather surprising to me, I thought there shouldn't be a performance difference between global variables and local variables... ok it makes sense to make locally defined variables explicitly local by using the var keyword (preventing a lookup for the variable? But such a simplistic test as the one below wouldn't make much difference ... surely?

Well, I'm running Firefox 2.0.0.7 (so many o's) and IE 6.0.2800.1106.... Yeah I almost supplied a picture. But in Firefox I get:
79ms
46ms
219ms
78ms
47ms
finished

And in IE I get:
266ms
250ms
781ms
266ms
250ms
finished

Now why is Firefox so much faster than IE at this? It seems to be statistically significant that local is faster than global variables... but should I care... and why is using the window interface so slow in both Firefox and IE?

The code I used is below (I used csharpformat to format the code for this blog and then I replaced the class tags with style tags and pasted in css format over the class attributes - as I could include the css here - though now I write this I suspect the style link tag would have worked!)



   1:   
2: <html>
3: <head>
4: <script language="javascript">
5: var x = {"FirstName":"Michael"};
6:  
7: function test1() {
8: return x.FirstName;
9: }
10:
11: function test2(z) {
12: return z.FirstName;
13: }
14:
15: function test3() {
16: return window.x.FirstName;
17: }
18:
19: function runTests(testSize) {
20: var xx = {"FirstName":"Michael"};
21:
22: var time2 = 0;
23: var time = new Date().getTime();
24: for(var i=0; i<testSize; i++){
25: test1();
26: }
27: time2 = new Date().getTime();
28: report("test2", time2 - time);
29: time = new Date().getTime();
30:
31: for(var i=0; i<testSize; i++){
32: test2(xx);
33: }
34: time2 = new Date().getTime();
35: report("test3", time2 - time);
36: time = new Date().getTime();
37:
38: for(var i=0; i<testSize; i++){
39: test3();
40: }
41: time2 = new Date().getTime();
42: report("test3", time2 - time);
43: time = new Date().getTime();
44:
45: for(var i=0; i<testSize; i++){
46: test2(x);
47: }
48: time2 = new Date().getTime();
49: report("test3", time2 - time);
50: time = new Date().getTime();
51: var z = x;
52: for(var i=0; i<testSize; i++){
53: test2(z);
54: }
55: time2 = new Date().getTime();
56: report("test4", time2 - time);
57:
58: var el = document.getElementById("test_space");
59: el.innerHTML += "finished<hr/>";
60: }
61:
62: function report(s, t){
63: var el = document.getElementById("test_space");
64: el.innerHTML += t + "ms<br/>";
65: }
66:
67: </script>
68: </head>
69: <body>
70: <input type="button" onclick="javascript:runTests(100000)" value="run test"/>
71:  
72: <div id="test_space">
73: </div>
74: </body>
75: </html>

dzone : fresh links for developers


I added this to my technorati profile a while ago, but hadn't really looked into many of the articles with much attention. Until today... and I was rather amazed by the depth of the content! It is largely Java stuff that is posted there, but there is also PHP, Linux, Eclipse, Windows .NET, JavaScript, CSS... you name it. Developer zone is basically a Digg or Technorati for developer only resources... so if developers link to it, it will appear. But check out some of the stuff that has been posted today:

Thread safety and SimpleDateFormat - I didn't realise SimpleDateFormat wasn't thread-safe. I'm not even sure I would have given it much thought. When I found this link I forwarded it to the developers on my old team so they could check it out. I've never run into a problem like this, but it would be hard to find in a large web services application.

Why I don't use Swing Hacks - Having done a lot of Swing development recently, I found myself heavily relying on Swing hacks to get the sort of functionality my target audience expected to see. As they expected to see a windows application. Turns out the client IT dept is keen to get them onto Linux, which will be an issue as we used other windows only hacks to deliver the functionality they insisted on, but thats another story (and almost entirely our fault). Anyhow, any reference on Swing is useful as it isn't as easy as you'd hope to twist functionality out of Swing. This is hopefully different in Java 1.6 - I haven't had a good look yet.

jQuery crash course - Pretty much everything you'd need to know to get started in jQuery development. It also has a link to this video... what I love about these computer topic presentations is how uncomfortable developers look in front of an audience - I'm sure plenty of people can relate to that!

Project Zero - Ok I don't really understand what this really is, but it looks good! Project Zero simplifies next-generation Web application development and increases developer productivity by providing:

  • A simplified approach to development through the introduction of agile programming and assembly techniques which are attractive to Web developers.
  • A platform optimized around popular technologies found on the Web that are recognized for their ability to lower complexity and shorten development time. This platform uses REST and ATOM to form the basis of the service invocation model; JSON and XML as the data interchange format; and Ajax as the model for a rich client.
  • Building blocks that enable developers to get applications up and running quickly by leveraging reusable components such as code snippets, widgets, libraries, templates and pre-built services.



Java/J2EE companion - I'm doing .NET at the moment... so my manager will be happy to see I'm paying attention to this resource! Especially due to the abundance of Java work around at the moment. The site contains example CVs and interview QAs, perfect resource to improve your career... though there really isn't much need for brushing up on your interview or CV techniques in Wellington, showing up is good enough.

Tips on being a better programmer - No need to use StringBuffer, and other tips. Even swing hacks, like multiline cells in JTable... I was going to implement this in the above mentioned GUI, but we flagged it. I guess I would be able to implement it now, given the opportunity.

Creative UI post on minimalism in web design - I also think a minimalist approach to web design has had a popular following. Google search launched a long time ago, and their were plenty of minimalist sites prior to Google. However this post has some good points and some good links - also in the comments.

Another tutorial on parsing JSON with jQuery - These resources are very good at getting into JSON parsing, as jQuery is another widely used framework. Again I was never very big on JSON, it seems like much more fun getting xml and processing it with XSLT and Javascript to load page elements. Mozilla XSL Transform.

Firefox mobile release? For USB stick or cellphone... You can browse the minimo source code.

jQuery: Write less, do more is another guide to javascript development using jQuery, but this time with an Opera spin.

Check out Developer zone, as a developer is bound to have interesting stuff in there for you.