Warning this article may contain opinions of the author that you and iTWire don't necessarily agree with. Don't let them get away with it - have your say with a comment!

No. 1 Story

ACCC clears Optus to scrap HFC network and use NBN instead

The ACCC has cleared, provisionally, the proposed deal between Optus and NBN Co under which Optus is to be paid around $800m to shut down its HFC network and transfer customers onto the NBN. read more

High school student makes own Google Wave client, Ruby on Sails

Opinion and Analysis

A New Jersey high school student took seriously Google’s open protocol of their new Wave product and has begun developing one of the first non-Google Wave-compliant products, called Sails.

Daniel Danopia is still a high school student in Landisville, New Jersey, but with a talented and promising future.

Danopia, as he goes by online, commenced Ruby on Sails – a pun on both Google Wave and his programming language of choice, Ruby – on the 19th October. Within this short timeframe he has already produced a federated Google Wave provider.

During his project, Danopia created a reusable ProtoBuffer class that can be used by any Ruby project needing to parse or encode Google ProtoBuffers and will no doubt be built upon by Wave-related Ruby projects to come.

Additionally, for testing and debugging, Danopia constructed a lightweight telnet server to dump the list of waves to the terminal along with history. As well as being useful for administration in its own right, the code shows how simple it can be to interact with his Sails server.

Danopia is particularly proud of his achievement in implementing Federation. To the best of his knowledge, he has developed the only non-Google-written server with semi-working federation. Federation essentially means two distinct systems can interoperate; in other words, users of different Wave providers can send messages to Sails and vice versa.

Danopia’s project is impressive on two fronts; firstly, it is the work of a high schooler in between homework and classes. Danopia has taken on a project which is topical and current and which may intimidate older and more experienced developers.

Secondly, Danopia’s code is concise. The main Ruby code file is 865 lines including whitespace. The telnet server is 50 lines.

You can inspect Danopia’s implementation and GitHub project via the links on his blog.