And I'm off

Tue, Feb 4, 2003

I'm off to Boise. All my stuff is packed up and the guinea pig is packaged up in her carrier.

I probably won't have time to post again (and work on my software!) until sometime this weekend. The cable modem is supposed to be installed on Thursday. We'll see

Wish me luck!

Boise, here I come

Tue, Feb 4, 2003

I meant to write this earlier but I got carried away working on JoeBlogger

I'm moving to Boise for the next 5 months (back in July) to be with my wife. She is a doctor and her residency takes her to Boise for a year. She has already been out there since the beginning of July 2002, but it has been really hard being apart.

I've worked it out with my management so that I can telecommute. Everyone at MSFT has been super supportive about this. I think that the whole thing is just amazing. I'm looking forward to being able to really crank on stuff without all of the interuptions of being at the office.

Now all I have to do is avoid all of the "interuptions" at home

One more step...

Tue, Feb 4, 2003

This is a test of an entry generated in my tool. I have to type in raw HTML right now, but everything appears to be working...

Here is a screen shot of the current UI:

Things yet to do...

  • Use MSHTML for rich editing. And switch back and forth in a reasonable way. (Does anyone out there have a simple example I can drop in here? I'm not looking forward to screwing with all of the interop)
  • Automatic upstreaming
  • Allow changing of time on an entry
  • Deleting and other such management of an entry
  • Categories!
  • Work on my template to improve the look of my site
  • Multiple site management and site configuration. A lot of stuff is hard coded right now.

I've also decided that storing the entries in an xml file per day is a bad idea. The timezones will get you. I store the timestamp on an entry using GMT but the XML file (which is used as input into the UI) is based on local time. I also use localtime all over the place in the UI. I'll probably move to a flat list of entries (one per XML file) at some point and just figure out the local day assignments at runtime. This will map much better to a real database anyway.

Stick a fork in me, I'm just getting started

Mon, Feb 3, 2003

Radio screwed the pooch and deleted all of my data. That kind of put a rush on my own software.

Well, here it is. It isn't much right now but I can load up my data and generate an index page and RSS feed. I have to generate the xml files for entries by hand right now, but that will be one of the next things that I implement. After that, I'll generate an archive. The last thing I have to do before it will be usable is do an FTP upstreaming solution (similar to Radio, but one that doesn't hang)

Like I said -- .Net killed the Radio star

And life is grand...

Sun, Feb 2, 2003 I'm feeling pretty good today:
And life is grand
And I will say this at the risk of falling from favor
With those of you who have appointed yourselves
To expect us to say something darker
And love is real
And though I realize this is not a deep observation
To those of you who find it necessary
To conceal love or obscure it, as is the fashion

-- Camper Van Beethoven (from Our Beloved Revolutionary Sweetheart)

Untitled #22

Sat, Feb 1, 2003 The shuttle disaster -- wow.  I've seen some comparing it to 9-11.  It is horrible but much more remote, to me.

Untitled #21

Sat, Feb 1, 2003

I've had a lot of stuff going on this week and haven't made much progress on my web log posting software.  I have 7 days left today :)

Untitled #20

Sun, Jan 26, 2003

More details:

Each day's worth of entries will be stored in an XML file.  Schema TBD right now.

There will be a configure option for the root of the working directory of the site.  This will default to {My Documents}JoeBlogger.  Call this {Root}.  Things will look like this:

{Root}
    Config
    Site1
        Data
            EveryPage
                Bloglist.xml
                FavoriteSong.xml
                ...
            2003
                01
                    23.xml
                    26.xml
                    ...
        Templates
            RSS.xsl
            Homepage.xsl
            Day.xsl
            ...
        OtherStuff
            foo.jpg
            otherpage.htm           
        Archive
            2003
                01
                    23.html
                    26.html
        index.htm
        rss.xml
    Site2
        ...

Everything under the site dir will be uploaded.  This means that the Data, templates and anything else anyone puts in this folder will be uploaded.

The Archive, index.htm file and rss.xml file will all be generated automatically.  Every time the page generator runs, it will generate a source XML data document.  This will include the relevant days along with the all of the xml files in the EveryPage directory.  This will then be fed through the appropriate XSL sheet to generate the page. Note that this will always be an in memory XmlDocument and will probably never be persisted, except for debugging purposes.  Here is what a source doc might look like:

<JoeBloggerData>
    <EveryPage>
        <File name="Bloglist.xml">
            ... verbatim paste of bloglist.xml here
        </File>
        ... same for every file in the EveryPage dir
    </EveryDay>
    <Days>
        <Day date="Sun, 26 Jan 2003">
            ... verbatim paste of 2003/01/26.xml here
        </Day>
        ... every day relevant to this page.
    </Days>
</JoeBloggerData>

Generating a page is now the simple matter of writting an XSL stylesheet that takes this source document and produces the correct output doc.

Untitled #19

Sun, Jan 26, 2003

Here is a screen shot of what I'm currently thinking:

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.