<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>dasBlog</title>
        <link>http://www.ayende.com/Blog/category/537.aspx</link>
        <description>dasBlog</description>
        <language>en-US</language>
        <copyright>Ayende Rahien</copyright>
        <managingEditor>Ayende@ayende.com</managingEditor>
        <generator>Subtext Version 1.9.3.51</generator>
        <item>
            <title>Blog temporarily down: dasBlog Limitations</title>
            <link>http://ayende.com/Blog/archive/2007/01/13/6948.aspx</link>
            <description>&lt;p&gt;    Well, it looks like I have run into some limits with dasBlog.&lt;/p&gt;&lt;p&gt;    I have over 2,000 posts, and close to 1,200 files in my content directory. It gets to the points that just opening the directory has a noticable delay.&lt;br /&gt;    Trying to run dasBlog currently takes roughly 100% of the CPU, and takes forever. This is on my machine, by the way, so it is single user only.&lt;/p&gt;&lt;p&gt;    Trying that on the server apperantly killed it. &lt;/p&gt;&lt;p&gt;    Profiling it shows that the fault is probably with the template processor, AddParsedObject and InitializeMacro. That is about all the information that I managed to get from VS profiler, I am currently trying out dotTrace, to see if it can gives me a better idea about what is going on there.&lt;/p&gt;&lt;p&gt;    Using dotTrace, the picture is much clearer, it looks like the cost is in iterating over all the past entries, you can take a look here for the details:&lt;br /&gt;    &lt;a href="http://www.ayende.com/Blog/content/binary/dasblog-perf.png" target="blank"&gt;&lt;img alt="dasblog-perf.png" src="http://www.ayende.com/Blog/content/binary/thumbnail_dasblog-perf.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;    I removed all the entries from July 06 and backward, and this seems to bring the blog to a working state again. This is a &lt;em&gt;temporary&lt;/em&gt; measure only. I am not willing to give up 2+ years of blogging. I have uploaded the dtc (dot trace snapshot) &lt;a href="http://www.ayende.com/Blog/dasblog.zip"&gt;here&lt;/a&gt;, if anybody is interested in taking a look I can provide the full backup history, which put dasBlog through the grinder.&lt;/p&gt;&lt;p&gt;    At the same time, I am investigating &lt;a href="http://www.subtextproject.com"&gt;Subtext&lt;/a&gt;, which may be more appropriate for my kind of blog. The main concerns are not breaking links (but it is acceptable to have redirect) and having to re-do the blog design.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/6948.aspx" width="1" height="1" /&gt;</description>
            <guid>http://ayende.com/Blog/archive/2007/01/13/6948.aspx</guid>
            <pubDate>Sat, 13 Jan 2007 13:07:44 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2007/01/13/6948.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/6948.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Adding Aggregation Services</title>
            <link>http://ayende.com/Blog/archive/2006/06/24/7463.aspx</link>
            <description>&lt;p&gt;    My current readership seems to have stabilized on around 3,500 readers a day (after a peak of about 5,500 a day after I got linked from ScottGu's blog).&lt;/p&gt;&lt;p&gt;    After seeing the dramatic difference that such a link can cause, I decided to check how I can bring in more readers. The simplest thing is to get myself linked from the aggregations sites such as Digg, DotNetKicks, etc. Of course that the high goal there is to get slashdotted, but I'm leaving this tactic for the future :-)&lt;/p&gt;&lt;p&gt;    Now, putting my own posts on those sites is sleazy, but there is no reason that I wouldn't make it easy for &lt;em&gt;you&lt;/em&gt; to do it. So I added links to deli.cio.us, Digg and DotNetKicks on each post. I used dasBlog's ability to define custom macros, and this &lt;a href="http://www.vasanth.in/Software.aspx?=dasblogextra"&gt;custom macro library&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;    The link contains all the information that you can want on this, but be aware that the macros shown there wouldn't work as-is. For some reason Vasanth forgot to put &amp;lt;% on the beginning of each macro.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/7463.aspx" width="1" height="1" /&gt;</description>
            <guid>http://ayende.com/Blog/archive/2006/06/24/7463.aspx</guid>
            <pubDate>Fri, 23 Jun 2006 21:18:51 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2006/06/24/7463.aspx#feedback</comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/7463.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Reading the logs</title>
            <link>http://ayende.com/Blog/archive/2006/03/01/7853.aspx</link>
            <description>&lt;p&gt;I spent a couple of minutes now going over the logs, it's quite amazing what you can find there. It looks like my posts about Brail started a bit of interest, since I suddenly started to see searches for information about it.&lt;/p&gt;
&lt;p&gt;Another interesting things is that I started to get a lot more readers ~2,800 a day in the browser, and ~1,300 a day from RSS aggerators. I'm not using those numbers for their numeric values, since they don't really mean much by themselves, but it's interesting about 1,000 more readers via the browser, and ~700 more in RSS.&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/7853.aspx" width="1" height="1" /&gt;</description>
            <guid>http://ayende.com/Blog/archive/2006/03/01/7853.aspx</guid>
            <pubDate>Wed, 01 Mar 2006 16:43:51 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2006/03/01/7853.aspx#feedback</comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/7853.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Playing With DasBlog</title>
            <link>http://ayende.com/Blog/archive/2006/02/23/7873.aspx</link>
            <description>&lt;div class="Section1" dir="rtl"&gt;    &lt;p class="MsoNormal" dir="ltr" style="DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left"&gt;        &lt;font face="Arial" size="2"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Every once in a while you see a couple of messages from the guys that use a Blog with a DB backend post some wonderful statistics about their Blog. I couldn't be happier with dasBlog (can you say zero headache in over two years of using it?), but I really like the statistics abilities. Well, I like to think of myself as a developer, and as such, I can solve such problems. Put this together with the SQL stuff I've been doing lately, and that dasBlog has Web Services functionality, and the solution is obvious, isn't it?&lt;/span&gt;&lt;/font&gt;        &lt;o:p&gt;&lt;/o:p&gt;    &lt;/p&gt;    &lt;p class="MsoNormal" dir="ltr" style="DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left"&gt;        &lt;font face="Arial" size="2"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;I'm going to explain how I did it now, and then post the stats in the next post (along with some nice graphs, I hope.) The first thing that I did was to take my &lt;a href="http://www.ayende.com/Blog/2005/08/27/dasBlogAndHierarchalCategories.aspx"&gt;previous post about dasBlog's Web Services&lt;/a&gt;, and took it for a spin, here are the results:&lt;o:p&gt;&lt;/o:p&gt;        &lt;/span&gt;&lt;/font&gt;    &lt;/p&gt;    &lt;div style="BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #999999 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #999999 1px solid; WIDTH: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #999999 1px solid; BACKGROUND-COLOR: #ffffe1"&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?&gt;System&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;System&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Data&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;System&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Data&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;SqlClient&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;CookComputing&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;XmlRpc&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;import &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;newtelligence&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;DasBlog&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Runtime&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Proxies&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;            &lt;o:p&gt; &lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;user &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"Ayende Rahien"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;password &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"Ayende@ayende.com"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;start &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;DateTime&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Now&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;            &lt;o:p&gt; &lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;log &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;IO&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;File&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;CreateText&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"log.txt"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;)&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;dasBlog &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;BloggerAPIClientProxy&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;()&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;dasBlog&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Url &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"http://www.ayende.com/Blog/blogger.aspx"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;posts &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;dasBlog&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;metaweblog_getRecentPosts&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;""&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;,&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;user&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;password&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkblue; FONT-FAMILY: 'Courier New'"&gt;1500&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;)&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: purple; FONT-FAMILY: 'Courier New'"&gt;print &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"Got &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #993366; FONT-FAMILY: 'Courier New'"&gt;${posts.Length} &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;posts from server"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;using &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;con &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;SqlConnection&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;"""Data Source=.;AttachDbFilename=F:.mdf;Integrated Security=True;User Instance=True"""&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;)&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;:&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;con&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;Open&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;()&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;using &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;command &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;con&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;CreateCommand&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;()&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;:&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;command&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;CommandText &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"INSERT INTO BlogStats(Time, Title) VALUES(@time, @title)"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;time &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;command&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Parameters&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;Add&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"time"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;SqlDbType&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;DateTime&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;)&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;title &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;command&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Parameters&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;Add&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"title"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;SqlDbType&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;NChar&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;)&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;for &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;post &lt;/span&gt;&lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;in &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;posts:&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;:&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;time&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Value &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;post&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;dateCreated&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;title&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Value &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;= &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;post&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;title             &lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;command&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;ExecuteNonQuery&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;()&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 3"&gt;                  &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"&gt;except &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;e:&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: purple; FONT-FAMILY: 'Courier New'"&gt;print &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"Error updated post: &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #993366; FONT-FAMILY: 'Courier New'"&gt;${post.title}&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: purple; FONT-FAMILY: 'Courier New'"&gt;print &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;e&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;Message&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;log&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;WriteLine&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;e&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;ToString&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;())&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 4"&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;log&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: midnightblue; FONT-FAMILY: 'Courier New'"&gt;WriteLine&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"--- --- ---"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: darkgreen; FONT-FAMILY: 'Courier New'"&gt;)&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left; mso-layout-grid-align: none"&gt;            &lt;span style="FONT-SIZE: 10pt; COLOR: purple; FONT-FAMILY: 'Courier New'"&gt;print &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"Took &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #993366; FONT-FAMILY: 'Courier New'"&gt;${DateTime.Now - start}&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;"&lt;o:p&gt;&lt;/o:p&gt;            &lt;/span&gt;        &lt;/p&gt;        &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left"&gt;            &lt;o:p&gt;                &lt;font face="Times New Roman" size="3"&gt; &lt;/font&gt;            &lt;/o:p&gt;        &lt;/p&gt;    &lt;/div&gt;    &lt;p class="MsoNormal" dir="ltr" style="DIRECTION: ltr; unicode-bidi: embed; TEXT-ALIGN: left"&gt;        &lt;font face="Arial" size="2"&gt;&lt;span lang="HE" dir="rtl" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;        &lt;o:p&gt;&lt;/o:p&gt;        &lt;/span&gt;&lt;/font&gt;    &lt;/p&gt;&lt;/div&gt;&lt;img src="http://ayende.com/Blog/aggbug/7873.aspx" width="1" height="1" /&gt;</description>
            <guid>http://ayende.com/Blog/archive/2006/02/23/7873.aspx</guid>
            <pubDate>Thu, 23 Feb 2006 16:59:57 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2006/02/23/7873.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/7873.aspx</wfw:commentRss>
        </item>
        <item>
            <title>More on dasBlog Categories</title>
            <link>http://ayende.com/Blog/archive/2005/09/01/8318.aspx</link>
            <description>&lt;p&gt;    It seems that some of my categories do not appear in the category listing, which is annoying. The problem is that I can't seem to find the reason why.&lt;/p&gt;&lt;p&gt;    Among the categories it refuse to display: Culture, Open Source, Operating Systems....&lt;/p&gt;&lt;p&gt;    I smell a conspiracy... :-)&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/8318.aspx" width="1" height="1" /&gt;</description>
            <guid>http://ayende.com/Blog/archive/2005/09/01/8318.aspx</guid>
            <pubDate>Thu, 01 Sep 2005 19:17:28 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2005/09/01/8318.aspx#feedback</comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/8318.aspx</wfw:commentRss>
        </item>
        <item>
            <title>dasBlog and hierarchal categories</title>
            <link>http://ayende.com/Blog/archive/2005/08/27/8334.aspx</link>
            <description>&lt;p&gt;    Did you know that dasBlog has a hierarchal categories with a beautiful way to represent them? I didn't until I visited &lt;a href="http://www.lnbogen.com/default.aspx"&gt;Oren Ellenbogen&lt;/a&gt;'s blog and saw how his categories looked. My immediate response was "Me Too! Me Too!", so I set out to learn the secret. &lt;/p&gt;&lt;p&gt;
Turns out that this isn't such a big secret after all: Oren* told me
that it's simply a matter of seperating the categories with '|'. There
is also some css magic that goes along with it, but looking at Oren's
site with the &lt;a href="https://addons.mozilla.org/extensions/moreinfo.php?id=60"&gt;WebDeveloper Extention for Firefox&lt;/a&gt; quickly showed what I needed. (#1 tool for anyone who wants to develop for the web, in my opinion). &lt;/p&gt;&lt;p&gt;
I changed a single post category, and it worked! Now I wanted to change
all the rest of them. Hierarchal categories are the new thing, I hear,
so I certainly wanted them for my blog. Ever for the old posts. The
trouble is that I currently has over 600 posts. (When &lt;em&gt;did&lt;/em&gt; I
manage to post so much?) And I wasn't feeling like spending the rest of
the weekend pouring over each and every one of them changing the
categories. I immediately setup to find a programmatic solution to the
problem. &lt;/p&gt;&lt;p&gt;    The first thing I thought about was that &lt;a href="http://www.dasblog.org"&gt;dsaBlog&lt;/a&gt; has a programming interface using the &lt;a href="http://www.blogger.com/developers/api/1_docs/%20"&gt;Blogger API&lt;/a&gt;, but I never worked with it. I googled for a little bit and found the &lt;a href="http://www.xml-rpc.net/"&gt;Xml-Rpc.Net&lt;/a&gt; library,
which incidently comes with a blogger API sample. But apperantly the
Blogger API doesn't let you update the categories of a single post, at
least not in any way that a very curosry will show. The &lt;a href="www.xmlrpc.com/metaWeblogApi"&gt;MetaWeblog API&lt;/a&gt; does however, so I used that. I compiled &lt;a href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/dasblogce/source/newtelligence.DasBlog.Runtime.Proxies/BloggerAPIClientProxy.cs"&gt;newtelligence.DasBlog.Runtime.Proxies\BloggerAPIClientProxy.cs&lt;/a&gt; to
an assembly I named dasBlogger.dll (I could've also used the dasBlog
assemblies, but it would've taken time to build them, so I just
compiled it seperatedly). &lt;/p&gt;&lt;p&gt;    I tested it and it worked! Then I had the &lt;em&gt;really&lt;/em&gt;
hard part, thinking about how to map my categories to hierarchal
structure. Here is the code I ended up with, very simple to
write and understand. But it doesn't work.  The problem is that
dasBlog only return the last 30 posts, no matter what value you pass to
it. I'm going to email Scott about it. Pursuing the source for dasBlog,
I didn't see where this functionality is controled. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="border: 1px solid rgb(153, 153, 153); padding: 4px; width: 100%; background-color: rgb(255, 255, 225);"&gt;&lt;pre&gt;import System&lt;br /&gt;import CookComputing.XmlRpc&lt;br /&gt;import newtelligence.DasBlog.Runtime.Proxies&lt;br /&gt;&lt;br /&gt;user = "Ayende Rahien"&lt;br /&gt;password = "Ayende Rahien's Password"&lt;br /&gt;&lt;br /&gt;categories = { &lt;br /&gt;				"Ayende.Utilities" : "Programming | Utilities",&lt;br /&gt;				"Blog" : "Website | Blog",&lt;br /&gt;				"Boo" : "Programming | Boo",&lt;br /&gt;				"Boo On Rails" : "My Projects | Brail",&lt;br /&gt;				"Books" : "Culture | Books",&lt;br /&gt;				"Brail" : "My Projects | Brail",&lt;br /&gt;				"Bugs" : "Programming | Bugs",&lt;br /&gt;				"dasBlog" : "Website | Blog | dasBlog",&lt;br /&gt;				"Evil" : "Miscellaneous | Evil",&lt;br /&gt;				"eXtreme Programming" : "Programming | XP",&lt;br /&gt;				"Humor" : "Humor",&lt;br /&gt;				"Miscellaneous" : "Miscellaneous",&lt;br /&gt;				"Movies" : "Culture | Movies",&lt;br /&gt;				"Music" : "Culture | Music",&lt;br /&gt;				"NHibernate Query Analyzer" : "My Projects | NHibernate Query Analyzer",&lt;br /&gt;				"Programming" : "Programming",&lt;br /&gt;				"Rhino Mocks" : "My Projects | Rhino Mocks",&lt;br /&gt;				"Website" : "Website",&lt;br /&gt;				"Windows" : "Programming",&lt;br /&gt;				"Writings" : "Culture | Writings"&lt;br /&gt;			}&lt;br /&gt;log = IO.File.CreateText("log.txt")&lt;br /&gt;dasBlog = BloggerAPIClientProxy()&lt;br /&gt;dasBlog.Url = "http://www.ayende.com/Blog/blogger.aspx"&lt;br /&gt;posts = dasBlog.metaweblog_getRecentPosts("",user, password, 999)&lt;br /&gt;start = DateTime.Now&lt;br /&gt;for post in posts:&lt;br /&gt;	try:&lt;br /&gt;		for i in range( len (post.categories) ):&lt;br /&gt;			newCategory = categories[ post.categories[i] ]&lt;br /&gt;			if newCategory is null:&lt;br /&gt;				print "'${post.categories[i]}' is an unknown category"&lt;br /&gt;				continue&lt;br /&gt;			post.categories[i] = newCategory&lt;br /&gt;		if len(post.categories) == 0:&lt;br /&gt;			post.categories = ("Uncategorized",)&lt;br /&gt;		dasBlog.metaweblog_editPost(post.postid, user, password, post, true)&lt;br /&gt;		print "Updated post: ${post.title}"&lt;br /&gt;	except e:&lt;br /&gt;		print "Error updated post: ${post.title}"&lt;br /&gt;		print e.Message&lt;br /&gt;		log.WriteLine(e.ToString())&lt;br /&gt;		log.WriteLine("--- --- ---")&lt;br /&gt;print "Took ${DateTime.Now - start}"&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
 * Last time I checked there were more than 8,500 people in Israel
named Oren, and 7 named Oren Eini (none of them is related to me, btw).
&lt;/p&gt;&lt;img src="http://ayende.com/Blog/aggbug/8334.aspx" width="1" height="1" /&gt;</description>
            <guid>http://ayende.com/Blog/archive/2005/08/27/8334.aspx</guid>
            <pubDate>Sat, 27 Aug 2005 13:50:13 GMT</pubDate>
            <comments>http://ayende.com/Blog/archive/2005/08/27/8334.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://ayende.com/Blog/comments/commentRss/8334.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>