<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.no-ip.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>fractalnavel : tech notes</title><link>http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx</link><description>Tags: tech notes</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>tech notes: dear bill...</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-dear-bill.aspx</link><pubDate>Wed, 18 Nov 2009 17:07:40 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5249</guid><dc:creator>fractalnavel</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5249</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5249</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-dear-bill.aspx#comments</comments><description>&lt;p&gt;just a couple more microsoft peeves that have been annoying me lately:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;well, maybe i&amp;#39;ll just tell you where to stuff it, instead:&lt;/p&gt;      &lt;blockquote&gt;       &lt;h4&gt;Welcome to Windows Live Messenger Help&lt;/h4&gt;        &lt;p&gt;         &lt;table border="1" cellspacing="0" cellpadding="4"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td&gt;                 &lt;p&gt;&lt;strong&gt;August 25, 2009 - Install the latest version of Messenger.&lt;/strong&gt;&lt;/p&gt;                  &lt;p&gt;&lt;strong&gt;You need to install the latest version of Messenger. It includes security updates to help keep you and your friends safe online while you chat.&lt;/strong&gt;&lt;/p&gt;                  &lt;p&gt;&lt;strong&gt;Starting September 15, 2009, users are required to have the latest version of Messenger installed on their computer in order to sign in and continue using the Messenger service. To download the latest version of Messenger, go to the&lt;/strong&gt; &lt;a href="http://g.live.com/0HE_TRACKSTAR_ENUS9/139006" target="_blank"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Windows Live Messenger website&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;thing is, if you go to update live messenger, you are forced to update every other piece of &amp;quot;live&amp;quot; software that you&amp;#39;ve installed as well.&amp;#160; and don&amp;#39;t forget that the &amp;quot;live&amp;quot; upgrade dialog also defaults to selecting every piece of &lt;em&gt;uninstalled&lt;/em&gt; &amp;quot;live&amp;quot; software for installation as well - &lt;em&gt;every time you do this&lt;/em&gt;.&amp;#160; it won&amp;#39;t remember that you&amp;#39;ve unselected anything the last time.&lt;/p&gt;      &lt;p&gt;what about corporate users ?&amp;#160; are entire enterprises being forced to update as well ?&lt;/p&gt;      &lt;p&gt;more: &lt;a title="at the live messenger blog" href="http://messengersays.spaces.live.com/blog/cns!5B410F7FD930829E!98984.entry" target="_blank"&gt;Upgrade from Windows Live Messenger 8.5&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;every - ten - minutes:&lt;/p&gt;      &lt;blockquote&gt;       &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px;" title="image" border="0" alt="image" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel.metablogapi/4118.image_5F00_3.png" width="428" height="139" /&gt; &lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;yes, you can find &amp;quot;instructions&amp;quot; on how to change this behavior - not from microsoft, of course.&amp;#160; but some of them are only temporary &amp;quot;fixes&amp;quot;, and some don&amp;#39;t work on all systems.&amp;#160; like mine.&amp;#160; if you have xp home, only hacks are available.&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;and before any linux weenies start getting all holier than thou over this shit, &lt;em&gt;those&lt;/em&gt; installation processes aren&amp;#39;t anything to brag about either.&amp;#160; seems the only choice we have these days is between a dictatorship or complete anarchy.&lt;/p&gt;  &lt;p&gt;there needs to be a &amp;quot;software professionals anonymous&amp;quot; (using the term &amp;quot;professionals&amp;quot; very loosely).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5249" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>moving right along</title><link>http://blogs.no-ip.org/fractalnavel/moving-right-along.aspx</link><pubDate>Tue, 15 Sep 2009 15:57:43 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5185</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5185</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5185</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/moving-right-along.aspx#comments</comments><description>&lt;p&gt;what the hell happened to ...&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;... &amp;#39;summer&amp;#39; ?&amp;#160; not just this one, but the season of &amp;#39;hot&amp;#39;.&amp;#160; and what happened to &amp;#39;Summer&amp;#39;, in a personal or cultural sense ?&amp;#160; aging is part of it.&amp;#160; global realities are also. &lt;/li&gt;    &lt;li&gt;... google app engine: maybe they felt that cutting free quotas by 90% earlier this summer wasn&amp;#39;t generating enough revenue.&amp;#160; recently there was a &lt;a title="google app engine datastore anomaly: day one" href="http://code.google.com/status/appengine/detail/datastore/2009/09/02#ae-trust-detail-datastore-update-error_rate" target="_blank"&gt;datastore operation &amp;#39;anomaly&amp;#39;&lt;/a&gt; that &lt;a title="google app engine datastore anomaly: day two" href="http://code.google.com/status/appengine/detail/datastore/2009/09/03#ae-trust-detail-datastore-update-error_rate" target="_blank"&gt;lasted twenty-two hours&lt;/a&gt;, at the beginning of which the cpu costs associated with certain common data api calls &lt;em&gt;more than tripled&lt;/em&gt;.&amp;#160; and it has remained that way, without explanation, despite &lt;a title="Dramatic increase in api cpu usage." href="http://groups.google.com/group/google-appengine/browse_thread/thread/bbcf268e9df1d43f/92069fcbf9d1a623" target="_blank"&gt;numerous inquiries by gae developers&lt;/a&gt;.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;gave up on yet another forum.&amp;#160; most people don&amp;#39;t seem to really want help, they&amp;#39;re there for some other reason.&amp;#160; a lot of people seem to &lt;em&gt;need&lt;/em&gt; help, though.&amp;#160; i am not your online therapist.&amp;#160; anyway, one to go.&amp;#160; and maybe the game one, too.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;i was reading a story of poul anderson&amp;#39;s the other day in &lt;a title="The Best From Fantasy And Science Fiction Sixth Series (1957)" href="http://www.archive.org/details/bestfromfantasya008838mbp" target="_blank"&gt;a largely forgettable and forgotten scifi anthology&lt;/a&gt; i found at the internet archive.&amp;#160; It (the anthology) is still decent reading, containing a few classics, and now carries a bit of historical interest as well, in terms of its contemporary contextual cultural referents.&lt;/p&gt;  &lt;p&gt;anderson&amp;#39;s story &amp;quot;&lt;a title="read online" href="http://manybooks.net/pages/andersonpwother08Man_Who_Came_Early/0.html" target="_blank"&gt;the man who came early&lt;/a&gt;&amp;quot; is about a modern u.s. soldier stationed in reykjavic who is mysteriously thrown 1000 years into the past.&amp;#160; the story proceeds from the perspective of the icelandic chieftain that finds him.&amp;#160; vintage anderson work, in the historical detail, mood and characterization.&lt;/p&gt;  &lt;p&gt;and it&amp;#39;s - &lt;a title="&amp;quot;the man who came early&amp;quot; at wikipedia" href="http://en.wikipedia.org/wiki/The_Man_Who_Came_Early" target="_blank"&gt;depressing&lt;/a&gt;.&amp;#160; the soldier&amp;#39;s modern skills, even those he &lt;em&gt;thought&lt;/em&gt; were archaic, are useless.&amp;#160; not too long ago i was reading a thread on some forum somewhere about &amp;quot;what would you do if you were thrown a thousand years into the past&amp;quot;.&amp;#160; and in among the usual silliness, there were a number of folk who realized, yes, most modern humans would be largely useless in that situation, and they would be doing well if they could just keep their mouths shut, avoid getting immediately killed, and survive through performing hard labor in exchange for the charity of necessities provided by a contemporary inhabitant.&amp;#160; there may be some extraordinary individuals who could thrive in that context; seems doubtful.&lt;/p&gt;  &lt;p&gt;and no, my thoughts don&amp;#39;t stop there.&amp;#160; but this &lt;em&gt;post&lt;/em&gt; does.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5185" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category></item><item><title>feeds: not an information promiscuant (huh?)</title><link>http://blogs.no-ip.org/fractalnavel/feeds-not-an-information-promiscuant-huh.aspx</link><pubDate>Fri, 11 Sep 2009 23:27:16 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5177</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5177</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5177</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/feeds-not-an-information-promiscuant-huh.aspx#comments</comments><description>&lt;p&gt;rss: i don&amp;#39;t subscribe to much, and most aren&amp;#39;t very long term, being related to transient interests, but here&amp;#39;s a few that i find useful in various ways.&amp;#160; copy / save / import the opml in your favorite feed reader, if you care to.&lt;/p&gt;  &lt;div class="divcode"&gt;   &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;opml &lt;span class="TPkeyword1"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.1&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;head&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;title&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;fractalnavel feeds&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;title&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;head&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;body&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;ACME Updates&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://www.acme.com/updates/updates_rss2.xml&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;AWS  Product Advertising API&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://developer.amazonwebservices.com/connect/rss/rssmessages.jspa?forumID=9&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Backreaction&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://backreaction.blogspot.com/feeds/posts/default?alt=rss&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;ClubOrlov&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://cluborlov.blogspot.com/feeds/posts/default?alt=rss&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Google Analytics Blog&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://analytics.blogspot.com/feeds/posts/default&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Google App Engine Blog&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://feeds.feedburner.com/GoogleAppEngineBlog&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Google App Engine Downtime Notify Google Group&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://groups.google.com/group/google-appengine-downtime-notify/feed/rss_v2_0_msgs.xml&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Google App Engine Google Group&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://groups.google.com/group/google-appengine/feed/rss_v2_0_msgs.xml?num=50&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Michigan Tech University Jobs&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://sowacs.no-ip.com/rss/scraped_rss.aspx?src=mtujobs&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;NCZOnline&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://feedproxy.google.com/nczonline&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Peter&amp;#39;s Blog&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://peter.michaux.ca/feed/atom.xml&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Planet OLPC&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://planet.laptop.org/atom.xml&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;Predictably Irrational&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://www.predictablyirrational.com/?feed=rss2&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;The Bottom Feeder&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://jeff-vogel.blogspot.com/feeds/posts/default?alt=rss&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;The Way the Future Blogs&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://www.thewaythefutureblogs.com/feed/&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;xkcd.com&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://xkcd.com/rss.xml&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;outline text=&lt;span class="TPstring"&gt;&amp;quot;_The Alternate View_ columns of John G. Cramer&amp;quot; &lt;/span&gt;xmlUrl=&lt;span class="TPstring"&gt;&amp;quot;http://sowacs.no-ip.com/rss/scraped_rss.aspx?src=altview&amp;quot; &lt;/span&gt;type=&lt;span class="TPstring"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;body&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;opml&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;i have cleaned a few out that are only useful to me administratively.&lt;/p&gt;

&lt;p&gt;no, really - that&amp;#39;s pretty much it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5177" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/feeds/default.aspx">feeds</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>aol: well, at least the _lawyers_ aren't going hungry ...</title><link>http://blogs.no-ip.org/fractalnavel/aol-well-at-least-the-lawyers-aren-t-going-hungry.aspx</link><pubDate>Mon, 07 Sep 2009 11:20:00 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5166</guid><dc:creator>fractalnavel</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5166</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5166</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/aol-well-at-least-the-lawyers-aren-t-going-hungry.aspx#comments</comments><description>&lt;p&gt;a couple of years ago &lt;a href="http://blogs.no-ip.org/fractalnavel/aol-stupidness-still-yet-again.aspx" title="aol stupidness: still yet again"&gt;i noticed aol appending advertising to my email&lt;/a&gt;, and i sent them a note, and got back nonsense.&lt;/p&gt;
&lt;p&gt;now, we get more nonsense in the form of what any reasonable person would have to assume is a pathetic joke - &lt;a href="http://blogs.no-ip.org/fractalnavel/pages/aol-seriously-charity.aspx" title="aol: seriously? charity?"&gt;a class action lawsuit over that practice&lt;/a&gt;.&amp;nbsp; and here&amp;#39;s how the proposed settlement works out:&lt;/p&gt;
&lt;blockquote&gt;&amp;quot;... &lt;span style="font-family:Arial, Helvetica, sans-serif;"&gt;AOL has agreed to pay up to $250,000 in fees and costs, in addition to the $103,000 in charitable donations, and the costs of administering the Settlement, including the notice process.&lt;/span&gt; ...&amp;quot;&lt;/blockquote&gt;
&lt;p&gt;are you fucking &lt;em&gt;kidding&lt;/em&gt; me ?!&amp;nbsp; and it gets better:&lt;/p&gt;
&lt;blockquote&gt;&amp;quot;... &lt;span style="font-family:Arial, Helvetica, sans-serif;"&gt;The Settlement provides that all current AOL Members will be provided e-mail notice of the footers and their ability to discontinue the footers via &lt;strong&gt;&lt;a target="_blank" href="http://footer.aol.com/"&gt;AOL Keyword: Footer&lt;/a&gt;&lt;/strong&gt; and &lt;a target="_blank" href="http://footer.aol.com/"&gt;&lt;strong&gt;http://footer.aol.com&lt;/strong&gt;&lt;/a&gt;, and that, if AOL continues to append footers to its Members&amp;rsquo; e-mails, such notice will be provided both to all new customers upon their registration of an AOL account and to all current AOL Members on a regular, periodic basis (every six months for two years).&lt;/span&gt; ...&amp;quot;&lt;/blockquote&gt;
&lt;p&gt;so here&amp;#39;s the plan: aol can continue this practice - &lt;em&gt;as long as they spam us even more !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;you just know these jackasses are having a good laugh over this one.&amp;nbsp; this shit isn&amp;#39;t even pocket change to them.&lt;/p&gt;
&lt;p&gt;i went to fight a speeding ticket once. &amp;nbsp;the same sort of mindtwisting bullshit ensued.&amp;nbsp; the cop said i was doing 25 in a 15 zone, for ten over the limit.&amp;nbsp; i said no, the limit was 25 there.&amp;nbsp; the judge said well then, you must have been doing 35, since&amp;nbsp;the cop said ten over.&amp;nbsp; i shut up &amp;amp; stood there. **&lt;/p&gt;
&lt;p&gt;assholes.&lt;/p&gt;
&lt;p&gt;------------------&lt;/p&gt;
&lt;p&gt;&lt;em&gt;** or&amp;nbsp;did the cop say&amp;nbsp;35 in a 25, i said i was going 25, and the judge said then the speed limit was 15.&amp;nbsp; whatever it was, my head swam as reality shifted.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5166" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category></item><item><title>i made coffee today !!</title><link>http://blogs.no-ip.org/fractalnavel/i-made-coffee-today.aspx</link><pubDate>Sun, 06 Sep 2009 16:44:00 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5162</guid><dc:creator>fractalnavel</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5162</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5162</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/i-made-coffee-today.aspx#comments</comments><description>&lt;p&gt;and if you think that&amp;#39;s trivial, you clearly hadn&amp;#39;t seen my kitchen recently.&amp;nbsp; all it took was a few hours of cleaning sinks, stove tops, counters, dishes, microwave, and stuff, and things, ... so now there&amp;#39;s a (mostly) clear floor, and clear counters.&amp;nbsp; still a &lt;em&gt;lot&lt;/em&gt; more to do here.&amp;nbsp; step by step, inch by inch ...&lt;/p&gt;
&lt;p&gt;motivation ?&amp;nbsp; i got a bag of white castle coffee on my last trip there.&amp;nbsp; dammit, i wanted coffee, and i was going to &lt;em&gt;have&lt;/em&gt; coffee - even if it meant cleaning ;-)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;dead &amp;amp; dysfunctional thing &lt;span style="text-decoration:line-through;"&gt;update&lt;/span&gt; rambling: &lt;/p&gt;
&lt;p&gt;i found the critter in the garage.&amp;nbsp; the smell had stopped a week or so ago.&amp;nbsp; poor little chipmunk.&amp;nbsp; i need to put a critter door in the garage so any inadvertent captives have a way out.&amp;nbsp; that, or make sure there&amp;#39;s always&amp;nbsp;several days&amp;nbsp;supply of water, &amp;amp; perhaps food.&amp;nbsp; i mean, put yourself in the trapped critter&amp;#39;s place.&amp;nbsp; jesus.&lt;/p&gt;
&lt;p&gt;new router: the expedient thing to do was to cancel the &amp;quot;home wireless networking&amp;quot; package i had subscribed to, and just get the plain ol&amp;#39; cable modem from the store, since otherwise i&amp;#39;d have had to wait for a delivery - they don&amp;#39;t stock the one that i had.&amp;nbsp; it was actually very convenient - all in one modem / router / wireless access point.&amp;nbsp; the isp would upgrade the firmware remotely every now &amp;amp; then, which was interesting, because my original 802.11b turned into .11g at some point.&lt;/p&gt;
&lt;p&gt;now, i wasn&amp;#39;t thinking this thing through.&amp;nbsp; for some reason when i went to get the modem, i thought it would be like my old one, only no wireless - i.e., it would come with firewall &amp;amp; router.&amp;nbsp; and then when i picked up the &amp;quot;wireless router&amp;quot; across the way, i thought it was only going to be a wireless access point.&amp;nbsp; lucky for braindead me, those two mistakes cancelled out nicely.&amp;nbsp; the modem is a plain old modem, and the router is firewall plus five port switch plus wireless (linksys wrt160n, for the geek-curious).&amp;nbsp; which actually put me a bit ahead of the game, as i could retire the plain old switch i had been using.&lt;/p&gt;
&lt;p&gt;the nice thing about the old setup was that the only unprotected line was the coax coming into the house.&amp;nbsp; now, the ethernet port out of the modem is also unprotected, which is possible to inadevertently hook up to with an unprotected machine.&amp;nbsp; the other thing i liked about the old device was the dummy lights - more informative than the net total of what i have now.&amp;nbsp; and yes, i used to look over at them quite frequently; it&amp;#39;s a reality check along the lines of &amp;quot;ok, nothing is supposed to be accessing the internet&amp;nbsp;right now&amp;nbsp;- so what the hell is &lt;em&gt;that&lt;/em&gt; blinking for ?&amp;quot;.&amp;nbsp; etc.&lt;/p&gt;
&lt;p&gt;pain in the ass reconfiguring again.&amp;nbsp; i duplicated my prior network, which is more work, but this way the individual devices didn&amp;#39;t need changing.&amp;nbsp; the xo kept hooking up its wireless mesh networking to the .11n service, which was interesting, but not useful.&amp;nbsp; and then there was the most pathetic hunk of shit software that i&amp;#39;ve seen in a long time, for its size: that damn auto-setup cvrap that comes with the router - over a gb of sheer uselessness.&lt;/p&gt;
&lt;p&gt;on the bright side, i can make better use of opendns now.&amp;nbsp; i still need to run my own dns server since i have a number of internal aliases in use.&amp;nbsp; although -&amp;nbsp;it seems that could be done on the router... hmm.&lt;/p&gt;
&lt;p&gt;when i got the orginal &amp;quot;home wireless network&amp;quot; package, they also provided a&amp;nbsp;.11b usb &amp;amp; pci card.&amp;nbsp; i never noticed, but i guess those were outright purchases, since apparently they weren&amp;#39;t recorded as leased equipment or anything.&amp;nbsp; not that those things are all that useful now, but in case i (ever) have visitors with laptops &amp;amp; no wireless, those could come in handy.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;oh, what else:&lt;/p&gt;
&lt;p&gt;was surfing around in the scifi stuff, landed on &lt;a target="_blank" href="http://www.scalzi.com"&gt;scalzi&amp;#39;s site&lt;/a&gt; for a while.&amp;nbsp; remember katrina ?&amp;nbsp; yeah, how soon we forget.&amp;nbsp; well, there was a set of &lt;em&gt;long&lt;/em&gt; comment threads on &amp;quot;being poor is ...&amp;quot;, with a number of interesting links to other - opinions.&amp;nbsp; something to be absorbed.&amp;nbsp; and more personal motivation.&lt;/p&gt;
&lt;p&gt;slowly weaning myself from the last couple of tech forums; these i&amp;#39;ve been frequenting since may.&amp;nbsp; i had already called it quits on a couple of others that i had hung around on&amp;nbsp;for quite some time.&amp;nbsp; trying to put this summer&amp;#39;s project(s?) on auto / unattended mode.&amp;nbsp; this will leave me with one ocassional recreational forum, which i enjoy, actually.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;mmm, coffee - second cup ;-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5162" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/katrina/default.aspx">katrina</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/xo/default.aspx">xo</category></item><item><title>electronics?  _what_ electronics?</title><link>http://blogs.no-ip.org/fractalnavel/electronics-what-electronics.aspx</link><pubDate>Fri, 28 Aug 2009 13:21:35 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5145</guid><dc:creator>fractalnavel</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5145</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5145</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/electronics-what-electronics.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;from: the depths of the dust bunny graveyard in the land of dysfunctional devices     &lt;br /&gt;to: perhaps not-so-interested parties      &lt;br /&gt;via: dial-up (woohoo! we&amp;#39;re blazin&amp;#39; now!)      &lt;br /&gt;subject: update on internal landscaping; circle of life; and, wtf?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;message follows.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;not sure what&amp;#39;s with roadrunner lately.&amp;#160; for the last several months it seems every little rainstrom drops my cable modem connection.&amp;#160; for years this was only a rare event.&amp;#160; then yesterday evening, after some storms passed through, same thing.&amp;#160; the poor little modem went through it&amp;#39;s usual frantic gyrations to call home.&amp;#160; except &lt;em&gt;this&lt;/em&gt; time, after about an hour of trying, poof - all lights went to black.&amp;#160; trying power cycling, only the ethernet indicator light comes on for a few seconds, then goes away.&amp;#160; no power light.&amp;#160; modem is hot, so is the power supply.&amp;#160; i&amp;#39;m thinking, dead supply.&amp;#160; well, ok, there&amp;#39;s something to be said for consistency - now &lt;em&gt;everything&lt;/em&gt; is useless in this place - tv, self, modem, washer, dryer, ...&amp;#160; whatever it is better not be contagious. on second thought - too late.&lt;/p&gt;  &lt;p&gt;self has been doing a little bit better, though.&amp;#160; removed six thirty+ gallon trash cans of beer bottles over the last week.&amp;#160; plus two little recycle bins full. sad that they won&amp;#39;t take the contents of the trash cans for recycling too.&amp;#160; it would take months to get rid of all the bottles in that puny little bin.&amp;#160; it cowered in the corner when it saw the task that lay ahead, so the trash cans and i took pity on it.&amp;#160; when will they make recycle bins for dedicated beer drinkers / bottle hoarders ?&amp;#160; whaddya mean, &amp;quot;no demand&amp;quot; ?&lt;/p&gt;  &lt;p&gt;found seven mini-kegs in the rubble. those are gone now too.&lt;/p&gt;  &lt;p&gt;the newly freed dust bunnies have been attacking my toes.&amp;#160; i mean, perhaps they are just trying to show their gratitude for their new found liberty, providing nice, soft, gritty instant felt slippers as they tend to do, but i find this unnecessary in the summer.&amp;#160; i have had to walk outside fairly frequently to clean my feet.&amp;#160; glad it had rained; no telling what the neighbors would have thought had they seen the fuzzy footprints on my driveway.&lt;/p&gt;  &lt;p&gt;anyway, back to the dead modem - remember the dead modem ?&amp;#160; well, i called support after laughing at their online live chat feature sputter incoherently as it tried to load over a dial-up connection.&amp;#160; the nice young lady on the phone actually seemed to know what she was doing, and - biggest surprise, come to think of it - she was a local person.&amp;#160; either that, or they&amp;#39;ve started giving excellent american regional accent &amp;amp; micro-geography lessons overseas.&amp;#160; after giving me the location of their nearest store where i could trade in the broken modem for a working one, she mentions that she was there the other day, and that the store is between a maternity shop and a victoria&amp;#39;s secret.&amp;#160; i found this hilarious, and she didn&amp;#39;t get why.&amp;#160; not really something you explain to strangers over the phone.&amp;#160; clearly a young&amp;#39;un, this one.&amp;#160; she had called my modem &amp;quot;old&amp;quot; at four years (i still think it&amp;#39;s five), and she had not seen this type often before.&amp;#160; her youth was not shown so much by her lack of familiarity with somewhat aged equipment (heh), but by the lack of temporal context exhibited in her comments.&lt;/p&gt;  &lt;p&gt;continuing on through the piles just a bit, i managed to open some birthday &amp;amp; christmas cards &amp;amp; gifts from the last year or two.&amp;#160; thank god there was nothing perishable that would have evolved into something alive. i had my trusty letter opener ready, though - just in case. oh - and thanks, everyone ;-)&lt;/p&gt;  &lt;p&gt;speaking of life, something seems to have died in my garage, at least if one can go by smells on this sort of thing.&amp;#160; damned if i can find it though, and that&amp;#39;s the cleanest space here.&amp;#160; well, whatever it is, it will eventually mummify and stop stinking.&amp;#160; like last time...&lt;/p&gt;  &lt;p&gt;at first i thought maybe jeep was, you know, having - issues - so i pulled out all the carpets and scrubbed those for the first time in years, then took him down to the power wash for a bit of attention: engine, interior, underbelly, everything.&amp;#160; strange, though, how that mummified bat stuck to the middle of the radiator just won&amp;#39;t come off, even under xxx&amp;#160; psi of water pressure. (yeah, most vehicles get insects; jeep gets bats.)&lt;/p&gt;  &lt;p&gt;but no, whatever the smell is still remained.&amp;#160; i&amp;#39;m afraid to look &lt;em&gt;too&lt;/em&gt; hard, though.&amp;#160; a few weeks ago the neighbor was worried about her missing cat...&lt;/p&gt;  &lt;p&gt;well, that&amp;#39;s about it for now.&amp;#160; still a lot to do.&amp;#160; time to go pick up that new modem.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;em&gt;end of message.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5145" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/humor_3F00_/default.aspx">humor?</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/dear+diary/default.aspx">dear diary</category></item><item><title>feedhub spyware ? - NOT</title><link>http://blogs.no-ip.org/fractalnavel/feedhub-spyware-NOT.aspx</link><pubDate>Wed, 26 Aug 2009 14:36:00 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5143</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5143</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5143</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/feedhub-spyware-NOT.aspx#comments</comments><description>&lt;blockquote style="border:1px solid #f0f0fa;padding:10px;background-color:#fafafc;"&gt;&lt;strong&gt;update&lt;/strong&gt;:
&lt;p&gt;all right, this was a big &lt;em&gt;doh!&lt;/em&gt; moment.&amp;nbsp; while puzzling over this particular item i had forgotten about my published browsing history feed, which normally i keep pretty constantly aware of.&amp;nbsp;&amp;nbsp;i was just not making the connection for some reason.&amp;nbsp; so it&amp;#39;s not so much that something here is calling feedhub, it&amp;#39;s just feedhub having a reference to that history feed - which, through a &lt;a target="_blank" href="http://community.naa.org/blogs/opportunopoly/archive/2008/11/16/you-got-chocolate-on-my-peanut-butter.aspx"&gt;feedhub - newsgator connection&lt;/a&gt;, i may have inadvertently created myself.&lt;/p&gt;
&lt;p&gt;how did i discover this, you may ask ?&amp;nbsp; well, it wasn&amp;#39;t me - someone at feedhub is apparently suscribing to one or more blog search feeds for their product (i&amp;#39;m guessing), and my post showed up, and they promptly sent me an email explaining the above.&amp;nbsp;&amp;nbsp;i needed to have considered that someone (me, or anyone) could have been using feedhub with that feed.&lt;/p&gt;
&lt;p&gt;so, out of fairness to feedhub, and the desire to spread humor even if it&amp;#39;s ay my own expense, i have updated this post.&amp;nbsp; so there.&lt;/p&gt;
caveat moron. &lt;/blockquote&gt;
&lt;p&gt;strangest thing.&amp;nbsp; i&amp;#39;ve been running a new website this summer on google app engine, providing a niche webservice.&amp;nbsp; it has been seeing significant usage, so i&amp;#39;ve been keeping a close eye on things in case the gae free quotas are approached.&lt;/p&gt;
&lt;p&gt;at times when looking at one of the server log analyzer reports, i notice a particular user agent: &amp;quot;FeedHub MetaDataFetcher&amp;quot;.&amp;nbsp; only sporadic access by this, and very low volume, it shows up under unknowns.&amp;nbsp; i haven&amp;#39;t bothered to categorize it as bot access, or a user of the service yet, since i haven&amp;#39;t been able to associate it with a particular account&amp;#39;s behavior.&lt;/p&gt;
&lt;p&gt;and then, strangely, i saw an address showing up on another report, one that only appears on a page that only i personally should have access to, on an https only page, and only when i&amp;#39;m logged in [only, for good measure].&amp;nbsp; and no, it wasn&amp;#39;t me using it - it was the feedhub bot.&amp;nbsp; what the hell ?&lt;/p&gt;
&lt;p&gt;i had used the link once, five hours before, while testing, from my primary machine.&amp;nbsp; so how did feedhub get hold of it ?&amp;nbsp; that page can&amp;#39;t be accessed by bots - &lt;em&gt;externally&lt;/em&gt;.&amp;nbsp; the clincher is that i found the feedhub bot accessing another similar link - one which i had only created manually &amp;amp; pasted in the browser address bar.&lt;/p&gt;
&lt;p&gt;so something must be on my own system - and i don&amp;#39;t mess with shady apps on this box.&amp;nbsp; i try and be very careful about what i install, where i browse, and i always have (that damn resource sucking) anti-virus &amp;amp; firewall software running.&amp;nbsp; ok, it&amp;#39;s been a while since i&amp;#39;ve run specific anti-spyware software, but the completely up to date version of av that i&amp;#39;m running is supposed to take care of that too.&lt;/p&gt;
&lt;p&gt;a brief search around the web reveals no mentions of this sort of feedhub behavior; it seems not to be associated with malware in any way.&amp;nbsp; but i&amp;#39;ve never used their rss aggregating product.&amp;nbsp; the only rss software i&amp;#39;ve used on this box &lt;span style="text-decoration:line-through;"&gt;is&lt;/span&gt; was newsgator, which i&amp;#39;ve long since stopped running, and windows live mail.&amp;nbsp; and then there&amp;#39;s that kludgey msfeedsync process that runs as part of ie8 &amp;amp; integrates with live mail.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;but there&amp;#39;s no particular reason this situation would necessarily be associated with an rss reader (although it seems most likely).&amp;nbsp; checking browser add-ins - google toolbar is most notable, and a few bookmarklet scripts - nothing looks remotely suspicious.&lt;/p&gt;
&lt;p&gt;something pretty clearly is calling back to feedhub when i access links to xml files, and then the feedhub bot goes &amp;amp; crawls them.&amp;nbsp; i only noticed when the link in question happened to be on my own site.&amp;nbsp; maybe i can catch this with some sort of netmon tool.&amp;nbsp; kind of a bitch to do, and i&amp;#39;m only making assumptions about its behavior, which, if wrong, will mean i don&amp;#39;t even know where to start looking.&lt;/p&gt;
&lt;p&gt;so: how long has this been going on, and why, and how can i stop it ?&amp;nbsp; and what &lt;em&gt;else&lt;/em&gt; might be happening that i don&amp;#39;t know about ?&lt;/p&gt;
&lt;p&gt;damned unknown unknowns.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5143" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/humor_3F00_/default.aspx">humor?</category></item><item><title>and this week's "wtf?!" award goes to - yahoo!</title><link>http://blogs.no-ip.org/fractalnavel/and-this-week-s-quot-wtf-quot-award-goes-to-yahoo.aspx</link><pubDate>Fri, 15 May 2009 20:54:10 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:5022</guid><dc:creator>fractalnavel</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=5022</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=5022</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/and-this-week-s-quot-wtf-quot-award-goes-to-yahoo.aspx#comments</comments><description>&lt;p&gt;there&amp;#39;s someone i&amp;#39;m interacting with that i want to (continue to) use my fractalnavel identity with, and i remembered i had a yahoo account.&amp;#160; so i send myself a test message there - and find the following:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel.metablogapi/2311.image_5F00_3.png" width="564" height="467" /&gt; &lt;/p&gt;  &lt;p&gt;well, surprise, surprise...&amp;#160; &amp;quot;mail plus&amp;quot;, eh ?&amp;#160; you betcha there&amp;#39;s money involved:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel.metablogapi/0247.image_5F00_6.png" width="465" height="372" /&gt; &lt;/p&gt;  &lt;p&gt;wasn&amp;#39;t yahoo mail another one of those full service, free account deals ?&amp;#160; well, if it was, it sure isn&amp;#39;t anymore.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;we&amp;#39;re moving backwards, folks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=5022" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>tech notes: i, for one, do _not_ welcome telligent's new vc overlords</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-i-for-one-do-not-welcome-telligent-s-new-vc-overlords.aspx</link><pubDate>Thu, 30 Apr 2009 21:33:00 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4991</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4991</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4991</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-i-for-one-do-not-welcome-telligent-s-new-vc-overlords.aspx#comments</comments><description>&lt;p&gt;well, only sorta new - but the effects of &lt;a target="_blank" href="http://telligent.com/news-and-events/news/intel-capital-to-acquire-20-million-stake-in-telligent/"&gt;intel&amp;#39;s $20M infusion of capital to telligent&lt;/a&gt; late last summer have been slowly becoming evident over recent months.&lt;/p&gt;
&lt;p&gt;never mind the immediate spate of top-heavy hiring done last fall, and the &lt;a target="_blank" href="http://telligent.com/blogs/corporate/telligent-reduction-in-force/"&gt;subsequent layoffs&lt;/a&gt; (no, a connection? ya think?), and the explosion of market-speak bloggers there.&amp;nbsp; it&amp;#39;s what&amp;#39;s been happening on &lt;a target="_blank" href="http://communityserver.com"&gt;communityserver.com&lt;/a&gt; and the forums there that&amp;#39;s been interesting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the price lists went missing.&amp;nbsp; instead, it&amp;#39;s &amp;quot;call us for a price&amp;quot;.&amp;nbsp; that always smells fishy to me.&amp;nbsp; unfair prices adjustments ?&amp;nbsp; forced relationships with the sales department ?&amp;nbsp; look, folks, people just want to have something they can plan &amp;amp; compare with.&lt;/li&gt;
&lt;li&gt;there are a number of features being removed from the 2009 version, and others being locked into the top-tiered pricing.&amp;nbsp; as in, how can i, as a developer or IT manager, evaluate locked down features ?&lt;/li&gt;
&lt;li&gt;speaking of the 2009 version, the last few years&amp;#39; major version releases have occurred in mid april.&amp;nbsp; this time around, it&amp;#39;s vaguely in the 3rd quarter.&amp;nbsp; maybe.&amp;nbsp; no one really says any more when asked.&lt;/li&gt;
&lt;li&gt;and the future product/feature roadmap has gone missing as well.&lt;/li&gt;
&lt;li&gt;the last SP release was missing the SDK for a few weeks.&amp;nbsp; as in, there seems to be a threat to the shared source promise that was made when they founded their company on open source software.&lt;/li&gt;
&lt;li&gt;the number of bugs seems to be up &amp;amp; multiplying - and often not being recognized, or fixed.&amp;nbsp; and there is too frequent regression.&lt;/li&gt;
&lt;li&gt;sometimes downloadable versions are replaced with new builds, but without any notice.&lt;/li&gt;
&lt;li&gt;and finally, just the nature of the forums themselves have changed - although that&amp;#39;s not entirely under telligent&amp;#39;s direct control - huge amount of traffic, lots of people not looking at prior posts, asking things over &amp;amp; over, other &amp;quot;duh&amp;quot; type questions.&amp;nbsp; yeah, that&amp;#39;s their new customer base, and they&amp;#39;re going to have to adjust to it - clearly, the current product is not a good match.&amp;nbsp; ouch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;just a few observations there, various colored flags.&amp;nbsp; you can dig up the relevant forum posts yourself if you want.&amp;nbsp; jon wrote a bit about &lt;a target="_blank" href="http://jdhunt.net/tech/not-quite-dead-yet/"&gt;the graffiti troubles&lt;/a&gt; last week.&lt;/p&gt;
&lt;p&gt;this is all very sad, but not unexpected.&amp;nbsp; i was hoping for a few more good years out of them before this sort of shit started.&amp;nbsp; now, it&amp;#39;s going to be significantly harder to convince customers of the value of using their products.&amp;nbsp; used to be a no-brainer.&amp;nbsp; and honestly, at this point, i&amp;#39;m not even sure what i&amp;#39;d be convincing them of - no one knows, and &lt;a target="_blank" href="http://telligent.com"&gt;telligent&lt;/a&gt;&amp;#39;s not telling.&lt;/p&gt;
&lt;p&gt;i was about to add that at least the third-party developer community is alive &amp;amp; well, but that&amp;#39;s not really the case.&amp;nbsp; most add-ons developed for CS2.1 and 2007 have not been explicitly updated for CS2008 or 2008.5.&amp;nbsp; the motivation seems to have dropped off.&amp;nbsp; luckily, many of these still work as is, or with minor mods, but still, this is another flag.&amp;nbsp; and &lt;em&gt;new&lt;/em&gt; add-ons ?&amp;nbsp; i really haven&amp;#39;t seen any.&amp;nbsp; just the occasional patch for broken out-of-box features, but that&amp;#39;s hardly the same thing.&lt;/p&gt;
&lt;p&gt;it may turn out that CS2008.5 was the high water mark for this product.&lt;/p&gt;
&lt;p&gt;shit.&lt;/p&gt;
&lt;p&gt;of course, this may all be coincidental, and perhaps &lt;a target="_blank" href="http://intel.com"&gt;intel&lt;/a&gt;&amp;#39;s involvement stemmed an even worse sequence of events.&amp;nbsp; maybe things are on the upswing.&amp;nbsp; only time will tell.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="spnNotation"&gt;update 2009.05.04:&lt;/p&gt;
&lt;p&gt;late update, yeah,&amp;nbsp;one important additional item kept&amp;nbsp;slipping my mind: there have been significant changes to the licensing terms, to which any new downloaders must agree prior to downloading (as in updates, sdk&amp;#39;s, etc.).&amp;nbsp; Now, there have been verbal assurances on the forums that the issues will be taken care of, but hey, that&amp;#39;s not in the contract, what do they think we are ?&lt;/p&gt;
&lt;p&gt;what&amp;#39;s changed ?&amp;nbsp; for one thing, a new requirement for annually renewing one&amp;#39;s license purchase (full price ?!), with the added requirement that if you don&amp;#39;t, you must stop using the software.&amp;nbsp; WTF ?!&amp;nbsp; that&amp;#39;s brand new.&amp;nbsp; the original license only needed to be purchased once, with a much cheaper optional annual software assurance / maintenace / support / whatever purchase that granted rights to free upgrades.&amp;nbsp; and in any case, once purchased, you cold run the software indefinitely.&lt;/p&gt;
&lt;p&gt;there are &lt;em&gt;supposed &lt;/em&gt;to be grandfathering provisions for old license terms, but they have yet to include those provisions in the new license.&lt;/p&gt;
&lt;p&gt;load of crap. when exactly was this thing taken commercial again ?&amp;nbsp; less than five years ago ?&amp;nbsp; promises promises.&amp;nbsp; the little guy is about to be given the boot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4991" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>tech notes: ie8 and the padded cell mentality</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-ie8-and-the-padded-cell-mentality.aspx</link><pubDate>Sat, 11 Apr 2009 20:52:06 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4949</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4949</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4949</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-ie8-and-the-padded-cell-mentality.aspx#comments</comments><description>&lt;p&gt;i like &lt;a href="http://tumblr.com" target="_blank"&gt;tumblr.com&lt;/a&gt; for it&amp;#39;s ease of rich media posting &amp;amp; viewing.&amp;#160; but since upgrading (&amp;quot;up&amp;quot;? really?) to ie8, a lot of the videos greet me with:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="ie8&amp;#39;s &amp;quot;clickjacking&amp;quot; defense" border="0" alt="ie8&amp;#39;s &amp;quot;clickjacking&amp;quot; defense" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel.metablogapi/3755.image_5F00_3.png" width="479" height="236" /&gt; &lt;/p&gt;  &lt;p&gt;talk about ruining the experience.&lt;/p&gt;  &lt;p&gt;apparently, this is a new &amp;quot;feature&amp;quot; in ie8.&amp;#160; it has introduced the &lt;code&gt;X-Frame-Options&lt;/code&gt; header that sites can choose to deliver.&amp;#160; supposedly &lt;a title="What&amp;#39;s New in Internet Explorer 8: Security and Privacy" href="http://msdn.microsoft.com/en-us/library/cc288472.aspx#_replace" target="_blank"&gt;this is to help protect me from internet bogeymen&lt;/a&gt;.&amp;#160; there&amp;#39;s a lot of this sort of thing in the new release.&amp;#160; is this &lt;em&gt;really&lt;/em&gt; what everyone wants when they bitched about ie not being as secure as other browsers ?&amp;#160; &lt;a href="http://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx" target="_blank"&gt;this appears to be unique to ie8&lt;/a&gt; at this time.&amp;#160; what cvrap.&amp;#160; &lt;a href="http://blogs.msdn.com/ie/archive/2009/02/02/birth-of-a-security-feature-clickjacking-defense.aspx" target="_blank"&gt;more on its origin&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;unlike some other &lt;strike&gt;obstruction&lt;/strike&gt; security features, there doesn&amp;#39;t appear to be any way to turn off this behavior, as far as i can tell.&lt;/p&gt;  &lt;p&gt;i suppose i could design my own proxy to strip these things before the browser gets them.&amp;#160; waste of time.&lt;/p&gt;  &lt;p&gt;another way of looking at this is that some of the website publishers are unnecessarily using that header.&amp;#160; i mean, what&amp;#39;s the threat in displaying a video ?&amp;#160; basically this thing has been co-opted as an annoyance-factor based type of content protection.&amp;#160; but only for ie8 ?&amp;#160; or are they just trying to piss off microsoft users in the ongoing tech religion wars ?&amp;#160; &lt;/p&gt;  &lt;p&gt;odd, too, that this thing is fairly new - and so many uses already ?&amp;#160; or is this protection being triggered by something unintended ?&amp;#160; as in - is there a bug ?&amp;#160; here goes, firing up fiddler...&lt;/p&gt;  &lt;p&gt;ok, first thing i notice is that this only affects tumblr&amp;#39;s dashboard view.&amp;#160; apparently they aren&amp;#39;t using frames for the actual tumble-blogs &amp;amp; posts.&amp;#160; huh.&amp;#160; nor are &lt;em&gt;all&lt;/em&gt; videos framed.&amp;#160; looks like tumblr is trying to do something here - the framed videos come from &amp;quot;safe.tumblr.com&amp;quot;. &lt;sup style="font-size:0.8em;"&gt;[1]&lt;/sup&gt;&lt;/p&gt;  &lt;p&gt;sure enough, the &lt;code&gt;X-Frame-Options: deny &lt;/code&gt;header is there.&amp;#160; clearly, something is going on here that i don&amp;#39;t understand.&amp;#160; what is tumblr doing with those videos, and why ? &lt;sup style="font-size:0.8em;"&gt;[2]&lt;/sup&gt;&lt;/p&gt;  &lt;p&gt;not much in the mood for more in-depth research at this point, just wanted to air a rant.&lt;/p&gt;  &lt;hr style="text-align:left;width:100px;" /&gt;  &lt;p&gt;&lt;sup style="font-size:0.8em;"&gt;[1]&lt;/sup&gt; btw, nice ascii art in the tumblr html source:&lt;/p&gt; &lt;code&gt;   &lt;pre style="color:green;font-size:0.8em;"&gt;&amp;lt;!--
    
        .                                  .o8       oooo               
      .o8                                 &amp;quot;888       `888               
    .o888oo oooo  oooo  ooo. .oo.  .oo.    888oooo.   888  oooo d8b     
      888   `888  `888  `888P&amp;quot;Y88bP&amp;quot;Y88b   d88&amp;#39; `88b  888  `888&amp;quot;&amp;quot;8P     
      888    888   888   888   888   888   888   888  888   888         
      888 .  888   888   888   888   888   888   888  888   888     .o. 
      &amp;quot;888&amp;quot;  `V88V&amp;quot;V8P&amp;#39; o888o o888o o888o  `Y8bod8P&amp;#39; o888o d888b    Y8P
 
--&amp;gt;&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;&lt;sup style="font-size:0.8em;"&gt;[2]&lt;/sup&gt; and why is wlw using &amp;quot;font&amp;quot; tags when i mess with the toolbar ?&amp;#160; i guess that&amp;#39;s correct, although &amp;quot;span&amp;quot; is more common now in later wysiwyg editors.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4949" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>tech notes: it’s enough to make you go “argghhhh!”</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-it-s-enough-to-make-you-go-argghhhh.aspx</link><pubDate>Wed, 01 Apr 2009 23:49:00 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4928</guid><dc:creator>fractalnavel</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4928</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4928</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-it-s-enough-to-make-you-go-argghhhh.aspx#comments</comments><description>&lt;p&gt;so for the last couple of years (yep, &lt;em&gt;years&lt;/em&gt;) there&amp;rsquo;s been this oddity about a customer&amp;rsquo;s website that wasn&amp;rsquo;t very serious, but was one of those eye scrunching, eyebrow raising sort of things.&amp;nbsp; the first report of something flaky was a design consultant who was alarmed: &amp;ldquo;did you know that your website is trying to load flash and adobe reader every time i visit?&amp;rdquo; she warned.&amp;nbsp; i was like, funny, but i never see that.&amp;nbsp; basically, we ignored them; they weren&amp;rsquo;t very good at their jobs anyway.&lt;/p&gt;
&lt;p&gt;but sometime later, i noticed the site started wanting to load adobe reader (just the runtime, not the gui) on every visit to every page (if it wasn&amp;rsquo;t already loaded).&amp;nbsp; but not in every environment, just in some of them, and just in ie.&amp;nbsp; i figured, whatever, maybe the designer gave us some funky images, most of the work was crap anyway.&amp;nbsp; again, it was just a shoulder shrug, not a big deal, no one else even seemed to notice anything.&lt;/p&gt;
&lt;p&gt;this has continued to occur ever since, and i was always a bit curious.&amp;nbsp; then today i decided to poke into it a bit closer.&amp;nbsp; the new installation of ie8 is more locked down than how i normally run (which is still far more restricted than most people), so up pops the &amp;ldquo;do you want to run this add-in?&amp;rdquo; bar when i visit the site, instead of just loading adobe reader in the background.&amp;nbsp; and hey &amp;ndash; it was some new information !&amp;nbsp; &lt;strong&gt;it was trying to load &lt;/strong&gt;&lt;a target="_blank" href="http://www.adobe.com/svg/viewer/install/"&gt;adobe svg viewer&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&amp;nbsp; but only on machines that had it installed.&amp;nbsp; this new bit of info motivated me to look closer.&amp;nbsp; turns out this is an obsolete plug-in, only likely to be around on older systems, or &amp;ndash; ha! &amp;ndash; designers&amp;rsquo; desktops, due to their frequent use of adobe tools.&amp;nbsp; pretty badly behaved too, to have a plug in need to load something as clunky as adobe reader.&lt;/p&gt;
&lt;p&gt;so what was causing it to try to load ?&amp;nbsp; poking around with fiddler &amp;amp; the ie dev toobar, i couldn&amp;rsquo;t spot anything in particular about the headers (whoever installed office server extensions on that server needs to be - something), the html, the css, the images (for a moment there, i even suspected the favicon), the scripts &amp;ndash; nothing.&amp;nbsp; or so i thought&amp;hellip;&lt;/p&gt;
&lt;p&gt;finally, disabling the scripts stopped the add-in request.&amp;nbsp; huh.&amp;nbsp; stepping through, i found the following: it&amp;rsquo;s an old &lt;a target="_blank" href="http://awstats.sourceforge.net/"&gt;awstats&lt;/a&gt; script, the one that&amp;rsquo;s supposed to track miscellaneous browser capabilities &amp;ndash; and which had never worked anyway.&amp;nbsp; it&amp;rsquo;s been there all along.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;what was it doing ?&amp;nbsp; ugly stuff:&lt;/p&gt;
&lt;div class="divcode"&gt;
&lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;TRKie &lt;span class="TPoperator"&gt;&amp;amp;&amp;amp; &lt;/span&gt;TRKwin&lt;span class="TPbracket"&gt;) {&lt;/span&gt;
    TRKshk &lt;span class="TPoperator"&gt;= &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;SWCtl.SWCtl.1&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    TRKsvg &lt;span class="TPoperator"&gt;= &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;Adobe.SVGCtl&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    TRKfla &lt;span class="TPoperator"&gt;= &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;ShockwaveFlash.ShockwaveFlash.1&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    TRKrp  &lt;span class="TPoperator"&gt;= &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;rmocx.RealPlayer G2 Control.1&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    TRKmov &lt;span class="TPoperator"&gt;= &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;Quicktime.Quicktime&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    TRKwma &lt;span class="TPoperator"&gt;= &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;wmplayer.ocx&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    TRKpdf &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;n&amp;#39;&lt;/span&gt;; TRKpdfver&lt;span class="TPoperator"&gt;=&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;&amp;#39;&lt;/span&gt;;
    &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;PDF.PdfCtrl.1&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;) &lt;/span&gt;&lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) { &lt;/span&gt;TRKpdf &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;; TRKpdfver&lt;span class="TPoperator"&gt;=&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;4&amp;#39;&lt;/span&gt;; &lt;span class="TPbracket"&gt;} &lt;/span&gt;&lt;span class="TPcomment"&gt;// Acrobat 4&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;PDF.PdfCtrl.5&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) &lt;/span&gt;&lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) { &lt;/span&gt;TRKpdf &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;; TRKpdfver&lt;span class="TPoperator"&gt;=&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;5&amp;#39;&lt;/span&gt;; &lt;span class="TPbracket"&gt;} &lt;/span&gt;&lt;span class="TPcomment"&gt;// Acrobat 5&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;PDF.PdfCtrl.6&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) &lt;/span&gt;&lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) { &lt;/span&gt;TRKpdf &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;; TRKpdfver&lt;span class="TPoperator"&gt;=&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;6&amp;#39;&lt;/span&gt;; &lt;span class="TPbracket"&gt;} &lt;/span&gt;&lt;span class="TPcomment"&gt;// Acrobat 6&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;AcroPDF.PDF.1&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) &lt;/span&gt;&lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;) { &lt;/span&gt;TRKpdf &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;; TRKpdfver&lt;span class="TPoperator"&gt;=&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;7&amp;#39;&lt;/span&gt;; &lt;span class="TPbracket"&gt;} &lt;/span&gt;&lt;span class="TPcomment"&gt;// Acrobat 7&lt;/span&gt;
&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;div class="divcode"&gt;
&lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;function &lt;/span&gt;awstats_detectIE&lt;span class="TPbracket"&gt;(&lt;/span&gt;TRKClassID&lt;span class="TPbracket"&gt;) {&lt;/span&gt;
    TRKresult &lt;span class="TPoperator"&gt;= &lt;/span&gt;false;  &lt;span class="TPcomment"&gt;// !!! Adding var in front of TRKresult break detection !!!&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;document&lt;/span&gt;.write&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;&amp;lt;SCR&amp;#39; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;IPT LANGUAGE=&amp;quot;VBScript&amp;quot;&amp;gt;\n on error resume next \n TRKresult = IsObject(CreateObject(&amp;quot;&amp;#39; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;TRKClassID &lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;&amp;quot;)) \n &amp;lt;/SCR&amp;#39; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;IPT&amp;gt;\n&amp;#39;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;TRKresult&lt;span class="TPbracket"&gt;) &lt;/span&gt;&lt;span class="TPkeyword1"&gt;return &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;;
    &lt;span class="TPkeyword1"&gt;else return &lt;/span&gt;&lt;span class="TPchar"&gt;&amp;#39;n&amp;#39;&lt;/span&gt;;
&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;good lord, it&amp;rsquo;s testing for plug-ins by attempting to instantiate them !&amp;nbsp; and with vbscript, no less !&lt;/p&gt;
&lt;p&gt;oh fer&amp;hellip; mystery solved.&lt;/p&gt;
&lt;p&gt;and shame on awstats.&lt;/p&gt;
&lt;p&gt;so, need to just scrap that script.&amp;nbsp; and personally, i&amp;rsquo;m uninstalling that plug-in wherever i find it.&amp;nbsp; have to use add/remove programs for that.&lt;/p&gt;
&lt;p&gt;there&amp;rsquo;s a lesson or two here.&amp;nbsp; hard to say what they are.&amp;nbsp; one of the reasons to do good work is so that people listen to you when you notice a problem.&amp;nbsp; but this was one of those oddball now you see it, now you don&amp;rsquo;t sort of issues, tough to nail down.&lt;/p&gt;
&lt;p&gt;well, guess what ?&amp;nbsp; NAILED.&lt;/p&gt;
&lt;p&gt;:-p&lt;/p&gt;
&lt;p&gt;&lt;span class="spnNote"&gt;update 2009.04.02:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="spnNote"&gt;&lt;/span&gt;i was wondering if merely removing that svg plugin would solve the adobe reader load - not sure why it seemed to, since the code says it won&amp;#39;t - and it doesn&amp;#39;t - sometimes.&amp;nbsp; i could have &lt;em&gt;sworn&lt;/em&gt; ...&amp;nbsp; i guess there&amp;#39;s more complexity to that than i thought.&amp;nbsp; like having old adobe artifacts on the system or something, because on a cleaner box, only the presence or absence of the svg plug-in seems to make a difference.&amp;nbsp; odd, since the reader progid (&lt;span class="TPchar"&gt;AcroPDF.PDF) hasn&amp;#39;t changed for a while.&amp;nbsp; maybe it&amp;#39;s just a difference in the behavior of the adobe&amp;nbsp;plug-in itself.&amp;nbsp; anyway, bottom line: that&amp;#39;s an undesirable feature sniffing technique.&amp;nbsp; and i should never have used something i didn&amp;#39;t look closely at.&amp;nbsp; but then - what about things like google anaalytics ?&amp;nbsp; no easy answers.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4928" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>tech notes: it's a wonder it doesn't remove _itself_</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-it-s-a-wonder-it-doesn-t-remove-itself.aspx</link><pubDate>Wed, 01 Apr 2009 20:18:09 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4927</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4927</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4927</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-it-s-a-wonder-it-doesn-t-remove-itself.aspx#comments</comments><description>&lt;p&gt;this is uncalled for:&lt;/p&gt;  &lt;p&gt;&lt;img title="ie8_install" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="455" alt="ie8_install" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel/ie8_5F00_install_5F00_3.png" width="609" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;if i wanted to check for malicious software, i wouldn&amp;#39;t be installing ie - i&amp;#39;d be running a    &lt;br /&gt;&amp;quot;malicious software checker&amp;quot;.&amp;#160; and it&amp;#39;s not even optional.&lt;/p&gt;  &lt;p&gt;seriously, are they &lt;em&gt;trying&lt;/em&gt; to discourage people from using their stuff, or what ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4927" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>tech notes: m-i-c, k-e-y, m-o-u-s-e</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-m-i-c-k-e-y-m-o-u-s-e.aspx</link><pubDate>Fri, 27 Mar 2009 19:49:36 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4913</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4913</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4913</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-m-i-c-k-e-y-m-o-u-s-e.aspx#comments</comments><description>&lt;p&gt;here we go again...&lt;/p&gt; &lt;dl&gt;&lt;dt&gt;craig:&lt;/dt&gt;&lt;dd&gt;&lt;font face="Helvetica"&gt;So you think the MVC pattern is something worth looking at closer? I read about it a few months ago in an MSDN magazine article. It did look pretty cool in that the view can be easily abstracted as a win form, web page or silverlight control since it&amp;#39;s communicates with the controller through events. Let me know what you think, I&amp;#39;m interested. ...&lt;/font&gt;       &lt;br /&gt;&amp;#160;&lt;/dd&gt;&lt;dt&gt;me:&lt;/dt&gt;&lt;dd&gt;     &lt;div&gt;&lt;font face="Century Gothic" color="#000080"&gt;&lt;font size="2"&gt;well, that chapter is a quick read, and it seems to be enough to give an accurate first impression.&amp;#160; now, the &lt;em&gt;quality&lt;/em&gt; of that first impression may vary.&amp;#160; the chapter&amp;#39;s at &lt;/font&gt;&lt;a href="http://tinyurl/aspnetmvc" target="_blank"&gt;http://tinyurl/aspnetmvc&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/u&gt;&lt;font size="2"&gt;, book name on front cover.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;the sample is for a web app only.&amp;#160; this is &lt;em&gt;asp.net&lt;/em&gt; mvc, not a general mvc framework.&amp;#160; not sure how this might map, if at all, to other presentation methods / runtime contexts.&amp;#160; maybe there&amp;#39;s more info in the more in-depth chapters of that book.&amp;#160; it&amp;#39;s not out yet, and that chapter is in pre-publication shape too, has some noticeable (minor) errors.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080"&gt;&lt;font size="2"&gt;the sample app is live at &lt;/font&gt;&lt;a href="http://nerddinner.com/" target="_blank"&gt;nerddinner.com&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/u&gt;&lt;font size="2"&gt;.&amp;#160; now, on my xo&amp;#39;s browser, it doesn&amp;#39;t come up well at all - missing all kinds of styles, the maps, much navigation, etc..&amp;#160; not sure what that&amp;#39;s all about, probably ajax related, on which this particular app seems to rely heavily in some areas.&amp;#160; or perhaps the xo&amp;#39;s browser is not jquery friendly, who knows.&amp;#160; not worth finding out.&amp;#160; but it&amp;#39;s a mozilla xulrunner / gecko core, so it&amp;#39;s interesting that this thing doesn&amp;#39;t work there.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;asp.net mvc v1.0 - we all know about ms first versions.&amp;#160; in the sample app, they hand craft data listing and paging logic.&amp;#160; now, it&amp;#39;s a lot easier than it would have been pre c# 2.0, but one would think that all the tools (e.g., server controls) that we&amp;#39;ve come to rely on in webforms would need functional representation in this framework as well.&amp;#160; anyone doing a not-small website will end up having to build or borrow a library of support functionality.&amp;#160; the existing server controls aren&amp;#39;t a good match for this framework.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;mvc itself - eh, ok, this is stuff we should at least be aware of.&amp;#160; the asp.net version seems not-ready-for-prime-time, but it certainly can support building small personal sites.&amp;#160; but as for the &amp;quot;pattern&amp;quot; - if I ponder my own code habits over the years, I can see that I kind of do a lot of these things in one form or another already.&amp;#160; it&amp;#39;s a less overt, often less clean, but sometimes more elegantly subtle approach containing these same ideas.&amp;#160; and that makes sense that halfway decent coding practices would converge on similar solutions to similar problems.&amp;#160; with variation, of course.&amp;#160; I noticed that the other day when considering what I had just done in that twitter-to-communityserver aggregator I&amp;#39;ve been tinkering with. it&amp;#39;s got all the same types of layers, and when I dug up a c# new language features list, I discovered that I was already using some of that stuff without being aware of it.&amp;#160; some things just seem &amp;quot;natural&amp;quot; to try.&amp;#160; the good news is that these natural impulses now are often successful, whereas they used to result in failures, just brick walls with &amp;quot;I wish I could do this&amp;quot; written on them.&amp;#160; for example, I got away with using an unnamed delegate, passing an expression that returned a method signature as a parameter on a constructor.&amp;#160; they call that sort of thing &amp;quot;dependency injection&amp;quot; and &amp;quot;inversion of control&amp;quot; these days.&amp;#160; same goes for using reflection to instantiate types specified in configuration files, for example.&amp;#160; like with &amp;quot;ajax&amp;quot; the terminology and hype is often obscuring rather than reinforcing solid technical habits.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;which is disturbing.&amp;#160; it does two things: (1) it disenfranchises existing practitioners to some extent, similar to the new slang on the playground every year; and (2) it encourages unthinking formulaic approaches to this profession, which as a class has never been successful.&amp;#160; great - another golden hammer, which the young&amp;#39;uns - and wanna-be trend-chasing old&amp;#39;uns - declare to be the &amp;quot;right&amp;quot; way.&amp;#160; apparently perspective, experience and wisdom are still not valued.&amp;#160; nothing new there.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;so, mvc, ruby on rails, dynamic languages, closures, lambda functions, ioc, patterns, etc. etc. etc. - been there, done that, quit yanking me around with the labels.&amp;#160; pisses me off that all those morons need a goddamn popular fad and a catchy name before they&amp;#39;ll listen to any sense - assuming that there&amp;#39;s a correspondence to sense there in the first place, which isn&amp;#39;t always the case.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;blogging, I know.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;so, I&amp;#39;m tiring of twitter.&amp;#160; another fad.&amp;#160; it&amp;#39;s nice to have that micro-blogging channel (in the &lt;em&gt;strict&lt;/em&gt; sense), as I posted about earlier, but fuck using it as a chat / im mechanism.&amp;#160; if I want to talk _to_ someone, I&amp;#39;ll do it via better channels.&amp;#160; I was never really into talking loudly at parties.&amp;#160; who are we trying to impress here ?&amp;#160; and as for the information sharing, there are better, more focused ways - delicious, blogs, whatever.&amp;#160; as a news channel ?&amp;#160; not hardly.&amp;#160; the only motivation I can see that would keep me hanging around is that &amp;quot;everyone else is doing it&amp;quot;, and not because of wanting to be there - it&amp;#39;s that people have disappeared from those other channels.&amp;#160; so I have to choose between going my own way, and joining the rest of the world in a least common denominator fuck fest ?&amp;#160; I&amp;#39;ll choose the way I always do, thank you.&amp;#160; meanwhile, I&amp;#39;ll micro-blog in a vaccum, the way I regular blog.&amp;#160; it&amp;#39;s just a tool.&lt;/font&gt;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;... &lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;&lt;/font&gt;&amp;#160;&lt;/div&gt;      &lt;div&gt;&lt;font face="Century Gothic" color="#000080" size="2"&gt;oh - no &amp;quot;events&amp;quot; concept in asp.net mvc.&amp;#160; get used to it ;-p&lt;/font&gt; &lt;/div&gt;   &lt;/dd&gt;&lt;/dl&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4913" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/conversations/default.aspx">conversations</category></item><item><title>tech notes: wyDsiwyg</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-wydsiwyg.aspx</link><pubDate>Sun, 22 Mar 2009 02:17:00 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4892</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4892</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4892</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-wydsiwyg.aspx#comments</comments><description>&lt;p&gt;one little annoyance - and suspicion - in the .net development world is the behavior of &lt;a target="_blank" href="http://reflector.red-gate.com"&gt;.net reflector&lt;/a&gt; when it comes to updating itself.&amp;nbsp; there&amp;#39;s no way around it.&amp;nbsp; and if you&amp;#39;re not careful, the thing will even delete itself in some circumstances.&amp;nbsp; that behavior is suspiciously close to being a solid example of &lt;a target="_blank" href="http://www.gnu.org/philosophy/can-you-trust.html"&gt;stallman&amp;#39;s &amp;quot;treacherous computing&amp;quot;&lt;/a&gt; criticism.&lt;/p&gt;
&lt;h5&gt;phone home&lt;/h5&gt;
&lt;p&gt;using the current version, go to&amp;nbsp; &amp;quot;Help -&amp;gt; Check for Updates&amp;quot;.&amp;nbsp; &lt;a target="_blank" href="http://www.fiddler2.com"&gt;fiddler&lt;/a&gt; shows that Reflector connects to location &lt;a href="http://reflector.red-gate.com/reflector.version"&gt;http://reflector.red-gate.com/reflector.version&lt;/a&gt;, sending the request:&lt;/p&gt;
&lt;div class="divcode"&gt;
&lt;pre class="precode"&gt;GET /Reflector.version HTTP/1.1
Cache-Control: no-cache, no-store, max-age=0&amp;lt;
Host: reflector.red-gate.com
Proxy-Connection: Keep-Alive&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;and getting the response:&lt;/p&gt;
&lt;div class="divcode"&gt;
&lt;pre class="precode"&gt;HTTP/1.1 200 OK
Content-Length: 63
Content-Type: text/plain
Last-Modified: Fri, 17 Oct 2008 09:34:07 GMT
Accept-Ranges: bytes
ETag: &amp;quot;a4fb7b803b30c91:5fd&amp;quot;
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Fri, 20 Mar 2009 20:08:16 GMT

5.1.4.0
4.0.0.0
http://downloads.red-gate.com/reflector.zip&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;setting up a fiddler auto-response for the request like this seems to work.&amp;nbsp; better would be to set up a dns entry somewhere rerouting that specific url to a (local) http proxy that does the same.&amp;nbsp; could even do this so that reflector versions across an organization or project pull from the same update cache - under the control of the &lt;em&gt;consumer&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;ok, so that satisfies a bit of paranoia regarding what the call-home exchange may have been.&amp;nbsp; why isn&amp;#39;t it documented more transparently ? and still, that&amp;#39;s not really acceptable behavior, for &lt;em&gt;any&lt;/em&gt; reason.&lt;/p&gt;
&lt;h5&gt;delete me&lt;/h5&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;next, need to install &amp;amp; run an old version to see what attempting to fire &lt;em&gt;that&lt;/em&gt; up does.&amp;nbsp; i&amp;#39;ve got one hanging around from a couple of years ago, dated 2006.12.10, v4.2.51.0.&lt;/p&gt;
&lt;p&gt;trying to fire it up results in:&lt;/p&gt;
&lt;p&gt;&lt;img border="0" width="474" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel/reflector01_5F00_3.png" alt="reflector01" height="126" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="reflector01" /&gt;&lt;/p&gt;
&lt;p&gt;select &amp;quot;no&amp;quot;, and i get this:&lt;/p&gt;
&lt;p&gt;&lt;img border="0" width="326" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel/reflector02_5F00_3.png" alt="reflector02" height="94" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="reflector02" /&gt;&lt;/p&gt;
&lt;p&gt;reflector.exe was marked read only, so it remained.&lt;/p&gt;
&lt;p&gt;running it again and responding &amp;quot;yes&amp;quot; to the update question, it reaches for &lt;a href="http://www.aisto.com/roeder/dotnet/Reflector.version"&gt;http://www.aisto.com/roeder/dotnet/Reflector.version&lt;/a&gt;.&amp;nbsp; if it can&amp;#39;t find that for some reason (say, from being offline), it displays an error message:&lt;/p&gt;
&lt;p&gt;&lt;img border="0" width="341" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel/reflector03_5F00_3.png" alt="reflector03" height="126" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="reflector03" /&gt; &lt;/p&gt;
&lt;p&gt;and proceeds to (attempt to) delete the executable as before.&lt;/p&gt;
&lt;p&gt;running again, responding &amp;quot;yes&amp;quot;, and letting it find the (faked) response as above, it reaches for the download reference in the response.&amp;nbsp; failing here, it also attempts to delete the executable.&lt;/p&gt;
&lt;p&gt;now, before going further, if i change the first number version in the response to be the same as the one i&amp;#39;m trying to run, the update dialog is still presented, and returns immediately with &lt;/p&gt;
&lt;p&gt;&lt;img border="0" width="288" src="http://blogs.no-ip.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fractalnavel/reflector04_5F00_3.png" alt="reflector04" height="126" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="reflector04" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;but&lt;/em&gt; - after closing this dialog, &lt;strong&gt;the deletion attempt is still made&lt;/strong&gt;.&amp;nbsp; yeah, it&amp;#39;s time-bombed from the inside alright.&amp;nbsp; i even tried feeding it the old version zip as the download reference in the faked response - that just loops the deletion / update process; good if you&amp;#39;re in the mood for some strange sort of self-abuse.&lt;/p&gt;
&lt;p&gt;the only way around that deletion that anyone seems to have found is to change the system date before starting the app.&amp;nbsp; i haven&amp;#39;t tried, but it is probably possible to set up a cmd file to do the date change in a way reflector will recognize, launch &amp;amp; change back.&lt;/p&gt;
&lt;p&gt;since reflector&amp;#39;s internals are well protected, it seems the most practical approach is to hope redgate listens to the folks on its forums about this.&lt;/p&gt;
&lt;p&gt;just ugly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4892" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category></item><item><title>tech notes: twitter aggregator refactoring #1</title><link>http://blogs.no-ip.org/fractalnavel/tech-notes-twitter-aggregator-refactoring-1.aspx</link><pubDate>Sat, 21 Mar 2009 21:26:31 GMT</pubDate><guid isPermaLink="false">0511061e-8795-4252-a46c-8c82d1f16065:4890</guid><dc:creator>fractalnavel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/rsscomments.aspx?PostID=4890</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.no-ip.org/fractalnavel/commentapi.aspx?PostID=4890</wfw:comment><comments>http://blogs.no-ip.org/fractalnavel/tech-notes-twitter-aggregator-refactoring-1.aspx#comments</comments><description>&lt;p&gt;it usually takes me three rounds of coding to get something somewhat satisfactory - the original &amp;quot;just get it to work&amp;quot; phase, and two refactorings.&amp;#160; the first refactoring follows, with some notes in the comments for the next round:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;fractalnavel.CS.PostTwitter.cs      &lt;div class="divcode"&gt;       &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CommunityServer&lt;span class="TPoperator"&gt;.&lt;/span&gt;Blogs&lt;span class="TPoperator"&gt;.&lt;/span&gt;Components;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CookComputing&lt;span class="TPoperator"&gt;.&lt;/span&gt;XmlRpc;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS&lt;span class="TPoperator"&gt;.&lt;/span&gt;components;

&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPcomment"&gt;// TODO: &lt;/span&gt;
    &lt;span class="TPcomment"&gt;//  - log processing status; &lt;/span&gt;
    &lt;span class="TPcomment"&gt;//  - loop through multiple service/settings nodes (optionally post all together?)&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;class &lt;/span&gt;CMain
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;STAThread&lt;span class="TPbracket"&gt;]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;static void &lt;/span&gt;Main&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPbracket"&gt;[] &lt;/span&gt;args&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XmlDocument xmlSettings &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xmlSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;Load&lt;span class="TPbracket"&gt;( &lt;/span&gt;args&lt;span class="TPbracket"&gt;[&lt;/span&gt;&lt;span class="TPnumber"&gt;0&lt;/span&gt;&lt;span class="TPbracket"&gt;] )&lt;/span&gt;; 
            GetAndPost gap &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;
                xmlSettings&lt;span class="TPoperator"&gt;.&lt;/span&gt;DocumentElement, 
                &lt;span class="TPbracket"&gt;(&lt;/span&gt;XmlRpcProxyGen&lt;span class="TPoperator"&gt;.&lt;/span&gt;Create&lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;IMetaWebLogNewPost&lt;span class="TPoperator"&gt;&amp;gt;&lt;/span&gt;&lt;span class="TPbracket"&gt;())&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;newPost 
                &lt;span class="TPbracket"&gt;)&lt;/span&gt;;

            &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Get&lt;span class="TPbracket"&gt;() ) &lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;else if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;PostNone &lt;span class="TPbracket"&gt;)&lt;/span&gt;
                gap&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;nothin&amp;#39;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlRpcUrl&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;*** wherever it was put *** /metablog.ashx&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)] &lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public interface &lt;/span&gt;IMetaWebLogNewPost
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlRpcMethod&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;metaWeblog.newPost&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;newPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;blogid,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;username,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password,
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post,
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;publish
            &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
    &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    
&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;fractalnavel.CS.components.cs 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Serialization;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;CommunityServer&lt;span class="TPoperator"&gt;.&lt;/span&gt;Blogs&lt;span class="TPoperator"&gt;.&lt;/span&gt;Components;

&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;components;

&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;CS&lt;span class="TPoperator"&gt;.&lt;/span&gt;components
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPcomment"&gt;// get xml, transform to post, post to blog.    &lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;GetAndPost
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;MakeNewPost _doPost;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;Settings _settings;
        &lt;span class="TPkeyword1"&gt;private &lt;/span&gt;XmlDocument _xmldocAll &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
        &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Empty;

        &lt;span class="TPkeyword1"&gt;public delegate string &lt;/span&gt;MakeNewPost&lt;span class="TPbracket"&gt;(&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;blogid,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;username,
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password,
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post,
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;publish
            &lt;span class="TPbracket"&gt;)&lt;/span&gt;;

        &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlNode nodSettings &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;nodSettings, &lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;MetaWeblog&lt;span class="TPbracket"&gt;())&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;newPost &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;GetAndPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlNode nodSettings, MakeNewPost DoPost &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            _doPost &lt;span class="TPoperator"&gt;= &lt;/span&gt;DoPost;
            _settings &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;Settings&lt;span class="TPbracket"&gt;) &lt;/span&gt;XmlUtils&lt;span class="TPoperator"&gt;.&lt;/span&gt;Deserialize &lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;Settings&lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;nodSettings &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;PostNone &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            get&lt;span class="TPbracket"&gt;{ &lt;/span&gt;&lt;span class="TPkeyword1"&gt;return &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;bPostNone; &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;PostBody
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            set &lt;span class="TPbracket"&gt;{&lt;/span&gt;_strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}&lt;/span&gt;
            
            &lt;span class="TPcomment"&gt;// TODO: add xsl parameter handling (will pass various settings)&lt;/span&gt;
            get 
            &lt;span class="TPbracket"&gt;{&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;if &lt;/span&gt;&lt;span class="TPbracket"&gt;( &lt;/span&gt;_strPostBody &lt;span class="TPoperator"&gt;== &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Empty &lt;span class="TPbracket"&gt;)&lt;/span&gt;
                    _strPostBody &lt;span class="TPoperator"&gt;= &lt;/span&gt;XmlUtils&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;_xmldocAll, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;hrefXsl &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;_strPostBody;
            &lt;span class="TPbracket"&gt;} &lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

        &lt;span class="TPcomment"&gt;/* 
        returns true if results contain status nodes
        ***twitter specific at the moment.***
        TODO: 
            - factor the href &amp;amp; success into a separate service interface, 
            - implement for each service, 
            - specify implementation class/assembly in config element, 
            - instantiate here, 
            - pass settings to service interface, 
            - and consume.
         */&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;Get&lt;span class="TPbracket"&gt;() &lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPcomment"&gt;// Tue%2C+27+Mar+2007+22%3A55%3A48+GMT&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;href &lt;span class="TPoperator"&gt;= &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;hrefGet &lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;?count=200&amp;amp;since=&amp;quot; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPbracket"&gt;((&lt;/span&gt;DateTime&lt;span class="TPoperator"&gt;.&lt;/span&gt;UtcNow&lt;span class="TPbracket"&gt;)&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;AddHours&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPoperator"&gt;- &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;hours &lt;span class="TPbracket"&gt;))&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            _xmldocAll&lt;span class="TPoperator"&gt;.&lt;/span&gt;LoadXml&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlUtils&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;( &lt;/span&gt;href, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;useridGet, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;pwdGet &lt;span class="TPbracket"&gt;) )&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;_xmldocAll&lt;span class="TPoperator"&gt;.&lt;/span&gt;SelectNodes&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;//status&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;))&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;Count &lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPnumber"&gt;0&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;PostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPcomment"&gt;// returns postid&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;Post&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strPostBody &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;bool &lt;/span&gt;bPublish &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;true&lt;/span&gt;;
            DateTime dtNow &lt;span class="TPoperator"&gt;= &lt;/span&gt;DateTime&lt;span class="TPoperator"&gt;.&lt;/span&gt;Now;
            MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post post &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;MetaWeblog&lt;span class="TPoperator"&gt;.&lt;/span&gt;Post&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            post&lt;span class="TPoperator"&gt;.&lt;/span&gt;title &lt;span class="TPoperator"&gt;= &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;titleBlog &lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;&lt;span class="TPoperator"&gt;+ &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;dtNow&lt;span class="TPbracket"&gt;)&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;yyyy.MM.dd&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            post&lt;span class="TPoperator"&gt;.&lt;/span&gt;dateCreated &lt;span class="TPoperator"&gt;= &lt;/span&gt;dtNow;
            post&lt;span class="TPoperator"&gt;.&lt;/span&gt;description &lt;span class="TPoperator"&gt;= &lt;/span&gt;strPostBody;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;_doPost&lt;span class="TPbracket"&gt;( &lt;/span&gt;_settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;idBlog, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;useridBlog, _settings&lt;span class="TPoperator"&gt;.&lt;/span&gt;pwdBlog, post, bPublish&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    
        &lt;span class="TPcomment"&gt;/*
        Settings element attributes:
            hrefget - get: string (must return results as xml; bascially assuming a rest interface)
            useridGet, pwdget - get: authentication = userid, password (yeah, not very secure, need to do something different)
            hrefXsl - transform reference (url; this xslt is applied to the &amp;quot;get&amp;quot; xml, and will result in the post body)
            idBlog - post: destination blog
            useridBlog, pwdBlog - post: authentication (userid, password) (again, security issue)
            titleBlog - post title (appended with date)
            hours - how far back to look
            bPostNone - post when nothing was retrieved ?
        */&lt;/span&gt;
        &lt;span class="TPbracket"&gt;[&lt;/span&gt;Serializable&lt;span class="TPbracket"&gt;()]&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;Settings
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_hrefGet;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_useridGet;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_pwdGet;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_hrefXsl;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_idBlog;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_useridBlog;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_pwdBlog;
            &lt;span class="TPkeyword1"&gt;private string &lt;/span&gt;_titleBlog;
            &lt;span class="TPkeyword1"&gt;private int &lt;/span&gt;_intHours;
            &lt;span class="TPkeyword1"&gt;private bool &lt;/span&gt;_bPostNone;

            &lt;span class="TPkeyword1"&gt;public &lt;/span&gt;Settings&lt;span class="TPbracket"&gt;() {}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hrefGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;hrefGet&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefGet;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefGet &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;useridGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;useridGet&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridGet;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridGet &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;pwdGet&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;pwdGet&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdGet;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdGet &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hrefXsl&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;hrefXsl&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefXsl;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_hrefXsl &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;idBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;idBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_idBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_idBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;useridBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;useridBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_useridBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;pwdBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;pwdBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_pwdBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;titleBlog&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public string &lt;/span&gt;titleBlog&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_titleBlog;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_titleBlog &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;hours&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public int &lt;/span&gt;hours&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_intHours;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_intHours &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;

            &lt;span class="TPbracket"&gt;[&lt;/span&gt;XmlAttribute&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPstring"&gt;&amp;quot;bPostNone&amp;quot;&lt;/span&gt;&lt;span class="TPbracket"&gt;)]&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;public bool &lt;/span&gt;bPostNone&lt;span class="TPbracket"&gt;{&lt;/span&gt;get &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;return this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_bPostNone;&lt;span class="TPbracket"&gt;} &lt;/span&gt;set &lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPkeyword1"&gt;this&lt;/span&gt;&lt;span class="TPoperator"&gt;.&lt;/span&gt;_bPostNone &lt;span class="TPoperator"&gt;= &lt;/span&gt;value;&lt;span class="TPbracket"&gt;}}&lt;/span&gt;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;}&lt;/span&gt;
    
&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;fractalnavel.components.cs 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;IO;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Net;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Text;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Serialization;
&lt;span class="TPkeyword1"&gt;using &lt;/span&gt;System&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xml&lt;span class="TPoperator"&gt;.&lt;/span&gt;Xsl;

&lt;span class="TPkeyword1"&gt;namespace &lt;/span&gt;fractalnavel&lt;span class="TPoperator"&gt;.&lt;/span&gt;components
&lt;span class="TPbracket"&gt;{&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;public class &lt;/span&gt;XmlUtils
    &lt;span class="TPbracket"&gt;{&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public static string &lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;url, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;user, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;password&lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            HttpWebRequest request &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;HttpWebRequest&lt;span class="TPbracket"&gt;)&lt;/span&gt;HttpWebRequest&lt;span class="TPoperator"&gt;.&lt;/span&gt;Create&lt;span class="TPbracket"&gt;(&lt;/span&gt;url&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            request&lt;span class="TPoperator"&gt;.&lt;/span&gt;Credentials &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;NetworkCredential&lt;span class="TPbracket"&gt;(&lt;/span&gt;user, password&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            WebResponse response &lt;span class="TPoperator"&gt;= &lt;/span&gt;request&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetResponse&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            StreamReader reader &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StreamReader&lt;span class="TPbracket"&gt;(&lt;/span&gt;response&lt;span class="TPoperator"&gt;.&lt;/span&gt;GetResponseStream&lt;span class="TPbracket"&gt;())&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;responseString &lt;span class="TPoperator"&gt;= &lt;/span&gt;reader&lt;span class="TPoperator"&gt;.&lt;/span&gt;ReadToEnd&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            reader&lt;span class="TPoperator"&gt;.&lt;/span&gt;Close&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;responseString;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPkeyword1"&gt;public static string &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXmlHref, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXmlUserId, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXmlPassword, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXslHref &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XmlDocument xmlDoc &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlDocument&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xmlDoc&lt;span class="TPoperator"&gt;.&lt;/span&gt;LoadXml&lt;span class="TPbracket"&gt;( &lt;/span&gt;GetTextFromHref&lt;span class="TPbracket"&gt;( &lt;/span&gt;strXmlHref, strXmlUserId, strXmlPassword &lt;span class="TPbracket"&gt;) )&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;xmlDoc, strXslHref &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;
        
        &lt;span class="TPcomment"&gt;// TODO: add xsl parameter handling&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;public static string &lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;XmlDocument xmlDoc, &lt;span class="TPkeyword1"&gt;string &lt;/span&gt;strXslHref &lt;span class="TPbracket"&gt;)&lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XslTransform xsl &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XslTransform&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            xsl&lt;span class="TPoperator"&gt;.&lt;/span&gt;Load&lt;span class="TPbracket"&gt;( &lt;/span&gt;strXslHref, &lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlUrlResolver&lt;span class="TPbracket"&gt;() )&lt;/span&gt;;
            StringBuilder sbResult &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StringBuilder&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
            StringWriter swResult &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;StringWriter&lt;span class="TPbracket"&gt;( &lt;/span&gt;sbResult &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            xsl&lt;span class="TPoperator"&gt;.&lt;/span&gt;Transform&lt;span class="TPbracket"&gt;( &lt;/span&gt;xmlDoc, &lt;span class="TPkeyword1"&gt;null&lt;/span&gt;, swResult, &lt;span class="TPkeyword1"&gt;null &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;sbResult&lt;span class="TPoperator"&gt;.&lt;/span&gt;ToString&lt;span class="TPbracket"&gt;()&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}   &lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;public static &lt;/span&gt;Object Deserialize &lt;span class="TPoperator"&gt;&amp;lt;&lt;/span&gt;T&lt;span class="TPoperator"&gt;&amp;gt; &lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;XmlNode node&lt;span class="TPbracket"&gt;) &lt;/span&gt;
        &lt;span class="TPbracket"&gt;{&lt;/span&gt;
            XmlSerializer ser &lt;span class="TPoperator"&gt;= &lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlSerializer&lt;span class="TPbracket"&gt;( &lt;/span&gt;&lt;span class="TPkeyword2"&gt;typeof&lt;/span&gt;&lt;span class="TPbracket"&gt;(&lt;/span&gt;T&lt;span class="TPbracket"&gt;) )&lt;/span&gt;;
            &lt;span class="TPkeyword1"&gt;return &lt;/span&gt;ser&lt;span class="TPoperator"&gt;.&lt;/span&gt;Deserialize&lt;span class="TPbracket"&gt;(&lt;/span&gt;&lt;span class="TPkeyword2"&gt;new &lt;/span&gt;XmlNodeReader&lt;span class="TPbracket"&gt;(&lt;/span&gt;node&lt;span class="TPbracket"&gt;))&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;}&lt;/span&gt;

    &lt;span class="TPbracket"&gt;}&lt;/span&gt;

&lt;span class="TPbracket"&gt;}&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;Settings.xml 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class="TPkeyword1"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;encoding=&lt;span class="TPstring"&gt;&amp;quot;utf-8&amp;quot; &lt;/span&gt;?&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="TPcomment"&gt;!--
    TODO: 
        - use an array of settings nodes for separate services; 
        - specify service handler classs/assembly for items that need programmatic suport (eg, href) 
--&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;Settings 
    hrefGet=&lt;span class="TPstring"&gt;&amp;quot;http://twitter.com/statuses/user_timeline.xml&amp;quot; 
    &lt;/span&gt;useridGet=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;pwdGet=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;hrefXsl=&lt;span class="TPstring"&gt;&amp;quot;*** wherever it was put *** /GetAndPost.xsl&amp;quot; 
    &lt;/span&gt;idBlog=&lt;span class="TPstring"&gt;&amp;quot;*** destination weblog name ***&amp;quot; 
    &lt;/span&gt;useridBlog=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;pwdBlog=&lt;span class="TPstring"&gt;&amp;quot;***&amp;quot; 
    &lt;/span&gt;titleBlog=&lt;span class="TPstring"&gt;&amp;quot;a day in a life&amp;quot; 
    &lt;/span&gt;hours=&lt;span class="TPstring"&gt;&amp;quot;24&amp;quot; 
    &lt;/span&gt;bPostNone=&lt;span class="TPstring"&gt;&amp;quot;false&amp;quot; 
    &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;GetAndPost.xsl 
    &lt;div class="divcode"&gt;
      &lt;pre class="precode"&gt;&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; &lt;/span&gt;?&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="TPkeyword1"&gt;&amp;lt;xsl:stylesheet 
    &lt;/span&gt;&lt;span class="TPkeyword3"&gt;version&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot; 
    &lt;/span&gt;xmlns:xsl=&lt;span class="TPstring"&gt;&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;
    &lt;/span&gt;xmlns:user=&lt;span class="TPstring"&gt;&amp;quot;http://blogs.no-ip.org/fractalnavel&amp;quot;
    &lt;/span&gt;xmlns:msxsl=&lt;span class="TPstring"&gt;&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot;
    &lt;/span&gt;exclude-result-prefixes=&lt;span class="TPstring"&gt;&amp;quot;xsl user msxsl&amp;quot; 
    &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:output 
        &lt;/span&gt;method=&lt;span class="TPstring"&gt;&amp;#39;html&amp;#39; 
        &lt;/span&gt;omit-xml-declaration=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
        &lt;/span&gt;version=&lt;span class="TPstring"&gt;&amp;quot;1.0&amp;quot;
        &lt;/span&gt;encoding=&lt;span class="TPstring"&gt;&amp;quot;UTF-8&amp;quot;
        &lt;/span&gt;indent=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot;
        &lt;/span&gt;cdata-section-elements=&lt;span class="TPstring"&gt;&amp;quot;&amp;quot;
        &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt; &lt;/span&gt;
    
    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="TPcomment"&gt;!-- TODO: add parameters handling for settings from GetAndPost.Settings class --&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;/statuses&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTAll&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTHead&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                via @&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;a &lt;span class="TPkeyword3"&gt;href&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;http://www.twitter.com/*** who you are ***&amp;quot; &lt;/span&gt;target=&lt;span class="TPstring"&gt;&amp;quot;_blank&amp;quot; 
                &lt;/span&gt;title=&lt;span class="TPstring"&gt;&amp;quot;twitter!&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;*** who you are ***&lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;a&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: in the last twenty-four hours:
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        
            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTBody&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:apply-templates &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot; &lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:sort &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;position()&amp;quot; &lt;/span&gt;order=&lt;span class="TPstring"&gt;&amp;quot;descending&amp;quot; &lt;/span&gt;data-type=&lt;span class="TPstring"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:apply-templates&amp;gt;&lt;/span&gt;
                &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

            &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;div class=&lt;span class="TPstring"&gt;&amp;quot;divLTFoot&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
                (pulled direct from twitter via custom job)
            &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
            
        &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;div&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:template &lt;/span&gt;&lt;span class="TPkeyword3"&gt;match&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="TPkeyword5"&gt;span &lt;/span&gt;class=&lt;span class="TPstring"&gt;&amp;quot;spnLTItemDate&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;user:fnNormalizeDate(string(created_at))&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="TPkeyword5"&gt;span&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;: 
        &lt;span class="TPkeyword1"&gt;&amp;lt;xsl:value-of &lt;/span&gt;&lt;span class="TPkeyword3"&gt;select&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;user:fnSetLinks(string(text))&amp;quot; &lt;/span&gt;disable-output-escaping=&lt;span class="TPstring"&gt;&amp;quot;yes&amp;quot; &lt;/span&gt;/&lt;span class="TPkeyword1"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;li&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;

    &lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;msxsl:&lt;span class="TPkeyword5"&gt;script language&lt;/span&gt;=&lt;span class="TPstring"&gt;&amp;quot;JScript&amp;quot; &lt;/span&gt;implements-prefix=&lt;span class="TPstring"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    //&lt;span class="TPkeyword1"&gt;&amp;lt;&lt;/span&gt;!&lt;span class="TPbracket"&gt;[&lt;/span&gt;CDATA&lt;span class="TPbracket"&gt;[
    
    &lt;/span&gt;function fnSetLinks&lt;span class="TPbracket"&gt;( &lt;/span&gt;strText &lt;span class="TPbracket"&gt;)
    {
        &lt;/span&gt;// embedded hrefs
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/&lt;span class="TPbracket"&gt;(&lt;/span&gt;http:\/\/\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;&lt;/span&gt;$&lt;span class="TPnumber"&gt;1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTLink\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        // twitter ids
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/@&lt;span class="TPbracket"&gt;(&lt;/span&gt;\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;@&amp;lt;a href=\&amp;quot;http://www.twitter.com/$1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTUser\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        // hash tags
        strText = strText.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/#&lt;span class="TPbracket"&gt;(&lt;/span&gt;\S*&lt;span class="TPbracket"&gt;)&lt;/span&gt;/g, &lt;span class="TPstring"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;http://search.twitter.com/search?q=%23$1&lt;/span&gt;\&lt;span class="TPstring"&gt;&amp;quot; class=\&amp;quot;&lt;/span&gt;aLTHash\&lt;span class="TPstring"&gt;&amp;quot; target=\&amp;quot;&lt;/span&gt;_blank\&lt;span class="TPstring"&gt;&amp;quot;&amp;gt;$1&amp;lt;/a&amp;gt;&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
        return strText;
    &lt;span class="TPbracket"&gt;}
    
    &lt;/span&gt;function fnNormalizeDate&lt;span class="TPbracket"&gt;(&lt;/span&gt;strDate&lt;span class="TPbracket"&gt;) {
        &lt;/span&gt;try &lt;span class="TPbracket"&gt;{
            &lt;/span&gt;// &lt;span class="TPstring"&gt;&amp;quot;Mon Mar 16 18:16:59 +0000 2009&amp;quot; &lt;/span&gt;to &lt;span class="TPstring"&gt;&amp;quot;2009.03.16 18:16&amp;quot;&lt;/span&gt;: 
            var rxMatch = /.&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;3&lt;/span&gt;&lt;span class="TPbracket"&gt;} (&lt;/span&gt;.&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;3&lt;/span&gt;&lt;span class="TPbracket"&gt;}) (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;}) (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;}&lt;/span&gt;:\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;})&lt;/span&gt;:\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;2&lt;/span&gt;&lt;span class="TPbracket"&gt;} &lt;/span&gt;\+\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;} (&lt;/span&gt;\d&lt;span class="TPbracket"&gt;{&lt;/span&gt;&lt;span class="TPnumber"&gt;4&lt;/span&gt;&lt;span class="TPbracket"&gt;})&lt;/span&gt;/;
            strDate = strDate.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;rxMatch , 
                function&lt;span class="TPbracket"&gt;(&lt;/span&gt;strMatch, strMonth, strDay, strTime, strYear&lt;span class="TPbracket"&gt;)
                {
                        &lt;/span&gt;var dat = new Date&lt;span class="TPbracket"&gt;( &lt;/span&gt;strMonth + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strDay + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strYear + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strTime &lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                        // months number is zero based ?!?  wtf
                        strMonth = &lt;span class="TPbracket"&gt;(&lt;/span&gt;dat.getUTCMonth&lt;span class="TPbracket"&gt;()&lt;/span&gt;+&lt;span class="TPnumber"&gt;1&lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;.toString&lt;span class="TPbracket"&gt;()&lt;/span&gt;.replace&lt;span class="TPbracket"&gt;( &lt;/span&gt;/^&lt;span class="TPbracket"&gt;(&lt;/span&gt;\d&lt;span class="TPbracket"&gt;)&lt;/span&gt;$/, &lt;span class="TPstring"&gt;&amp;quot;0$1&amp;quot; &lt;/span&gt;&lt;span class="TPbracket"&gt;)&lt;/span&gt;;
                        return strYear + &lt;span class="TPstring"&gt;&amp;quot;.&amp;quot; &lt;/span&gt;+ strMonth + &lt;span class="TPstring"&gt;&amp;quot;.&amp;quot; &lt;/span&gt;+ strDay + &lt;span class="TPstring"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ strTime; 
                &lt;span class="TPbracket"&gt;})&lt;/span&gt;;
        &lt;span class="TPbracket"&gt;} &lt;/span&gt;catch&lt;span class="TPbracket"&gt;(&lt;/span&gt;e&lt;span class="TPbracket"&gt;) {
            &lt;/span&gt;strDate = e.message;
        &lt;span class="TPbracket"&gt;}
        &lt;/span&gt;return strDate ;
    &lt;span class="TPbracket"&gt;}

    &lt;/span&gt;//&lt;span class="TPbracket"&gt;]]&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="TPkeyword1"&gt;&amp;lt;/&lt;/span&gt;msxsl:&lt;span class="TPkeyword5"&gt;script&lt;/span&gt;&lt;span class="TPkeyword1"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="TPkeyword1"&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i also need to reorganize the naming a bit.&amp;#160; i&amp;#39;ll reserve commentary until the last revisions are complete.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.no-ip.org/aggbug.aspx?PostID=4890" width="1" height="1"&gt;</description><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/tech+notes/default.aspx">tech notes</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/All/default.aspx">All</category><category domain="http://blogs.no-ip.org/fractalnavel/archive/tags/metablog/default.aspx">metablog</category></item></channel></rss>