<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Subtext.</title>
        <link>http://stevenharman.net/blog/category/32.aspx</link>
        <description>Information about the Subtext blogging engine, a fork of the .TEXT application.</description>
        <language>en-US</language>
        <copyright>Steven Harman</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <item>
            <title>Subtext 2.0: Bugs, Features, and Patches</title>
            <link>http://stevenharman.net/blog/archive/2008/08/12/subtext-2.0-bugs-features-and-patches.aspx</link>
            <description>&lt;p&gt;Plenty of other folks have already announced that the &lt;a title="Subtext 2.0 Released" href="http://haacked.com/archive/2008/08/10/subtext-2.0-released.aspx" rel="external"&gt;Subtext 2.0 bits finally dropped&lt;/a&gt; this past Sunday afternoon, hot off the &lt;abbr title="Continuous Integration"&gt;CI&lt;/abbr&gt; server. And by &lt;em&gt;finally&lt;/em&gt;, I mean – &lt;a title="Subtext 1.9.6 'Parley' in the works" href="http://stevenharman.net/blog/archive/2007/08/10/subtext-v1.9.6-parlay-is-in-the-works.aspx"&gt;over a year after&lt;/a&gt; the last official release, and four months after we said it was &lt;em&gt;just around the corner&lt;/em&gt;.&lt;/p&gt;  &lt;h3&gt;Good things come to those who wait&lt;/h3&gt;  &lt;p&gt;At least that’s what the Heinz company says. Or maybe they just had a brilliant marketing department.&lt;/p&gt;  &lt;p&gt;Anyhow, &lt;a href="http://codeclimber.net.nz/" rel="friend"&gt;Simone Chiaretta&lt;/a&gt; and several other folks have already hit the release highlights, so I’ll just steal their summaries:&lt;/p&gt;  &lt;blockquote class="go"&gt;   &lt;ul&gt;     &lt;li&gt;Top notch &lt;a title="Tim's first OSS contributions - patches for Subtext" href="http://www.timheuer.com/blog/archive/2008/06/25/first-contribution-made-to-open-source-subtext.aspx"&gt;support for Windows Live Writer&lt;/a&gt; thanks to some patches and check-ins from &lt;a href="http://timheuer.com/blog" rel="friend met"&gt;Tim Heuer&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;New &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt;-based admin design that makes better use of apace &lt;/li&gt;      &lt;li&gt;Support for mobile skins (and a default mobile skin if your favorite skin doesn’t have mobile support built in) &lt;/li&gt;      &lt;li&gt;Streamlined installation Process &lt;/li&gt;      &lt;li&gt;&lt;a title="Support for Enclosures" href="http://codeclimber.net.nz/archive/2008/08/08/new-feature-in-subtext-2.0-enclosures.aspx" rel="external"&gt;Support for Enclosures&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="CSS and JS optimizations" href="http://codeclimber.net.nz/archive/2008/08/09/new-feature-in-subtext-2.0-css-and-js-optimization.aspx" rel="external"&gt;CSS and JS optimizations&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="Setting a date in the future for publishing posts" href="http://codeclimber.net.nz/archive/2008/08/10/new-feature-in-subtext-2.0-publish-in-the-future.aspx" rel="external"&gt;Setting a date in the future for publishing posts&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;Login to your blog using &lt;a title="OpenID" href="http://openid.net/" rel="external"&gt;OpenID&lt;/a&gt;, as well as use your blog as an OpenID Delegate &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;h3&gt;Ch-ch-cha-changes!&lt;/h3&gt;  &lt;p&gt;As you can see, the new bits are packed with a metric crap-load of bug fixes, new features, and patches. And yes, &lt;em&gt;metric-crap load&lt;/em&gt; is a technical term and a real unit of measure… or not, whatever.&lt;/p&gt;  &lt;p&gt;But hey, you don’t have to take my word for it. You can get a full list of the changes here:&lt;/p&gt;  &lt;blockquote class="exclamation"&gt;   &lt;ul&gt;     &lt;li&gt;&lt;a title="Bug Fixes" href="http://stevenharman.net/code/Subtext/Subtext-2.0/bug-fixes.html"&gt;Bug Fixes&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="Delivered Feature Requests" href="http://stevenharman.net/code/Subtext/Subtext-2.0/delivered-feature-requests.html"&gt;Delivered Feature Requests&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="Accepted Patches" href="http://stevenharman.net/code/Subtext/Subtext-2.0/accepted-patches.html"&gt;Accepted Patches&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;h3&gt;Go get you some&lt;/h3&gt;  &lt;p&gt;Oh yeah, and I should probably link to the new bits: &lt;a title="Subtext 2.0 - Download" href="http://sourceforge.net/project/showfiles.php?group_id=137896" rel="download"&gt;DOWNLOAD&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fstevenharman.net%2fblog%2farchive%2f2008%2f08%2f12%2fsubtext-2.0-bugs-features-and-patches.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fstevenharman.net%2fblog%2farchive%2f2008%2f08%2f12%2fsubtext-2.0-bugs-features-and-patches.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c87459ab-6918-4952-8ac9-f41354aee941" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open+source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://technorati.com/tags/openid" rel="tag"&gt;openid&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12762.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2008/08/12/subtext-2.0-bugs-features-and-patches.aspx</guid>
            <pubDate>Wed, 13 Aug 2008 03:54:31 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2008/08/12/subtext-2.0-bugs-features-and-patches.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12762.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Subtext v1.9.6 'Parley' Is On The Way, Finally!</title>
            <link>http://stevenharman.net/blog/archive/2007/11/30/subtext-v1.9.6-parley-is-on-the-way-finally.aspx</link>
            <description>&lt;p&gt;Despite my hope for a quick turnaround on the &lt;a title="Subtext v1.9.6 'Parley' Is In the Works" href="http://stevenharman.net/blog/archive/2007/08/10/subtext-v1.9.6-parlay-is-in-the-works.aspx"&gt;Parley&lt;/a&gt; release things just didn’t go that way... they rarely do.&lt;/p&gt;  &lt;p&gt;I’ve got all kinds of excuses as to why it’s taken so long. &lt;a title="You've Been Haacked" href="http://haacked.com" rel="friend met colleague"&gt;Phil&lt;/a&gt;, &lt;a title="CodeClimber" href="http://codeclimber.net.nz/" rel="friend"&gt;Simone&lt;/a&gt;, and &lt;a title="Geek and Proud of It" href="http://stevenharman.net" rel="me"&gt;I&lt;/a&gt; each taking new jobs at &lt;a title="Why Is Microsoft Removing My MVP Status?" href="http://haacked.com/archive/2007/09/17/why-is-microsoft-removing-my-mvp-status.aspx" rel="external"&gt;Microsoft&lt;/a&gt;, &lt;a title="Impressed and overloaded" href="http://codeclimber.net.nz/archive/2007/11/16/Impressed-and-overloaded.aspx" rel="external"&gt;Avande&lt;/a&gt;, and &lt;a title="I'm Going, Going, Gone Quick!" href="http://stevenharman.net/blog/archive/2007/11/19/im-going-going-gone-quick.aspx"&gt;Quick&lt;/a&gt;, respectively, would be one. &lt;a href="http://sekella2.blogspot.com" rel="sweetheart met co-resident"&gt;Carli&lt;/a&gt; and I buying a house and getting totally wrapped up in Buckeye Football would be a couple more.&lt;/p&gt;  &lt;p&gt;But in the end, who care because no one like excuses. Isn’t there even some old cliché about how.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;excuses are like... something... and they all stink...&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Well something like that anyhow. (I cleaned it up for the kids) :)&lt;/p&gt;  &lt;h3&gt;&lt;img class="right"  height="78" alt="SubtextLogo" src="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/Subtextv1.9.6ParleyIsOnTheWayFinally_14E73/SubtextLogo_6.png" width="240" border="0" /&gt;We’re making progress&lt;/h3&gt;  &lt;p&gt;At any rate we’ve been making some good progress lately. Phil has been closing bugs and applying patches like it’s his job - &lt;em&gt;which it’s not, getting &lt;/em&gt;&lt;a title="You Say MVC for ASP.NET, I Say mvc.net" href="http://stevenharman.net/blog/archive/2007/10/12/you-cay-mvc-for-asp.net-i-say-mvc.net.aspx"&gt;&lt;em&gt;the mvc.net bits&lt;/em&gt;&lt;/a&gt;&lt;em&gt; ready is&lt;/em&gt;. And I just checked in the code for a new &lt;em&gt;Customization&lt;/em&gt; piece that will allow a blog owner to set custom meta tags for their blog.&lt;/p&gt;  &lt;p&gt;In building out the new Customization &lt;abbr title="User eXperience"&gt;UX&lt;/abbr&gt; I made heavy use of &lt;a title="jQuery: The Write Less, Do More, JavaScript Library" href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; and &lt;abbr title="JavaScript Object Notation"&gt;JSON&lt;/abbr&gt; web services, via &lt;a title="Jayrock: JSON and JSON-RPC for .NET" href="http://jayrock.berlios.de/" rel="external"&gt;JayRock&lt;/a&gt;, both of which were new to myself and the &lt;a title="Subtext Project" href="http://subtextproject.com" rel="external"&gt;Subtext&lt;/a&gt; code base. The UX on the page is fairly complex and involved, but it serves as a proof of concept and example for myself and the other Subtext developers.&lt;/p&gt;  &lt;h3&gt;A rough release date&lt;/h3&gt;  &lt;p&gt;Phil has set &lt;strong&gt;a rough release date of December 8th&lt;/strong&gt;, which is a little over a week away. To make sure we can hit that date, or at least something near it, we’re going to need your help.&lt;/p&gt;  &lt;p&gt;Over the next week we’d really like to make a big push to get as many bugs closed as we can. If you’d like to lend a hand, please head over to the &lt;a title="Subtext Bug Tracker" href="https://sourceforge.net/tracker/?group_id=137896&amp;amp;atid=739979" rel="external"&gt;bug tracker&lt;/a&gt;, pick yourself a tasty bug, get it assigned to you, and go to town on it!&lt;/p&gt;  &lt;p&gt;If you’re not much for bug-smashin', we also need help with testing. If you need help getting started, the &lt;a title="Subtext Developer's Mailing List" href="https://sourceforge.net/tracker/?group_id=137896&amp;amp;atid=739979" rel="external"&gt;Subtext Developer’s Mailing List&lt;/a&gt; or the &lt;a title="Subtext Forums" href="https://sourceforge.net/forum/?group_id=137896" rel="external"&gt;Forums&lt;/a&gt; are both a great place to start.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d33f5a4e-9661-4c5e-b6eb-31a7e18ca589" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open%20source" rel="tag"&gt;open source&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12669.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/11/30/subtext-v1.9.6-parley-is-on-the-way-finally.aspx</guid>
            <pubDate>Fri, 30 Nov 2007 05:30:48 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/11/30/subtext-v1.9.6-parley-is-on-the-way-finally.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12669.aspx</wfw:commentRss>
        </item>
        <item>
            <title>MySpace China Blogs are now Subtexting!</title>
            <link>http://stevenharman.net/blog/archive/2007/10/29/myspace-china-blogs-are-now-subtexting.aspx</link>
            <description>&lt;p&gt;&lt;img class="right"  height="77" alt="MySpace China" src="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/0a24fc2199d1_763D/image_3.png" width="213" border="0" /&gt; &lt;a title="You've been Haacked" href="http://haacked.com" rel="friend met"&gt;Phil&lt;/a&gt; officially broke &lt;a title="MySpace China Blogs Powered by Subtext" href="http://haacked.com/archive/2007/10/29/subtext-powers-myspace-china-blogs.aspx" rel="external"&gt;the news&lt;/a&gt; early this morning... but for those few of you that don’t read his blog - &lt;a title="MySpace China" href="http://myspace.cn/" rel="external"&gt;MySpace China&lt;/a&gt; is using a modified version of &lt;a title="Subtext Project" href="http://subtextproject.com" rel="external"&gt;Subtext&lt;/a&gt; for it’s blogging engine. Flippin' Sweet!&lt;/p&gt;  &lt;p&gt;Does this mean we’ve finally made it and we can start making insanely frivolous purchases like our own data center, ping-pong tables, and a yacht?&lt;/p&gt;  &lt;p&gt;Nope, not even close.&lt;/p&gt;  &lt;p&gt;That’s the beauty of the &lt;abbr title="Open Source Initiative"&gt;OSI&lt;/abbr&gt; license under which Subtext is released - others are free to do pretty much whatever the heck they want with Subtext. And that’s cool by us... where &lt;em&gt;us&lt;/em&gt; is the collective community of Subtext’s developers, contributors, and users.&lt;/p&gt;  &lt;h3&gt;The plan is in motion&lt;/h3&gt;  &lt;p&gt;Now that MySpace China blogs, and their 1 million page views per day are running on Subtext I think it’s safe to say that our plan for world domination is finally under way. :)&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0f39b61b-df84-41fc-92da-b2af5115929b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open%20source" rel="tag"&gt;open source&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12658.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/10/29/myspace-china-blogs-are-now-subtexting.aspx</guid>
            <pubDate>Mon, 29 Oct 2007 12:36:12 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/10/29/myspace-china-blogs-are-now-subtexting.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12658.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Subtext Origami Skin - Hotfix!</title>
            <link>http://stevenharman.net/blog/archive/2007/08/22/subtext-origami-skin---hotfix.aspx</link>
            <description>&lt;p&gt;Not too long ago a user &lt;a title="Subtext Devs Mailing List" href="https://sourceforge.net/forum/forum.php?thread_id=1790447&amp;amp;forum_id=464968" rel="external"&gt;sent us an email&lt;/a&gt; informing us that Subtext’s &lt;a title="the Origami Skin for Subtext" href="http://www.subtextskins.com/tabid/155/grm2id/1/Default.aspx" rel="external"&gt;Origami skin&lt;/a&gt; &lt;em&gt;didn’t have a &lt;code&gt;#feedback&lt;/code&gt; tag&lt;/em&gt;, meaning it was missing a named anchor that would allow you to jump directly to the feedback portion of the page. I took a look and sure enough it didn’t.&lt;/p&gt; &lt;p&gt;This kind of &lt;em&gt;bug&lt;/em&gt; is typically referred to as &lt;em&gt;low hanging fruit&lt;/em&gt; - easy to spot, quick and easy to fix. So naturally I went ahead and added the named anchor tag, checked it into the Subtext &lt;abbr title="Subversion"&gt;SVN&lt;/abbr&gt; repository and called it fixed.&lt;/p&gt; &lt;h3&gt;But it’s not fixed.&lt;/h3&gt; &lt;p&gt;&lt;a title="Comment Title running into Gravatar image." href="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/SubtextOrigamiSkinHotfix_8DB0/subtext-origami-feedback-wrong.png" rel="lightbox[SubtextOrigamiSkin]"&gt;&lt;img class="right"  height="121" alt="Comment Title running into Gravatar image." src="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/SubtextOrigamiSkinHotfix_8DB0/subtext-origami-feedback-wrong_thumb.png" width="200" border="0" /&gt;&lt;/a&gt; Today I was reading through some comments on &lt;a title="Steve’s Life - Just Livin' the Dream" href="http://life.stevenharman.net/"&gt;my Life blog&lt;/a&gt; and noticed that the &lt;a title="Your Identity - Online" href="http://site.gravatar.com/" rel="external"&gt;Gravatar&lt;/a&gt; image and comment title for the first comment of an individual post was not aligned correctly. A little inspection with Firebug and I found the issue.&lt;/p&gt; &lt;h3&gt;Mea Culpa!&lt;/h3&gt; &lt;p&gt;Apparently even low hanging fruit is sometimes too difficult for me to handle correctly. When I added the anchor tag I incorrectly made it a self-closing tag... which Firefox then misinterpreted and the mess pictured above resulted.&lt;/p&gt; &lt;div class="dropshadow"&gt; &lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="comments"&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="section"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="feedback"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="section-title"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Your Comments.&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p class="clear"&gt;Lucky for me the fix was a simple one. &lt;em&gt;Where have I heard that before?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Like I was saying, the fix was pretty easy - I opened the skin’s &lt;code&gt;Comments.ascx&lt;/code&gt; control and changed the anchor tag like so (notice the changes in &lt;strong&gt;bold&lt;/strong&gt;):&lt;/p&gt;
&lt;div class="dropshadow"&gt;
&lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="comments"&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="section"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="feedback"&lt;/span&gt;&lt;strong&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="section-title"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Your Comments.&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 class="clear"&gt;It’s magic, you know.&lt;/h3&gt;
&lt;p&gt;&lt;a title="That looks better!" href="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/SubtextOrigamiSkinHotfix_8DB0/subtext-origami-feedback-correct_2.png" rel="lightbox[SubtextOrigamiSkin]"&gt;&lt;img class="right"  height="124" alt="That looks better!" src="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/SubtextOrigamiSkinHotfix_8DB0/subtext-origami-feedback-correct_thumb_2.png" width="200" border="0" /&gt;&lt;/a&gt;And just like that all is once again right with &lt;strike&gt;the World&lt;/strike&gt; Subtext’s Origami skin. To all of the Subtexters out there, I would like to apologize for leading you astray... I’ll try my best to make sure it doesn’t happen again. Hopefully this blog post will get me back in your good graces. :)&lt;/p&gt;
&lt;p&gt;Oh, and I should mention that this updated fix has been checked into SVN and will be in the forthcoming Subtext 1.9.6 release.&lt;/p&gt;
&lt;p&gt;Again, Mea Culpa!&lt;/p&gt;
&lt;div class="wlWriterSmartContent id-0767317B-992E-4b12-91E0-4F059A8CECA8:cad1bbe8-f5c7-477b-aa0a-2667422b085e contenteditable-false"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/xhtml" rel="tag"&gt;xhtml&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12626.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/08/22/subtext-origami-skin---hotfix.aspx</guid>
            <pubDate>Wed, 22 Aug 2007 14:44:24 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/08/22/subtext-origami-skin---hotfix.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12626.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Subtext v1.9.6 'Parley' Is In the Works</title>
            <link>http://stevenharman.net/blog/archive/2007/08/10/subtext-v1.9.6-parlay-is-in-the-works.aspx</link>
            <description>&lt;p&gt;After a very hectic month or so things are starting to slow down around here. They are slowly getting back to normal, &lt;em&gt;or at least as normal as things ever were&lt;/em&gt;. And since &lt;a title="You’re Been Haacked" href="http://haacked.com" rel="external friend met"&gt;Phil&lt;/a&gt; is utterly overwhelmed with &lt;a href="http://haacked.com/archive/2007/06/06/introducing-cody-yokoyama-haack.aspx" rel="external"&gt;Cody "O.G." Haack&lt;/a&gt; he’s been hounding me to give up &lt;a href="http://veloc-it.com/" rel="external"&gt;my day job&lt;/a&gt; and spend more time &lt;a title="Subtext Project" href="http://subtextproject.com" rel="external"&gt;Subtexting&lt;/a&gt;. Unfortunatly we’ve not found a rich benefactor to pay our salaries while we do what we love - build Subtext and evangelize the goodness of open source software.&lt;/p&gt; &lt;p&gt;&lt;em&gt;But I digress...&lt;/em&gt;&lt;/p&gt; &lt;h3&gt;The point of this rant?&lt;/h3&gt; &lt;p&gt;The point is - &lt;strong&gt;we were not planning to do another Subtext 1.9.x release&lt;/strong&gt; after the 1.9.5 &lt;em&gt;Artificial Horizon&lt;/em&gt; release but rather focus full-force on getting 2.0 &lt;em&gt;Poseidon&lt;/em&gt; out the door. However, as tends to happen we’ve all been really busy and haven’t had the time.&lt;/p&gt; &lt;p&gt;&lt;a title="Capt. Jack Sparrow" href="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/Subtextv1.9.5ParlayIsIntheWorks_9457/pirates-jack-will.png" rel="lightbox"&gt;&lt;img class="left"  height="159" alt="Capt. Jack Sparrow" src="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/Subtextv1.9.5ParlayIsIntheWorks_9457/pirates-jack-will_thumb.png" width="240" border="0" /&gt;&lt;/a&gt;To tide you over and buy us a little more time on the 2.0 release I’m going to get busy and try to knock the 1.9.6 release out soon.&lt;/p&gt; &lt;p&gt;I’ve decided to codename this release &lt;strong&gt;&lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Parley" rel="external"&gt;Parley&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; - as made famous by the &lt;a href="http://www.google.com/search?q=pirates+parlay" rel="external"&gt;Pirates&lt;/a&gt; movies. I think the name fits as I’m asking you, dear community, to give us safe passage and a little more time to get you the 2.0 release. And as payment for that generosity, we offer you Subtext 1.9.6 "Parley".&lt;/p&gt; &lt;h3 class="clear"&gt;When are we gonna' get it?&lt;/h3&gt; &lt;p&gt;No promises on an exact release date - but I’m shooting for mid to late August at the latest. And remember, that &lt;strong&gt;release date will get here sooner if you contribute too&lt;/strong&gt;. :)&lt;/p&gt; &lt;p&gt;As always we welcome any and all contributions - even if it’s just to tell us how great we are and that you’d love to buy us a beer some time! &lt;em&gt;Mmmm... free beer...&lt;/em&gt;&lt;/p&gt; &lt;p&gt;[&lt;a title="Get yours today!" href="http://sourceforge.net/project/showfiles.php?group_id=137896" rel="external"&gt;Get Subtext&lt;/a&gt;]&lt;/p&gt; &lt;p class="update"&gt;Update: I just realized I spelled Parley wrong - so it has now been fixed through out the post. But fear not, my stupidity is now forever etched into the tubes of the Internet as the &lt;abbr title="Uniform Resource Locator"&gt;URL&lt;/abbr&gt; of this post won’t change.&lt;/p&gt; &lt;div class="wlWriterSmartContent id-0767317B-992E-4b12-91E0-4F059A8CECA8:be7379a9-bad6-42de-ad77-6b0f3de4f674 contenteditable-false"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/parley" rel="tag"&gt;parley&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open%20source" rel="tag"&gt;open source&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12620.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/08/10/subtext-v1.9.6-parlay-is-in-the-works.aspx</guid>
            <pubDate>Fri, 10 Aug 2007 14:32:58 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/08/10/subtext-v1.9.6-parlay-is-in-the-works.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12620.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Subtext Nominated for Two 2007 Community Choice Awards</title>
            <link>http://stevenharman.net/blog/archive/2007/07/03/subtext-nominated-for-two-2007-community-choice-awards.aspx</link>
            <description>&lt;p&gt;As several of my comrades have &lt;a href="http://feeds.feedburner.com/~r/Codeclimber/~3/129910864/Subtext-nominated-for-the-SF-Community-Choice-Award.aspx" rel="external friend colleague"&gt;already&lt;/a&gt; &lt;a href="http://geekswithblogs.net/sdorman/archive/2007/07/02/SourceForge.net-Community-Choice-Awards.aspx" rel="external colleague"&gt;announced&lt;/a&gt;, Subtext has been nominated for two, count 'em &lt;strong&gt;two Community Choice Awards!&lt;/strong&gt; Apparently &lt;a href="http://stevenharman.net/blog/archive/2007/06/24/nominate-subtext-for-a-2007-community-choice-award.aspx"&gt;my pleading&lt;/a&gt; worked!&lt;/p&gt; &lt;h3&gt;Nominations&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Best Project for Communications:&lt;/strong&gt; The best project for talking to your friends or sharing information. &lt;em&gt;Other nominees include - Miranda, Pidgin, and FileZilla.&lt;/em&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Most Collaborative Project:&lt;/strong&gt; The project most likely to accept your patches and value your input. &lt;em&gt;Other nominees include - Azureus, XOOPS, and Zimbra.&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This is a really big achievement for the project and we're proud to be &lt;strong&gt;one of only two .NET projects to be nominated&lt;/strong&gt;. The other project is &lt;a title="VMukti - Collaborate Conferencing" href="http://sourceforge.net/projects/vmukti/" rel="external"&gt;VMukti&lt;/a&gt;, a corporate sponsored project.&lt;/p&gt; &lt;h3&gt;Now go vote!&lt;/h3&gt; &lt;p&gt;The winning project for each category is determined by popular vote... so we need you all to &lt;a title="Vote for Subtext" href="http://sourceforge.net/awards/cca/vote.php" rel="external"&gt;GO VOTE&lt;/a&gt; Subtext!&lt;/p&gt; &lt;p&gt;As far as I can tell, you'll need to have a SourceForge.net account in order to cast your vote, and you only get to vote once... so make it count!&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:40e39302-5ace-4605-ad60-d82ebbc4ae5e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/sourceforge" rel="tag"&gt;sourceforge&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open%20source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://technorati.com/tags/community%20choice%20awards" rel="tag"&gt;community choice awards&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12606.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/07/03/subtext-nominated-for-two-2007-community-choice-awards.aspx</guid>
            <pubDate>Tue, 03 Jul 2007 04:14:13 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/07/03/subtext-nominated-for-two-2007-community-choice-awards.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12606.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Lightbox and Subtext Galleries Integration</title>
            <link>http://stevenharman.net/blog/archive/2007/06/24/lightbox-and-subtext-galleries-integration.aspx</link>
            <description>&lt;p&gt;Recently several Subtext users have asked how to integrate &lt;a title="Lightbox2" href="http://www.huddletogether.com/projects/lightbox2/" rel="external"&gt;Lightbox JS&lt;/a&gt; into Subtext's photo galleries. My standard answer has been &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;Right now it's not possible because the control that renders the galleries emits links with relative &lt;acronym title="Uniform Resource Locator"&gt;URL&lt;/acronym&gt;s rather than fully qualified URLs. We'll look into making a change to the data binding mechanism for a future release - so hold tight!&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I finally had a few spare cycles so I looked into the existing data binding logic and realized that &lt;strong&gt;it &lt;em&gt;is possible&lt;/em&gt; to get the control to emit fully qualified URLs right now!&lt;/strong&gt; Notice, I said it's possible, but I didn't say it's elegant.&lt;/p&gt; &lt;h3&gt;How it works now&lt;/h3&gt; &lt;p&gt;You'll need to edit your skin's &lt;code&gt;GalleryThumbNail.ascx&lt;/code&gt; control. This control renders the thumbnail images for a given gallery using a simple &lt;code&gt;asp:DataList&lt;/code&gt; control. The controller (code) that handles the &lt;code&gt;GalleryThumbNail.ascx&lt;/code&gt; control looks for an &lt;code&gt;asp:HyperLink&lt;/code&gt; control inside the &lt;code&gt;DataList&lt;/code&gt;. It then populates the &lt;code&gt;HyperLink&lt;/code&gt; with an &lt;code&gt;ImageUrl&lt;/code&gt;, &lt;code&gt;NavigationUrl&lt;/code&gt;, and &lt;code&gt;ToolTip&lt;/code&gt; for each image in the gallery.&lt;/p&gt; &lt;p&gt;So your skin control probably looks like this:&lt;/p&gt; &lt;div class="dropshadow"&gt; &lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DataList&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="ThumbNails"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;OnItemCreated&lt;/span&gt;&lt;span class="kwrd"&gt;="ImageCreated"&lt;/span&gt;
  &lt;span class="attr"&gt;RepeatColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="4"&lt;/span&gt; &lt;span class="attr"&gt;RepeatDirection&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:HyperLink&lt;/span&gt; &lt;span class="attr"&gt;Runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ThumbNailImage"&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="ThumbNail"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:DataList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 class="clear"&gt;Hack it to work now&lt;/h3&gt;
&lt;div class="dropshadow"&gt;
&lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DataList&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="ThumbNails"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;
  &lt;span class="attr"&gt;RepeatColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="4"&lt;/span&gt; &lt;span class="attr"&gt;RepeatDirection&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="thumbnail"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# BaseImagePath + 
        ((&lt;strong&gt;&lt;em&gt;Image&lt;/em&gt;&lt;/strong&gt;) Container.DataItem).ResizedFile %&amp;gt;"&lt;/span&gt; 
        &lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# ((&lt;strong&gt;&lt;em&gt;Image&lt;/em&gt;&lt;/strong&gt;) Container.DataItem).Title %&amp;gt;"&lt;/span&gt; 
        &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;="lightbox[&amp;lt;%# ((&lt;strong&gt;&lt;em&gt;Image&lt;/em&gt;&lt;/strong&gt;) Container.DataItem).CategoryID %&amp;gt;]"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# BaseImagePath + 
          ((&lt;strong&gt;&lt;em&gt;Image&lt;/em&gt;&lt;/strong&gt;) Container.DataItem).ThumbNailFile %&amp;gt;"&lt;/span&gt; 
          &lt;span class="attr"&gt;alt&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# ((&lt;strong&gt;&lt;em&gt;Image&lt;/em&gt;&lt;/strong&gt;) Container.DataItem).Title %&amp;gt;"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;    
      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:DataList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p class="clear"&gt;NOTE: For brevity and to make it fit on the page, I've shortened the above code. You'll need to &lt;strong&gt;expand each of the five &lt;em&gt;&lt;code&gt;Image&lt;/code&gt;&lt;/em&gt; casts to use the fully qualified class name, &lt;code&gt;Subtext.Framework.Components.Image&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;Coming to a Subtext Installation Near You&lt;/h3&gt;
&lt;p class="clear"&gt;I've made some changes for the next version of Subtext (the &lt;a title="Subtext v1.9.6 - coming soon!" href="http://haacked.com/archive/2007/06/24/subtext-extensibility-notes.aspx" rel="external"&gt;recently announced v1.9.6&lt;/a&gt;) that will make the data binding expressions a bit more concise and easier to read. So starting with the next release you'll be able to do this&lt;/p&gt;
&lt;div class="dropshadow"&gt;
&lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DataList&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="ThumbNails"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;
  &lt;span class="attr"&gt;RepeatColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="4"&lt;/span&gt; &lt;span class="attr"&gt;RepeatDirection&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="thumbnail"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# BaseImagePath + 
        &lt;strong&gt;EvalImage&lt;/strong&gt;(Container.DataItem).ResizedFile %&amp;gt;"&lt;/span&gt; 
        &lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# &lt;strong&gt;EvalImage&lt;/strong&gt;(Container.DataItem).Title %&amp;gt;"&lt;/span&gt; 
        &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;="lightbox[&amp;lt;%# &lt;strong&gt;EvalImage&lt;/strong&gt;(Container.DataItem).CategoryID %&amp;gt;]"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# BaseImagePath + 
          &lt;strong&gt;EvalImage&lt;/strong&gt;(Container.DataItem).ThumbNailFile %&amp;gt;"&lt;/span&gt; 
          &lt;span class="attr"&gt;alt&lt;/span&gt;&lt;span class="kwrd"&gt;="&amp;lt;%# &lt;strong&gt;EvalImage&lt;/strong&gt;(Container.DataItem).Title %&amp;gt;"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;    
      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:DataList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p class="clear"&gt;I'll play around with the controller some more to see if we can make the code even more expressive - but no promises!&lt;/p&gt;
&lt;h3&gt;See it in action!&lt;/h3&gt;
&lt;p class="clear"&gt;You can see the Lightbox2 and Subtext Galleries integration in action in my galleries. Check this one out: &lt;a title="On the Town..." href="http://stevenharman.net/blog/gallery/21.aspx"&gt;On the Town...&lt;/a&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:e09e22b6-557c-4625-b19c-75e00c5c6bca" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/subtext"&gt;subtext&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/lightbox"&gt;lightbox&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/asp.net"&gt;asp.net&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/open%20source"&gt;open source&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12603.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/06/24/lightbox-and-subtext-galleries-integration.aspx</guid>
            <pubDate>Mon, 25 Jun 2007 02:25:47 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/06/24/lightbox-and-subtext-galleries-integration.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12603.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Nominate Subtext For a 2007 Community Choice Award</title>
            <link>http://stevenharman.net/blog/archive/2007/06/24/nominate-subtext-for-a-2007-community-choice-award.aspx</link>
            <description>&lt;blockquote&gt; &lt;p&gt;The &lt;a title="Create, Participate, Evaluate" href="http://sourceforge.net/" rel="external"&gt;SourceForge.net&lt;/a&gt; team is proud to present our second annual Community Choice Awards. Winners are selected by community members like you, and it's that time again! Cast a ballot for your favorite projects now and make your voice heard.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;That short blurb pretty much says it all. &lt;/p&gt; &lt;div class="dropshadow"&gt; &lt;div class="innerbox contrast"&gt;&lt;a title="Nominate and Vote!" href="http://sourceforge.net/awards/cca/nomination.php?group_id=137896&amp;amp;from=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsubtext%2F" rel="external"&gt;&lt;img alt="Nominate and Vote!" src="http://sourceforge.net/images/cca/nomProj.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt; &lt;p class="clear"&gt;The Community Choice Awards are a chance for you, the community of open source software users, to nominate and then vote on the projects that you find most useful, best designed, most collaborative, etc... Actually, there are eleven different categories that a project can be nominated for - though some may not be applicable to all projects.&lt;/p&gt; &lt;h3&gt;How it works&lt;/h3&gt; &lt;p&gt;Each project is eligible for nomination in any of the eleven categories. The projects with the most nominations in each category will become finalists in that category.&lt;/p&gt; &lt;p class="update"&gt;NOTE: You can &lt;strong&gt;nominate a project for any number of categories, but only once per category&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Next a voting period will open up during which community members, &lt;em&gt;that's you&lt;/em&gt;, will cast votes to determine the winners.&lt;/p&gt; &lt;h3&gt;When?&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Nomination Period: June 4&lt;sup&gt;th&lt;/sup&gt; - June 29&lt;sup&gt;th&lt;/sup&gt;.  &lt;/li&gt;&lt;li&gt;Voting Period: July 9&lt;sup&gt;th&lt;/sup&gt; - July 26&lt;sup&gt;th&lt;/sup&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;What to do&lt;/h3&gt; &lt;p&gt;If the nomination period is still open, go &lt;a title="SourceForge.net 2007 Community Choice Awards" href="http://sourceforge.net/awards/cca/nomination.php?group_id=137896&amp;amp;from=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsubtext%2F" rel="external"&gt;submit your nominations for Subtext&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If nominations are closed but there's still time to vote... &lt;a title="SourceForge.net 2007 Community Choice Awards" href="http://sourceforge.net/awards/cca/" rel="external"&gt;Go VOTE!&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ef43b523-f261-4d87-95c8-ccfeb39660ac" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/subtext"&gt;subtext&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/sourceforge"&gt;sourceforge&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/community%20choice%20awards"&gt;community choice awards&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/open%20source"&gt;open source&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12602.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/06/24/nominate-subtext-for-a-2007-community-choice-award.aspx</guid>
            <pubDate>Sun, 24 Jun 2007 23:55:28 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/06/24/nominate-subtext-for-a-2007-community-choice-award.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12602.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Tip: Put Connection Strings in Their Own Configuration File</title>
            <link>http://stevenharman.net/blog/archive/2007/06/07/tip-put-connection-strings-in-their-own-configuration-file.aspx</link>
            <description>&lt;p&gt;asp.net 2.0 introduced a new section in the &lt;code&gt;web.config&lt;/code&gt; file -&lt;code&gt;ConnectionStrings&lt;/code&gt;. This new configuration section allows you to add connection strings in your &lt;code&gt;web.config&lt;/code&gt;, like we always have, or in a different data source.&lt;/p&gt; &lt;p&gt;In &lt;a title="Subtext Project" href="http://subtextproject.com"&gt;Subtext&lt;/a&gt; 2.0 we're using this new feature to &lt;strong&gt;split the connection string out into a new configuration file&lt;/strong&gt;, &lt;code&gt;user.config&lt;/code&gt;. Doing this should make day to day development easier for our development team by reducing the number of merge conflicts in &lt;code&gt;web.config&lt;/code&gt;. Since most every developer has a different database configuration, it makes sense to keep this information in its own file and away from the other &lt;em&gt;more static&lt;/em&gt; configuration settings.&lt;/p&gt; &lt;h3&gt;Show me how!&lt;/h3&gt; &lt;p&gt;I'm a visual type of guy and typically get more out of a demo or code sample than from some author's rambling writing... &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Subtext's &lt;code&gt;web.config&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div class="dropshadow"&gt; &lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  ...
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt; &lt;span class="attr"&gt;configSource&lt;/span&gt;&lt;span class="kwrd"&gt;="user.config"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;&lt;strike&gt;&amp;lt;!-- you can still add connection strings here -&lt;/strike&gt;-&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  ...&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p class="clear update"&gt;As John pointed out in the comments, when using a &lt;code&gt;configSource&lt;/code&gt; you must move all values under the configuration section into the external file. Which is why I've crossed out the comment in the above code sample.&lt;/p&gt;
&lt;p class="clear"&gt;&lt;strong&gt;The &lt;code&gt;user.config&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="dropshadow"&gt;
&lt;div class="innerbox"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="subtextData"&lt;/span&gt;
    &lt;span class="attr"&gt;connectionString&lt;/span&gt;&lt;span class="kwrd"&gt;="Server=.;Database=myData;Trusted_Connection=True;"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p class="clear"&gt;Then each developer modifies their &lt;code&gt;user.config&lt;/code&gt; file for their setup. No more merging nor conflict issues with that sucker in &lt;code&gt;web.config&lt;/code&gt;. &lt;/p&gt;
&lt;p class="clear"&gt;I realize you could still run into some issues where another developer accidentally checks in their &lt;code&gt;user.config&lt;/code&gt; and then &lt;acronym title="Subversion"&gt;SVN&lt;/acronym&gt; tries to merge the changes into your file. But since the only thing in that file is the connection string settings, you can just revert the other developer's changes without the worry of losing other, intended, changes.&lt;/p&gt;
&lt;h3&gt;Connection string resources&lt;/h3&gt;
&lt;p&gt;In the above code you might have noticed that I set my Server equal to . (dot). I believe that is just shorthand for &lt;code&gt;localhost&lt;/code&gt;, but I don't remember where I picked that up. Does anyone out there know?&lt;/p&gt;
&lt;p&gt;In trying to find out where I first learned that syntax, I used the following resources that might help you get your connection string just right:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://connectionstrings.com/"&gt;ConnectionStrings.com&lt;/a&gt; - an easy reference for connection strings 
&lt;/li&gt;&lt;li&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2005/12/02/432062.aspx"&gt;localhost vs. (local) in SQL Server connection strings&lt;/a&gt; 
&lt;/li&gt;&lt;li&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2007/02/24/sql-force-the-protocol-tcp-named-pipes-etc-in-your-connection-string.aspx"&gt;Force the protocol in your connection string&lt;/a&gt; - TCP, Named Pipes, etc...&lt;/li&gt;&lt;/ul&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:1599a5ad-9cd8-44c5-9e75-b8bda5cc90ce" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tags/tip/trick" rel="tag"&gt;tip/trick&lt;/a&gt;, &lt;a href="http://technorati.com/tags/database" rel="tag"&gt;database&lt;/a&gt;, &lt;a href="http://technorati.com/tags/connectionstring" rel="tag"&gt;connectionstring&lt;/a&gt;, &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12591.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/06/07/tip-put-connection-strings-in-their-own-configuration-file.aspx</guid>
            <pubDate>Thu, 07 Jun 2007 22:46:29 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/06/07/tip-put-connection-strings-in-their-own-configuration-file.aspx#feedback</comments>
            <slash:comments>13</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12591.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Does Web Software Need a 'Check Engine' Light?</title>
            <link>http://stevenharman.net/blog/archive/2007/05/25/does-web-software-need-a-check-engine-light.aspx</link>
            <description>&lt;p&gt;A &lt;a href="http://blogsecurity.net/wordpress/articles/article-230507/"&gt;recent post&lt;/a&gt; by security analyst David Kierznowske reports that 49 out of 50 &lt;a href="http://wordpress.org"&gt;WordPress&lt;/a&gt; blogs that he checked out were running an exploitable version of the WordPress blogging engine. According to the post, David looked at blogs running on versions as far back as WordPress v1.2 (with v2.2 being the most recent release, as of this writing).&lt;/p&gt; &lt;p&gt;So does this mean that WordPress is buggy software that is to be avoided? &lt;em&gt;No, not at all&lt;/em&gt;. It just means that those users need to do a better job of dealing with the bugs.&lt;/p&gt; &lt;h3&gt;The sky is blue and software has bugs&lt;/h3&gt; &lt;p&gt;All software has bugs, it's just the nature of the game. And until some &lt;em&gt;magic-voodoo&lt;/em&gt; methodology comes along, finally allowing us to write bug-free software, we're just going to have to deal with bugs the best we can.&lt;/p&gt; &lt;p&gt;And what is the best way to handle a bug? &lt;em&gt;Step on it of course!&lt;/em&gt; When talking about software bugs that means keeping your application patched and up to date.&lt;/p&gt; &lt;p&gt;Jeff Atwood wants his software to &lt;a title="The Software &amp;quot;Check Engine&amp;quot; Light" href="http://www.codinghorror.com/blog/archives/000786.html"&gt;diagnose and fix itself&lt;/a&gt;. I think that's a great idea for software systems like your &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; or any other software running directly on your desktop/server - like your web browsers, media players, office applications, IM clients, etc... But what about your web-based applications?&lt;/p&gt; &lt;h3&gt;The web is different&lt;/h3&gt; &lt;p&gt;Do we really want our blog engines, wikis, forums, portals, etc... updating themselves whenever they see fit? &lt;strong&gt;I doubt it!&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The image editing application running on your laptop suddenly restarting after updating itself is one thing. But having your entire web portal go offline at some random time because it just updated itself is another story entirely.&lt;/p&gt; &lt;h3&gt;Keep users updated&lt;/h3&gt; &lt;p&gt;Short of the fully automated patching and upgrading utopia that only exists in Jeff's dreams, I believe &lt;strong&gt;one of the best ways to encourage users to keep their web applications patched and up to date is to keep them informed&lt;/strong&gt;. They need to know when a new version is available, or a new high-priority bug has been found, new skins or plugins are available, etc...&lt;/p&gt; &lt;p&gt;In the case of WordPress blogs, you can't blame the guys (and gals) who are building the application for having users that don't keep their blogs patched. There is even a disclaimer on the WordPress Download Archive site stating that &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;None of these [WordPress Versions] are safe to use, except the latest in the 2.0 or 2.1 series, which are both actively maintained.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Now, I know they have a mailing list that announces when new versions are available along with some other news, and that's a good start. But we as software builders need to do more.&lt;/p&gt; &lt;h3&gt;Bring back the ID-10-T light&lt;/h3&gt; &lt;p&gt;Perhaps a &lt;strong&gt;check engine light wouldn't be such a bad idea for web applications&lt;/strong&gt;. Of course, I'm not talking about showing that light to the front-end user. I would build it into the applications dashboard - just like in a car - where the application administrator/owner/manager can see it.&lt;/p&gt; &lt;p&gt;In implementation this &lt;em&gt;warning light&lt;/em&gt; may just be a built-in &lt;acronym title="Really Simple Syndication"&gt;RSS&lt;/acronym&gt; reader that shows a short list of the most recent project news items... along with some &lt;acronym title="User Interface"&gt;UI&lt;/acronym&gt; goodness that will warn the user of important news, of course!&lt;/p&gt; &lt;p&gt;&lt;em&gt;You know, I think I might just add that to my to-do list for the next version of &lt;a href="http://subtextproject.com" rel="Subtext - The .net blog engine."&gt;Subtext&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt; &lt;h3&gt;Tell me about it&lt;/h3&gt; &lt;p&gt;What am I missing? There have got to be some better ways to inform the users of web-based applications that they need to take action to protect themselves. Or is it more than just information that they are missing?&lt;/p&gt; &lt;p&gt;Is it just too hard to manage this stuff? &lt;em&gt;Maybe.&lt;/em&gt; That certainly would help explain why so many of the WordPress blogs that David looked at were still running such old and outdated versions of the code. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Do we, the web application builders, need to figure out more seamless way to upgrade our applications?&lt;/strong&gt; Probably yes... but that is a topic for a whole other blog post. :)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:817ad116-81c3-4372-a846-56408341f09d" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/software%20development" rel="tag"&gt;software development&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tags/security" rel="tag"&gt;security&lt;/a&gt;, &lt;a href="http://technorati.com/tags/blogging" rel="tag"&gt;blogging&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open%20source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://technorati.com/tags/subtext" rel="tag"&gt;subtext&lt;/a&gt;, &lt;a href="http://technorati.com/tags/wordpress" rel="tag"&gt;wordpress&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12583.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid>http://stevenharman.net/blog/archive/2007/05/25/does-web-software-need-a-check-engine-light.aspx</guid>
            <pubDate>Fri, 25 May 2007 15:20:29 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2007/05/25/does-web-software-need-a-check-engine-light.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12583.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>