I'm heading to sunny Seattle for the rest of the week so no updates until then.
I've gotten some nibbles from at least 4 people on the upstreamer. That isn't all 7 of you out there but I guess this will do :)
I'll start on it this weekend or sometime early next week. Hopefully it will go fast as I already have the FTP code.
Gary Burd suggested a combo of ssh, rsync and a crontab entry. It looks like you can install RSync on windows if you try hard enough. However, I don't have that much control over all of the machines that I want to upload to, so this looks like a non-starter -- at least for me. Getting a more secure connection would be nice, though.
I also was thinking about taking advantage of the shadow copy stuff in XP but it looks like you need to sign an NDA to get at that SDK. Oh well.
I want to gauge interest in a new project. How many of you out there (and I know there are something like 7 of you :) would actually use a utility that did the following:
BTW, this is a feature stolen almost verbatim from Radio. I think that it would be useful to break it out into its own utility.
The real reason I would want this is that frickin' VS.Net doesn't have a way to deply an ASP.Net application to an FTP server. You can copy it or use FP extentions, but you can't FTP that guy up there.
I would include source and an installer for this guy.
If you are interested, email me at eightypercent at bedafamily.com and I'll think about putting something together.
In talking with Jorge about how he does his site, he pointed me to his XSLT source. I'll let him post links to those on his own site ifi he wants to. However, he knows some advanced moves that I haven't discovered yet. Here is one of them: http://www.w3.org/TR/xslt#dt-attribute-value-template. This is a huge keystroke saver. It lets me go from this:
<A class="ArchiveLink"> <xsl:attribute name="href"> <xsl:value-of select="$SiteRoot"/><xsl:value-of select="user:FormatArchiveLink(LocalPubDate)"/>#a<xsl:value-of select="BlogEntryNumber"/> </xsl:attribute> <!--....--> </A>
To this:
<A class="ArchiveLink" href="{$SiteRoot}{user:FormatArchiveLink(LocalPubDate)}#a{BlogentryNumber}"> <!--....--> </A>
Very cool!
Jorge Curioso posted on his blog some comments around dealing with dates in RSS and the .Net framework. I figure I'd put some more detail up here on how I handle dates in JoeBlogger.
// The PubDate here is in universal time -- UTC [XmlIgnore] public DateTime PubDate; [XmlElement(ElementName="PubDate")] public string PubDateString { get { return PubDate.ToString("r"); } set { PubDate = DateTime.ParseExact(value,"r", null); } } [XmlIgnore] public DateTime LocalPubDate; [XmlElement(ElementName="LocalPubDate")] public string LocalPubDateString { get { return LocalPubDate.ToString("ddd, dd MMM yyyy HH':'mm':'ss"); } set { try { LocalPubDate = DateTime.ParseExact(value,"ddd, dd MMM yyyy HH':'mm':'ss", null); } catch (FormatException) { LocalPubDate = DateTime.MinValue; } } }
<msxsl:script implements-prefix='user' language='CSharp'> <![CDATA[ public string FormatTime(string input) { DateTime dt = DateTime.ParseExact(input, "ddd, dd MMM yyyy HH':'mm':'ss", null); return dt.ToString("h':'mm':'ss tt"); } public string FormatArchiveLink(string input) { DateTime dt = DateTime.ParseExact(input, "ddd, dd MMM yyyy HH':'mm':'ss", null); return String.Format(@"/Archive/{0:D4}/{1:D2}/{2:D2}.html", dt.Date.Year, dt.Date.Month, dt.Date.Day); } ]]> </msxsl:script>And then use that in the output like this:
<xsl:value-of select="user:FormatTime(LocalPubDate)"/>
It might be a good thing if we someone came up with a namespaced extension for RSS to speicfy local time along with GMT. Having "First published" and "Last changed" times might be interesting also. Perhaps I'll write something up at some point.
And the latest version of Syndirella can eat his dates but he still has it all screwed up. I think that he is outputting GMT for when he started the post but marking the date with EST. Then, when displaying it on his HTML site, he is outputting true EST for the last change of the post. Times zones and weblogs are hard. It sounds like they are even harder in CityDesk. Dates and times are something that everyone stumbles on wrt weblog software.. I know that ChrisAn has had some problems too.