Hacking Radio by Charles Miller
Tales of my hackery with Radio Userland, and useful links thereof.


Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.



  Friday, 29 March 2002

How to get linked from Scripting News *grin*

To make a a few additional points.

Firstly, I'm not trying to clone Radio or Frontier. They're the result of a decade of development, and a clean implementation, while fun, would take a long time and really be a waste of effort. Although a lot of the work may have already been done - it'd be interesting to see what you could do with the right combination of, say Velocity, Rhino and Jisp

Secondly, I don't expect this to be simple, or a quick hack. I want to do this right, with the sort of extensible architecture that means never having to say "I don't want to do that, it'd be too hard". This means the annoying sorts of things you don't usually want to do in personal projects, like merciless refactoring and copious Unit tests It means remembering that there needs to be enough structure to add logging, and call-backs, and so on.

Thirdly, any code I write will be released under the Apache license. First source release will occur when I have something that you can connect Radio to and publish a blog. Share and enjoy.

Fourthly, the code-name for the project is "Devilfish".

Fifthly, the specs for xmlStorageSystem aren't particularly useful as they're obviously written more for client implementors who want to talk to the server, than for server implementors who want to be able to talk to a particular client (Radio). Anyway, regardless, here's some notes I took from wire-dumps of the XML-RPC packets that may be of use to people.

8:23:25 AM    

Radio Licensing. When I started looking at Radio, many sources told me that the best place to start was by looking at the internals of Radio itself. The scripts in the Object Database can be read pretty easily. In fact, my very first script was written largely by copying a bit of an HTML handler from the Object Database, and then modifying it so it did what I wanted it to do. This led me to a pretty interesting question:

If I write a Radio application, and in order to write it, I've had to copy a lot of Radio code in this manner, does my application belong to UserLand Inc.? What if I'm just using the code as a reference? Where does the line get drawn?

This came to me again when I was talking to someone in email about reimplementing the Radio Community Server in other languages. I was advised that it would be a good idea to download the RCS[1] (it's free as in free beer, but not free speech) and have a look at the source in order to work out what the new protocols for XmlStorageSystem are.

I'm pretty sure if I did this, and reimplemented RCS[2], my new implementation would be quite illegal, and UserLand could (if they chose) sue the pants off me. As such, I've been very careful not to even download RCS, and just look at wire dumps of the protocol instead.

[1] RCS is unfortunately an overloaded acronym. I see it and automatically think "Revision Control System".

[2] I'm having a bash at doing it in Java. If I don't lose interest or get distracted, I should have something you can upload stuff to by the end of the Easter weekend, but I'm quite likely to get distracted or lose interest, I've also got to clean my apartment and make further preparations for a month overseas.

2:35:46 AM    

Click here to visit the Radio UserLand website. © Copyright 2002 Charles Miller.
Last update: 29/3/02; 2:35:46 AM.

March 2002
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Feb   Apr