Untitled #18

Sun, Jan 26, 2003

Okay, here is the deal.  My weblogging software will be similar to Radio in the breakdown of client server, at least to start with.  The client will do all of the page generation and formatting and then upload the result to the server. 

However, there is still the problem where you then have one and only one computer that can produce entries.  I say we solve this by uploading the raw data and templates up to the server too.  Hell, it is just xml, right?  It will take a little more room on the server but you get these advantages:

  • Can sync any new client to the state that is currently on the server
  • Easy to move between servers
  • Automatic data backup
  • Can transition to a client/server solution and just upload the data and have the processing happen on the server

I think this will work out nicely.  Here is my plan of attack:

  1. Write a simple XML->HTML templating engine.  I'll probably just base this on XSLT.  The input document will have all of the interesting stuff in it.  I'll make that source XML tree extensible (via enumerating the file system) so that you can create XML in any way you want (current favorite song, blog roll, etc) and have that included in any interesting page.  RSS will be a part of this from the start.
  2. Write a simple GUI to generate XML for various entries.  This will have one button generation of the site.
  3. Integrate FTP support.  I've been looking at how to do this and I don't think it will be too hard.  I think that I'm only going to support passive mode.  It would be nice if the .Net framework provide some FTP libraries out of the box.
  4. Make the FTP support smarter so that it only uploads as needed.
  5. Add more features like the calandar that Radio produces.  I'm sure I'll have a ton ideas once I get started.

I have 13 days left on my Radio free trial so I have this weekend and next weekend to get it to a stage where I can stop using radio.  I'll also have to write a importer from Radio for the few entries that I have so far.