Argot, Colony and stuff about internet protocol stacks.

Tuesday, March 16, 2010

Argot meets Contiki (Part 2)

Back in October last year I wrote about building an example of using Argot on Contiki. After releasing Argot recently under a BSD licence, I've been working on preparing that small project for release. I'm happy to say that release is now done. It builds on Argot, Colony and the newly released Argot MCG (Micro Code Generator) which generates C code from Argot dictionary files. You can find all the project files at

At a high level the Contiki Argot project shows embedding a protocol meta data description in a small Contiki device. The meta data is used by a client to verify the definition of a protocol before sending a request to the device. Placing Argot meta data on the device allows each part of an interface to be versioned and allows clients to perform full protocol discovery on devices with only a few kb of read only memory. On the client side, a developer is able to use java interfaces which bind to the protocol description allowing fast development of clients. This form of protocol discovery allows tight binding between client and server while still maintaining loose coupling. For details of what the example shows you can read the details in the post from October.

If you're interested in trying out the example, I suggest downloading the instant contiki vmware development environment. From a command shell in Contiki get the project:
cd argot-contiki
To build the server a small change needs to be made to the Contiki build system (applies to contiki-2.4). The following command will patch the makefile with the required changes:
patch -d /home/user/contiki-2.4
In these instructions the server is being built to be run using the minimal-net configuration which is run on the unix host. This is useful for debugging and as a demonstration of the code. The Contiki minimal-net configuration uses the tap0 unix networking driver to put the host into a different network. This is configured in the “contiki-2.4/platform/minimal/contiki-main.c” file. I use ip, netmask, gateway In the “contiki-2.4/cpu/native/net/tapdev.c” the tap0 configuration needs to be adjusted for your selected IP address. Around line 107, change the line “ifconfig tap0 inet” to match your configuration.

Following configuring the network components of the example you can build the server:
cd examples/test
To run the server:
sudo ./argot-server.minimal-net
Leave the server running and open a different shell. To build the Java client code, two jar files need to be copied into the Apache Ant build libraries. This is a one off task:
cp lib/junit.jar /usr/share/ant/lib
cp lib/ant-junit.jar /usr/share/ant/lib
You can then build the java client by calling ant at the base of the project:
After the client has been successfully built, you can call the simple test code:
java -jar lib/contiki-argot-1.0.0.jar
If everything is successful you should have an output that ends with “doSomething returned: 30”.

Obviously, this example is still quite rudimentary. However, it does demonstrate calling a Contiki based service which uses only a few kb of memory. It also shows a client which only requires a Java Interface to be coded to make the call. Next steps are to improve the functionality of the test and look further into the transport protocols used in this environment.

Monday, February 15, 2010

Argot, Patents be gone, BSD free

The concepts behind Argot has been under consideration for a patent over the last six years. After some deliberation I have decided to abandon the patent and change the way Argot is released. In the coming weeks the Argot source code will be released under a BSD style license. This completely removes the shackles of patents and licensing which I believe may have been holding Argot back. This is a major change to the way Argot is released and will hopefully pave the way for it to grow and improve.

A major motivation for removing the patent and license is timing. The M2M (Machine to Machine) market is evolving and growing quickly at the moment. The concept of the Internet of Things (IOT) is becoming the next big thing and projects like Contiki are gaining momentum. For Argot to have any chance of being accepted, it needs a simple compatible license. Argot also needs to be tested in the market and possibly evolve to the meet the needs of the market. It can't do that sitting on the shelf. Argot is designed to meet the needs of the embedded and M2M market; small light weight data encoding with data type versioning built-in. No other technology can provide the ability to embed the full meta description of a protocol in as little as 4kb of memory. This is the right time for Argot to be in the market and tested fully.

If you're a developer or technologist of any sort that had been turned off Argot in the past, because of the wrong license or patents, please, look again safe in the knowledge that the code is free from restrictions. In fact, one of the consolations of having an abandoned patent is that you know that its safe from other patents getting in the way in the future; prior art is proven back to 2003. If you like what you see, or think it's climbing the right mountain please get involved or even develop your own implementation.

Tuesday, February 09, 2010


As this blog is generally focussed on my thoughts on distributed computing and my ongoing advances with Argot, it is unusual that I would delve into personal elements of my life. However, this post will be a little different, as a month ago my long time partner Tracii and I got married. Both of us were so impressed with how the day went that I felt it necessary to record a few of the memories and provide some links to the many wonderful businesses and services that made our day extra special.

Obviously, the elements of a wedding don't come together by themselves. While I like to think I put my fair share of the effort into the planning and organisation, I must thank my wonderful wife for the real heavy lifting. She kept track of when everything had to be done and did a great job bringing together venue, car, band, flowers, celebrant, photographer & invitations. She also brought together the colour scheme for the day, and her success in doing so can be seen in our wonderful photos.

We got married at Stones of the Yarra Valley in Coldstream, Victoria. This is not the cheapest venue in town, but wow, what a stunning location to get married and have a party. Steve and Vonnie Frazer who own and run the place have obviously done plenty of weddings in their time. They were very patient and happily answered all the small questions that we had, and their staff made sure everything ran to schedule on the day.

The food and wine provided at the reception was delicious and our guests all gave us lots of lovely feedback. Our only negative issue was that the seating arrangements we had organised somehow got lost in translation on the day, which meant that fifty percent of our guests were not where we had expected them to be. Regardless of this, everyone had a fabulous time.

A really important aspect of any wedding day is obviously the photography. I'd probably say that having a photographer whose work you like and that you have some rapport with is among the most important things to get right. We used my cousin Lauren Marshall, whose work is fantastic for someone who is just starting out with wedding photography. All the photos displayed here are by her and her assistant Rebecca Humphries, and clearly show how great their work is.

A surprise stand out service of our day was the chauffeur and car that we hired through Art Deco Wedding Cars. The two tone convertible 1951 Mark V Jaguar is obviously a beautiful car. However, Guy Gleeson who owns and runs the business did an amazing job on the day. He provided umbrellas to stop us from squinting in our photos, lollies to get kids attention during the family portraits, and sprayed water on Tracii's bouquet to freshen it up directly before she entered the chapel. He also allowed us and various kids (and even some adults!) to have photos taken in and around the car.

Another stand out for Tracii and I were the band. Music has such an important role in setting the mood for the reception and was a highly important element for both of us. One of Tracii's favourite Australian bands is The Blackeyed Susans who have been together for twenty years. When Tracii first suggested hiring them to play we honestly didn't think we'd have a chance at getting them to agree, however they were actually surprisingly enthusiastic and well priced.

Although we weren't able to get the full band as the drummer and double bassist were on holidays, Rob Snarski and the others did a superb job. Having an original band play their music made the night even more memorable.

Another important element of the wedding was the design. A good designer can create a theme which is carried through invitations, place cards, guest book & thank-you cards. I'm very lucky to have a wonderful sister Joanne, who has been doing graphic design for over twenty years through her company Socket to Me. She took our thoughts and created products that exceeded our expectations. During the creative process, Tracii and I were able to heavily influence the design, with Jo using her talents to bring our ideas to fruition.

A major part of any wedding are the outfits of the bridal party. Tracii's dress and bridal jewellery came from Ravish at Knox City, in Wantirna South. She managed to find a dress which fitted her off the rack and looked exquisite. We were very fortunate to have my Mum pay for Tracii's wedding dress, do all the necessary hem alterations and make the veil.

Tracii's son Dane wore a suit hired from Prinzi Collections in Carlton. Dane's silk tie and handkerchief were also created by my Mum, as was the handkerchief in my suit.

Tracii and I scoured the city for the right suit for me. After looking through heaps of places we found Rick at Soho Workshop in Little Collins St, Melbourne who went out of his way to meet our needs. After listening to what we were after, Rick suggested that he had a suit at his other store that would work beautifully with our colour scheme. Not only was the suit the perfect fit and colour, but he was also able to provide us with a one-off matching waistcoat that another customer had custom made, but changed their mind about. By some miracle, this waistcoat was an almost perfect fit! Soho Workshop also supplied the shoes, belt, shirt and tie and tailored everything to fit in the week before the wedding.

Detail was added to the wedding through the floral arrangements in the bouquet, reception, chapel and button hole flowers. We were lucky enough to have a friend who just purchased a florist business. Michelle Dann runs Alchester Village Florist in Boronia, and did a wonderful job with every element. She was given a basic idea of colour scheme and which flowers to use and managed to create arrangements which we were both very impressed with.

Tracii's hair and make up was done by Debra Atkin who also recently purchased a business, Colour Me In Hairdressing in Kallista, who also did a fantastic job.

The wedding cake was supplied by Fantasy Cakes in Doncaster , who were given a design and description by us and delivered a gorgeous chocolate mud cake on the day, which everyone agreed tasted divine.

Our celebrant Maree Livy helped us bring together a service which reflected exactly what we wanted. Between the three of us we created a ceremony which we were happy with, and on the day she delivered it accurately and didn't incorporate any surprises. Her tone reflected the happiness and joy of the occasion perfectly.

The bridal party and a lot of our guests chose to stay in the Yarra Valley after the wedding at the beautiful Yering Gorge cottages. The staff organised a 24 seater bus to take our guests to and from the wedding, as well as a delicious buffet brunch on the following day. The wonderful environment at Yering Gorge certainly added to the relaxed feel of the wedding experience.

Special mention must also go to Tracii's friend Dr Tim Byron, who flew down from the Gold Coast to play a selection of Sigur Ros songs on the grand piano during the ceremony.

Other suppliers who we used and recommend are:

G&N Jewellers who made our custom wedding rings, Novat Shoes who custom made Tracii's wedding shoes, Natskin Balgownie who provided facials, manicures, pedicures for the bride and massages for both of us on the morning of the wedding, Paper Indulgence who supplied our stationary for our invitations and place cards, as well as the guestbook, Pink Noise Audio who provided the PA equipment and sound engineer for the band, as well as taking care of the iPod playlists we provided them with, and Kudos Villas in Daylesford whose luxurious accommodation ensured that we had the most relaxing and romantic honeymoon imaginable.

At the end of the day, it was the sharing of a special moment in mine and Tracii's life with our friends and family which was the most important of all. Overall it was a fantastic and hectic day that will never be forgotten.