<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Blue Fenix Productions</title>
        <link>https://chris.pelatari.com/about</link>
        <description>professional geek ramblings</description>
        <lastBuildDate>Sat, 09 May 2026 11:19:16 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Blue Fenix Productions</title>
            <url>https://chris.pelatari.com/IMG_1996.png</url>
            <link>https://chris.pelatari.com/about</link>
        </image>
        <copyright>Copyright © 2003 - present, Chris Pelatari</copyright>
        <atom:link href="https://chris.pelatari.com/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Implementing Stripe Checkout Session in ASP.NET Core Minimal API]]></title>
            <link>https://chris.pelatari.com/posts/2024-11-10-implementing-stripe-checkout-session-in-aspnet-core-minimal-api</link>
            <guid>https://chris.pelatari.com/posts/2024-11-10-implementing-stripe-checkout-session-in-aspnet-core-minimal-api</guid>
            <pubDate>Sun, 10 Nov 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;">&ZeroWidthSpace;</a></h2>
<p>There are many, many examples of Stripe integration on the web, including videos. Here's the problem with <em>every single other example</em>: they HARD CODE values for processing payments. 😩</p>
<p>So, I will walk through my server side implementation of a Stripe Checkout session using ASP.NET Core Minimal API. This approach leverages the simplicity and performance of minimal APIs while integrating with the Stripe.NET nuget package for payment processing. I'll cover setting up the project, configuring CORS, and implementing the Stripe Checkout session.</p>
<p>TL;DR: The secret sauce is model binding in the API call, you must build up the dynamic cart contents from your front end. I have implemented front ends in both Vue.js and simple vanilla JavaScript with html. I will leave that part up to you, dear reader.</p>
<h2 id="prerequisites" tabindex="-1">Prerequisites <a class="header-anchor" href="#prerequisites" aria-label="Permalink to &quot;Prerequisites&quot;">&ZeroWidthSpace;</a></h2>
<ul>
<li>dotnet 8 SDK or later</li>
<li>Stripe account with API keys</li>
<li>Front-end application</li>
</ul>
<h2 id="setting-up-the-project" tabindex="-1">Setting up the project <a class="header-anchor" href="#setting-up-the-project" aria-label="Permalink to &quot;Setting up the project&quot;">&ZeroWidthSpace;</a></h2>
<p>Create a new ASP.NET Core Minimal API project using the following command:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dotnet</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> new</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> web</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> StripeCheckoutSession</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> StripeCheckoutSession</span></span></code></pre>
</div><p>Add the Stripe.NET NuGet package to the project:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dotnet</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> package</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> Stripe.net</span></span></code></pre>
</div><h2 id="configure-local-settings-json" tabindex="-1">Configure local.settings.json <a class="header-anchor" href="#configure-local-settings-json" aria-label="Permalink to &quot;Configure local.settings.json&quot;">&ZeroWidthSpace;</a></h2>
<p>Create a local.settings.json file in the root of your project to store your Stripe API key:</p>
<div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  "Stripe"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    "SecretKey"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"sk_test_51"</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h2 id="implementing-the-stripe-checkout-session" tabindex="-1">Implementing the Stripe Checkout session <a class="header-anchor" href="#implementing-the-stripe-checkout-session" aria-label="Permalink to &quot;Implementing the Stripe Checkout session&quot;">&ZeroWidthSpace;</a></h2>
<p>Add the following code to the <code>Program.cs</code> file:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Stripe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Stripe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Checkout</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> builder</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> WebApplication.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CreateBuilder</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(args);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Add CORS services to the DI container.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">builder.Services.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddCors</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">options</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  options.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddPolicy</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"AllowSpecificOrigin"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builder</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    builder.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">WithOrigins</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://localhost:4000"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"http://127.0.0.1:4000"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"https://yourfrontend.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AllowAnyHeader</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AllowAnyMethod</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Add Application Insights telemetry</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">builder.Services.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddApplicationInsightsTelemetry</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> app</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> builder.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Build</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">UseCors</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"AllowSpecificOrigin"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">StripeConfiguration.ApiKey </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> builder.Configuration[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"StripeApiKey"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">MapPost</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"/api/CreateCheckoutSession"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">List</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SessionLineItemOptions</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">> </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">lineItems</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> options</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SessionCreateOptions</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        PaymentMethodTypes </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> List</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        {</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">            "cashapp"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">            "card"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        LineItems </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> lineItems,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        Mode </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "payment"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        SuccessUrl </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "https://example.com/success"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        CancelUrl </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "https://example.com/cancel"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    };</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> service</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SessionService</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    Session</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> session</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> service.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CreateAsync</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(options);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Results.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Ok</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(session);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">app.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Run</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span></code></pre>
</div><h3 id="the-key-here-is-the-mappost-method-which-accepts-a-list-of-sessionlineitemoptions-as-a-parameter-this-allows-you-to-pass-dynamically-sized-cart-contents-from-the-front-end-to-the-api-not-just-a-single-t-shirt" tabindex="-1">The key here is the <code>MapPost</code> method, which accepts a list of <code>SessionLineItemOptions</code> as a parameter. This allows you to pass dynamically sized cart contents from the front end to the API. (not just a single T-shirt) <a class="header-anchor" href="#the-key-here-is-the-mappost-method-which-accepts-a-list-of-sessionlineitemoptions-as-a-parameter-this-allows-you-to-pass-dynamically-sized-cart-contents-from-the-front-end-to-the-api-not-just-a-single-t-shirt" aria-label="Permalink to &quot;The key here is the `MapPost` method, which accepts a list of `SessionLineItemOptions` as a parameter. This allows you to pass dynamically sized cart contents from the front end to the API. (not just a single T-shirt)&quot;">&ZeroWidthSpace;</a></h3>
<h2 id="front-end-implementation-test" tabindex="-1">Front-end implementation test <a class="header-anchor" href="#front-end-implementation-test" aria-label="Permalink to &quot;Front-end implementation test&quot;">&ZeroWidthSpace;</a></h2>
<p>Pop this into a .http file in Visual Studio Code and run it with the REST Client extension:</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">### Create Checkout Session</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">POST</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> https</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">//localhost:8080/api/CreateCheckoutSession</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Content</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: application</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">json</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  {</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">    "Price"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"price_1ofMany"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">    "Quantity"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span></code></pre>
</div><p>You can specify lots of other properties if you would like to get more specific, but building items in the dashboard handles a lot of this for you. The above is the minimal implementation to get you started. It will work for that T-shirt if you set it up correctly in the Stripe dashboard. Building the front-end will likely change every two weeks anyways (at least it often feels that way).</p>
<h2 id="explanation" tabindex="-1">Explanation <a class="header-anchor" href="#explanation" aria-label="Permalink to &quot;Explanation&quot;">&ZeroWidthSpace;</a></h2>
<ul>
<li>CORS Configuration: We configure CORS to allow requests from specific origins. This is crucial for enabling cross-origin requests from your frontend application.</li>
<li>Stripe Configuration: We set the Stripe API key from the configuration file.</li>
<li>Stripe Checkout Session: We define an endpoint /api/CreateCheckoutSession that accepts a list of SessionLineItemOptions. This endpoint creates a Stripe Checkout session and returns the session details.</li>
<li>REST Client Test: We test the endpoint using a REST client to create a checkout session with a single item. This could be expanded to handle multiple items with different quantities in a cart.</li>
</ul>
<h2 id="conclusion" tabindex="-1">Conclusion <a class="header-anchor" href="#conclusion" aria-label="Permalink to &quot;Conclusion&quot;">&ZeroWidthSpace;</a></h2>
<p>In this article, we implemented a Stripe Checkout session in an ASP.NET Core Minimal API project. We configured CORS, set up the Stripe API key, created a Stripe Checkout session endpoint, and end to end tested using a simple REST Client Test. This approach allows you to build a dynamic cart on the front end and pass the cart contents to the API for processing payments. I hope this helps you integrate Stripe Checkout in your ASP.NET Core Minimal API project. Happy coding! 🚀</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Why do programmers prefer dark mode? Because light attracts bugs]]></title>
            <link>https://chris.pelatari.com/posts/2024-10-04-why-do-programmers-prefer-dark-mode</link>
            <guid>https://chris.pelatari.com/posts/2024-10-04-why-do-programmers-prefer-dark-mode</guid>
            <pubDate>Fri, 04 Oct 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="why-do-programmers-prefer-dark-mode-because-light-attracts-bugs-😂" tabindex="-1">Why do programmers prefer dark mode? Because light attracts bugs! 😂 <a class="header-anchor" href="#why-do-programmers-prefer-dark-mode-because-light-attracts-bugs-😂" aria-label="Permalink to &quot;Why do programmers prefer dark mode? Because light attracts bugs! 😂&quot;">&ZeroWidthSpace;</a></h1>
<p>I mean really, everything is light and possibility before it's observed. That's why you should have written your tests first. But I digress.</p>
<p>I wrote this silly dad joke to test out the new post script. I'm happy to report that it works as expected. The dad jokes will continue until morale improves.</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  light</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'attracts bugs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  dark</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'repels bugs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  mode</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'dark'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre>
</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Handling 404 in a SPA deployed to GitHub Pages]]></title>
            <link>https://chris.pelatari.com/posts/2024-09-28-handling-404-in-a-spa-deployed-to-github-pages</link>
            <guid>https://chris.pelatari.com/posts/2024-09-28-handling-404-in-a-spa-deployed-to-github-pages</guid>
            <pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Credit where it's due, I found this via <a href="https://dev.to/lico/handling-404-error-in-spa-deployed-on-github-pages-246p" target="_blank" rel="noreferrer">this blog post</a></p>
<p>I recently deployed a Single Page Application (SPA) to GitHub Pages. Everything was working great until I tried to refresh the page. When I did that, I got a 404 error. This is because GitHub Pages doesn't support SPA routing out of the box. This is how I fixed it.</p>
<h2 id="i-simply-added-an-echo-statement-to-the-command-that-builds-the-spa-for-those-of-us-who-like-to-see-what-s-going-on-during-the-build-process" tabindex="-1">I simply added an echo statement to the command that builds the SPA for those of us who like to see what's going on during the build process. <a class="header-anchor" href="#i-simply-added-an-echo-statement-to-the-command-that-builds-the-spa-for-those-of-us-who-like-to-see-what-s-going-on-during-the-build-process" aria-label="Permalink to &quot;I simply added an echo statement to the command that builds the SPA for those of us who like to see what's going on during the build process.&quot;">&ZeroWidthSpace;</a></h2>
<p>The meat of the addition is the cp command, but there's no visual feedback that it's working. I added the echo statement to let me know that the cp command is running.</p>
<div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"build"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"vue-tsc --noEmit &#x26;&#x26; vite build --mode production &#x26;&#x26; echo 'copying index.html to 404.html in ./dist' &#x26;&#x26; cp ./dist/index.html ./dist/404.html"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span></code></pre>
</div><p>This is the command that builds my SPA using <a href="https://vitejs.dev/" target="_blank" rel="noreferrer">Vite</a>. The <code>cp</code> command copies the <code>index.html</code> file to <code>404.html</code>. This way, when a 404 error occurs, the SPA will still load.</p>
<p>This was a difficult one to figure out. I hope this helps someone else.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Discourse Fresh Install on Mac OS]]></title>
            <link>https://chris.pelatari.com/posts/2024-03-02-discourse-fresh-install</link>
            <guid>https://chris.pelatari.com/posts/2024-03-02-discourse-fresh-install</guid>
            <pubDate>Sat, 02 Mar 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;">&ZeroWidthSpace;</a></h2>
<p>So, most of the install instructions are correct, but there are a few extra steps I had to figure out. I will go through the steps to install Discourse on Mac OS.</p>
<h2 id="prerequisites" tabindex="-1">Prerequisites <a class="header-anchor" href="#prerequisites" aria-label="Permalink to &quot;Prerequisites&quot;">&ZeroWidthSpace;</a></h2>
<p>You need to have the following installed:</p>
<ul>
<li>Homebrew</li>
<li>Redis</li>
<li>PostgreSQL</li>
<li>Ruby</li>
<li>Bundler</li>
<li>Node.js</li>
<li>Yarn</li>
<li>Mailhog</li>
<li>Sidekiq</li>
<li>ImageMagick</li>
</ul>
<p>This last one is not mentioned in the install instructions, but it is required. When running the ember app, it will fail if ImageMagick is not installed.</p>
<p><img src="./images/image_magick_version.png" alt="ImageMagick Version" title="ImageMagick Version"></p>
<div class="language-zsh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">zsh</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">brew</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> imagemagick</span></span></code></pre>
</div><h2 id="install-discourse" tabindex="-1">Install Discourse <a class="header-anchor" href="#install-discourse" aria-label="Permalink to &quot;Install Discourse&quot;">&ZeroWidthSpace;</a></h2>
<ol>
<li>Clone the Discourse repository</li>
<li>Install the dependencies</li>
<li>Create the database</li>
<li>Start the server</li>
</ol>
<p>For number 4, I have added a dev script that uses concurrently to run both the rails server and the ember server. This is not required, but it is convenient.</p>
<div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"># package.json</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"scripts"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  "dev"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"concurrently </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">bin/ember-cli server --environment=development</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> \"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">RAILS_ENV=development bin/rails server</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic">  ...</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h2 id="conclusion" tabindex="-1">Conclusion <a class="header-anchor" href="#conclusion" aria-label="Permalink to &quot;Conclusion&quot;">&ZeroWidthSpace;</a></h2>
<p>For me, this is the way. I got Discourse running on my Mac OS, and it only took a couple of shots of espresso and some shipleys donuts. I hope this helps you get your Discourse instance up and running. If you have any questions, feel free to reach out to me on <a href="https://hachyderm.io/@blue_fenix" target="_blank" rel="noreferrer">Mastodon</a>.</p>
<p>Here's the command to run the dev script:</p>
<div class="language-zsh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">zsh</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">yarn</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> dev</span></span></code></pre>
</div><p>I still prefer to run mailhog and sidekiq in separate terminal windows. There's just too much log noise with more than what was added to the dev script IMO.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The Declaration of Snugland]]></title>
            <link>https://chris.pelatari.com/posts/2024-02-18-the-declaration-of-snugland</link>
            <guid>https://chris.pelatari.com/posts/2024-02-18-the-declaration-of-snugland</guid>
            <pubDate>Sun, 18 Feb 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="🏴‍☠️-the-declaration-of-snugland-🏴‍☠️" tabindex="-1">🏴‍☠️ The Declaration of Snugland 🏴‍☠️ <a class="header-anchor" href="#🏴‍☠️-the-declaration-of-snugland-🏴‍☠️" aria-label="Permalink to &quot;🏴‍☠️ The Declaration of Snugland 🏴‍☠️&quot;">&ZeroWidthSpace;</a></h1>
<p>Be it known to all ye hearty souls, scallywags, and pillow-fort enthusiasts!
<em>Whereas</em> the sun doth rise and set upon the softest of cushions, and the moon doth cast its silvery glow upon our fleece blankets, we, the merry band of Snugglers, do hereby declare this land, this haven of coziness, as the sovereign nation of Snugland!</p>
<h2 id="article-i-the-right-to-cuddle" tabindex="-1">Article I: The Right to Cuddle <a class="header-anchor" href="#article-i-the-right-to-cuddle" aria-label="Permalink to &quot;Article I: The Right to Cuddle&quot;">&ZeroWidthSpace;</a></h2>
<p>Every snug-loving soul shall have the inalienable right to snuggle, cuddle, and nestle within the borders of Snugland. No cold feet or chilly shoulders shall go unattended!</p>
<h2 id="article-ii-the-pillow-code" tabindex="-1">Article II: The Pillow Code <a class="header-anchor" href="#article-ii-the-pillow-code" aria-label="Permalink to &quot;Article II: The Pillow Code&quot;">&ZeroWidthSpace;</a></h2>
<p>The Pillow Code shall be our sacred law. It states: “Thou shalt fluff thy pillows, plump thy cushions, and arrange thy throws with care.”
<em>Any</em> violation of the Pillow Code shall be met with a stern look and a gentle reminder to maintain fluffiness.</p>
<h2 id="article-iii-the-fuzzy-border-dispute" tabindex="-1">Article III: The Fuzzy Border Dispute <a class="header-anchor" href="#article-iii-the-fuzzy-border-dispute" aria-label="Permalink to &quot;Article III: The Fuzzy Border Dispute&quot;">&ZeroWidthSpace;</a></h2>
<p>Our borders shall be marked by a fuzzy line of marshmallow clouds and feathered quilts. Any attempt to cross said border without proper snuggle credentials shall be met with a tickle fight.</p>
<h2 id="article-iv-the-snuggle-tax" tabindex="-1">Article IV: The Snuggle Tax <a class="header-anchor" href="#article-iv-the-snuggle-tax" aria-label="Permalink to &quot;Article IV: The Snuggle Tax&quot;">&ZeroWidthSpace;</a></h2>
<p>All citizens of Snugland shall pay their dues in marshmallows, hot cocoa, and bedtime stories. Failure to comply shall result in banishment to the Land of Uncomfortable Chairs.</p>
<h2 id="article-v-the-national-anthem" tabindex="-1">Article V: The National Anthem <a class="header-anchor" href="#article-v-the-national-anthem" aria-label="Permalink to &quot;Article V: The National Anthem&quot;">&ZeroWidthSpace;</a></h2>
<p>Our anthem shall be a lullaby sung by a thousand plush teddy bears. It goes like this:</p>
<blockquote>
<p>🎶 Snugland, Snugland, where dreams are spun,
Under the quilted moon and the fleecey sun.
We wrap ourselves in warmth and glee,
Forever snug, in sweet serenity. 🎶</p>
</blockquote>
<h2 id="article-vi-the-snuggle-council" tabindex="-1">Article VI: The Snuggle Council <a class="header-anchor" href="#article-vi-the-snuggle-council" aria-label="Permalink to &quot;Article VI: The Snuggle Council&quot;">&ZeroWidthSpace;</a></h2>
<p>A council of wise grandmas, fluffy kittens, and retired pirates shall govern Snugland. Their decisions shall be binding, as long as they’re made from rocking chairs.</p>
<h2 id="article-vii-the-snug-o-meter" tabindex="-1">Article VII: The Snug-o-meter <a class="header-anchor" href="#article-vii-the-snug-o-meter" aria-label="Permalink to &quot;Article VII: The Snug-o-meter&quot;">&ZeroWidthSpace;</a></h2>
<p>We shall measure our prosperity not in gold doubloons, but in snuggles per square inch. The higher the snug-o-meter reading, the happier our land.
<em>In witness whereof</em>, we raise our mugs of cocoa, our fuzzy socks, and our hearts full of warmth. Let it be known across the seven seas: Snugland is here to stay!
By the power vested in us by the Great Blanket Fort in the Sky, we hereby declare Snugland an independent micro-nation. May our nights be cozy, our mornings lazy, and our dreams as soft as freshly laundered pajamas.
Long live Snugland! 🌟🛌🌙</p>
<h4 id="signed-the-dread-pirate-jojo-queen-of-the-seven-snuggles-sea" tabindex="-1">Signed - The Dread Pirate JoJo, Queen of the Seven Snuggles Sea <a class="header-anchor" href="#signed-the-dread-pirate-jojo-queen-of-the-seven-snuggles-sea" aria-label="Permalink to &quot;Signed - The Dread Pirate JoJo, Queen of the Seven Snuggles Sea&quot;">&ZeroWidthSpace;</a></h4>
<p><img src="/assets/images/the_soveriegn_nation_of_snugland.jpeg" alt="The Soveriegn Nation of Snugland" title="A black and white dog curled up with a person on a bed with patterned bedding, surrounded by pillows"></p>
<p>(Original by <a href="https://hachyderm.io/@blue_fenix/111954702195089282" target="_blank" rel="noreferrer">blue_fenix</a> with the help of <a href="https://copilot.microsoft.com" target="_blank" rel="noreferrer">copilot</a>)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Mangekyo]]></title>
            <link>https://chris.pelatari.com/posts/2024-02-08-mangekyo</link>
            <guid>https://chris.pelatari.com/posts/2024-02-08-mangekyo</guid>
            <pubDate>Thu, 08 Feb 2024 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><img src="./images/2024-02-04-460062.png" alt="mangekyo"></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[My Journey to Setting up a Local Development Mastodon Instance]]></title>
            <link>https://chris.pelatari.com/posts/2023-03-08-my-journey-to-setting-up-a-local-development-mastodon-instance</link>
            <guid>https://chris.pelatari.com/posts/2023-03-08-my-journey-to-setting-up-a-local-development-mastodon-instance</guid>
            <pubDate>Wed, 08 Mar 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><img src="/assets/images/mastodon_development.png" alt="Mastodon Development Instance"></p>
<p>I've been looking for a way to update my skills in web development recently while searching for a new job. I've been working in the IT industry for over 20 years now, mostly in the .NET sphere. I noticed that I was turning down a few really interesting opportunities because of my lack of accomplishments with specific modern front end frameworks, including React.js and Angular. I have a few projects that I've worked on in the past that I could use to demonstrate my skills, but I wanted to do something more.</p>
<p>I wanted to build something from scratch, and I wanted to do it in a way that I could share with others. I also wanted to do it in a way that I could use to demonstrate my skills to potential employers.</p>
<p>So I decided to build a local development instance of <a href="https://joinmastodon.org/" target="_blank" rel="noreferrer">Mastodon</a>; a free, open-source social network. I've been using Mastodon for a few months now, and I really like it. It currently feels like 2008-2010 Twitter, when it was still fun and interesting.</p>
<blockquote>
<p>And not run by Elon Musk.</p>
</blockquote>
<p>It was not an easy task, but I learned a lot along the way. I'm going to share my journey with you, and hopefully you'll find it useful.</p>
<h2 id="base-environment-os-x" tabindex="-1">Base Environment : OS X <a class="header-anchor" href="#base-environment-os-x" aria-label="Permalink to &quot;Base Environment : OS X&quot;">&ZeroWidthSpace;</a></h2>
<p>I decided to use my MacBook instead of my Windows box or the Ubuntu Linux that I installed on a Mac Mini. I might change my mind later. I'm not sure yet. This was more of a proof of concept: can I even get all of the moving parts to work together? I'm not sure if I'll actually use this instance for anything other than testing and development.</p>
<h2 id="guest-environment-virtualbox" tabindex="-1">Guest Environment : VirtualBox <a class="header-anchor" href="#guest-environment-virtualbox" aria-label="Permalink to &quot;Guest Environment : VirtualBox&quot;">&ZeroWidthSpace;</a></h2>
<p>I'm using VirtualBox as the virtualization provider for Vagrant with the Ubuntu 18.04 LTS box, which is a 64-bit version of Bionic Beaver.</p>
<h2 id="host-environment-vagrant" tabindex="-1">Host Environment : Vagrant <a class="header-anchor" href="#host-environment-vagrant" aria-label="Permalink to &quot;Host Environment : Vagrant&quot;">&ZeroWidthSpace;</a></h2>
<p>I wanted to build this on my Mac, but I also wanted to be able to easily destroy and rebuild the environment if I needed to. So I decided to use <a href="https://www.vagrantup.com/" target="_blank" rel="noreferrer">Vagrant</a>.</p>
<p>Vagrant is a tool for building and managing virtual machine environments in a single workflow. It allows you to define a virtual machine configuration in a single file, and then spin up the virtual machine with a single command.</p>
<p>I used homebrew to install it:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    brew</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> cask</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> vagrant</span></span></code></pre>
</div><p>I then created a new directory for my project, and created a new Vagrantfile in it:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    mkdir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> vagrant</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> vagrant</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    vagrant</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> init</span></span></code></pre>
</div><p>I then edited the Vagrantfile to use the Ubuntu 18.04 LTS box:</p>
<div class="language-ruby vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ruby</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    Vagrant</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">configure</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"2"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">do</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> |config|</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        config.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">vm</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">box</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "ubuntu/bionic64"</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    end</span></span></code></pre>
</div><p>I customized the Vagrantfile a little more using the <a href="https://github.com/mastodon/mastodon/blob/main/Vagrantfile" target="_blank" rel="noreferrer">Vagrantfile for Mastodon</a> as a reference.</p>
<p>I started the virtual machine:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    vagrant</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> up</span></span></code></pre>
</div><p>I then SSH'd into it:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    vagrant</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ssh</span></span></code></pre>
</div><h2 id="installing-mastodon-from-source" tabindex="-1">Installing Mastodon from Source <a class="header-anchor" href="#installing-mastodon-from-source" aria-label="Permalink to &quot;Installing Mastodon from Source&quot;">&ZeroWidthSpace;</a></h2>
<p>I decided to install Mastodon from source, instead of using the Docker image. I wanted to learn more about the underlying technologies, and I wanted to be able to customize the installation. Also, I wanted to be able to use the latest version of Mastodon, instead of the version that was available in the Docker image. To accomplish this, I needed to install Ruby, Rails, and PostgreSQL.</p>
<p>I started with the <a href="https://docs.joinmastodon.org/admin/install/" target="_blank" rel="noreferrer">Mastodon Installation Guide</a>. It took me a few tries to get it right, but I was able to get it working in the end.</p>
<p>Probably the most difficult challenge was getting certbot to issue a certificate for my domain. I was able to get it working, but I had to use the <code>--manual</code> option, and I had to manually create the DNS records for the challenge. I'm not sure if there is a better way to do this, but it worked for me. I found a pretty decent guide at <a href="https://esc.sh/blog/letsencrypt-ssl-for-local-domains/" target="_blank" rel="noreferrer">esc.sh</a> that got me most of the way there. (see above)</p>
<h2 id="webpacker-woes" tabindex="-1">webpacker woes <a class="header-anchor" href="#webpacker-woes" aria-label="Permalink to &quot;webpacker woes&quot;">&ZeroWidthSpace;</a></h2>
<p>Well now I have a working Mastodon instance, but webpacker is refusing to spin up, claiming that a service is already running on the port provided in the config file. This is my first time even looking at webpacker, having most of my experience in ASP.NET MVC. So I looked at the config/webpacker.yml file, and I noticed that the port was set to 3035. I looked at the nginx config file, and I noticed that the port was set to 3000. These aren't the same ports, what gives? This is usually the part of a blog post where I would say something like &quot;I spent hours trying to figure this out, but I finally figured it out.&quot; And I did. But I'm not going to bore you with how. This is already one of the longest blog posts I've ever written.</p>
<p>I tried several different approaches and ended up having to restart the webpacker service a few times. Eventually it started working. I didn't take note of what was the winning magic incantation, but after a couple of restarts I have a working mastodon instance.</p>
<p><img src="/assets/images/mastodon_development_it_lives.png" alt="It lives!"></p>
<h2 id="conclusion" tabindex="-1">Conclusion <a class="header-anchor" href="#conclusion" aria-label="Permalink to &quot;Conclusion&quot;">&ZeroWidthSpace;</a></h2>
<p>I don't fully understand how all of the pieces fit together yet, but I'm getting there. I'm going to continue to work on this project, and I'll update if I come across anything interesting.</p>
<p>It felt good to hack on something that gave me that feeling of accomplishment that I used to get when I was a <a href="/posts/2003-02-11-Nearing-completion.html">young developer</a>. If you've read this far, you're a champ. Thanks fam.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[SOLVED: Ruby on Monterey]]></title>
            <link>https://chris.pelatari.com/posts/2023-02-08-solved-ruby-on-monterey</link>
            <guid>https://chris.pelatari.com/posts/2023-02-08-solved-ruby-on-monterey</guid>
            <pubDate>Wed, 08 Feb 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I was able to get ruby installed on my MacBook thanks to <a href="https://gorails.com/setup/macos/12-monterey" target="_blank" rel="noreferrer">this guide</a>. I already had <a href="https://github.com" target="_blank" rel="noreferrer">GitHub</a> setup, but I didn't have <a href="https://github.com/rbenv/rbenv" target="_blank" rel="noreferrer">rbenv</a> installed.</p>
<p>Following this guide got me back working in ruby without the friction.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[GitHub CoPilot]]></title>
            <link>https://chris.pelatari.com/posts/2023-01-19-github-copilot</link>
            <guid>https://chris.pelatari.com/posts/2023-01-19-github-copilot</guid>
            <pubDate>Thu, 19 Jan 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="i-was-using-github-copilot-and-ran-into-a-perfect-example-of-keystrokes-saved-when-writing-boilerplate-code" tabindex="-1">I was using <a href="https://docs.github.com/en/copilot" target="_blank" rel="noreferrer">GitHub CoPilot</a> and ran into a perfect example of keystrokes saved when writing boilerplate code. <a class="header-anchor" href="#i-was-using-github-copilot-and-ran-into-a-perfect-example-of-keystrokes-saved-when-writing-boilerplate-code" aria-label="Permalink to &quot;I was using [GitHub CoPilot](https://docs.github.com/en/copilot) and ran into a perfect example of keystrokes saved when writing boilerplate code.&quot;">&ZeroWidthSpace;</a></h2>
<p>First, I created a list <a href="https://chrispelatari.github.io/categories-list/" target="_blank" rel="noreferrer">here</a> with jekyll and copied that list into a DbContext class that I wanted that seed data added to. As I was typing the first model data, copilot guessed what I wanted was from the pasted list so it was a bunch of TAB/ENTER and that boilerplate code was done without me having to fill in the blanks myself.</p>
<p><code>dotnet ef migrations add SeedCategoryData</code></p>
<p>and</p>
<p><code>dotnet ef database update</code></p>
<p>picked all of this up and created the seed data in the database. This is barely scratching the surface of how this thing could be useful. That's pretty cool.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[An error occurred while installing racc]]></title>
            <link>https://chris.pelatari.com/posts/2023-01-18-an-error-occurred-while-installing-racc</link>
            <guid>https://chris.pelatari.com/posts/2023-01-18-an-error-occurred-while-installing-racc</guid>
            <pubDate>Wed, 18 Jan 2023 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="an-error-occurred-while-installing-racc-1-6-2-and-bundler-cannot-continue" tabindex="-1">An error occurred while installing racc (1.6.2), and Bundler cannot continue. <a class="header-anchor" href="#an-error-occurred-while-installing-racc-1-6-2-and-bundler-cannot-continue" aria-label="Permalink to &quot;An error occurred while installing racc (1.6.2), and Bundler cannot continue.&quot;">&ZeroWidthSpace;</a></h1>
<h2 id="i-m-trying-to-get-jekyll-to-build-on-my-macbook-with-macos-monterey-v12-6-2-and-it-s-hanging-up-on-racc" tabindex="-1">I'm trying to get jekyll to build on my MacBook, with macOS Monterey v12.6.2 and it's hanging up on racc. <a class="header-anchor" href="#i-m-trying-to-get-jekyll-to-build-on-my-macbook-with-macos-monterey-v12-6-2-and-it-s-hanging-up-on-racc" aria-label="Permalink to &quot;I'm trying to get jekyll to build on my MacBook, with macOS Monterey v12.6.2 and it's hanging up on racc.&quot;">&ZeroWidthSpace;</a></h2>
<p>I'm in the middle of trying to fix this on my MacBook Pro, and <a href="https://discuss.rubyonrails.org/t/ruby-bundle-install-not-working-cant-install-racc/81501/2" target="_blank" rel="noreferrer">this answer</a> on dicuss.rubyonrails.org that points to <a href="https://bugs.ruby-lang.org/issues/18912#note-11" target="_blank" rel="noreferrer">this advice</a> to downgrade xcode to less than 14 looks promising. Both of these links should be boosted, here's my small contribution.</p>
<p>Well, it ended out being a little more in depth than this advice for me. But it did lead me to attempt to <code>gem install racc</code> which told me that I'm missing ruby-devel or some such package.</p>
<p>So I dropped down to <code>brew install ruby-devel</code> but the cask doesn't exist. Brew helpfully suggested <code>brew install ruby-build</code> which...complained about the missing xcode-select tools. Now I'm running <code>xcode-select --install</code> to get those command line tools back after installing xcode 13.4.1.</p>
<p>Xcode takes forever to install, I currently have about 9 minutes left for the command line tools.</p>
<p>...ok it's done, and I still can't build racc. Curses. osx used to be a great environment for hacking ruby. But I'm not getting paid for this so I guess it's back to Windows I go for now. I mean, I can post this content but I can't really preview it before I publish it on Monterey. Oh well.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING.MetaWeblogProxy - a C# proxy for calling the MetaWeblog API via xml-rpc]]></title>
            <link>https://chris.pelatari.com/posts/2022-10-01-released-postxing.metaweblogproxy</link>
            <guid>https://chris.pelatari.com/posts/2022-10-01-released-postxing.metaweblogproxy</guid>
            <pubDate>Sat, 01 Oct 2022 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I am happy to announce the release of PostXING.MetaWeblogProxy, a C# proxy for calling the MetaWeblog API via xml-rpc. The project is hosted on GitHub:</p>
<p><a href="https://github.com/ChrisPelatari/PostXING.MetaWeblogProxy" target="_blank" rel="noreferrer">PostXING.MetaWeblogProxy</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Starting a new journey]]></title>
            <link>https://chris.pelatari.com/posts/2022-09-28-starting-a-new-journey</link>
            <guid>https://chris.pelatari.com/posts/2022-09-28-starting-a-new-journey</guid>
            <pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I started a new job yesterday.</p>
<p>It's great to start a new journey and I'm so excited for what this new job has in store for me. They trusted me from the get-go by giving me a laptop and two monitors. ngl I felt a bit nervous at first - this is my first job change for 21 years - but as soon as I got a whiteboard session and saw some of the code I will be hacking, it quickly turned to excitement.</p>
<p>I'm ready to get to work and show them what I'm made of. ✈️</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: bluefenix.net]]></title>
            <link>https://chris.pelatari.com/posts/2021-02-04-2021-02-04-182429</link>
            <guid>https://chris.pelatari.com/posts/2021-02-04-2021-02-04-182429</guid>
            <pubDate>Thu, 04 Feb 2021 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've upgraded <a href="https://bluefenix.net" target="_blank" rel="noreferrer">bluefenix.net</a> and changed it up a little bit. The copy that was there previously turned out to be custom lorem ipsum content. I still have some copy to figure out but I'm very pleased with the outcome so far.</p>
<p>In the process I upgraded to bootstrap 4 and the latest fontawesome. It's fun to keep my web properties up to date and it helps with potential clients in the future. Expertise &gt; time.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[bluefenix.net]]></title>
            <link>https://chris.pelatari.com/posts/2020-04-05-a-new-hope</link>
            <guid>https://chris.pelatari.com/posts/2020-04-05-a-new-hope</guid>
            <pubDate>Sun, 05 Apr 2020 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1><i class="fab fa-rebel"></i> a new hope</h1>
<p>I'm still working on copy, but I've relaunched <a href="https://bluefenix.net" target="_blank" rel="noreferrer">bluefenix.net</a>. It will be linked to this blog right here...I'm putting the finishing touches on my business for Computer Science consulting.</p>
<h3 id="wish-me-luck" tabindex="-1">Wish me luck. <a class="header-anchor" href="#wish-me-luck" aria-label="Permalink to &quot;Wish me luck.&quot;">&ZeroWidthSpace;</a></h3>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[2019-09-19 15:45:33]]></title>
            <link>https://chris.pelatari.com/posts/2019-09-19-2019-09-19-154533</link>
            <guid>https://chris.pelatari.com/posts/2019-09-19-2019-09-19-154533</guid>
            <pubDate>Thu, 19 Sep 2019 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I changed the post and draft tasks in the <a href="https://github.com/ChrisPelatari/chrispelatari.github.io/blob/master/Rakefile" target="_blank" rel="noreferrer">Rakefile for this site</a> to use the current date as the title if the user doesn't add one. Makes more sense...the title can be changed later if desired.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ERROR: Failed to build gem native extension]]></title>
            <link>https://chris.pelatari.com/posts/2019-08-22-error-failed-to-build-gem-native-extension</link>
            <guid>https://chris.pelatari.com/posts/2019-08-22-error-failed-to-build-gem-native-extension</guid>
            <pubDate>Thu, 22 Aug 2019 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I ran into this problem on a fresh install of Ubuntu 18.04.3 LTS. I had not installed development tools yet, so I found <a href="https://github.com/travis-ci/travis.rb/issues/558#issuecomment-355962361" target="_blank" rel="noreferrer">this</a> which prompted me to add:</p>
<ul>
<li>ruby-dev</li>
<li>gcc</li>
<li>libffi-dev</li>
<li>make</li>
</ul>
<p>That got the gems building, but it kept giving me an error after build:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>checking for gzdopen() in -lz... no</span></span>
<span class="line"><span>zlib is missing; necessary for building libxml2</span></span></code></pre>
</div><p>well shit.</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span> sudo apt install zlib</span></span>
<span class="line"><span>Reading package lists... Done</span></span>
<span class="line"><span>Building dependency tree       </span></span>
<span class="line"><span>Reading state information... Done</span></span>
<span class="line"><span>E: Unable to locate package zlib</span></span></code></pre>
</div><p>According to <a href="https://askubuntu.com/questions/508934/how-to-install-libpng-and-zlib" target="_blank" rel="noreferrer">this</a> I then ran:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>sudo apt-get install zlib1g-dev</span></span></code></pre>
</div><p>And boom.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[bee vs hive]]></title>
            <link>https://chris.pelatari.com/posts/2019-02-12-bee-vs-hive</link>
            <guid>https://chris.pelatari.com/posts/2019-02-12-bee-vs-hive</guid>
            <pubDate>Tue, 12 Feb 2019 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="that-which-injures-the-hive-injures-the-bee" tabindex="-1">&quot;That which injures the hive injures the bee.&quot; <a class="header-anchor" href="#that-which-injures-the-hive-injures-the-bee" aria-label="Permalink to &quot;&quot;That which injures the hive injures the bee.&quot;&quot;">&ZeroWidthSpace;</a></h2>
<h2 id="marcus-aurelius" tabindex="-1">- Marcus Aurelius <a class="header-anchor" href="#marcus-aurelius" aria-label="Permalink to &quot;- Marcus Aurelius&quot;">&ZeroWidthSpace;</a></h2>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[github for windows and babun]]></title>
            <link>https://chris.pelatari.com/posts/2018-05-22-github-for-windows-and-babun</link>
            <guid>https://chris.pelatari.com/posts/2018-05-22-github-for-windows-and-babun</guid>
            <pubDate>Tue, 22 May 2018 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>If you are on windows 10, you can simply use a linux subsystem. That ain’t what we’re talmbout here.</p>
<p><a href="http://babun.github.io/" target="_blank" rel="noreferrer">babun</a> is a cygwin based shell with a bunch of defaults added that aren't included with the portablegit install that comes with <a href="https://desktop.github.com" target="_blank" rel="noreferrer">github for windows</a>. Some of those defaults that I wanted to include, indeed what pushed me to try babun, are zsh and <a href="http://ohmyz.sh/" target="_blank" rel="noreferrer">oh-my-zsh</a>. (I was tryna figure out a way to include it in the portablegit, but ran into some roadblocks, such as no autoconf)</p>
<p>Setting up a custom shell in g4w is pretty straightforward, just open up options... and  add the following to the Custom selection for Default Shell:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>C:\Users\&#x3C;username>\.babun\babun.bat</span></span></code></pre>
</div><p>That's it!</p>
<p>I also added <a href="https://github.com/bhilburn/powerlevel9k" target="_blank" rel="noreferrer">powerlevel9k</a> and <a href="https://github.com/zsh-users/zsh-syntax-highlighting" target="_blank" rel="noreferrer">zsh-syntax-highlighing</a>, using the <a href="https://github.com/powerline/fonts/tree/master/Inconsolata" target="_blank" rel="noreferrer">Inconsolata for Powerline font</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Liquid Exception: no implicit conversion of Array into String in _layouts]]></title>
            <link>https://chris.pelatari.com/posts/2017-08-20-liquid-exception-no-implicit-conversion-of-array-into-string-in-_layouts</link>
            <guid>https://chris.pelatari.com/posts/2017-08-20-liquid-exception-no-implicit-conversion-of-array-into-string-in-_layouts</guid>
            <pubDate>Sun, 20 Aug 2017 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>&quot;Liquid Exception: no implicit conversion of Array into String in /_layouts/post.html&quot;</p>
<p>I was attempting to finally add an archive page to my jekyll site here on github-pages...I got the page in place and updated all of the dependencies, including a new Ruby environment to match what's on github's servers.</p>
<p>After I updated, I started getting the above error. It's hard to search for. At the time that I did, there was only 1 semi-relevant post I could find. The above error didn't make a lot of sense to me because I (obviously) don't dig into this every day. It does however give a couple of clues...there is a post that is handing what looks like an Array to a variable that expects a string. And it was a post from 2010. Only one, out of the 400+ posts that are currently here. It was in my title which had to be changed from this:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>title: [[deactivatedstyle]]</span></span></code></pre>
</div><p>to this:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>title: '\[deactivatedstyle\]'</span></span></code></pre>
</div><p>Because I have changed content storage systems so many times over the years, this became a problem (along with images...gotta be real careful where those go) of front matter/ruby not treating everything after title: as an actual string, which is not a problem for the sql sproc parameters that used to hold that field.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Making Windows the default operating system in grub 2]]></title>
            <link>https://chris.pelatari.com/posts/2016-12-15-making-windows-the-default-operating-system-in-grub-2</link>
            <guid>https://chris.pelatari.com/posts/2016-12-15-making-windows-the-default-operating-system-in-grub-2</guid>
            <pubDate>Thu, 15 Dec 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>tl;dr: change GRUB_DEFAULT=0 to the zero-based index of the Windows entry in the grub config file.</p>
<p>Windows updates seem to be happening at least once a week these days. Most of the time, the updates require a reboot to finish. I just happen to be running Debian linux on the same machine, which uses grub 2 to load each OS installed on the system. The default OS loaded is the first one in the list, in my case Debian. So, if I have to reboot my Windows install and walk away from my computer, I return to a Debian login screen. Well, this was true up until now.</p>
<p>I started with the suggestion <a href="https://www.danbishop.org/2011/05/26/make-windows-the-default-operating-system-in-grub2-even-after-ubuntu-updates/" target="_blank" rel="noreferrer">to edit the grub file here</a></p>
<p>However, this didn't work for me...instead of Vista as indicated in the link above, I have Windows 7 installed so the entry in grub is Windows 7 (loader) on dev/sda1 so I tried this as a replacement:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>GRUB_DEFAULT="Windows 7 (loader) on dev/sda1"</span></span></code></pre>
</div><p>(I use vi to edit files on linux:)</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>$ vi /etc/default/grub</span></span></code></pre>
</div><p>After rebooting the system, without changing the grub menu position, I was presented with the Debian login screen again.</p>
<p>Well shit.</p>
<p>So I decided to use the zero-based index of the OS this time...because the default is 0, with Windows being the third entry in the grub loader, I changed the default to 2:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>GRUB_DEFAULT=2</span></span></code></pre>
</div><p>After a sudo update-grub, and another sudo reboot, without touching the grub menu, I sat back and watched as Windows was loaded by default from grub.</p>
<p>Success!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Unable to activate albacore-2.5.13]]></title>
            <link>https://chris.pelatari.com/posts/2016-06-07-unable-to-activate-albacore-2.5.13</link>
            <guid>https://chris.pelatari.com/posts/2016-06-07-unable-to-activate-albacore-2.5.13</guid>
            <pubDate>Tue, 07 Jun 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="unable-to-activate-albacore-2-5-13-because-rake-11-1-2-conflicts-with-rake-10" tabindex="-1">Unable to activate albacore-2.5.13, because rake-11.1.2 conflicts with rake (~&gt; 10) <a class="header-anchor" href="#unable-to-activate-albacore-2-5-13-because-rake-11-1-2-conflicts-with-rake-10" aria-label="Permalink to &quot;Unable to activate albacore-2.5.13, because rake-11.1.2 conflicts with rake (~&gt; 10)&quot;">&ZeroWidthSpace;</a></h2>
<p>I had recently updated Ruby to version 2.3, which updated rake to verison 11 when I did a gem update.</p>
<p>Since I use albacore to build some of my projects, I need this to work. So first, I reverted Ruby back to version 2.1. Then I did a gem uninstall rake and was met with this:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>$ gem uninstall rake</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Select gem to uninstall:</span></span>
<span class="line"><span> 1. rake-10.4.2</span></span>
<span class="line"><span> 2. rake-11.1.2</span></span>
<span class="line"><span> 3. All versions</span></span>
<span class="line"><span>> 2</span></span>
<span class="line"><span>Successfully uninstalled rake-11.1.2</span></span></code></pre>
</div><p>This was the secret to getting the above error message to clear, and get albacore working again on my windows install.</p>
<p>Hopefully this is fixed in the near future, but until then I thought I would share this workaround.</p>
<p>hth</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Por seguro…]]></title>
            <link>https://chris.pelatari.com/posts/2016-05-18-por-seguro</link>
            <guid>https://chris.pelatari.com/posts/2016-05-18-por-seguro</guid>
            <pubDate>Wed, 18 May 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="fuck-yeah-bro" tabindex="-1">fuck yeah bro. <a class="header-anchor" href="#fuck-yeah-bro" aria-label="Permalink to &quot;fuck yeah bro.&quot;">&ZeroWidthSpace;</a></h1>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[angle between three points]]></title>
            <link>https://chris.pelatari.com/posts/2016-05-17-angle-between-three-points</link>
            <guid>https://chris.pelatari.com/posts/2016-05-17-angle-between-three-points</guid>
            <pubDate>Tue, 17 May 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h3 id="this-was-a-task-i-had-to-complete-to-attempt-to-find-a-right-angle-from-3-cartesian-coordinates-5-degrees" tabindex="-1">This was a task I had to complete to attempt to find a right angle from 3 cartesian coordinates, +/- 5 degrees. <a class="header-anchor" href="#this-was-a-task-i-had-to-complete-to-attempt-to-find-a-right-angle-from-3-cartesian-coordinates-5-degrees" aria-label="Permalink to &quot;This was a task I had to complete to attempt to find a right angle from 3 cartesian coordinates, +/- 5 degrees.&quot;">&ZeroWidthSpace;</a></h3>
<p>Of course the first place I looked was <a href="http://stackoverflow.com/questions/1211212/how-to-calculate-an-angle-from-three-points" target="_blank" rel="noreferrer">StackOverflow</a> which led me to <a href="http://phrogz.net/angle-between-three-points" target="_blank" rel="noreferrer">this explanation</a> with some ruby code:</p>
<div class="language-ruby vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ruby</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> angle_between_points</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(p0, p1, p2)</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  a</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = (p1[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">p0[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (p1[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">p0[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  b</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = (p1[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">p2[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (p1[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">p2[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  c</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = (p2[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">p0[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (p2[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">p0[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">**</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  Math</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">acos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">( (a</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">b</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">c) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Math</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sqrt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">a</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">b) ) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 180</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Math</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">PI</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span></code></pre>
</div><p>For my purposes, I simply created the three arrays and passed them to the method after a call to puts:</p>
<div class="language-ruby vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ruby</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">p0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2005000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">992453</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">p1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1895297</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">949433</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">p2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1920079</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">884362</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">puts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> angle_between_points p0, p1, p2</span></span></code></pre>
</div><p>Now, I can adjust the numbers in the .rb file and call it at the command line:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>chris@IO  ~/Documents/code</span></span>
<span class="line"><span>$ ruby angle_between_points.rb</span></span>
<span class="line"><span>90.56350243137959</span></span></code></pre>
</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[San Juan]]></title>
            <link>https://chris.pelatari.com/posts/2016-04-30-sanjuan</link>
            <guid>https://chris.pelatari.com/posts/2016-04-30-sanjuan</guid>
            <pubDate>Sat, 30 Apr 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="going-to-puerto-rico-rn-xd" tabindex="-1">going to Puerto Rico rn XD <a class="header-anchor" href="#going-to-puerto-rico-rn-xd" aria-label="Permalink to &quot;going to Puerto Rico rn XD&quot;">&ZeroWidthSpace;</a></h1>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[#ripprince]]></title>
            <link>https://chris.pelatari.com/posts/2016-04-24-ripprince</link>
            <guid>https://chris.pelatari.com/posts/2016-04-24-ripprince</guid>
            <pubDate>Sun, 24 Apr 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="electric-word-life" tabindex="-1">Electric word life. <a class="header-anchor" href="#electric-word-life" aria-label="Permalink to &quot;Electric word life.&quot;">&ZeroWidthSpace;</a></h1>
<h2 id="it-means-forever-and-that-s-a-mighty-long-time" tabindex="-1">it means forever and that's a mighty long time. <a class="header-anchor" href="#it-means-forever-and-that-s-a-mighty-long-time" aria-label="Permalink to &quot;it means forever and that's a mighty long time.&quot;">&ZeroWidthSpace;</a></h2>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[recode]]></title>
            <link>https://chris.pelatari.com/posts/2016-04-20-recode</link>
            <guid>https://chris.pelatari.com/posts/2016-04-20-recode</guid>
            <pubDate>Wed, 20 Apr 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I noticed that github pages has updated its jekyll version, so to keep up I've
decided to start over again.</p>
<h3 id="simpler-is-better" tabindex="-1">simpler is better. <a class="header-anchor" href="#simpler-is-better" aria-label="Permalink to &quot;simpler is better.&quot;">&ZeroWidthSpace;</a></h3>
<p>I also added a default Rakefile <a href="https://github.com/gummesson/jekyll-rake-boilerplate" target="_blank" rel="noreferrer">from here</a></p>
<p>this makes it easier to start posts.</p>
<p>Next I think I will be adding an archive page.</p>
<p>-c</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Running 1Password on Debian Linux]]></title>
            <link>https://chris.pelatari.com/posts/2016-04-05-running-1password-on-debian-linux</link>
            <guid>https://chris.pelatari.com/posts/2016-04-05-running-1password-on-debian-linux</guid>
            <pubDate>Tue, 05 Apr 2016 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="this-is-how-i-got-1password-for-windows-v4-6-0-604-running-on-debian-linux" tabindex="-1">This is how I got 1Password for Windows v4.6.0.604 running on Debian Linux <a class="header-anchor" href="#this-is-how-i-got-1password-for-windows-v4-6-0-604-running-on-debian-linux" aria-label="Permalink to &quot;This is how I got 1Password for Windows v4.6.0.604 running on Debian Linux&quot;">&ZeroWidthSpace;</a></h2>
<p>The first thing I tried was just running the installer with wine at the terminal.</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>chris@Callisto:~/Downloads$ wine 1Password-4.6.0.604.exe</span></span>
<span class="line"><span>wine: Bad EXE format for Z:\home\chris\Downloads\1Password-4.6.0.604.exe.</span></span></code></pre>
</div><p>Well crap. what does that mean? Could the 1Password installer be 32bit, while my system is 64? Bingo. You won't find that info on the <a href="https://support.1password.com/1password-in-wine/" target="_blank" rel="noreferrer">official AgileBits walkthrough</a>.</p>
<p>So instead of using the terminal, I turned to PlayOnLinux, which gives more options for installation.</p>
<p>I don't know if this was a requirement, but I chose wine version 1.4.1 in PlayOnLinux, also the 32 bit installation. Browsed the 1Password.4.6.0.604.exe file and ran the installer like normal. It even accepted my license key.</p>
<h4 id="now-i-have-a-working-1password-installation-on-my-debian-linux-machine" tabindex="-1">Now I have a working 1Password installation on my Debian Linux machine <a class="header-anchor" href="#now-i-have-a-working-1password-installation-on-my-debian-linux-machine" aria-label="Permalink to &quot;Now I have a working 1Password installation on my Debian Linux machine&quot;">&ZeroWidthSpace;</a></h4>
<p>hth</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[switched engines again]]></title>
            <link>https://chris.pelatari.com/posts/2015-10-07-switched-engines-again</link>
            <guid>https://chris.pelatari.com/posts/2015-10-07-switched-engines-again</guid>
            <pubDate>Wed, 07 Oct 2015 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>this time from WordPress to jekyll. I had already toyed with getting some content over into jekyll along with a few extra tools in Jekyll-bootstrap. WordPress was winning the blog wars at the time and the import from my previous engine (dotText) seemed more complete over there.</p>
<p>But jekyll plays to my geek tendencies. Markdown makes authoring posts fairly easy and eliminates the need for a blog posting tool - which is how I spent a lot of my spare time about a decade ago.</p>
<p>I imported the WordPress content using a tool called <a href="https://github.com/theaob/wpXml2Jekyll" target="_blank" rel="noreferrer">wpXml2Jekyll</a>. It was very straightforward, I like that. Bonus: despite being a &quot;windows&quot; application, it works on OS X using Mono. Simply add mono to the beginning of the command:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">mono</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> wpXml2Jekyll.exe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [wordpress </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">export</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> file]</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [output </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">directory]</span></span></code></pre>
</div><p>I think I still have to go thru some posts for some broken images, transfer some over etc. fairly simple transition tho.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Debian Linux]]></title>
            <link>https://chris.pelatari.com/posts/2015-10-07-debian-linux</link>
            <guid>https://chris.pelatari.com/posts/2015-10-07-debian-linux</guid>
            <pubDate>Wed, 07 Oct 2015 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="i-have-recently-been-going-thru-the-process-of-moving-some-current-web-properties-from-asp-net-mvc-to-ruby-on-rails" tabindex="-1">I have recently been going thru the process of moving some current web properties from asp.net mvc to ruby on rails. <a class="header-anchor" href="#i-have-recently-been-going-thru-the-process-of-moving-some-current-web-properties-from-asp-net-mvc-to-ruby-on-rails" aria-label="Permalink to &quot;I have recently been going thru the process of moving some current web properties from asp.net mvc to ruby on rails.&quot;">&ZeroWidthSpace;</a></h2>
<p>In the past, I have toyed with the idea of moving to rails, enough to get some prototype code running. I feel that the framework has matured quite a bit and it seems like a logical tool to use for rapid, maintainable web development. The last push to go ahead and put some real work into this idea has come with the most recent updates to asp.net. I really like the idea of being able to hack asp.net sites on OS X, and I will see if a transition within .net is doable or desirable in the future. For now tho, if I have to learn a whole new paradigm I might as well learn a new framework while I'm at it. Routing is one area that seems more powerful in rails - mvc routing is very similar and probably as powerful. For now, I want to see how those dirty rails hippies live.</p>
<p>In my quest to learn rails, I needed a dual-boot environment to run alongside windows. I chose debian linux because it seems like it has access to most of the stuff that I need. Debian's installer was pretty impressive. It has a setup.exe that runs from within windows. At first I burned the CD incorrectly (just copied the iso) but after getting that sorted debian installed, put a grub loader in the mbr, and boom I was ready to roll.</p>
<p>After double checking that the dual-boot installed properly, I needed a few tools.</p>
<p>I started with Chromium for the default browser, and then found dropbox and keepass2 and installed those for some xplat love.</p>
<ul>
<li><a href="http://atom.io" target="_blank" rel="noreferrer">Atom editor</a></li>
<li>git</li>
<li>sudo</li>
<li><a href="http://rvm.io" target="_blank" rel="noreferrer">rvm</a></li>
<li>bundler</li>
</ul>
<p>apt-get is the package manager on debian. Atom has a .deb package available for download. I got it installed with dpkg.</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dpkg</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> atom-amd64.deb</span></span></code></pre>
</div><p>ah, but that didn't install all the way. Looking at the logs told me that it was missing git. okay. here is where I started to run into permission problems, so I tried running sudo only to find it not installed by default. 😦</p>
<p>it did have su, so I ran under su:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">apt-get</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> sudo</span></span></code></pre>
</div><p>now I have sudo, but I'm not listed as a sudoer. So, still under su:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">visudo</span></span></code></pre>
</div><p>and add the appropriate permissions.</p>
<p>now, I can install git.</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> apt-get</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> git</span></span></code></pre>
</div><p>git is there. but atom still fails to install. apt-get to the rescue again:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> apt-get</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span></span></code></pre>
</div><p>and that solved it for me.</p>
<p>Next, I needed rvm so I installed it using curl (also not available by default). rvm is very helpful in its messages, so after getting everything sorted there, and restarting the terminal, I could now install and execute bundler. I had to do a couple of extra steps to get postgresql installed locally, adding myself as a user with createdb access. But it worked. In one day.</p>
<h3 id="i-now-have-windows-7-10-os-x-and-debian-linux-installed-and-i-use-all-of-them-for-development" tabindex="-1">I now have windows 7, 10, OS X, and Debian linux installed and I use all of them for development. <a class="header-anchor" href="#i-now-have-windows-7-10-os-x-and-debian-linux-installed-and-i-use-all-of-them-for-development" aria-label="Permalink to &quot;I now have windows 7, 10, OS X, and Debian linux installed and I use all of them for development.&quot;">&ZeroWidthSpace;</a></h3>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I forgot.]]></title>
            <link>https://chris.pelatari.com/posts/2014-08-25-i-forgot</link>
            <guid>https://chris.pelatari.com/posts/2014-08-25-i-forgot</guid>
            <pubDate>Mon, 25 Aug 2014 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>About 6 years ago I joined twitter. I found an outlet for random ideas with a small constraint: 140 characters or less. And I abused the fuck out of it. So much so that I forgot that I had this little slice of web that nobody reads but me. I forgot that I hadn't logged into this app for long enough that it blasted the original post abt this topic that I wrote 20 minutes ago. I forgot that I own this, and I can post whatever the fuck I want. I forgot how easy it was, and I forgot that one only becomes a better writer thru writing more.</p>
<p>I forgot.</p>
<p>I forgot all the hours I spent taking this blog from aspnetweblogs, to a personal instal of .Text, to an updated version of SubText, thru a few upgrades of same, on to this very Wordpress that you are reading now. I forgot abt using this blog as a test platform for my (now defunct) winforms project called postxing, meant for cross-posting blog posts that receive more traffic on a more publicized feed for geeky content.</p>
<p>Most importantly, I forgot that I do this for me, not for any &quot;readers&quot;. It's easy to get caught up in what other, more read bloggers write and emulate what you think &quot;works&quot;. Nah fuck that. This thing is for me, not you. If you get something out of it, great. If not, great. But it's not for you. It's for me.</p>
<p>And I remember now.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Did I lose that post?]]></title>
            <link>https://chris.pelatari.com/posts/2014-08-25-did-i-lose-that-post</link>
            <guid>https://chris.pelatari.com/posts/2014-08-25-did-i-lose-that-post</guid>
            <pubDate>Mon, 25 Aug 2014 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Looks like I did. Oh well. You'll never see the glory of that shitty post. Fuck it.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Opening Visual Studio with Rake]]></title>
            <link>https://chris.pelatari.com/posts/2014-08-06-opening-visual-studio-with-rake</link>
            <guid>https://chris.pelatari.com/posts/2014-08-06-opening-visual-studio-with-rake</guid>
            <pubDate>Wed, 06 Aug 2014 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>There are probably several ways to do this, here’s how I did.</p>
<p>rakefile.rb:</p>
<div class="language-ruby vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ruby</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DIR</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> File</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dirname</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">__FILE__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">desc </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Starts Visual Studio with the project solution."</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">task </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">:vs</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> do</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> sln</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> = </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">#{</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">DIR</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">/src/project.sln"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">gsub!</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '/'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> system</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">( </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"start </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">#{sln}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> )</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">end</span></span></code></pre>
</div><p>That’s it! From a cmd shell type “rake vs” and Visual Studio will start with the specified solution file.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hi.]]></title>
            <link>https://chris.pelatari.com/posts/2014-05-12-hi</link>
            <guid>https://chris.pelatari.com/posts/2014-05-12-hi</guid>
            <pubDate>Mon, 12 May 2014 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hello. How ya durrin?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Wheelers for a cause]]></title>
            <link>https://chris.pelatari.com/posts/2013-07-28-WFAC</link>
            <guid>https://chris.pelatari.com/posts/2013-07-28-WFAC</guid>
            <pubDate>Sun, 28 Jul 2013 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Went to Texas Off Road Ranch in Huntsville with <a href="./tx4wd.org.html">tx4wd</a> to have a little fun run. The for a cause part was for 5th ward dogs so we brought dog food for $10 off the $30 admission. So, helped some animals and got to wheel a little bit to boot.</p>
<p>Probably the best part of Tx Off Road Ranch is the playground. You can tell someone has been out there quite a bit to make some fun sandstone obstacles. Plus, earlier in the day it wasn't that hot. (I ended up getting so overheated that I quite literally almost passed out. So I burnt out early.)</p>
<p>Other than that, the park doesn't have that much to offer. They seem to have 2 trail levels there: 2 wheel drive easy and fucking impossible. It's the sandstone I think. On the only extreme trail they have there, all of the boulders <em>look</em> nice and stable, but try crawling up them and they shoot out from under your tires. No bueno.</p>
<p>After trying a couple of the harder trails we went back for lunch and bullshittin. I helped someone get their JKU back in 2H, having recently replaced my transfer case shifter cable with an <a href="http://www.advanceadapters.com/products/715596--heavy-duty-jk-cable-shifter-upgrade/" target="_blank" rel="noreferrer">Advanced Adapters cable shifter upgrade</a> because of the same flimsy plastic clip issue they suffered. Since I'd just done the upgrade I had become quite familiar with the mechanics of how the stock system comes and why it's a dumb design. I'm sure you could get away with buying the cheap plastic clips and replacing them for a while. The second one that broke on me caused me to go ahead and get the upgrade, personally.</p>
<p>Right before lunch, but after we got back from the trails to the camping area, I let <strike>Ethan</strike> sorry, Chris Jr. drive the Jeep for the first time. I was fairly nervous but I didn't freak out, mainly because we would be going at very slow speeds in a vehicle that I have been building up for the past year and a half to be safe even in extreme conditions. I jacked the driver's seat up as far as it would go, pulled it really far forward and told him, &quot;Turn the ignition, and put her in Drive.&quot;</p>
<p>Young Christopher did very well for his first try! Hell, he did better than a lot of people I took my driving test with so many years ago in Alief. I had to first explain very explicitly how to operate the pedals, and I guided him around the camp area for a couple of laps. He was outstanding at taking direction and focused very hard on doing exactly what I was telling him to do. He even got kudos from Brian. I appreciated that, like a lot.</p>
<p>Very proud dad, very hot day.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[github flow]]></title>
            <link>https://chris.pelatari.com/posts/2013-07-16-github-flow</link>
            <guid>https://chris.pelatari.com/posts/2013-07-16-github-flow</guid>
            <pubDate>Tue, 16 Jul 2013 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="what-is-github-flow" tabindex="-1">What is github flow? <a class="header-anchor" href="#what-is-github-flow" aria-label="Permalink to &quot;What is github flow?&quot;">&ZeroWidthSpace;</a></h2>
<p>I will let <a href="https://github.com/blog/1557-github-flow-in-the-browser" target="_blank" rel="noreferrer">them explain that.</a> I guess the basic idea is to simplify the way git flow encourages you to organize branches.</p>
<p>I'm glad that I <a href="http://chrispelatari.github.io/2013/07/07/git-flow-and-github-for-windows/" target="_blank" rel="noreferrer">know how to install git flow</a> and I like the structure that it enables, but simpler is better.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <link>https://chris.pelatari.com/posts/2013-07-07-git-flow-and-github-for-windows</link>
            <guid>https://chris.pelatari.com/posts/2013-07-07-git-flow-and-github-for-windows</guid>
            <pubDate>Sun, 07 Jul 2013 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<h2 id="what-no-getopt" tabindex="-1">what, no getopt? <a class="header-anchor" href="#what-no-getopt" aria-label="Permalink to &quot;what, no getopt?&quot;">&ZeroWidthSpace;</a></h2>
<p>Every time <a href="http://windows.github.com" target="_blank" rel="noreferrer">github for windows</a> updates, I lose git-flow. The portable git that is extracted with the install doesn't include getopt.exe, which is needed to install and use git-flow on windows.</p>
<h2 id="start-with-the-git-flow-repository" tabindex="-1">start with the git-flow repository <a class="header-anchor" href="#start-with-the-git-flow-repository" aria-label="Permalink to &quot;start with the git-flow repository&quot;">&ZeroWidthSpace;</a></h2>
<p>clone the <a href="https://github.com/nvie/gitflow" target="_blank" rel="noreferrer">git-flow repository</a></p>
<p>when you cd to contrib and run msysgit-install.cmd from the cmd line, it says</p>
<blockquote>
<p>MsysGit installation directory not found.
Try to give the directory name on the command line:
msysgit-install &quot;C:\Program Files (x86)\Git&quot;</p>
</blockquote>
<p>So now you have to find the install directory and try to add that to the msysgit-install cmd line. This time, in my case it was</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>> msysgit-install "C:\Users\Chris\AppData\Local\GitHub\PortableGit_015aa71ef18c047ce8509ffb2f9e4bb0e3e73f13"</span></span>
<span class="line"><span>> Installing gitflow into "C:\Users\Chris\AppData\Local\GitHub\PortableGit_015aa71ef18c047ce8509ffb2f9e4bb0e3e73f13"...</span></span></code></pre>
</div><h2 id="but-wait-there-s-more" tabindex="-1">But wait there's more! <a class="header-anchor" href="#but-wait-there-s-more" aria-label="Permalink to &quot;But wait there's more!&quot;">&ZeroWidthSpace;</a></h2>
<p>Now it tells us that getopt.exe is not found. Go to the git-flow repository page for <a href="https://github.com/nvie/gitflow/wiki/Windows" target="_blank" rel="noreferrer">manual install instructions</a> which pretty much outlines the same steps I'm typing right now, so...moving right along</p>
<p>follow the links to <a href="http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm" target="_blank" rel="noreferrer">getopt.exe</a> and <a href="http://gnuwin32.sourceforge.net/packages/libintl.htm" target="_blank" rel="noreferrer">libintl3</a> and copy them to your portablegit bin directory. now when you run msysgit-install with the directory parameter, git flow installs. w00t!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Using git flow with github for windows]]></title>
            <link>https://chris.pelatari.com/posts/2012-07-02-using-git-flow-with-github-for-windows</link>
            <guid>https://chris.pelatari.com/posts/2012-07-02-using-git-flow-with-github-for-windows</guid>
            <pubDate>Mon, 02 Jul 2012 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I like <a href="http://windows.github.com">github for windows</a>. Seriously, they did a great job with it - kudos, <a href="http://haacked.com">Phil</a>. I like that it has an updateable bash shell ala msysgit. I also like to use <a href="http://github.com/nvie/gitflow">git-flow</a> but alas, this isn’t included with the release. Here is how I got it installed on my system anyway:</p>
<p>First, I cloned the gitflow repository (using github for windows) then opened the shell there. The readme says there is a cmd script in the contrib folder called msysgit-install.cmd so I tried to use this but the script told me it couldn’t find getopt:</p>
<p><a href="http://chrispelatari.files.wordpress.com/2012/07/get-opt-not-found.png"><img class="alignnone size-full wp-image-1130" alt="get-opt-not-found" src="http://chrispelatari.files.wordpress.com/2012/07/get-opt-not-found.png" width="593" height="88" /></a></p>
<p>boo.</p>
<p>Fortunately, I have the other install of <a href="http://code.google.com/p/msysgit/">msysgit</a> on my machine so I copied getopt.exe from C:Program FilesGitbin to that fancy path in the image above, along with some supporting dlls</p>
<p><a href="http://chrispelatari.files.wordpress.com/2012/07/cygwindlls.png"><img class="alignnone size-full wp-image-1131" alt="cygwindlls" src="http://chrispelatari.files.wordpress.com/2012/07/cygwindlls.png" width="109" height="87" /></a></p>
<p>After doing this, running msysgit-install.cmd copied over the necessary files, and I was able to cd to a repository with only master and develop branches and run git flow init.</p>
<p><a href="http://chrispelatari.files.wordpress.com/2012/07/git-flow-init.png"><img class="alignnone size-full wp-image-1132" alt="git-flow-init" src="http://chrispelatari.files.wordpress.com/2012/07/git-flow-init.png" width="593" height="343" /></a></p>
<p>Next step: a feature request to the github for windows team to ask for maybe including at least getopt if not git-flow in the next release?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Same]]></title>
            <link>https://chris.pelatari.com/posts/2012-03-31-same</link>
            <guid>https://chris.pelatari.com/posts/2012-03-31-same</guid>
            <pubDate>Sat, 31 Mar 2012 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Same.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Underbelly project in my living room]]></title>
            <link>https://chris.pelatari.com/posts/2012-03-09-underbelly-project-in-my-living-room</link>
            <guid>https://chris.pelatari.com/posts/2012-03-09-underbelly-project-in-my-living-room</guid>
            <pubDate>Fri, 09 Mar 2012 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It started when I saw a piece from the underbelly project NYC by <a href="http://joeiurato.wordpress.com/">:01</a>.</p>
<p>It inspired me. I think it's beautiful. So I made a <a href="http://instagr.am/p/nCCrW/">transparency of it</a> to cut my own stencils.</p>
<img class="alignnone" title=":01 transparency" src="http://distilleryimage6.s3.amazonaws.com/3b4404624d4e11e180c9123138016265_7.jpg" alt=":01 transparency" width="612" height="612" />
<p>This is my first piece. I'm using Joe's art as a guideline. I think I may switch up the words a bit since my living room has no upstairs. 😃 (not pictured: it says &quot;the people upstairs are crazy&quot;)</p>
<p>I hope that my reproduction honors the original work, and conveys the respect of the student to a very talented mentor. I will post more pics of my progress soon.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[GIT flow on windows 7 with msysgit]]></title>
            <link>https://chris.pelatari.com/posts/2010-09-30-git-flow-on-windows-7-with-msysgit</link>
            <guid>https://chris.pelatari.com/posts/2010-09-30-git-flow-on-windows-7-with-msysgit</guid>
            <pubDate>Thu, 30 Sep 2010 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>this is <a href="http://http://github.com/nvie/gitflow/issues/issue/25">outlined on github</a> by psampaio:</p>  <blockquote>   <p>I managed to get git flow working with msysGit, but needed some hacks on my setup. First, I copied all the git* files to libexecgit-core. Then replaced shFlags like snaewe mentioned, but &lt;install_dir&gt; for me was also libexecgit-core.</p>    <p>Git flow complained about getopt. I got it from cygwin (package utils_linux*) and copied the getopt.exe to the bin folder. Also had to copy 4 more files from cygwin to the bin folder (cyggcc_s-1.dll, cygiconv-2.dll, cygintl-8.dll and cygwin1.dll).</p>    <p>Like I said in the beginning, this is a hacky solution but it did work for me.</p> </blockquote>  <p>I simply followed what they said and have gotten this working on a few windows 7 machines. I even took it a step further and created a couple of zip files of the dlls and scripts required: <a href="http://dl.dropbox.com/u/88271/bin.zip">bin.zip</a> and <a href="http://dl.dropbox.com/u/88271/git-core.zip">git-core.zip</a></p>  <p>To install these for mSysGit:</p>  <ol>   <li>copy bin.zip to C:Program FilesGit </li>    <li>unzip bin.zip </li>    <li>copy git-core.zip to C:Program FilesGitlibexec </li>    <li>unzip git-core.zip </li> </ol>  <p> </p>  <p>[it’s important that they are unzipped from the correct place, but you knew that :)]</p>  <p>and that’s all there is to it. you should now be able to go to a git repository on windows with mSysGit, type git flow init, and be presented with the git flow setup prompts.</p>  <p>enjoy!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ASP.NET MVC - Faking ControllerContext to test HttpContext.Current.User and IPrincipal]]></title>
            <link>https://chris.pelatari.com/posts/2010-06-22-asp-net-mvc-faking-controllercontext-to-test-httpcontext-current-user-and-iprincipal</link>
            <guid>https://chris.pelatari.com/posts/2010-06-22-asp-net-mvc-faking-controllercontext-to-test-httpcontext-current-user-and-iprincipal</guid>
            <pubDate>Tue, 22 Jun 2010 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This was pretty straightforward but I didn't find it written up anywhere on
the web so here goes. What follows is how I addressed testing IPrincipal in
ASP.NET MVC using <a href="http://xunit.codeplex.com/" target="_blank" rel="noreferrer">xunit.net</a></p>
<p>Let's start with the test:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Fact</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> changes_password</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  //arrange</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> controller</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ObjectFactory.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetInstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AccountController</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  controller.ControllerContext </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestControllerContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  //act</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> controller.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ChangePassword</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"password"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"p455w0rd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"p455w0rd"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  //assert</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> viewResult</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Assert.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IsType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">RedirectToRouteResult</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(result);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span></code></pre>
</div><p>notice line 5. why are we setting a custom ControllerContext here?
ControllerContext tells the current controller about things like HttpContext,
which will be unavailable during tests (whoops!) This is needed because
somewhere in the Action code, I am making a call into User.Identity.Name, which
is supplied by HttpContext at runtime. Again, since this isn't available during
testing, I have to tell the controller how to find the fake httpcontext used
then.</p>
<p>For this project, I'm using simple hand-rolled stubs. Here is the code for
TestControllerContext:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestControllerContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> : </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ControllerContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> System</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Web</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">HttpContextBase</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> HttpContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestHttpContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    set</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">      base</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.HttpContext </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>instead of returning the runtime HttpContext (which doesn't exist, remember)
I'm supplying another hand-rolled stub. Here is that code:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestHttpContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> : </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">HttpContextBase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> System</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Security</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Principal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IPrincipal</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestPrincipal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    set</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">      base</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.User </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>again, same principal 😃 because I'm concerned about calling into User for
the Identity.Name property, I return another stub that implements IPrincipal.
Here is that code:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestPrincipal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> : </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IPrincipal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  public</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> IIdentity</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Identity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GenericIdentity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"you@me.com"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">); }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> bool</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> IsInRole</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> role</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    throw</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> NotImplementedException</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>now, when the controller code that was calling User.Identity.Name is tested,
it will return the name <a href="mailto:you@me.com" target="_blank" rel="noreferrer">you@me.com</a>. Line 11 of
the test code above asserts the test passes because if an error occurred, I
would redisplay the form with errors shown using the View() method. A redirect
says that the change password op worked:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (MembershipService.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ChangePassword</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(User.Identity.Name, currentPassword, newPassword))</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  return</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> RedirectToAction</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"ChangePasswordSuccess"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre>
</div><p>hth.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Sunburst Font & Color scheme for Visual Studio 2010]]></title>
            <link>https://chris.pelatari.com/posts/2010-04-20-sunburst-font-color-scheme-for-visual-studio-2010</link>
            <guid>https://chris.pelatari.com/posts/2010-04-20-sunburst-font-color-scheme-for-visual-studio-2010</guid>
            <pubDate>Tue, 20 Apr 2010 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Here is a clone of the TextMate theme "Sunburst" for Visual Studio 2010: <a href="http://bluefenix.net/etc/blue_fenix_sunburst_lite.zip">http://bluefenix.net/etc/blue_fenix_sunburst_lite.zip</a></p>
<p>I just guessed on the colors since I had to translate from mac colors to 
windows, but the result is pretty effective for me. enjoy!</p>
<p>update: I changed the colors to use the actual rgb values from 
textmate.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Unable to find the requested .Net Framework Data Provider.  It may not be installed.]]></title>
            <link>https://chris.pelatari.com/posts/2010-04-06-unable-to-find-the-requested-net-framework-data-provider-it-may-not-be-installed</link>
            <guid>https://chris.pelatari.com/posts/2010-04-06-unable-to-find-the-requested-net-framework-data-provider-it-may-not-be-installed</guid>
            <pubDate>Tue, 06 Apr 2010 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div class="language-xml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">xml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">system.data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  &#x3C;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">DbProviderFactories</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      &#x3C;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">remove</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> invariant</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"System.Data.SQLite"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      &#x3C;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">add</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"SQLite Data Provider"</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">        invariant</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"System.Data.SQLite"</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">        description</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">".Net Framework Data Provider for SQLite"</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">        type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"System.Data.SQLite.SQLiteFactory, System.Data.SQLite"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> /></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  &#x3C;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">DbProviderFactories</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D">system.data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">></span></span></code></pre>
</div><p>this happened to me using subsonic on an x64 machine. adding the x64 binary
to /bin and adding the above to my web.config got me sorted.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[How to resolve a binary file conflict with Git]]></title>
            <link>https://chris.pelatari.com/posts/2010-03-05-how-to-resolve-a-binary-file-conflict-with-git</link>
            <guid>https://chris.pelatari.com/posts/2010-03-05-how-to-resolve-a-binary-file-conflict-with-git</guid>
            <pubDate>Fri, 05 Mar 2010 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2010/01/28/how-to-resolve-a-binary-file-conflict-with-git.aspx">http://www.lostechies.com/blogs/joshuaflanagan/archive/2010/01/28/how-to-resolve-a-binary-file-conflict-with-git.aspx</a></p>
<p>Thank you for that!</p>
<p>Although the message at the end of git status says use git checkout -- 
&lt;file&gt;, that's not it.</p>
<p>"If you prefer to resolve the conflict using their copy, you need to get the 
version of the file from the branch you were trying to merge in:
</p><p /><pre>git checkout otherbranch somefile.dll"</pre>
<p>
</p><p>sweet.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Scanning for Test implementation classes using StructureMap with xunit]]></title>
            <link>https://chris.pelatari.com/posts/2010-02-18-scanning-for-test-implementation-classes-using-structuremap-with-xunit</link>
            <guid>https://chris.pelatari.com/posts/2010-02-18-scanning-for-test-implementation-classes-using-structuremap-with-xunit</guid>
            <pubDate>Thu, 18 Feb 2010 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I have an <a href="http://xunit.codeplex.com/" target="_blank" rel="noreferrer">xunit test project</a> that is using hand-rolled stubs as concrete implementations of interfaces.
<a href="http://structuremap.sourceforge.net/Default.htm" target="_blank" rel="noreferrer">StructureMap</a> is
the DI container I'm using. I was looking at the names of my stubs, and they
followed the convention of TestXYZ as the concrete implementation of IXYZ.</p>
<p>To use <a href="http://structuremap.sourceforge.net/Default.htm" target="_blank" rel="noreferrer">StructureMap</a> from <a href="http://xunit.codeplex.com/" target="_blank" rel="noreferrer">xunit tests</a>, I created a base
class for any fact class that wanted to use ObjectFactory. In the base class
ctor, I call the bootstrapper's ConfigureStructureMap method.</p>
<p>At first I just had a bunch of</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">x.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ForRequestedType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IXYZ</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TheDefaultIsConcreteType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TestXYZ</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>();</span></span></code></pre>
</div><p>because I had only a handful of stubs and I didn't quite grasp how to scan like
the default scanner, only adding &quot;Test&quot; to the beginning of the class name.</p>
<p>Then I found the <a href="http://www.bjoernrochel.de/2009/07/24/cutting-the-fluff-from-service-registration-or-how-to-do-funky-stuff-with-coc-castledynamicproxy-structuremap/" target="_blank" rel="noreferrer">secret sauce over here</a>, via a method called FindPluginType.</p>
<p>Here is my bootstrapper code for my <a href="http://xunit.codeplex.com/" target="_blank" rel="noreferrer">xunit test project</a>:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TestScanner</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> : </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ITypeScanner</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Process</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">PluginGraph</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> graph</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(type.Name.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">StartsWith</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Test"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> pluginType</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FindPluginType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(type);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(pluginType </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      graph.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">AddType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(pluginType, type);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }				</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  static</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FindPluginType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> concreteType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    var</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> interfaceName</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "I"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> concreteType.Name.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Replace</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Test"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">""</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> concreteType.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetInterfaces</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Where</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Equals</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(t.Name, interfaceName, StringComparison.Ordinal)).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">FirstOrDefault</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Bootstrapper</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ConfigureStructureMap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    ObjectFactory.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Initialize</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">x</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        x.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Scan</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">s</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            s.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TheCallingAssembly</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            s.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">WithDefaultConventions</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            s.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">With</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TestScanner</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>What
results is essentially the <a href="http://structuremap.sourceforge.net/ScanningAssemblies.htm#section9" target="_blank" rel="noreferrer">DefaultConventionScanner</a>,
only it's looking for TestXYZ as the concrete implementation of IXYZ.</p>
<p>Killer.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Deran Schilling, Learner]]></title>
            <link>https://chris.pelatari.com/posts/2009-12-29-deran-schilling-learner</link>
            <guid>https://chris.pelatari.com/posts/2009-12-29-deran-schilling-learner</guid>
            <pubDate>Tue, 29 Dec 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Check this: "<a href="http://feedproxy.google.com/~r/derans/~3/AJiK02ER6Ws/automapper-aspnet-mvc.html">AutoMapper 
- ASP.NET MVC</a>" on <a href="http://derans.blogspot.com/">Deran Schilling, 
Learner</a>. </p>
<p>I've been catching up on Deran's posts about his wife's portfolio site. I'm 
quite enjoying the explanation of his thought process while building out 
the application. That is all.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[What to do if your Windows 2008 install won't activate complaining about no KMS server]]></title>
            <link>https://chris.pelatari.com/posts/2009-12-29-what-to-do-if-your-windows-2008-install-wont-activate-complaining-about-no-kms-server</link>
            <guid>https://chris.pelatari.com/posts/2009-12-29-what-to-do-if-your-windows-2008-install-wont-activate-complaining-about-no-kms-server</guid>
            <pubDate>Tue, 29 Dec 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Basically this is what happened:<br /><br />The MSDN subscriptions version of 
Windows Server 2008 installs by default using KMS (Key Management 
Service).<br />The key MSDN gave is a MAK (Multiple Activation Key).<br />So the 
install does not use the key, it tries to talk to KMS.<br />We don't have KMS here 
so it fails.<br /><br />Doing the following activates it using the MAK 
key:<br /><br />1) Open a cmd shell as Administrator.<br />2) Type the following (but 
use your key instead of all the X's)<br /><br />slmgr -ipk 
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX<br /><br />3) The prompt will return right away, but 
there is a licensing task that it started (if you look in Task Manager you can 
find a task SLsvc using up cpu, I assume this is where the licensing is going 
on).<br />4) After a while a dialog will pop up saying that it has been 
activated.<br /><br />Good Luck</p>
<p>above was lifted from a forum post. buried in there is the command line to 
bypass KMS and use the proper MAK instead. It worked!</p>
<p>In the process of figuring this out, MSFT had me download a video explaining 
how to setup a KMS, one of the requirements is that you need 5 servers to 
contact KMS before it will work. That's fucking retarded. If I'm paying for a 
product, I expect that I'm paying for <strong>ease of use.</strong> Making your 
paying customers bend over backwards to use the product you are selling is 
unsustainable, bad business. You can do better than that, 
Microsoft.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan and Lord Nobleton!]]></title>
            <link>https://chris.pelatari.com/posts/2009-10-03-ethan-and-lord-nobleton</link>
            <guid>https://chris.pelatari.com/posts/2009-10-03-ethan-and-lord-nobleton</guid>
            <pubDate>Sat, 03 Oct 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3978208629/" title="photo sharing"><img src="http://farm3.static.flickr.com/2440/3978208629_595e40298f.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3978208629/">Ethan and Lord Nobleton!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Bankai! New ink - Kurosaki Ichigo hollow mask]]></title>
            <link>https://chris.pelatari.com/posts/2009-08-29-bankai-new-ink-kurosaki-ichigo-hollow-mask</link>
            <guid>https://chris.pelatari.com/posts/2009-08-29-bankai-new-ink-kurosaki-ichigo-hollow-mask</guid>
            <pubDate>Sat, 29 Aug 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3869383488/" title="photo sharing"><img src="http://farm4.static.flickr.com/3487/3869383488_bfe017b555.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3869383488/">Bankai! New ink - Kurosaki Ichigo hollow mask</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
--<br />
-Christopher | <a href="http://bluefenix.net" rel="nofollow">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Homemade Don Juan Especial!]]></title>
            <link>https://chris.pelatari.com/posts/2009-07-27-homemade-don-juan-especial</link>
            <guid>https://chris.pelatari.com/posts/2009-07-27-homemade-don-juan-especial</guid>
            <pubDate>Mon, 27 Jul 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="padding:3px;text-align:left;"> <a href="http://www.flickr.com/photos/blue_fenix/3762764451/" title="photo sharing"><img src="http://farm3.static.flickr.com/2508/3762764451_fdd1649547.jpg" style="border:2px solid rgb(0,0,0);" alt="" /></a> <br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3762764451/">Homemade Don Juan Especial!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span> </div>
<p> I haven't been to Austin, tx in a while and was craving my favorite<br />
brakfast taco from Juan in a Million, the Don Juan Especial.<br />
<br />
This taco was the subject of an episode of man vs. food, where the<br />
host described how it is prepared, so I figured I'd give it a shot.<br />
<br />
This is what I came up with.<br />
<br />
Recipe transcribed from man vs. food:<br />
<br />
1 Idaho potato, boiled &amp; cubed<br />
"dash" of salt, paprika, black pepper<br />
2 strips of bacon, chopped<br />
2 fresh eggs<br />
<br />
Bring ingredients together in a frying pan on medium high heat, mix<br />
together &amp; cook for 5-10 minutes, scoop onto tortilla, top with cheese.<br />
<br />
Enjoy!<br />
--<br />
-Christopher | <a href="http://bluefenix.net" rel="nofollow">bluefenix.net</a> </p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New ink - Japanese devil mask!]]></title>
            <link>https://chris.pelatari.com/posts/2009-04-23-new-ink-japanese-devil-mask</link>
            <guid>https://chris.pelatari.com/posts/2009-04-23-new-ink-japanese-devil-mask</guid>
            <pubDate>Thu, 23 Apr 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3467963904/" title="photo sharing"><img src="http://farm4.static.flickr.com/3612/3467963904_db3db5ce20.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3467963904/">New ink: Japanese devil mask!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
Ink by Rob of Nice Guyz.<br />
Arigato gozai mashta! XD<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New ink - killer octopus!]]></title>
            <link>https://chris.pelatari.com/posts/2009-04-17-new-ink-killer-octopus</link>
            <guid>https://chris.pelatari.com/posts/2009-04-17-new-ink-killer-octopus</guid>
            <pubDate>Fri, 17 Apr 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3449613064/" title="photo sharing"><img src="http://farm4.static.flickr.com/3329/3449613064_ce79ac0936.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3449613064/">New ink: killer octopus!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
Ink by Rob of Nice Guyz.<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New ink - hacker emblem]]></title>
            <link>https://chris.pelatari.com/posts/2009-04-09-new-ink-hacker-emblem</link>
            <guid>https://chris.pelatari.com/posts/2009-04-09-new-ink-hacker-emblem</guid>
            <pubDate>Thu, 09 Apr 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3427301041/" title="photo sharing"><img src="http://farm4.static.flickr.com/3325/3427301041_db4f282caf.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3427301041/">New ink: hacker emblem</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Kevin Devine @ Mohawk's]]></title>
            <link>https://chris.pelatari.com/posts/2009-03-18-kevin-devine-mohawks-sxsw</link>
            <guid>https://chris.pelatari.com/posts/2009-03-18-kevin-devine-mohawks-sxsw</guid>
            <pubDate>Wed, 18 Mar 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3366007768/" title="photo sharing"><img src="http://farm4.static.flickr.com/3427/3366007768_8c85d14a07.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3366007768/">Kevin Devine @ Mohawk's #sxsw</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
From Brooklyn.<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New ink - Hook ups girl]]></title>
            <link>https://chris.pelatari.com/posts/2009-03-03-new-ink-hook-ups-girl</link>
            <guid>https://chris.pelatari.com/posts/2009-03-03-new-ink-hook-ups-girl</guid>
            <pubDate>Tue, 03 Mar 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3327362112/" title="photo sharing"><img src="http://farm4.static.flickr.com/3399/3327362112_fabc1e227a.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3327362112/">New ink: Hook ups girl</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
She's a hottie, ain't she? XD<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[at the Rockets game vs Cleveland]]></title>
            <link>https://chris.pelatari.com/posts/2009-02-26-the-rockets-game-vs-cleveland</link>
            <guid>https://chris.pelatari.com/posts/2009-02-26-the-rockets-game-vs-cleveland</guid>
            <pubDate>Thu, 26 Feb 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3312224135/" title="photo sharing"><img src="http://farm4.static.flickr.com/3454/3312224135_fc9b0d0352.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3312224135/">@ the Rockets game vs Cleveland</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan & Ricky pup!]]></title>
            <link>https://chris.pelatari.com/posts/2009-02-20-ethan-ricky-pup</link>
            <guid>https://chris.pelatari.com/posts/2009-02-20-ethan-ricky-pup</guid>
            <pubDate>Fri, 20 Feb 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3296347384/" title="photo sharing"><img src="http://farm4.static.flickr.com/3452/3296347384_b3042e72aa.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3296347384/">Ethan &amp; Ricky pup!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[February ALT.NET Geek Dinner]]></title>
            <link>https://chris.pelatari.com/posts/2009-02-03-february-alt-net-geek-dinner</link>
            <guid>https://chris.pelatari.com/posts/2009-02-03-february-alt-net-geek-dinner</guid>
            <pubDate>Tue, 03 Feb 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'll be <a href="http://flux88.com/blog/february-alt-net-geek-dinner/">there</a>.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan's a little snagglepuss!]]></title>
            <link>https://chris.pelatari.com/posts/2009-01-30-ethans-a-little-snagglepuss</link>
            <guid>https://chris.pelatari.com/posts/2009-01-30-ethans-a-little-snagglepuss</guid>
            <pubDate>Fri, 30 Jan 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3240022480/" title="photo sharing"><img src="http://farm4.static.flickr.com/3421/3240022480_74d437ea1e.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3240022480/">Ethan's a little snagglepuss!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The Don Juan Especiál]]></title>
            <link>https://chris.pelatari.com/posts/2009-01-25-the-don-juan-especial</link>
            <guid>https://chris.pelatari.com/posts/2009-01-25-the-don-juan-especial</guid>
            <pubDate>Sun, 25 Jan 2009 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3226520844/" title="photo sharing"><img src="http://farm4.static.flickr.com/3481/3226520844_eeda9a004f.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3226520844/">The Don Juan Especiál</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
Breakfast taco Nirvana from Juan in a million, Austin, TX<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan's got holiday spirit!]]></title>
            <link>https://chris.pelatari.com/posts/2008-12-20-ethans-got-holiday-spirit</link>
            <guid>https://chris.pelatari.com/posts/2008-12-20-ethans-got-holiday-spirit</guid>
            <pubDate>Sat, 20 Dec 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div style="text-align:left;padding:3px;">
<a href="http://www.flickr.com/photos/blue_fenix/3124207360/" title="photo sharing"><img src="http://farm4.static.flickr.com/3240/3124207360_bd74b61103.jpg" style="border:solid 2px #000000;" alt="" /></a>
<br />
<span style="font-size:.8em;margin-top:0;"><a href="http://www.flickr.com/photos/blue_fenix/3124207360/">Ethan's got holiday spirit!</a>, originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a>.</span>
</div>
<p>
Hehe jingle this! Ethan just turned 7, and he's missing a bottom tooth!<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a>
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RAWR!]]></title>
            <link>https://chris.pelatari.com/posts/2008-11-22-rawr</link>
            <guid>https://chris.pelatari.com/posts/2008-11-22-rawr</guid>
            <pubDate>Sat, 22 Nov 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a title="photo sharing" href="http://www.flickr.com/photos/blue_fenix/3051935476/"><img style="border:2px solid rgb(0,0,0);" alt="" src="http://farm4.static.flickr.com/3031/3051935476_43055feeb9_m.jpg" /></a> <br />
<span style="font-size:.9em;margin-top:0;"> <a href="http://www.flickr.com/photos/blue_fenix/3051935476/">RAWR!</a> <br />
Originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/">blue_fenix</a> </span>  RAWR! I eats teh turkee, you no has tanksgiving nao.<br />
<br />
Halp!<br />
<br />
--<br />
-Christopher | <a href="http://bluefenix.net">bluefenix.net</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Andre 3 stacks in NY]]></title>
            <link>https://chris.pelatari.com/posts/2008-11-22-andre-3-stacks-in-ny</link>
            <guid>https://chris.pelatari.com/posts/2008-11-22-andre-3-stacks-in-ny</guid>
            <pubDate>Sat, 22 Nov 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><img src="./../assets/images/andre_3000.jpg" alt="Andre 3 stacks in NY"></p>
<p>Originally uploaded by <a href="http://www.flickr.com/people/blue_fenix/" target="_blank" rel="noreferrer">blue_fenix</a></p>
<h2 id="i-ran-into-andre-3000-last-time-i-went-to-nyc-really-down-to-earth-dude" tabindex="-1">I ran into Andre 3000 last time I went to NYC. Really down to earth dude. <a class="header-anchor" href="#i-ran-into-andre-3000-last-time-i-went-to-nyc-really-down-to-earth-dude" aria-label="Permalink to &quot;I ran into Andre 3000 last time I went to NYC. Really down to earth dude.&quot;">&ZeroWidthSpace;</a></h2>
<p>-Christopher | <a href="http://bluefenix.net">bluefenix.net</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[SubSonic 3.0 preview 2]]></title>
            <link>https://chris.pelatari.com/posts/2008-11-13-subsonic-3-0-preview-2</link>
            <guid>https://chris.pelatari.com/posts/2008-11-13-subsonic-3-0-preview-2</guid>
            <pubDate>Thu, 13 Nov 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://blog.wekeroad.com/blog/subsonic-3-0-preview-2/">me 
likey</a>.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Houston ALT.NET Geek Dinner - Thursday Oct 2nd]]></title>
            <link>https://chris.pelatari.com/posts/2008-09-30-houston-alt-net-geek-dinner-thursday-oct-2nd</link>
            <guid>https://chris.pelatari.com/posts/2008-09-30-houston-alt-net-geek-dinner-thursday-oct-2nd</guid>
            <pubDate>Tue, 30 Sep 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'll be <a href="http://flux88.com/HoustonALTNETGeekDinnerThursdayOct2nd.aspx">there</a>.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Good Luck, Yex]]></title>
            <link>https://chris.pelatari.com/posts/2008-07-03-good-luck-yex</link>
            <guid>https://chris.pelatari.com/posts/2008-07-03-good-luck-yex</guid>
            <pubDate>Thu, 03 Jul 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>   </p><div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:28492517-ff36-4424-8de6-68e6d2e272c4" style="display:inline;margin:0;padding:0;"><div id="8d6ed373-08ea-457b-8ced-c684a0ff6b47" style="margin:0;padding:0;display:inline;"><div><a href="http://www.youtube.com/watch?v=g40c6iAEHpc&amp;hl=en&amp;fs=1" target="_new"><img src="http://bluefenix.net/blog/images/bluefenix_net/blog/WindowsLiveWriter/GoodLuckYex_13EAD/video3a81078b7f5c.jpg" alt="" /></a></div></div></div>   <p>Godspeed buddy. XD</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[jQuery - There is no spoon]]></title>
            <link>https://chris.pelatari.com/posts/2008-06-23-jquery-there-is-no-spoon</link>
            <guid>https://chris.pelatari.com/posts/2008-06-23-jquery-there-is-no-spoon</guid>
            <pubDate>Mon, 23 Jun 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been working with javascript almost since its inception. It was the first language that I ever really hacked in. I remember having to code around document.layers (blecch!), and I've used javascript with a fair amount of success in the past.</p>
<p>But lately I've been reading up on <a href="http://jquery.com">jQuery</a>. And I have experienced a profound moment of clarity. Using css selectors to manipulate the DOM is such a simple idea it qualifies as genius in my eyes. Using this along with asp.net mvc is simply a joy. There is no spoon.</p>
<p><b><a href="http://www.imdb.com/name/nm0936894/">Spoon boy</a></b>: Do not try and bend the spoon. That's impossible. Instead... only try to realize the truth.
<b><a href="http://www.imdb.com/name/nm0000206/">Neo</a></b>: What truth?
<b><a href="http://www.imdb.com/name/nm0936894/">Spoon boy</a></b>: There is no spoon.
<b><a href="http://www.imdb.com/name/nm0000206/">Neo</a></b>: There is no spoon?
<b><a href="http://www.imdb.com/name/nm0936894/">Spoon boy</a></b>: Then you'll see, that it is not the spoon that bends, it is only yourself.</p>
<p><a href="http://chrispelatari.files.wordpress.com/2008/06/photo_moviematrix-quotespoon.jpeg"><img class="alignnone size-full wp-image-1135" alt="photo_movieMatrix-quoteSpoon" src="http://chrispelatari.files.wordpress.com/2008/06/photo_moviematrix-quotespoon.jpeg" width="593" height="435" /></a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Welcome Back, Dare]]></title>
            <link>https://chris.pelatari.com/posts/2008-05-21-welcome-back-dare</link>
            <guid>https://chris.pelatari.com/posts/2008-05-21-welcome-back-dare</guid>
            <pubDate>Wed, 21 May 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...and thank goodness that <a href="http://25hoursaday.com/weblog/">hiatus is over</a>. XD</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Professional Ribbon control for Windows Forms]]></title>
            <link>https://chris.pelatari.com/posts/2008-05-14-professional-ribbon-control-for-windows-forms</link>
            <guid>https://chris.pelatari.com/posts/2008-05-14-professional-ribbon-control-for-windows-forms</guid>
            <pubDate>Wed, 14 May 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.codeplex.com/Ribbon">Open source (MSPL) Ribbon</a> that actually has some potential, despite the currently incomplete coverage of ribbon features. It's a winforms control, and is the best looking free ribbon control that I have seen yet.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Error - Could not open the requested SVN filesystem]]></title>
            <link>https://chris.pelatari.com/posts/2008-02-20-error_could_not_open_the_requested_svn_filesystem</link>
            <guid>https://chris.pelatari.com/posts/2008-02-20-error_could_not_open_the_requested_svn_filesystem</guid>
            <pubDate>Wed, 20 Feb 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>When trying to connect to a new subversion repository over apache 2.0 using subversion 1.4.5. Error number:165005
Looked at the error log for apache, and saw this:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>[Wed Feb 20 14:00:15 2008] [error] [client 192.168.xxx] (20014)Error string not specified yet: Expected format '3' of repository; found format '5'   </span></span>
<span class="line"><span>[Wed Feb 20 14:00:15 2008] [error] [client 192.168.xxx] Could not fetch resource information.  [500, #0]    </span></span>
<span class="line"><span>[Wed Feb 20 14:00:15 2008] [error] [client 192.168.xxx] Could not open the requested SVN filesystem  [500, #165005]</span></span></code></pre>
</div><p>and then found where the subversion modules lived in httpd.conf:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>LoadModule dav_svn_module modules/mod_dav_svn.so   </span></span>
<span class="line"><span>LoadModule authz_svn_module modules/mod_authz_svn.so</span></span></code></pre>
</div><p>stopped apache, copied the two .so files from subversionbin to apache2modules and restarted Apache.</p>
<p>then holla'd w00t! XD</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Bring it on!]]></title>
            <link>https://chris.pelatari.com/posts/2008-02-05-bring_it_on</link>
            <guid>https://chris.pelatari.com/posts/2008-02-05-bring_it_on</guid>
            <pubDate>Tue, 05 Feb 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.justsayhi.com/bb/fight5" style="background:transparent url('http://assets.justsayhi.com/badges/306/227/fight5.8m7oag93g3.jpg') no-repeat scroll 0;display:block;font-size:42px;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;width:296px;color:rgb(255,255,255);padding-top:145px;font-family:Arial, sans-serif;height:84px;text-align:center;text-decoration:none;">31</a></p>
<p> </p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Oh, she amazed me!]]></title>
            <link>https://chris.pelatari.com/posts/2008-01-24-oh_she_amazed_me</link>
            <guid>https://chris.pelatari.com/posts/2008-01-24-oh_she_amazed_me</guid>
            <pubDate>Thu, 24 Jan 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://dilbertblog.typepad.com/the_dilbert_blog/2008/01/the-hit-song-yo.html">Effing brilliant.</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Cheap Thrillz - TortoiseSVN overlay icons in Windows Vista]]></title>
            <link>https://chris.pelatari.com/posts/2008-01-02-cheap_thrillz_tortoisesvn_overlay_icons_in_windows_vista</link>
            <guid>https://chris.pelatari.com/posts/2008-01-02-cheap_thrillz_tortoisesvn_overlay_icons_in_windows_vista</guid>
            <pubDate>Wed, 02 Jan 2008 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div>
<p>Step1: install tortoisesvn.</p>
<p>Step2: open file dialog in vs.net (2008 at least)</p>
<p>Step3: XD</p>
<p><span style="text-decoration:underline;">update:</span> looks like the tortoisesvn team brought back those nifty icon overlays in vista while I wasn't paying attention 😉 Incedentally, there is an option to turn the icon overlays <span style="font-weight:bold;">off</span> in the open/save dialogs.</p>
<p> </p>
</div>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[DataGridView ColorPicker using a DataGridViewButtonColumn]]></title>
            <link>https://chris.pelatari.com/posts/2007-12-13-datagridview_colorpicker_using_a_datagridviewbuttoncolumn</link>
            <guid>https://chris.pelatari.com/posts/2007-12-13-datagridview_colorpicker_using_a_datagridviewbuttoncolumn</guid>
            <pubDate>Thu, 13 Dec 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It's not often that I get the opportunity to blog about something neat that I learned to do in <a href="http://windowsclient.net/" target="_blank" rel="noreferrer">winforms</a> so you know I gotta, even tho it's not totally complete yet. Here's how I got a DataGridViewButtonColumn to act as a color picker.</p>
<p>After a little bit of webernettin', I found a post by <a href="http://dotnetjunkies.com/WebLog/wardb/archive/2006/10/12/150262.aspx" target="_blank" rel="noreferrer">Ward Bekker</a> that describes how to handle the button click event of a DataGridViewButtonColumn. Sweet. We'll get back to that code in a second.</p>
<p>I want to have a special button that will display a rectangle of the selected color, so I created a class that derives from DataGridViewButtonCell. I want to be able to set the Color of the rectangle, and of course we have to paint the rectangle so we'll add a Color property of type Color (imagine that:) and override the Paint method.</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ColorPickerCell</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> : DataGridViewButtonCell{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> float</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> phi</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.618f</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  private </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Color</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> colorValue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  public Color Color {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    get { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> colorValue; }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    set {  </span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      colorValue </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value; </span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">      this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Value </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ToArgb</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ToString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  protected override </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Paint</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Graphics</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> graphics</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    Rectangle</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> clipBounds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    Rectangle</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> cellBounds</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> rowIndex</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    DataGridViewElementStates</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> cellState</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    object</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> value</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    object</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> formattedValue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> errorText</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    DataGridViewCellStyle</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> cellStyle</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    DataGridViewAdvancedBorderStyle</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> advancedBorderStyle</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    DataGridViewPaintParts</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> paintParts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">      //CDF: draw the button</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">      base</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Paint</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(graphics, clipBounds, cellBounds, rowIndex, cellState, value,     formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">      //CDF: draw a purty rectangle over the button</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      using</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Pen</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> darkPen</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Pen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(SystemColors.ControlDark){</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        Rectangle rc </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Rectangle</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(cellBounds.X </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 8</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, cellBounds.Y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        cellBounds.Width </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)(cellBounds.Width </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> phi </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 8</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">), </span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        cellBounds.Height </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)(cellBounds.Height </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> phi </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">));</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        graphics.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">FillRectangle</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> SolidBrush</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Color.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">FromArgb</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Parse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(formattedValue.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ToString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()))), rc);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        graphics.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DrawRectangle</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(darkPen, rc);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span></code></pre>
</div><p>I also derived a class from DataGridViewButtonColumn (ColorPickerColumn), but I didn't really override anything. Anyway, now that we've got a button that will display a colored rectangle, we can add a ColorPickerColumn to a DataGridView on a Form. The next step is to handle the CellContentClick event as Ward indicated.</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">private</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> dataGridView1_CellContentClick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">object</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sender</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DataGridViewCellEventArgs</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  //CDF: make sure we're on the right column. I used the name for this test.</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(dataGridView1.Columns[e.ColumnIndex].Name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">==</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "ColorColumn"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    ColorDialog</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> dlg</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ColorDialog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    ColorPickerCell</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> currentCell</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> dataGridView1[e.ColumnIndex, e.RowIndex] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ColorPickerCell</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(dlg.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ShowDialog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> DialogResult.OK){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(currentCell </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        currentCell.Color </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> dlg.Color;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">        this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Invalidate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span></code></pre>
</div><p>Seems to do exactly what I want for now. Nice XD</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Guitar Hero -  Pros]]></title>
            <link>https://chris.pelatari.com/posts/2007-11-28-guitar_hero_pros</link>
            <guid>https://chris.pelatari.com/posts/2007-11-28-guitar_hero_pros</guid>
            <pubDate>Wed, 28 Nov 2007 00:00:00 GMT</pubDate>
            <description><![CDATA[<p>pros indeed. Unfortunately, there are no Jimi Hendrix tracks on any of the Guitar Hero/Rock Band games. I really hope that changes some day. There is a character that somewhat resembles Jimi in Guitar Hero III, but it's not the same...it's not <strong>the experience.</strong></p>
<p>Guitar Hero is a lot of fun, but I have to admit that I'm having more fun on the drums and the vocals than the guitar. Maybe they're closer to the real thing, maybe it's just that they're different. Maybe it's the fact that I'm actually learning how to play the drums 😃 I saw the pic to the left on <a href="http://www.codinghorror.com/blog/archives/001000.html">CodingHorror</a>, and Jeff notes in the comments that the drums in rock band really do teach drumming:</p>
<blockquote>]]></description>
            <content:encoded><![CDATA[<p>pros indeed. Unfortunately, there are no Jimi Hendrix tracks on any of the Guitar Hero/Rock Band games. I really hope that changes some day. There is a character that somewhat resembles Jimi in Guitar Hero III, but it's not the same...it's not <strong>the experience.</strong></p>
<p>Guitar Hero is a lot of fun, but I have to admit that I'm having more fun on the drums and the vocals than the guitar. Maybe they're closer to the real thing, maybe it's just that they're different. Maybe it's the fact that I'm actually learning how to play the drums 😃 I saw the pic to the left on <a href="http://www.codinghorror.com/blog/archives/001000.html">CodingHorror</a>, and Jeff notes in the comments that the drums in rock band really do teach drumming:</p>
<blockquote>---
You can take a person that’s playing on the expert levels in Rock Band on the drums and put them on a real drum set, and they can play the drums. And I watched this happen with a Q&amp;A staff of 25-30 people. Maybe 2 or 3 of those had experience of being drummers, but they’ve been playing the game for months now, and what we’ve got is 30 drummers in the Q&amp;A department who are pounding away in the Hard and Expert settings. These people have learned the fundamentals of drums, and this isn’t abstracting fundamentals — you can put these people on a drum set and they have some basic skills now. As a payoff for playing a video game, that’s incredible! Rock Band is going to be out there training this wave of new young drummers, and that’s a really exciting aspect of the project for us.
---</blockquote>
Rock on.
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Darren Neimke on building ajax applications in asp.net]]></title>
            <link>https://chris.pelatari.com/posts/2007-11-25-darren_neimke_on_building_ajax_applications_in_asp-net</link>
            <guid>https://chris.pelatari.com/posts/2007-11-25-darren_neimke_on_building_ajax_applications_in_asp-net</guid>
            <pubDate>Sun, 25 Nov 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://showusyourcode.spaces.live.com/Blog/cns!15630F96CB7D86C1!532.entry">Darren Neimke talks about building ajax applications, both with and without a button to intercept.</a>..Darren has this way of explaining things in a way that always makes me nod my head in agreement. Thing is, I haven't really had the opportunity recently to hack a lot in asp.net. It's easy to forget with all of the ajax content on the net that essentially, it's just javascript that interacts with asp.net and other web frameworks really well. Thx, Darren.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[HappyMappy]]></title>
            <link>https://chris.pelatari.com/posts/2007-11-14-happymappy</link>
            <guid>https://chris.pelatari.com/posts/2007-11-14-happymappy</guid>
            <pubDate>Wed, 14 Nov 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>As a thanx you to <a href="http://www.morewally.com/">Sir Wally</a> for  kicking me in the butt to start blogging again, I'm linking to a site he told me  about called <a href="http://www.happymappy.com/">HappyMappy.com</a> that he is  involved with. I did a search on <a href="http://www.happymappy.com/HappyMappy.aspx?mapid=89fff2c6-fa14-444b-87bf-594c94bb7035">sports  in the Houston area</a> and was surprised to see "Htowns Arena Theatre" in the  results. That's hood, Sir Wally. It makes my mappy happy :P</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[O Hai.]]></title>
            <link>https://chris.pelatari.com/posts/2007-11-14-o_hai</link>
            <guid>https://chris.pelatari.com/posts/2007-11-14-o_hai</guid>
            <pubDate>Wed, 14 Nov 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>and welcome to my new blog. :)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Blog Moving]]></title>
            <link>https://chris.pelatari.com/posts/2007-11-14-blog_moving</link>
            <guid>https://chris.pelatari.com/posts/2007-11-14-blog_moving</guid>
            <pubDate>Wed, 14 Nov 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I noticed that a handful of people are still subscribed to this little ol' 
weblog. Well, I've decided to start fresh at a new url <a href="http://bluefenix.net">http://bluefenix.net</a> </p>
<p>Hope to see ya there. ;) Ciao!</p>[ Nothing Playing. ] 
<p></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Setting up a new External to Internal IP mapping on OpenBSD]]></title>
            <link>https://chris.pelatari.com/posts/2007-07-27-settingupanewexternaltointernalipmappingonopenbsd</link>
            <guid>https://chris.pelatari.com/posts/2007-07-27-settingupanewexternaltointernalipmappingonopenbsd</guid>
            <pubDate>Fri, 27 Jul 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is correct for version 3.9 of OpenBSD, but the rules are simple enough that the idea will upgrade if necessary later.</p> <p>In order to complete this, you must have sudo privileges on the firewall at cerberus.velocitydatabank.com. After you login, cd to /etc and sudo the su command to easily edit the files we need to touch:</p> <blockquote> <p>$cd /etc<br />$ sudo su<br />#</p></blockquote> <p>Let's setup an address as an example. Currently, we have a dmz server called geoweb which is publicly addressed by the host</p> <blockquote> <p>geoweb.velocitydatabank.com</p></blockquote> <p>There is a DNS host record (A record) setup in our <a href="https://bsimple.cbeyond.net/bsimple/go">online services with cbeyond</a> that associates the external IP </p> <blockquote> <p>69.15.117.100</p></blockquote> <p>to this hostname, meaning when someone makes a request to geoweb.velocitydatabank.com, they will be pointed at the above IP address. What we need to do first is tell the external NIC card (xl0) to listen for this IP address along with any other public IP addresses we want to manage. This is done using ifconfig by invoking the alias command. To actually do this, we are going to type in the following command:</p> <blockquote> <p>ifconfig xl0 alias 69.15.117.100 netmask 0xffffffff</p></blockquote> <p>Here we are telling ifconfig to configure the interface named xl0 to listen for packets sent to this IP address. The netmask part is a hexidecimal representation of all full octets and is equivalent to 255.255.255.255. This means that we will be broadcasting the exact same IP address as entered.</p> <p>Now the running server knows that it is listening for this IP address. The firewall ruleset allows ping echorequests thru, so if we are at a remote location we can see this by pinging geoweb.velocitydatabank.com. The problem is that we need to make sure the alias is set up even after a reboot. To do this we have to add an entry to the hostname.xl0 file. Using vi, we need to add an alias setting that will load when the os is booting.</p> <blockquote> <p>#vi hostname.xl0<br />(to get to the end of the text, type shift-G. Open the next line for editing by typing o. So the commands will be:</p> <p>G<br />o<br /></p></blockquote> <p>Then add the following line to set it up:</p> <blockquote> <p>alias 69.15.117.100 netmask 255.255.255.255</p></blockquote> <p>Hit escape to stop editing and then :x to save your changes. Now we've associated the external IP address to the xl0 nic card. All traffic except ping should be blocked by default, so we have to make some changes to pf.conf to allow dmz traffic to flow to the internal IP when addressed by the external IP.</p> <p>There are already rulesets for other IP addresses in pf.conf - just follow those as an example to allow dmz traffic. Start by adding a macro for both the internal and external IPs. We're going to name them according to the host, adding a prefix to distinguish between publicly addressable and private addresses. Add these under the other macro definitions:</p> <blockquote> <p>prv_geoweb="192.168.0.11"<br />pa_geoweb="69.15.117.100"</p></blockquote> <p>Now we need to add a binat rule to link these addresses in the firewall. This only sets up the link, incoming packets will still have to pass the ruleset before being passed thru. Find the other binat rules and add one for the new host:</p> <blockquote> <p>binat on $ext from $prv_geoweb to any -&gt; $pa_geoweb</p></blockquote> <p>This tells the firewall that if it gets any packets that are going to or from 192.168.0.11, change their destination/source IP to the external one. The traffic still ends up at the internal IP, but not before passing the filter rules defined below the NAT rules. Pings will still work, but we need to add a filter rule to allow our desired dmz services thru. We need to add the following rule to the ruleset after the other rules that serve the same purpose for other IPs:</p> <blockquote> <p>pass in on $ext inet proto tcp from any to $prv_geoweb port $dmz_services <br />flags S/SA synproxy state</p></blockquote> <p>Let's break this rule down. We're telling the firewall to pass or allow a packet to reach its destination (in this case $prv_geoweb or 192.168.0.11) This is slightly confusing, since we really want traffic to go to the <strong>public</strong>  address, right? Well, in pf the address translation rules are run first, so by the time the packet reaches this rule, it really <strong>is</strong> heading to the internal address because of the binat rule we defined earlier. $ext is defined as a macro and represents the xl0 nic card. inet tells pf that we are only interested in IPv4 requests at this time. from any simply means that any address whatsoever can reach this IP (the whole point of a dmz). You would change this to a specific IP or IP range if you wanted to lock more people out of even dmz services, for example if we were hosting a client server to be managed by our firewall. to $prv_geoweb is as I stated earlier telling pf that the packet must be heading toward that IP. This allows us to customize the ports available if necessary. port $dmz_services says that the packet must be assigned to one of the ports defined in the $dmz_services macro defined at the top of pf.conf currently as ftp, www, https, and 8080. These abbreviations correspond to standard tcp ports where ftp=21, www=80, and https=443. Any packet that is not heading for one of these ports is dropped and forgotten. (power of the firewall, ya see?;) the slash is a line continuating character, so the next line is part of the same rule. flags S/SA restricts the types of tcp requests that are allowed to pass. They represent syn/syn+ack which does the basic tcp handshake required for network communication.</p> <p>That's all that's required for the ruleset, so save the changes to the file. Now it's time to let pf know about its new config changes. We will do this using pfctl:</p> <blockquote> <p>#pfctl -f pf.conf</p></blockquote> <p>This tells pf to load the ruleset contained in the pf.conf file. This is also what is called on startup, so we know we will have the same rules defined even after a reboot. If pfctl doesn't return anything then it worked. You can verify by calling</p> <blockquote> <p>#pfctl -sa</p></blockquote> <p>which tells pf to show all of the info associated with it in the console. That's it! geoweb.velocitydatabank.com is now secured thru our OpenBSD packet filter firewall.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Paul Stovell has lost his marbles.]]></title>
            <link>https://chris.pelatari.com/posts/2007-07-25-paulstovellhaslosthismarbles</link>
            <guid>https://chris.pelatari.com/posts/2007-07-25-paulstovellhaslosthismarbles</guid>
            <pubDate>Wed, 25 Jul 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>[note: this started as a comment but started getting a little long-winded. what follows is a little gentle ribbing of Paul for <a href="http://www.paulstovell.net/blog/index.php/runtime-caching/">a recent post he wrote about being a lazy cache programmer </a>😛]</p>
<p>Mr. Stovell, you've officially lost your marbles 😛 j/k</p>
<p>okay, just to play devil's advocate...&gt;😃 I think the asp.net cache framework fits very nicely for its purpose - what you propose seems like another abstraction on top of it, for the benefit of thinking <em>less</em> about what items you should cache to <em>optimize</em> code execution time? So, just throw everything possible at it. Cache can handle that, right? hehe. nope. That's why you think about it, apply it where appropriate, and don't waste cycles calculating if you should even cache or not as part of the caching process of a production site. I dunno, seems like a wasted effort to me, especially when you start to go down the rabbit hole of deciding what should/shouldn't be cached as part of the process.</p>
<p>I'm not posting this to be a jerk...I'm putting your feet to the fire a little! Think it thru a little more, maybe (since I seem to be concentrating on the calculations as part of the process) move that logic outside of the [Deterministic] control flow to an external &quot;cache minder&quot; process. have your cake and cache it too.
<a href="http://chrispelatari.files.wordpress.com/2007/07/wheredacacheat.jpg"><img class="alignnone size-full wp-image-1140" alt="wheredacacheat" src="http://chrispelatari.files.wordpress.com/2007/07/wheredacacheat.jpg" width="120" height="90" /></a> but the main point of cache in asp.net is to improve performance by taking anything that takes longer than O(1) and returning it nearly that fast (a guess considering that Cache exposes itself as a Dictionary to store its items) I guess that means my case (while I'm advocating;) is for using the cache as is, and make conscious decisions on what should go into it instead of letting some attribute-fu decide for me. What happens when your attribute logic is wrong? DOOM! 😛 hehe, not really. What do you think?</p>
<p>p.s. my server crapped before I had a chance to post this. Is there some new law that states that technology starts to break down the minute you start to be a smart-ass?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Christopher is ...]]></title>
            <link>https://chris.pelatari.com/posts/2007-06-29-christopher-is</link>
            <guid>https://chris.pelatari.com/posts/2007-06-29-christopher-is</guid>
            <pubDate>Fri, 29 Jun 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>posted up watchin Shrek 2 with Ethan.:)</p>
<p> </p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[So quiet...]]></title>
            <link>https://chris.pelatari.com/posts/2007-06-07-soquiet</link>
            <guid>https://chris.pelatari.com/posts/2007-06-07-soquiet</guid>
            <pubDate>Thu, 07 Jun 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...and so <strong>dark </strong>in here.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Sql Server Management Studio Express - you suck.]]></title>
            <link>https://chris.pelatari.com/posts/2007-05-25-sqlservermanagementstudioexpressyousuck</link>
            <guid>https://chris.pelatari.com/posts/2007-05-25-sqlservermanagementstudioexpressyousuck</guid>
            <pubDate>Fri, 25 May 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I would like to know who thought it was a good idea to remove "import 
data..." and "export data..." from this particular flavor of the worst front end 
to an otherwise badass rdbms. I shouldn't have to fight with a program to 
get my databases in order. What a joke.</p>[ Nothing Playing. ]
<p></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Exposing Hidden Events]]></title>
            <link>https://chris.pelatari.com/posts/2007-04-25-exposinghiddenevents</link>
            <guid>https://chris.pelatari.com/posts/2007-04-25-exposinghiddenevents</guid>
            <pubDate>Wed, 25 Apr 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I recently ran into a neat little nugget of functionality in C# with events.
Normally in C# when we define events we stop at something like this:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> event </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">EventHandler</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">MyEventArgs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">> </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">MyEvent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre>
</div><p>The thing is, you can explicitly implement the add and remove accessors if
you throw some curly braces into the mix. Why does this matter? Imagine that you
have a MainForm, and a usercontrol named ControlPanel. ControlPanel
contains another usercontrol called hiddenControl that exposes an event that you
want to handle in MainForm, but all MainForm has access to is
ControlPanel...</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> event EventHandler</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">MyEventArgs</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> MyEvent{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	add{</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">		this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.hiddenControl.MyEvent </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	remove{</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">		this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.hiddenControl.MyEvent </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>Now you can subscribe to the event in MainForm without making the usercontrol
member public in ControlPanel.</p>
<p>[ Currently Playing : Burn Away - Foo Fighters - One by One
(4:57) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Windows Updates Make Me Nervous]]></title>
            <link>https://chris.pelatari.com/posts/2007-03-22-windowsupdatesmakemenervous</link>
            <guid>https://chris.pelatari.com/posts/2007-03-22-windowsupdatesmakemenervous</guid>
            <pubDate>Thu, 22 Mar 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p> hehe...</p>
<blockquote>
  <p>Rather surprised by the new 'updates are ready' message from Microsoft. 
  Hmmm. 
  </p><p><img alt="revised updates message from microsoft" src="http://secretGeek.net/image/updates.PNG" /> 
  </p><p>Perhaps they know just how much frustration we had on the home pc recently 
  due to their dodgy updates. 
  </p><p>(Fixed thanks to <a href="http://www.google.com/search?hl=en&amp;q=windows+updates+swigart">Scott 
  Swigart</a>) </p></blockquote>
<p>Source: <a href="http://www.secretGeek.net/update_nervous.asp">Windows 
Updates Make Me Nervous<br /></a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[skmMenu code change to work with xhtml doctypes]]></title>
            <link>https://chris.pelatari.com/posts/2007-03-22-skmmenucodechangetoworkwithxhtmldoctypes</link>
            <guid>https://chris.pelatari.com/posts/2007-03-22-skmmenucodechangetoworkwithxhtmldoctypes</guid>
            <pubDate>Thu, 22 Mar 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is just a re-statement of a <a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=a8ee64df-8f2a-483f-8594-10aaa66988ce&amp;threadid=48c4a040-054b-49f3-b40a-bc3fffa2ee97" target="_blank" rel="noreferrer">forum
thread</a> that discusses the fix, but since gotdotnet is not going to be
around very much longer I thought I'd post this little tidbit here as well.
Basically, when I upgraded one of my sites to .net 2.0, skmMenu got upgraded
right along with it. The only issue was that all of my menus would show up at
the far left corner of the screen, and when you try to navigate to them over
there they disappear thanks to the menu items between the cursor and the target.
I think I only saw this behavior in firefox, but the code fix works in both
firefox and IE. I just went thru the .js file and the javascript in the .resx
for embedded javascript goodness and placed a 'px' after any integer value. The
reason for this is that firefox requires measurement properties be set with
appropriate identifiers when it's displaying a structured document. Anyways,
here's a reprint of the code:</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> skm_mousedOverMenu</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">menuID</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">elem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">displayedVertically</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">imageSource</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">	skm_stopTick</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">	skm_closeSubMenus</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(elem);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> childID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> elem.id </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "-subMenu"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;  </span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">	// Display child menu if needed</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">		// make the child menu visible and specify that its position is specified in absolute coordinates</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.display </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'block'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.position </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'absolute'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		skm_OpenMenuItems </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> skm_OpenMenuItems.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">concat</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">		if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (displayedVertically){</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">			// Set the child menu's left and top attributes according to the menu's offsets</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.left </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> skm_getAscendingLefts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(parent) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> parent.offsetWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.top </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> skm_getAscendingTops</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(elem) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">			var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> visibleWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(window.outerWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> window.outerWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 9</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> :</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> document.body.clientWidth, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">			if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ((</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">parseInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).offsetLeft,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).offsetWidth, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> visibleWidth) {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">				document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.left </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> visibleWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).offsetWidth, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		}</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">			// Set the child menu's left and top attributes according to the menu's offsets</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.left </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> skm_getAscendingLefts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(elem) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.top </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> skm_getAscendingTops</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(parent) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> parent.offsetHeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">			if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).offsetWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> elem.offsetWidth)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">				document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(childID).style.width </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> elem.offsetWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (skm_SelectedMenuStyleInfos[menuID] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) skm_SelectedMenuStyleInfos[menuID].</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">applyToElement</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(elem);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (skm_highlightTopMenus[menuID]){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">		var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> eId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">elem.id </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ' '</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">		while</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (eId.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">indexOf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'-subMenu'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">>=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			eId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">eId.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">substring</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, eId.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">lastIndexOf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'-subMenu'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">));</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			skm_SelectedMenuStyleInfos[menuID].</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">applyToElement</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(eId));</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (imageSource </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ''</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">		setimage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(elem,imageSource)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> skm_shimSetVisibility</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">makevisible</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">tableid</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tblRef </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(tableid);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	var</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> IfrRef </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'shim'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tableid);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (tblRef </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &#x26;&#x26;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> IfrRef </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">		if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(makevisible){</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.width </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tblRef.offsetWidth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.height </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tblRef.offsetHeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.top </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tblRef.style.top </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.left </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tblRef.style.left </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'px'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.zIndex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> tblRef.style.zIndex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.display </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "block"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		}</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">			IfrRef.style.display </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "none"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>These were the only two functions that needed code adjustment. Enjoy.</p>
<p>[ Currently Playing : Mannequin Republic - At the Drive-In -
Relationship of Command [Japan (3:02) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ASP.NET - UrlRewriting with PathInfo and base urls]]></title>
            <link>https://chris.pelatari.com/posts/2007-03-15-asp-neturlrewritingwithpathinfoandbaseurls</link>
            <guid>https://chris.pelatari.com/posts/2007-03-15-asp-neturlrewritingwithpathinfoandbaseurls</guid>
            <pubDate>Thu, 15 Mar 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I read <a href="http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx" target="_blank" rel="noreferrer">this
excellent post from ScottGu</a> and decided to use it with a page that
implemented a masterpage. I didn't have to use postbacks in my scenario, but
there were links included from the masterpage. The problem is that if you use
app-relative paths for your href attributes (ex: &lt;a href=&quot;/default.aspx&quot;&gt;)
the browser (FF 2.0.0.2 and IE 7 anyways) interperets the url with pathinfo
differently than a url without. The base url includes the original page (ex: <a href="http://localhost:3333/rewriter.aspx/default.aspx" target="_blank" rel="noreferrer">http://localhost:3333/rewriter.aspx/default.aspx</a>).</p>
<p>Guess what? The webserver picks up the last .aspx extension,
default.aspx, that bad boy doesn't exist, and you get a 404 instead of
going to <a href="http://localhost:3333/rewriter.aspx/default.aspx" target="_blank" rel="noreferrer">http://localhost:3333/default.aspx</a>.</p>
<p>In the comments, Ian Oxley suggested that you can re-base links in your
page/css/other static files using the <base> element in the head of your
page. I expanded on it a little, since this behavior is only on one page of my
site currently, and added the following code into the Page_Load event of the
offending page:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Header.Controls.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> LiteralControl</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"&#x3C;base href=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Request.Url.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ToString</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Replace</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Request.RawUrl, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">""</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Replace</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Request.PathInfo, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">""</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">>"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">));</span></span></code></pre>
</div><p>Now the base tag works on both the live site and the one that
WebDev.WebServer spins up as well.</p>
<p>[ Currently Playing : Them Bones - Alice in Chains - Nothing
Safe: Best of the Box (2:29) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[SubSonic Scaffold control - a GridView with Class]]></title>
            <link>https://chris.pelatari.com/posts/2007-03-08-subsonicscaffoldcontrolagridviewwithclass</link>
            <guid>https://chris.pelatari.com/posts/2007-03-08-subsonicscaffoldcontrolagridviewwithclass</guid>
            <pubDate>Thu, 08 Mar 2007 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I've been able to dig my teeth into some asp.net hacking recently, and
I've been <s>wrestling with</s> learning to use <a href="http://codeplex.com/actionpack%22" target="_blank" rel="noreferrer">SubSonic</a> in the process.</p>
<p>In dealing with the scaffold control I ran into a funny issue: none of the
exposed properties on the scaffold control will output any style info of the
GridView that the control uses (that I could figure out anyways). I ended up
with black text on a black background. 😕 Seeing as I have the source, I decided
to give the scaffold control's GridView a little class...hello GridViewCssClass
property! I set it up just like the EditTable*CssClass properties, just a string
property, with similar attributes to the other properties hanging around
there:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Bindable</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Category</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Display"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Description</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Sets the CSS class used by the gridview."</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)]</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DefaultValue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ScaffoldCSS.WRAPPER)]</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">//CDF: just to have something to start with.</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> GridViewCssClass {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	get { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _gridViewCssClass; }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	set { _gridViewCssClass </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> value; }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>Then, in the CreateGrid method make it actually do something:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">private</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CreateGrid</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()	{</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">			Label</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> lblTitle</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Label</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      surroundingPanel.Controls.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(lblTitle);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      lblTitle.Text </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "&#x26;lt;h2&#x26;gt;"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> schema.Name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> " Admin&#x26;lt;/h2&#x26;gt;"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      grid.ID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "grid"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	    grid.CssClass </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.GridViewCssClass;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      surroundingPanel.Controls.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(grid);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Page.IsPostBack) {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">      	BindGrid</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(String.Empty);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      }</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">			//add a column to the grid for editing</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>And now I can declaratively set the CssClass that the GridView uses to, oh,
say, .whitetext 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[..||..]]></title>
            <link>https://chris.pelatari.com/posts/2006-09-11-669</link>
            <guid>https://chris.pelatari.com/posts/2006-09-11-669</guid>
            <pubDate>Mon, 11 Sep 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.zefrank.com/theshow/archives/2006/09/091106.html">http://www.zefrank.com/theshow/archives/2006/09/091106.html</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - What about PostXING?]]></title>
            <link>https://chris.pelatari.com/posts/2006-08-22-rewhataboutpostxing</link>
            <guid>https://chris.pelatari.com/posts/2006-08-22-rewhataboutpostxing</guid>
            <pubDate>Tue, 22 Aug 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>I love the <a href="http://postxing.net/blog/">PostXING</a> tool and the
  ability to integrate the playing music. Feature wise they are all about the
  same though. So it will interesting to see the evolution of the tool.</p>
  <p>One positive out of the project is that I learned a lot about <a href="http://search.msn.com/results.aspx?q=Subversion&amp;FORM=QBRE">Subversion</a>
  and how to work with it.</p>
  <div class="shareblock"><strong>Share this post:</strong> <a title="Email What about PostXING?" href="mailto:?body=Thought%20you%20might%20like%20this:%20http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;subject=What+about+PostXING%3f">Email
  it!</a> | <a title="Submit What about PostXING? to del.icio.us" href="http://del.icio.us/post?url=http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;title=What+about+PostXING%3f">bookmark
  it!</a> | <a title="Submit What about PostXING? to digg.com" href="http://www.digg.com/submit?url=http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;phase=2">digg
  it!</a> | <a title="Submit What about PostXING? to reddit.com" href="http://reddit.com/submit?url=http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;title=What+about+PostXING%3f">reddit!</a></div><img height="1" src="http://jazzynupe.net/blog/aggbug.aspx?PostID=775" width="1" /></blockquote>
<p><i>[Via <a href="http://jazzynupe.net/blog/archive/2006/08/22/775.aspx">It's
my life... And I live it...</a>]</i> </p>
<p>Well, this post has been a long time coming. What about PostXING? What
indeed? Well, unfortunately for the 1.5 users of PostXING, I had my son Ethan
for 6 weeks this summer and spending time with him is
<strong><em>waaay</em></strong> more important than hacking on a tool that is
basically useful only to a handful of people. </p>
<p>Then there's the issue of competition: I have always recommended <a href="http://blogjet.com">BlogJet</a> for people that wanted a good solid
blog posting tool that is way more polished than PostXING (and indeed Windows
Live Writer) and whose project lead is a really nice, engaging dude.
Heck, Dmitry even gave me pointers on how to work with mshtml as I was
writing code that competes with his (guess he wasn't <em>too</em> worried about
"competition" from PostXING. heh.) And of course the new hip kid on the block
Windows Live Writer...what can I say? Even <a href="http://tomergabel.com">Tomer</a>, who was gracious enough to help me out
on developing PostXING, agrees: <a href="http://www.tomergabel.com/PermaLink,guid,8a9d12a0-4eb4-4cf1-aeba-ec956fc8be43.aspx">Windows
Live Writer kicks ass</a>. The fact that it's free doesn't help the
situation.</p>
<p>At this point I'm not 100% sure what I want to do with PostXING. I had been
looking into yet another mshtml wrapper that supposedly handles focus better
than the code I have, but my experience so far with mshtml is that it's a focus
stealing bastard child of wysiwyg editing. The good news: you can actually use a
widget that gives you wysiwyg editing without having to install a browser plugin
(I'm looking at you, Mono!) The bad news: didn't you read that bastard child
statement earlier? Geez.</p>
<p>Tentatively what will happen is I will continue to quietly hack on PostXING
in order to at least bring it out of beta. But I'm definitely going to be taking
my time on it...I am in no hurry at all.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Windows Live Writer]]></title>
            <link>https://chris.pelatari.com/posts/2006-08-17-windowslivewriter</link>
            <guid>https://chris.pelatari.com/posts/2006-08-17-windowslivewriter</guid>
            <pubDate>Thu, 17 Aug 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>
</p><p><img style="border-width:0;" height="123" src="http://tk3.storage.msn.com/x1pYnvNgmDsTvWPFoCy9eG7axwrUzd9OAWpGSO6B3x0g4TN1lViGRiMmpoyh5FHCIL8wfJxkTw8Tl_jMWjwlicOAmXi0YX7Sur6KMh_hD-O5XyhxQLT4TsQ-mDpxQpNwUOX8wpS9ButVI5SdcINlF5DbA" width="138" align="right" border="0" /> It looks pretty neat. I <em>really</em> dig the 
"type inside the preview" Web Layout. That's just sweet. The plugin support 
looks promising...I've already started coding up a CodeHTMLer plugin for syntax 
highlighting ala PostXING, now if I can get one going that will allow me to post 
the same content to more than one blog I'll be in business. I've been on a 
little hacking-hiatus on PostXING for the past few months to spend the 
summertime with my son Ethan, so what a great way to stretch my geek muscle all 
over again at the end of summer! </p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE Finding calling method using reflection]]></title>
            <link>https://chris.pelatari.com/posts/2006-08-11-refindingcallingmethodusingreflection</link>
            <guid>https://chris.pelatari.com/posts/2006-08-11-refindingcallingmethodusingreflection</guid>
            <pubDate>Fri, 11 Aug 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://geekswithblogs.net/opiesblog/archive/2006/06/29/83654.aspx">Exactly
what I was looking for</a>...I don't know a lot about reflection, so I wonder if
there is a more elegant way to get this info.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Whip it Real Hard]]></title>
            <link>https://chris.pelatari.com/posts/2006-07-20-whipitrealhard</link>
            <guid>https://chris.pelatari.com/posts/2006-07-20-whipitrealhard</guid>
            <pubDate>Thu, 20 Jul 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<div>
<p><a href="http://chrispelatari.files.wordpress.com/2006/07/ghostfacekilla.jpg"><img class="alignnone size-full wp-image-1143" alt="GhostFaceKilla" src="http://chrispelatari.files.wordpress.com/2006/07/ghostfacekilla.jpg" width="320" height="240" /></a>Last night I got
an impromtu text message saying that <a href="http://en.wikipedia.org/wiki/Ghostface_Killah">Ghostface
Killah</a> was playing at Warehouse live downtown. As a Wu-Tang fan, I
decided to go out and see what he was all about. Pretty good show, I really dug
the ODB medley they did in honor of <a href="http://en.wikipedia.org/wiki/Ol%27_Dirty_Bastard">Ol' Dirty</a>. <a href="http://chrispelatari.files.wordpress.com/2006/07/wudirty.gif"><img class="alignnone size-full wp-image-1145" alt="wudirty" src="http://chrispelatari.files.wordpress.com/2006/07/wudirty.gif" width="108" height="144" /></a></p>
</div>
As an extra added bonus, <a href="http://en.wikipedia.org/wiki/Rick_Ross_%28rapper%29">Rick Ross</a> opened
up for Ghostface. He only did like 5 tracks, but was spot on for Hustlin'. He's
obviously very comfortable with the song by now and it shows in his performance.
Looked like he was really having fun with it which always helps for a good
show.
<p><a href="http://chrispelatari.files.wordpress.com/2006/07/rickross.jpg"><img class="alignnone size-full wp-image-1146" alt="RickRoss" src="http://chrispelatari.files.wordpress.com/2006/07/rickross.jpg" width="320" height="240" /></a></p>
<p class="media">[ Currently Playing : Smiley faces - Gnarls Barkley - (3:05)
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[What's this? My Application won't Exit?]]></title>
            <link>https://chris.pelatari.com/posts/2006-07-14-whatsthismyapplicationwontexit</link>
            <guid>https://chris.pelatari.com/posts/2006-07-14-whatsthismyapplicationwontexit</guid>
            <pubDate>Fri, 14 Jul 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>There are a few things that have to happen for this "regression" to show up. First, you have to be working in .net 2.0 WinForms. Second, you must be using a custom application context. Third and most importantly, you must have at least one form open in your application that handles its closing event and sets CancelEventArgs.Cancel = true.</p> <p>What's the behavior? While operating under a custom ApplicationContext, what would be my Main form is closed by the user. Since the application context is not associated with that form, I decide to call "Application.Exit()" in an override of OnClosing. My Main form closes, but any hidden forms stick around, thus leaving the application running until you open up task manager (or something similar) and manually kill the process.</p> <p>Why does it happen? WinForms 2.0 introduced an overload to Application.Exit that accepts a CancelEventArgs parameter. This is what is called by Application.Exit(). If even <em>one</em> of your open forms doesn't think it needs to close itself for whatever reason and sets its CancelEventArgs to true, Application.Exit stops processing and returns control to the application.</p> <p>Why did I call it a "regression"? This behavior has changed between .net 1.1 and 2.0. In 1.1, if I call Application.Exit, by golly the application exits! I understand the reasoning behind the change. I just wish that there was some indication to it other than Reflector. A comment for intellisense perhaps? Something. </p> <p>Will it matter to most WinForm projects? Probably not. If you use the default application context (by calling Application.Run(new MainForm()), which is what VS.NET spits out for you from the template) you do not have the same problem. Closing the main form exits the application as expected. If you're using a custom ApplicationContext, tho, watch out.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Gaffling that ribbon style]]></title>
            <link>https://chris.pelatari.com/posts/2006-07-08-gafflingthatribbonstyle</link>
            <guid>https://chris.pelatari.com/posts/2006-07-08-gafflingthatribbonstyle</guid>
            <pubDate>Sat, 08 Jul 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2006/07/thievn.png"><img class="alignnone size-full wp-image-1148" alt="thievn" src="http://chrispelatari.files.wordpress.com/2006/07/thievn.png" width="318" height="258" /></a></p>
<p>Close enough. <a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=7858DBB6-6F4A-4A9D-B1B4-03C73AA16D15">This
</a>should be fun.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Step your game up, Microsoft.]]></title>
            <link>https://chris.pelatari.com/posts/2006-06-29-stepyourgameupmicrosoft</link>
            <guid>https://chris.pelatari.com/posts/2006-06-29-stepyourgameupmicrosoft</guid>
            <pubDate>Thu, 29 Jun 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Unfortunately, the rants about WGA causing a bluescreen are true. It happened 
a little while ago on my home PC. Thankfully, F8 booting into safemode still 
works, and I was able to restore my system to a daily checkpoint. Boy am I glad 
<em>that </em>was setup. Installing .net 1.1 sp1 worked fine, as did an audio 
driver I was missing.</p>
<p>After having to rollback to a system restore checkpoint. </p>
<p>Way to go, guys.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[We'll miss you, Mr. Holmquist.]]></title>
            <link>https://chris.pelatari.com/posts/2006-06-13-wellmissyoumrholmquist</link>
            <guid>https://chris.pelatari.com/posts/2006-06-13-wellmissyoumrholmquist</guid>
            <pubDate>Tue, 13 Jun 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2006/06/mrholmquist.jpg"><img class="alignnone size-full wp-image-1150" alt="MrHolmquist" src="http://chrispelatari.files.wordpress.com/2006/06/mrholmquist.jpg" width="400" height="300" /></a></p>
<p><a href="http://www.click2houston.com/news/9358956/detail.html?subid=10100242#">My
high school principal died on Monday</a>.</p>
<p>This is surreal. It feels like it was just last week that I was skipping
class and getting a pep talk from Mr. Holmquist in North House. Worst of all, I
went to school with his daughters. Amber was in my graduating class, but she was
real into sports (and I wasn't). We had a couple of classes together but I was
closer to her sister Kendra, a fellow thespian.</p>
<p>This is so confusing...I've been in the Holmquist house a couple of times,
and now...we'll miss you, Mr. Holmquist. Alief is a sad town today.</p>
<p>In the unlikely event that either of my readers finds out any information
about the funeral, please let me know. My cell is (281) 684-5688. Alternatively,
if I find out anything I will post here.</p>
<p><span style="color:#ff0000;">update</span>: I got this from a friend in the
district:</p>
<p>The Holmquist family
has made the following arrangements:</p>
<p>Viewing services will
be at Forest
Park on Westheimer at Dairy Ashford on Thursday evening
from 6-8 p.m.  The memorial service will be held Friday morning at 11:00
a.m. at Memoria Drive United Methodist Church on Memorial Drive between Wilcrest and the
Beltway.</p>
<p>Respectfully,</p>
<p>Paula
Smith</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - Using DLINQ with ASP.NET (Part 2 of my LINQ series)]]></title>
            <link>https://chris.pelatari.com/posts/2006-06-07-reusingdlinqwithasp-netpart2ofmylinqseries</link>
            <guid>https://chris.pelatari.com/posts/2006-06-07-reusingdlinqwithasp-netpart2ofmylinqseries</guid>
            <pubDate>Wed, 07 Jun 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/scottgu/archive/2006/06/04/Using-DLINQ-with-ASP.NET-_2800_Part-2-of-my-LINQ-series_2900_.aspx">Wow.</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Community Server 2.0 BlogML Converter Beta - success!]]></title>
            <link>https://chris.pelatari.com/posts/2006-06-06-communityserver2-0blogmlconverterbetasuccess</link>
            <guid>https://chris.pelatari.com/posts/2006-06-06-communityserver2-0blogmlconverterbetasuccess</guid>
            <pubDate>Tue, 06 Jun 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm a little bit behind on my CS releases, as I just got around to installing
a fresh copy of Community Server 2.0 to test things out for one of my sites.
Since I was going to upgrade an existing CS 1.1 install, I tried that method
first, but ended up starting over because the original config I had was single
blog and I didn't have the time nor the patience to figure out how to hack 2.0
into a single-blog install with existing content.</p>
<p>However, thanks to <a href="http://nayyeri.net/archive/2006/02/11/491.aspx" target="_blank" rel="noreferrer">Keyvan</a> (che
khabbar!), I was able to export the 1.1 content using an HttpHandler I hacked up
for exporting CS 1.1 content to BlogML and import into a new, multi-blog install
of 2.0. The first thing I did was nuke both the sample weblog and the sample
weblog group. Then I created a new group and weblog and used the application key
assigned to the new blog to import my posts. Here is the code I used to import a
blogML file into a fresh copy of Community Server 2.0</p>
<div class="language-vb vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">vb</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Page Language </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "VB"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "System.Collections"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "System.IO"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "BlogML"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "BlogML.Xml"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "CommunityServer"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "CommunityServer.Components"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;%</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">@ Import Namespace </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "CommunityServer.Blogs"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> %></span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">script runat</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"server"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">'Community Server 2.0 BlogML converter Beta</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">'Copyright Keyvan Nayyeri (www.nayyeri.net) - 2006</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">'BlogML Writer and Reader classes are provided by BlogML project (www.blogml.com)</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">Public Class </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Reader</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Private</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _ApplicationKey </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Private</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> CommunityServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Blogs.Components.Weblog</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Private</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _SitePath </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Private</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _BlogCommentCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Integer</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Private</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> _BlogTrackBackCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Integer</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Sub New</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal ApplicationKey </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, ByVal SitePath </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Me._ApplicationKey </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ApplicationKey</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Me._SitePath </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> SitePath</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> objCSWeblogs </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> CommunityServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Blogs.Components.Weblogs</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Me._Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> objCSWeblogs.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetWeblog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Me._ApplicationKey)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  End Sub</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  Public Sub </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">LoadBlog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal XML </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As New </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">BlogMLBlog</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Try</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> BlogMLSerializer.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Deserialize</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">New </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">StringReader</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(XML))</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Catch ex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Exception</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      Throw</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> New </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Exception</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Couldn't load your BlogML file. Maybe it is wellformedness"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    End</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Try</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Categories </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Hashtable</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      Categories </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> ReadCategories</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Blog)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">      LoadPosts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Blog, Categories)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">      UpdateStats</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Blog)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    End Sub</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    Private Function </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ReadCategories</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLBlog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Hashtable</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CategoriesHash </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As New </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Hashtable</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      For</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Each</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Category </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLCategory</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> In Blog.Categories</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewCategory </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As New </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PostCategory </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">With</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  NewCategory</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          .DateCreated </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Category.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          .Description </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Category.Description</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          .IsEnabled </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Category.Approved</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          .Name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Category.Title</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          .ParentID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          .SectionID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Me._Blog.SectionID</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> objCSCats </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> PostCategories</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        Try</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          objCSCats.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CreateCategory</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(NewCategory)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        Catch ex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Exception</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          Throw</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> New </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">ArgumentException</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Error when tried to add categories to database"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">        End</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        Try</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">          CategoriesHash.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Category.ID, Category.Title)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">        End</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        With</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Next</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CategoriesHash</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        End Function</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        Private Sub </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">LoadPosts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLBlog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, ByVal CategoryHash </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Hashtable</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostAuthor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostAuthorID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Integer</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Date</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostName </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostSubject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            For</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Each</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLPost</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> In Blog.Posts</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As New </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">CommunityServer.Blogs.Components.WeblogPost</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> objCSPosts </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> CommunityServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Blogs.Components.WeblogPosts</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                With</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .PostID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.ID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .Body </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.Content.UncodedText</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .BlogPostType </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CommunityServer.Blogs.Components.BlogPostType.Post</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .Subject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.Title</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .ThreadDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .UserTime </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .PostDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .UserTime </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .SectionID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Me._Blog.SectionID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"EverPublished"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">CType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Post.Approved, Boolean))</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .IndexInThread </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> True</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .IsApproved </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> True</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .IsAggregated </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> True</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .IsLocked </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> False</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    .PostConfig </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> CommunityServer.Blogs.Components.BlogPostConfig.IsAggregated</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">                End</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> With</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                'Add categories</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                If</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.Categories.Count </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Then</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPostCats(Post.Categories.Count) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    For</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Integer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> To</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.Categories.Count </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">                        NewPostCats</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(i) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CategoryHash</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Post.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Categories</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(i).Ref)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    Next</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    NewPost.Categories </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPostCats</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                End If</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                'Add attachments</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                'TO DO: Check to add attachments with checking the source code when RTM version has been released.</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                'Currently we can't load post attachments</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                objCSPosts.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(NewPost)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                'Temporary saving stats</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                LastPostAuthor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.Username</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                LastPostAuthorID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.AuthorID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                LastPostDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.PostDate</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                LastPostName </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.Name</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                LastPostSubject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.Subject</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">                LoadComments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(NewPost, Post)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">                LoadTrackBacks</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(NewPost, Post)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            Next</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">            'Update blog stats</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.MostRecentPostAuthor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostAuthor</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.MostRecentPostAuthorID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostAuthorID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.MostRecentPostDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostDate</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.MostRecentPostName </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostName</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.MostRecentPostSubject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> LastPostSubject</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        End Sub</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        Private Sub </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">LoadComments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal NewPost </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Post</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, ByVal Post </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLPost</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            If</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.Comments.Count </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Then</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                For</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Each</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLComment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> In Post.Comments</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewComment </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As New </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">CommunityServer.Blogs.Components.WeblogPost</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> objCSComments </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> CommunityServer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Blogs.Components.WeblogPosts</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    With</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewComment</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .Body </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment.Content.UncodedText</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .BlogPostType </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Blogs.Components.BlogPostType.Comment</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .Subject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment.Title</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .ThreadDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .UserTime </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .PostDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .UserTime </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Comment.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .SectionID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Me._Blog.SectionID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"EverPublished"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"TitleUrl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, Comment.UserUrl)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"SubmittedUserName"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, Comment.UserName)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .IsApproved </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Comment.Approved, Boolean)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .ParentID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.PostID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .ThreadID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.ThreadID</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">                    End</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> With</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    objCSComments.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(NewComment)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                    'Update blog counter</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    Me._BlogCommentCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                Next</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            End If</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        End Sub</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        Private Sub </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">LoadTrackBacks</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal NewPost </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Post</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, ByVal Post </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLPost</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            If</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post.Trackbacks.Count </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Then</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                For</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> Each</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLTrackback</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> In Post.Trackbacks</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewTrackBack </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As New </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Blogs.Components.WeblogPost</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    Dim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> objCSTrackBacks </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Blogs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.Components.WeblogPosts</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                    With</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewTrackBack</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .Body </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack.Title</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .BlogPostType </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Blogs.Components.BlogPostType.Trackback</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .Subject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack.Title</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .ThreadDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .UserTime </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .PostDate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .UserTime </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> TrackBack.DateCreated</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .SectionID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Me._Blog.SectionID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"EverPublished"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"TitleUrl"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, TrackBack.Url)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SetExtendedAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"trackbackName"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"TrackBack"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .IsApproved </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(TrackBack.Approved, Boolean)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .ParentID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.PostID</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                        .ThreadID </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NewPost.ThreadID</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">                    End</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> With</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    objCSTrackBacks.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(NewTrackBack)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">                    'Update blog counter</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">                    Me._BlogTrackBackCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">                Next</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            End If</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        End Sub</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        Private Sub </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">UpdateStats</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(ByVal Blog </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">As</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BlogMLBlog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.PostCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Blog.Posts.Count</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.CommentCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Me._BlogCommentCount</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">            Me._Blog.TrackbackCount </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Me._BlogTrackBackCount</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        End Sub</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    End Class</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    Sub </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Page_Load</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(sender </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, e </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> EventArgs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    	Dim </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Path </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "d:tmpBlogMLBlogML.xml"</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    	Dim </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">reader </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as New </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Reader</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"chris"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Request</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.PhysicalApplicationPath)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    	If</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> File.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Exists</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Path) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">Then</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    		Dim </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">sr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as New </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">StreamReader</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(File.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Open</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Path, FileMode.Open))</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    		Dim </span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">xml </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">as</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> sr.ReadToEnd</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    		reader.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">LoadBlog</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(xml)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    		Response</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Write</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Content moved successfully!"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    	Else</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    		Response</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Write</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"Uh-oh. Something crapped."</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    	End If</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    End Sub</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/script</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">html</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    &#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">head</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    &#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/head</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    &#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">body</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        &#x3C;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">form</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> runat</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"server"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">            &#x3C;!--</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Insert content here </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">--></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        &#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">form</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    &#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/body</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">/html</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">></span></span></code></pre>
</div><p>I hacked up this file in WebMatrix and slapped it into the webroot of my new
CommunityServer install. This way I was able to copy the content to a local install before pushing the final product out into the wild, and I didn't have to recompile any of CS to get it working. Merci, Keyvan!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - Bad news gets worse]]></title>
            <link>https://chris.pelatari.com/posts/2006-05-12-rebadnewsgetsworse</link>
            <guid>https://chris.pelatari.com/posts/2006-05-12-rebadnewsgetsworse</guid>
            <pubDate>Fri, 12 May 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p><a href="http://www.flickr.com/photos/35034363287@N01/144087455/"><img height="192" alt="Holding my mom's hand" hspace="5" src="http://static.flickr.com/50/144087455_e8bbafbf62_m.jpg" width="240" align="top" vspace="5" border="0" /></a> </p>
  <p>How do you say goodbye? One hand squeeze at a time.</p></blockquote>
<p><i>[Via <a href="http://scobleizer.wordpress.com/2006/05/10/bad-news-gets-worse/">Scobleizer
- Microsoft Geek Blogger</a>]</i> </p>
<p>So what do you do when a blogger you read comes up on hard times and posts
his phone number to his blog? Call him, of course. The problem is that Robert is
suffering through an extremely personal trial, and right as he said "hello" I
started thinking of how I would feel if I were in his shoes. Probably did more
harm than good, but my thoughts and prayers are still with you and yours,
Robert.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING - Shameless request for feedback]]></title>
            <link>https://chris.pelatari.com/posts/2006-05-10-postxingshamelessrequestforfeedback</link>
            <guid>https://chris.pelatari.com/posts/2006-05-10-postxingshamelessrequestforfeedback</guid>
            <pubDate>Wed, 10 May 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://postxing.net/gemini/issue/ViewIssue.aspx?id=32">http://postxing.net/gemini/issue/ViewIssue.aspx?id=32</a></p>
<p>I'm about to start cracking on this issue, but I'd love to get a little
feedback on it before I put it into code. If either of you have an extra minute,
shoot to the url above and leave a comment. I normally don't solicit feedback
like this, but I kind of feel like I'm missing something. Although I could just
be thinking about it too much. Either way, help a code munkey out if ya can
:)</p>
<p class="media">[ Currently Playing : This Could Be Love - Alkaline Trio - Good
Mourning (3:47) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Getting a temporary filename the easy way - feedback]]></title>
            <link>https://chris.pelatari.com/posts/2006-05-04-gettingatemporaryfilenametheeasywayfeedback</link>
            <guid>https://chris.pelatari.com/posts/2006-05-04-gettingatemporaryfilenametheeasywayfeedback</guid>
            <pubDate>Thu, 04 May 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <div class="comment_author"><a>Jerry Pisk</a></div>
  <div class="comment_content">Path.GetTempFileName() guarantees that you will get
  an available name, it does actually go ahead and create the file so it is
  guaranteed to be yours when you use it. If you strip the extension off and
  substitute your own you may end up overwriting an existing file. Not a smart
  thing to do.</div></blockquote>
In my case, I just really want the filename. Whether or not I change the
extension, that file is <strong>mine </strong>to do with what I will. Also,
since it's not in the same folder as the originating file, it can be the exact
same name, extension and all, and it will still be a different file that what
was generated by the framework. I <em>should </em>take care of file cleanup, and
that zero byte file <em>is </em>still in the temp directory...
<blockquote>
  <div class="comment_author"><a>Paul Welter</a></div>
  <div class="comment_content">Be aware the GetTempFileName() actually creates a
  zero byte file in the temp folder. Your code will leave the temp file behind
  in the temp folder. If you use that a lot, you will end up with a lot of files
  in the temp folder.</div></blockquote>
true! So, maybe I was a little quick to post about this one, but it was one
of those things that struck me as particularly useful. If you just want a
temporary filename, and want to clean up the file that is created by
GetTempFileName(), perhaps this will work a little better:
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GetTempFileName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> filename</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Path.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetTempFileName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	File.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Delete</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(filename);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Path.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetFileNameWithoutExtension</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(filename);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>Okay y'all...rip it to shreds 😃 If I've missed something else obvious, call
me out. Or, if you have a preferred method of generating temporary file names,
show the way.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Getting a temporary filename the easy way]]></title>
            <link>https://chris.pelatari.com/posts/2006-05-04-gettingatemporaryfilenametheeasyway</link>
            <guid>https://chris.pelatari.com/posts/2006-05-04-gettingatemporaryfilenametheeasyway</guid>
            <pubDate>Thu, 04 May 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>If you need to generate temporary / semi-unique filenames, here is a little
snippet that uses the framework:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">using</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> System</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">IO</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GetTempFileName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Path.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetFileNameWithoutExtension</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Path.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetTempFileName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">());</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>As the name implies, this will return the temporary name of a file without
the extension, so it's up to you to add whatever filetype you may be trying to
create. For example, let's say I wanted to generate a .gif:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> GetTempGifFileName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Format</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"{0}.{1}"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">GetTempFileName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(), </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"gif"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>I had overlooked this little piece of functionality because the component
that I was using generated filenames with GUIDs, so I never really worried about
it. Way to make my life easier, .netfx 😃</p>
<p>[ Currently Playing : Mississippi Queen - Ozzy Osbourne - Under
Cover (4:11) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I Flipped a Coin]]></title>
            <link>https://chris.pelatari.com/posts/2006-05-04-iflippedacoin</link>
            <guid>https://chris.pelatari.com/posts/2006-05-04-iflippedacoin</guid>
            <pubDate>Thu, 04 May 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2006/05/before_beard.png"><img class="alignnone size-full wp-image-1154" alt="before_beard" src="http://chrispelatari.files.wordpress.com/2006/05/before_beard.png" width="187" height="208" /></a> Heads: Shave
the beard off entirely. Tails: just trim it down a little.</p>
<p>The coin flips...</p>
<p>and...</p>
<p>Heads it is. <a href="http://chrispelatari.files.wordpress.com/2006/05/after_beardless.png"><img class="alignnone size-full wp-image-1155" alt="after_beardless" src="http://chrispelatari.files.wordpress.com/2006/05/after_beardless.png" width="167" height="213" /></a></p>
<p class="media">[ Currently Playing : imagine - John Lennon - (3:04)
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[the yield statement - not so mysterious after all?]]></title>
            <link>https://chris.pelatari.com/posts/2006-04-14-theyieldstatementnotsomysteriousafterall</link>
            <guid>https://chris.pelatari.com/posts/2006-04-14-theyieldstatementnotsomysteriousafterall</guid>
            <pubDate>Fri, 14 Apr 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p><font face="Tahoma"><strong>Using Yield in Practice<br /></strong></font><font face="Tahoma">The moral of the story is <em><font color="#ff0000">STOP thinking so 
  hard about it</font></em>, just use "yield return" the next piece of data in 
  the list.  When using the yield statment GetEnumerator's job is to answer 
  foreach's question - "what's my next item please".  Walk all the items in 
  your collection and yield return what you want.  Don't worry about 
  remembering where you were - that's all part of the generated statemachine goo 
  - it will stop and start the function you write as it pleases in it's MoveNext 
  implementation or whatever (cause we dont really care - we're not 
  suppposed to be thinking, remember?) .  =)</font><img height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=565559" width="1" /></p></blockquote>
<p><i>[Via <a href="http://blogs.msdn.com/jfoscoding/archive/2006/03/31/565559.aspx">jfo's 
coding</a>]</i> </p>
<p>I'll admit, I haven't thought a whole lot about yield because, well, I 
couldn't find anything that described what it did in terms I could understand. I 
just kept thinking "oh, cool, another new feature in .net 2.0 that I'll get to 
learn by the time 3.0 comes out" and moved on to the next task.</p>
<p>Thinking about it as kind of a "macro" (similar to what a using(){} block 
does) lets it gel a little better.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Visual Studio 2005 Designer - Touchy, Thouchy!]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-31-visualstudio2005designertouchythouchy</link>
            <guid>https://chris.pelatari.com/posts/2006-03-31-visualstudio2005designertouchythouchy</guid>
            <pubDate>Fri, 31 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>If you do anything &quot;out of the ordinary&quot; in your UserControl or Form derived
classes in Visual Studio 2005, let me introduce you to a little snippet that
will probably save you lots of headaches:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> ( DesignMode ) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre>
</div><p>or, its equally useful counterpart</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">DesignMode){</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">	doStuff</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>Now, the &quot;out of the ordinary&quot; thing I was doing was...hooking up an instance
EventHandler using a static property that exposes a Form derived class in an
OnLoad override. What? I know, not the clearest situation, and probably one that
could use a boatload of refactoring, but it works. In short, if you are having
designer problems in Visual Studio 2005, it may be worth it to sit back for a
bit and think about what introduced the designer error. Prime candidates are
constructors and OnLoad overrides that use static methods for functionality.
This code didn't allow me to view the designer of a
<em>different </em>form:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> OnLoad</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">EventArgs</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	AppManager.ConcreteEditorForm.NewPostCreated </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> EventHandler</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(HandleNewPost);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>while this one would:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> override</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> OnLoad</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">EventArgs</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">){</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">( DesignMode ) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	AppManager</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">..</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[NetVibe - Listen for SSID change]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-20-netvibelistenforssidchange</link>
            <guid>https://chris.pelatari.com/posts/2006-03-20-netvibelistenforssidchange</guid>
            <pubDate>Mon, 20 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've updated the NetVibe source with a mildly useful update: listening for
changes in SSID as well as IP Addresses. The source is hosted at <a href="http://chrisfrazier.net:8080/NetVibe">http://chrisfrazier.net:8080/NetVibe</a> on
a subversion server.</p>
<p>I used <a href="http://www.furrygoat.com/2004/05/finding_your_cu.html">some
code that I found at the FurryGoat experience</a>, modified it a little bit, and
it seems that it's at least useful in detecting if an SSID ends with
something...for example, my WiFi at work has an SSID of VelocityDatabank, so I
created a rule to look for an SSID/IP Address that EndsWith Databank. This code
definitely needs improvement, but I have found it very useful, and now I don't
have to have different network segments specified at each of the different WiFi
spots I connect to.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - SecurePasswordTextBox update]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-14-resecurepasswordtextboxupdate</link>
            <guid>https://chris.pelatari.com/posts/2006-03-14-resecurepasswordtextboxupdate</guid>
            <pubDate>Tue, 14 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This looks interesting. I thought Mr. "<a href="http://weblogs.asp.net/pglavich/archive/2006/03/12/440050.aspx">Just
finished my last chapter of Beginning AJAX</a>" would have for sure created this
as an asp.net control...guess I should have read closer the first time ;) Could
be useful in <a href="http://postxing.net">PostXING</a>, ifn we ever put some
real security innit.</p>
<blockquote>
  <p>Since there has been so much interest in the SecurePasswordTextBox control
  (see my previous post <a href="http://weblogs.asp.net/pglavich/archive/2006/02/26/439077.aspx">http://weblogs.asp.net/pglavich/archive/2006/02/26/439077.aspx</a> and
  <a href="http://weblogs.asp.net/pglavich/archive/2006/03/12/440052.aspx">http://weblogs.asp.net/pglavich/archive/2006/03/12/440052.aspx</a> ),
  I thought I would take the time to iron out the bugs. When I first released
  it, I performed minimal testing (i.e. about 15 minutes worth) and just thought
  if anybody else is interested, then I might put some real effort in.</p>
  <p>Well since then it was featured in an <a href="http://blogs.msdn.com/dansellers/archive/2006/03/08/546679.aspx">MSDN
  webcast by Dan Sellers </a>of Microsoft and I have received almost 300
  downloads in a short span of time. So just as a quick courtesy note, it has
  now been updated to V1.1 and works (AFAIK) 100%. Previous versions didn't
  handle certain situations property where text in the middle was selected and
  you typed a character, it would simply append the char and not do a
  replacement (thanks Nick :-) )</p>
  <p>All is now well. Go grab it from <a href="http://www.theglavs.com/DownloadItem.aspx?FileID=46">here</a><a href="http://www.theglavs.com/DownloadItem.aspx?FileID=46">http://www.theglavs.com/DownloadItem.aspx?FileID=46</a></p>
  <p>For those unaware, its a Windows Forms TextBox control that uses the .Net
  V2 SecureString class to store its contents. Basically, you now have a UI
  control that allows directly entry into this secure string class and makes it
  useable from a windows UI perspective. (See my <a href="http://weblogs.asp.net/pglavich/archive/2006/02/26/439077.aspx">previous
  post</a> for a full explanation.)</p></blockquote><i>[Via <a href="http://weblogs.asp.net/pglavich/archive/2006/03/14/440191.aspx">Glavs
Blog</a>]</i>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[tësting ûnïcode]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-13-testingunicode</link>
            <guid>https://chris.pelatari.com/posts/2006-03-13-testingunicode</guid>
            <pubDate>Mon, 13 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Sorry I keep putting out these tests, but I'm trying to see what different 
regexes will do to a friendly url in subtext. Nothing more to see here.</p>
<p class="media">[ Currently Playing : Have You Heard? - ZZ Top - Tres Hombres 
(3:12) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Quick shoutout to RegexLib.com]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-13-quickshoutouttoregexlib-com</link>
            <guid>https://chris.pelatari.com/posts/2006-03-13-quickshoutouttoregexlib-com</guid>
            <pubDate>Mon, 13 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've got weak regex skillz. I'll admit it. </p>
<p>I don't use them very much, so when I do need to, it's nice to know that 
regexlib is sitting there, waiting for me to come to it with my regex needs. In 
particular, there is an online <a href="http://regexlib.com/RETester.aspx">Regular Expression Tester</a> that 
has helped me to look smarter than I actually am on more than one occasion. 
Sure, I could use a desktop tool for my regex needs (and sometimes I do), but 
regexlib has the added bonus of having a collection of user-contributed regular 
expressions that are super useful when looking for ideas on how to implement a 
certain regex. </p>
<p>And let's not forget the <a href="http://regexlib.com/CheatSheet.aspx">Cheat 
Sheet</a> ... regexlib is just chock full of regex goodness.</p>
<p class="media">[ Currently Playing : The First Drop - Rise Against - (2:39) 
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[BackgroundWorker.isRunning - take two]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-12-backgroundworkerisrunningtaketwo</link>
            <guid>https://chris.pelatari.com/posts/2006-03-12-backgroundworkerisrunningtaketwo</guid>
            <pubDate>Sun, 12 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I can't believe nobody called me on this: <a href="http://msdn2.microsoft.com/en-US/library/system.componentmodel.backgroundworker.isbusy(VS.80).aspx">BackgroundWorker.IsBusy
Property</a></p>
<p>Reflector says it does exactly what I was looking for in a <a href="http://chrisfrazier.net/blog/archive/2006/02/11/440.aspx">previous
post</a>.</p>
<p>Technorati Tags:  <a href="http://www.technorati.com/tag/Windows Forms" rel="tag">Windows
Forms</a>  <a href="http://www.technorati.com/tag/BackgroundWorker" rel="tag">BackgroundWorker</a> 
</p><p></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - What is with Blogger.com?]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-10-rewhatiswithbloggercom</link>
            <guid>https://chris.pelatari.com/posts/2006-03-10-rewhatiswithbloggercom</guid>
            <pubDate>Fri, 10 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I had tried to reply to this post on WinExtra, but it errored out on me. So,
here's what the comment said:</p>
<p>Blogger uses Atom feeds located at <a href="http://blogdomain/atom.xml">http://blogdomain/atom.xml</a> The fact that
the skins provided don't reflect this is the pain point...you'd see a link if
you view sourced it:</p><pre><span style="color:blue;">&lt;</span><span style="color:maroon;">link</span> <span style="color:red;">rel</span>="<span style="color:blue;">alternate</span>" <span style="color:red;">type</span>="<span style="color:blue;">application/atom+xml</span>" <span style="color:red;">title</span>="<span style="color:blue;">Blue Phoenix</span>" <span style="color:red;">href</span>="<span style="color:blue;">atom.xml</span>" /<span style="color:blue;">&gt;</span></pre>
<p>Also, get rid of that captcha (I hate those!) use ReverseDoS instead: <a href="http://angrypets.com/tools/rdos">http://angrypets.com/tools/rdos</a></p>
<blockquote>
  <p>Blogging is cool and rss feeds make it even better for the reader/user; but
  only if blog hosts provide a mechanism for the blogger to have an RSS feed on
  their site which most do. </p>
  <p>The only exception I have found so far is blogs hosted by Blogger.com. Now
  I don't know if it is a setting that individual bloggers need to set but not
  one of the blogs on Blogger.com that I like seem to have an RSS feed. </p>
  <p>What is up with that silliness? </p>
  <p><strong>Now playing:</strong> New Phunk Theory - La Neblina Del Verano
  </p><br />
  <hr />
  This weblog is sponsored by <a href="http://www.winextra.com">WinExtra</a>.
</blockquote><i>[Via <a href="http://www.winextra.com/2006/03/10/What+Is+With+Bloggercom.aspx">The World
of WinExtra</a>]</i>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING - It's Beta Time!]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-09-postxingitsbetatime</link>
            <guid>https://chris.pelatari.com/posts/2006-03-09-postxingitsbetatime</guid>
            <pubDate>Thu, 09 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2006/03/postxing_beta.gif"><img class="alignnone size-full wp-image-1157" alt="postxing_beta" src="http://chrispelatari.files.wordpress.com/2006/03/postxing_beta.gif" width="192" height="190" /></a></p>
<p>For the adventurous among you, we've decided to release beta 1 of <a href="http://postxing.net">PostXING</a> available for <a href="http://projectdistributor.net/Releases/Release.aspx?releaseId=325">download
at ProjectDistributor</a>!</p>
<p>There are a few known issues, but as far as I know there aren't any
showstopper bugs. I've been running the development build for quite some time
now, and for PostXING v1.1 users, I think this release is a big step up in terms
of usability. Since the only working provider at this time is the
MetaBlogProvider, the <strong>functionality</strong> remains basically the same,
i.e. you can manage a MetaWeblog enabled weblog using PostXING from your
desktop.</p>
<p>If you find any issues, bugs, or you just think something could be done
better, head on over to the <a href="http://postxing.net/gemini">Gemini issue
tracker</a>. To add an issue, click the <a href="http://postxing.net/gemini/Issues.aspx?pi=1&amp;m=1">All Issues
link</a> and then Create Issue at the top of the page. If you don't want to
get that involved, you can always use the <a href="http://www.postxing.net/blog/contact.aspx">contact form over at
PostXING.net</a> to at least get your issue addressed...or you could just
let it ride and hope I run into it myself 😃</p>
<p>If you're feeling <em>really</em> adventurous and want to hack on PostXING,
you can do so by using <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> and pointing to <a href="http://postxing.net:8080/PostXING"><a href="http://postxing.net:8080/PostXING" target="_blank" rel="noreferrer">http://postxing.net:8080/PostXING</a></a>.
All main development is done on the trunk by version. If you don't like how
something works, send me a diff. I think I've been pretty receptive to criticism
and feature requests (even tho we can't put them <em>all</em> in at once), so
the very least that will happen is that you will be able to use a program that
you feel works better. Thanks, and enjoy!</p>
<p>[ Currently Playing : Jesus Just Left Chicago - ZZ Top - Tres Hombres (3:31)
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Source, are you useful again?]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-07-sourceareyouusefulagain</link>
            <guid>https://chris.pelatari.com/posts/2006-03-07-sourceareyouusefulagain</guid>
            <pubDate>Tue, 07 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>testing source</p>
<p><font color="#ff0000">update</font>: nope. </p>
<p><font color="#ff0000">update2</font>: almost: I get a reference to the source, 
but it's based with the skin's control directory.</p>
<p><font color="#ff0000">update3</font>: BAM! gotta put http:// at the beginning. 
sweet, I missed that one.</p>
<p class="media">[ Currently Playing : Sheik - ZZ Top - Tres Hombres (4:04) 
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[SubText, BlogML, and PostXING]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-07-subtextblogmlandpostxing</link>
            <guid>https://chris.pelatari.com/posts/2006-03-07-subtextblogmlandpostxing</guid>
            <pubDate>Tue, 07 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2006/03/postxing.png"><img class="alignnone size-full wp-image-1159" alt="PostXING" src="http://chrispelatari.files.wordpress.com/2006/03/postxing.png" width="593" height="420" /></a></p>
<p>This is the end result after setting up <a href="http://subtextproject.com/">SubText </a>and importing my old blog (now <a href="http://chrisfrazier.net/cs11">moved to here</a>). I had created a blogML
exporter for <a href="http://communityserver.org">cs11</a> and ran into
some initial problems because the version of <a href="http://blogml.com">BlogML</a> I had used was a smidge older
(v0.9) and therefore had a different schema. Kinda makes me wish there were
a way to clear out all the content and start over like <a href="http://projectdistributor.net/Projects/Project.aspx?projectId=131">subv2
</a>allows me to.</p>
<p>So why didn't I go with subv2? (Sorry, <a href="http://markitup.com">Darren</a>) The admin interface and WebParts' silly
requirement of IE. I basically live in <a href="http://getfirefox.com">FireFox</a> and although it's been quite some
time since I've posted thru the web interface of .text/CS::Blogs, I do need to
go in from time to time and make some changes. Plus, since subtext was forked
off of .text, I'm already pretty familiar with the interface (and some of the
code when necessary). Subv2 is a real nice exploration of all the fun new
doohickeys in .net 2.0, and with Darren at the helm you know it's high-quality
stuff, but I need something that works for me in the environment I choose to
work with. Either way, I've got an install of Subv2 behind the firewall so I
could just make that one public and import my shiny new blogML file if need be:
I'm keeping a definite eye on it, that's for sure.</p>
<p class="media">[ Currently Playing : Move Me on Down the Line - ZZ Top - Tres
Hombres (2:30) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING plugin - MetaPinger]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-01-postxing-plugin-metapinger</link>
            <guid>https://chris.pelatari.com/posts/2006-03-01-postxing-plugin-metapinger</guid>
            <pubDate>Wed, 01 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, it turns out that PostXING's mystery plugin author is none other than
Taras Naumtsev, and Taras is on fire! Check out the new MetaPinger plugin:</p>
<blockquote>
  <p><strong>MetaPinger</strong> is a <a href="http://postxing.net/">PostXING</a> plugin that notifies a number of
  services that keep track of <br />weblogs and publish them. By pinging, you let
  the services know that your blog has been updated , <br />they crawl your blog,
  publishing your site contents, thus increasing your blog's popularity. </p>
  <p><img alt="MetaPinger" src="http://devintelligence.com/blog-images/MetaPinger.png" align="baseline" border="0" /></p>
  <p><br />Setup<br />Extract the ZIP archive into the "plugins" subdirectory of
  PostXING's install directory</p>
  <p>Configuration<br />You will need to configure MetaPinger plugin to notify
  ping services.<br />Enter blog name.<br />Enter blog url.<br />Add ping service urls
  ( one per line )</p>
  <p><img alt="MetaPinger - Configuration" src="http://devintelligence.com/blog-images/MetaPinger-Configuration.png" align="baseline" border="0" /></p>
  <p>Usage<br />To ping press the "Ping" button. </p>
  <p><a href="http://http://www.devintelligence.com/downloads/MetaPinger-1.0_zip.aspx">Download
  MetaPinger plugin</a></p>
  <p> </p>
  <p>MetaPinger has been tested with the following ping services:<br /><a href="http://1470.net/api/ping">http://1470.net/api/ping</a><br /><a href="http://api.feedster.com/ping">http://api.feedster.com/ping</a><br /><a href="http://api.moreover.com/RPC2">http://api.moreover.com/RPC2</a><br /><a href="http://api.moreover.com/ping">http://api.moreover.com/ping</a><br /><a href="http://api.my.yahoo.com/RPC2">http://api.my.yahoo.com/RPC2</a><br /><a href="http://blogdb.jp/xmlrpc">http://blogdb.jp/xmlrpc</a><br /><a href="http://blog.goo.ne.jp/XMLRPC">http://blog.goo.ne.jp/XMLRPC</a><br /><a href="http://coreblog.org/ping/">http://coreblog.org/ping/</a><br /><a href="http://ping.blo.gs/">http://ping.blo.gs/</a><br /><a href="http://ping.bloggers.jp/rpc/">http://ping.bloggers.jp/rpc/</a><br /><a href="http://ping.blogmura.jp/rpc/">http://ping.blogmura.jp/rpc/</a><br /><a href="http://ping.cocolog-nifty.com/xmlrpc">http://ping.cocolog-nifty.com/xmlrpc</a><br /><a href="http://ping.syndic8.com/xmlrpc.php">http://ping.syndic8.com/xmlrpc.php</a><br /><a href="http://rpc.blogbuzzmachine.com/RPC2">http://rpc.blogbuzzmachine.com/RPC2</a><br /><a href="http://rpc.blogrolling.com/pinger/">http://rpc.blogrolling.com/pinger/</a><br /><a href="http://rpc.technorati.com/rpc/ping">http://rpc.technorati.com/rpc/ping</a><br /><a href="http://www.weblogues.com/RPC/">http://www.weblogues.com/RPC/</a><br /></p>
  <p> </p>
  <p>Technorati Tags:  <a href="http://www.technorati.com/tag/PostXING">PostXING</a>  <a href="http://www.technorati.com/tag/Tagging">Tagging</a>  <a href="http://www.technorati.com/tag/Utility">Utility</a>  <a href="http://www.technorati.com/tag/Software">Software</a>  <a href="http://www.technorati.com/tag/Blogware">Blogware</a>  <a href="http://www.technorati.com/tag/Plugin">Plugin</a> 
  </p><p><img height="1" src="http://devintelligence.com/cs/aggbug.aspx?PostID=1161" width="1" /></p></blockquote><i>[Via <a href="http://devintelligence.com/cs/blogs/netadventures/archive/2006/03/01/1161.aspx">.Net
Adventures </a>]</i>
<p> </p>
<p class="media">[ Currently Playing : Beef (Feat. Mobb Deep) - The Notorious
B.I.G - (4:57) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING plugin - TechnoratiTagger]]></title>
            <link>https://chris.pelatari.com/posts/2006-03-01-postxing-plugin-technoratitagger</link>
            <guid>https://chris.pelatari.com/posts/2006-03-01-postxing-plugin-technoratitagger</guid>
            <pubDate>Wed, 01 Mar 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Holy Schnikeys!</p>
<p>Someone has actually built a plugin for <a href="http://postxing.net">PostXING</a>! Ladies and gentlemen, Allow me to
introduce the <a href="http://devintelligence.com/cs/blogs/netadventures/archive/2006/02/28/1157.aspx">TechnoratiTagger
plugin for PostXING</a>! Unfortunately, I'm not 100% sure who wrote it (well,
it's not obvious from the site). The good news is...it works! :) It even works
with the spankin new, begging to be released v2 beta I have on my machine, and
it works well!</p>
<p>Technorati Tags:  <a href="http://www.technorati.com/tag/PostXING" rel="tag">PostXING</a>  <a href="http://www.technorati.com/tag/Technorati Tags" rel="tag">Technorati
Tags</a>  <a href="http://www.technorati.com/tag/Plugins" rel="tag">Plugins</a> 
</p><p></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[FIX - Design View error in VS 2005]]></title>
            <link>https://chris.pelatari.com/posts/2006-02-20-fix-design-view-error-in-vs-2005</link>
            <guid>https://chris.pelatari.com/posts/2006-02-20-fix-design-view-error-in-vs-2005</guid>
            <pubDate>Mon, 20 Feb 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://support.microsoft.com/kb/912019/en-us">Here's a link to the
hotfix </a>for the winforms designer error that looks like this:</p>
<blockquote style="margin-right:0;">
  <p><font face="Verdana" color="#ff0000" size="2">One or more errors encountered
  while loading the designer. The errors are listed below. Some errors can be
  fixed by rebuilding your project, while others may require code changes.
  TypeLoad failure. Unable to load one or more of the requested types. Retrieve
  the LoaderExceptions property for more information. <br /><br />at
  System.Reflection.Module.GetTypesInternal(StackCrawlMark&amp; stackMark)
  <br />at System.Reflection.Assembly.GetTypes() <br />at
  Microsoft.VisualStudio.Shell.Design.AssemblyObsoleteEventArgs..ctor(Assembly
  assembly) <br />at
  Microsoft.VisualStudio.Design.VSDynamicTypeService.ReloadAssemblyIfChanged(String
  codeBase) <br />at
  Microsoft.VisualStudio.Design.VSDynamicTypeService.CreateDynamicAssembly(String
  codeBase) <br />at
  Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()
  <br />at
  Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String
  fullName, String typeName, Boolean ignoreTypeCase, Assembly&amp; assembly,
  String description) <br />at
  Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchProjectEntries(AssemblyName
  assemblyName, String typeName, Boolean ignoreTypeCase, Assembly&amp; assembly)
  <br />at Microsoft.VisualStudio.Design.VSTypeResolutionService.GetType(String
  typeName, Boolean throwOnError, Boolean ignoreCase, ReferenceType refType)
  <br />at
  Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String
  name, Boolean throwOnError, Boolean ignoreCase) <br />at
  Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String
  name, Boolean throwOnError) <br />at
  System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(ITypeResolutionService
  trs, String name, Dictionary`2 names) <br />at
  System.ComponentModel.Design.Serialization.CodeDomSerializerBase.FillStatementTable(IDesignerSerializationManager
  manager, IDictionary table, Dictionary`2 names, CodeStatementCollection
  statements, String className) <br />at
  System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager
  manager, CodeTypeDeclaration declaration) <br />at
  System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager
  manager) <br />at
  Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager
  serializationManager) <br />at
  Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32
  fReload)</font></p></blockquote>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Got My ASP.NET Podcast Shirt]]></title>
            <link>https://chris.pelatari.com/posts/2006-02-15-got-my-asp-net-podcast-shirt</link>
            <guid>https://chris.pelatari.com/posts/2006-02-15-got-my-asp-net-podcast-shirt</guid>
            <pubDate>Wed, 15 Feb 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I got my <a href="http://aspnetpodcast.com">ASP.NET Podcast </a>shirt, and
there's a <em>lot</em> of Wally to be had it seems...</p>
<p><a href="http://chrispelatari.files.wordpress.com/2006/02/image_144.jpg"><img class="alignnone size-full wp-image-1162" alt="IMAGE_144" src="http://chrispelatari.files.wordpress.com/2006/02/image_144.jpg" width="320" height="240" /></a></p>
<p>You can't really tell from this pic, but the image of Wally takes up nearly
the <em>entire back</em> of the shirt...</p>
<p><a href="http://chrispelatari.files.wordpress.com/2006/02/image_154.jpg"><img class="alignnone size-full wp-image-1163" alt="IMAGE_154" src="http://chrispelatari.files.wordpress.com/2006/02/image_154.jpg" width="320" height="240" /></a></p>
<p>But even this looks phenomenal on yours truly 😛</p>
<p class="media">[ Currently Playing : Last Call - Kanye West - (12:41)
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Subversion on Windows]]></title>
            <link>https://chris.pelatari.com/posts/2006-02-14-subversion-on-windows</link>
            <guid>https://chris.pelatari.com/posts/2006-02-14-subversion-on-windows</guid>
            <pubDate>Tue, 14 Feb 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been wanting to setup <a href="http://subversion.tigris.org">subversion</a> for <a href="http://postxing.net">PostXING</a> for a while so I can have more 
control over who has commit access and various adminy tasks that are only 
available thru emailing the already busy staff of <a href="http://sourcegear.com">sourcegear</a> when hosting code on <a href="http://vaultpub.sourcegear.com">vaultpub</a>.</p>
<p>Thankfully, I'm not the only person who has had this idea. To that end, <a href="http://blogs.clearscreen.com/migs/archive/2005/01/21/824.aspx">this blog 
post </a>was instrumental in outlining the steps to take to get subversion up 
and running on a windows box. The only issue that I had which was rather 
annoying was I kept getting an error stating that svn was "unable to open an 
ra_local session to URL" when trying to import code on the host. So, I did 
things the painfully slow way of adding files/folders from a client machine that 
already had the code on it. The good news is that PostXING now has its own 
subversion repository: <a href="svn://postxing.net/PostXING">svn://postxing.net/PostXING</a> read 
access is still there for all, but now I can specify who can and cannot commit 
changes. So nice.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[BackgroundWorker.isRunning]]></title>
            <link>https://chris.pelatari.com/posts/2006-02-11-backgroundworker-isrunning</link>
            <guid>https://chris.pelatari.com/posts/2006-02-11-backgroundworker-isrunning</guid>
            <pubDate>Sat, 11 Feb 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is a private boolean member of the new <a href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" target="_blank" rel="noreferrer">BackgroundWorker</a> class in .NET 2.0. If it were public, perhaps there would be less questions
like <a href="http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=359244" target="_blank" rel="noreferrer">this one on the gotdotnet messageboards</a>. I ran into a similar problem recently
and decided that instead of catching an exception when the <a href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" target="_blank" rel="noreferrer">BackgroundWorker</a> is running, I would emulate the isRunning member myself.
Since this is multithreaded by its nature, I decided to use a <a href="http://www.mono-project.com/Coding_Guidelines#Locking_and_Threading" target="_blank" rel="noreferrer">lock object</a> to control access to a static boolean member in the class that uses
the <a href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" target="_blank" rel="noreferrer">BackgroundWorker</a> component.</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> bool</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> isRunningBgWorker</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> object</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> lockObj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">..</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">isRunningBgWorker) {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">	this</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.backgroundWorker1.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">RunWorkerAsync</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>I check to see if it's running before even setting it off to do the work.</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">private</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> backgroundWorker1_DoWork</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">object</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sender</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DoWorkEventArgs</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	lock</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (lockObj) {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		isRunningBgWorker </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span></code></pre>
</div><p>The first thing that happens when the DoWork eventhandler is called and</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">private</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> backgroundWorker1_RunWorkerCompleted</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">object</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sender</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">RunWorkerCompletedEventArgs</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">..</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">	lock</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (lockObj) {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">		isRunningBgWorker </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">	}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>the last thing when the work is completed: controlled access to the
isRunningBgWorker member. Hope this helps somebody else out there who is having
trouble with the <a href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" target="_blank" rel="noreferrer">BackgroundWorker</a> component.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[All In Your Head& - DJ Fred Castillo]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-30-all-in-your-head-dj-fred-castillo</link>
            <guid>https://chris.pelatari.com/posts/2006-01-30-all-in-your-head-dj-fred-castillo</guid>
            <pubDate>Mon, 30 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2006/01/06-05-04_1755.jpg"><img class="alignnone size-full wp-image-1165" alt="06-05-04_1755" src="http://chrispelatari.files.wordpress.com/2006/01/06-05-04_1755.jpg" width="593" height="444" /></a></p>
<p>This is in the year 2004BB (Before Beard)</p>
<p class="media">[ Currently Playing : Just A Memory Featuring The C - The
Notorious B.I.G - (4:30) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[CIDR Notation Cheat Sheet]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-28-cidr-notation-cheat-sheet</link>
            <guid>https://chris.pelatari.com/posts/2006-01-28-cidr-notation-cheat-sheet</guid>
            <pubDate>Sat, 28 Jan 2006 00:00:00 GMT</pubDate>
            <description><![CDATA[<blockquote>
  <p>CIDR        Total number    Network  
             Description:<br />Notation:  
   of addresses:  
   Mask:<br />]]></description>
            <content:encoded><![CDATA[<blockquote>
  <p>CIDR        Total number    Network  
             Description:<br />Notation:  
   of addresses:  
   Mask:<br />--------------------------------------------------------------<br />/0  
          4,294,967,296   0.0.0.0    
           Every Address<br />/1      
      2,147,483,648   128.0.0.0        
     128 /8 nets<br />/2          
  1,073,741,824   192.0.0.0           64 
  /8 nets<br />/3          536,870,912    
   224.0.0.0           32 /8 nets<br />/4  
          268,435,456     240.0.0.0  
           16 /8 nets<br />/5        
    134,217,728     248.0.0.0        
     8 /8 nets<br />/6          
  67,108,864      252.0.0.0          
   4 /8 nets<br />/7          33,554,432  
      254.0.0.0           2 /8 
  nets<br />/8          16,777,214      
  255.0.0.0           1 /8 
  net<br />--------------------------------------------------------------<br />/9  
          8,388,608      
   255.128.0.0         128 /16 nets<br />/10  
         4,194,304      
   255.192.0.0         64 /16 nets<br />/11  
         2,097,152      
   255.224.0.0         32 /16 nets<br />/12  
         1,048,576      
   255.240.0.0         16 /16 nets<br />/13  
         524,288        
   255.248.0.0         8 /16 nets<br />/14  
         262,144        
   255.252.0.0         4 /16 nets<br />/15  
         131.072        
   255.254.0.0         2 /16 nets<br />/16  
         65,536          
  255.255.0.0         1 
  /16<br />--------------------------------------------------------------<br />/17  
         32,768          
  255.255.128.0       128 /24 nets<br />/19    
       16,384          
  255.255.192.0       64 /24 nets<br />/19      
     8,192           255.255.224.0  
       32 /24 nets<br />/20        
   4,096           255.255.240.0    
     16 /24 nets<br />/21         2,048  
           255.255.248.0       8 
  /24 nets<br />/22         1,024      
       255.255.252.0       4 /24 
  nets<br />/23         512        
       255.255.254.0       2 /24 
  nets<br />/24         256        
       255.255.255.0       1 
  /24<br />--------------------------------------------------------------<br />/25  
         128            
   255.255.255.128     Half of a /24<br />/26    
       64              
  255.255.255.192     Fourth of a /24<br />/27      
     32              
  255.255.255.224     Eighth of a /24<br />/28      
     16              
  255.255.255.240     1/16th of a /24<br />/29      
     8              
   255.255.255.248     5 Usable addresses<br />/30  
         4              
   255.255.255.252     1 Usable address<br />/31    
       2              
   255.255.255.254     Unusable<br />/32      
     1              
   255.255.255.255     Single 
  host<br />--------------------------------------------------------------<br /></p><img height="1" src="http://sms-forums.com/aggbug.aspx?PostID=18" width="1" /></blockquote>
<p><i>[Via <a href="http://sms-forums.com/blogs/pmurphy/archive/2006/01/26/18.aspx">(Is it 
even a box?)</a>]</i> </p>
<p>I've needed this a few times myself...thanks, Paul.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[MSBuild - Date-based build number blues]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-26-msbuild-date-based-build-number-blues</link>
            <guid>https://chris.pelatari.com/posts/2006-01-26-msbuild-date-based-build-number-blues</guid>
            <pubDate>Thu, 26 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>According to <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=193986&amp;SiteID=1" target="_blank" rel="noreferrer">this thread</a>, Microsoft may run into visioning problems if they stick with their
new build number scheme (major.minor.yMMdd.revision) next year. A Version in the
.NET framework consists of 4 integers for the major, minor, build number, and
revision in that format. When the build number uses the year as the first digit,
it becomes 3.0.70101.0 for example on January 1st of next year.
The build number only goes up to 65535. Oops. As an alternative, I think I'll
be sticking with the BuildDay method, using the <a href="http://code.mattgriffith.net/UpdateVersion/" target="_blank" rel="noreferrer">UpdateVersion tool</a>. I was
hoping to be able to use the <a href="http://msbuildtasks.com/files/3/tasks/entry3.aspx" target="_blank" rel="noreferrer">AssemblyInfoTask</a> to
add a conditional task directly into my .csproj file, but maybe I can use some
form of <a href="http://msdn2.microsoft.com/en-us/library/x8zx72cd(en-US,VS.80).aspx" target="_blank" rel="noreferrer">Exec task</a> voodoo to get the UpdateVersion working with my build. I only want to
update the version number when I compile in release mode, so hopefully I can
write something with Condition=&quot; '$(Configuration)' == 'release'&quot; in the
BeforeCompile target.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Thanks, RssBandit.]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-24-thanks-rssbandit</link>
            <guid>https://chris.pelatari.com/posts/2006-01-24-thanks-rssbandit</guid>
            <pubDate>Tue, 24 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://rssbandit.org" target="_blank" rel="noreferrer">RssBandit</a> has been a big inspiration for
some of the specific features of <a href="http://postxing.net" target="_blank" rel="noreferrer">PostXING</a>. As
a matter of fact, where possible I've used code from RssBandit directly. At
least half of proxy support, most of the plugin loading logic, and most recently
(like you don't have it unless you monitor the branches for postxing) a
little-used, very useful interface: IMessageFilter.
IMessageFilter is only implemented by the splitter control in the framework
(according to reflector) but was extremely helpful in the quest to better handle
the keyboard. There is only one method defined on the interface:</p>
<div class="language-csharp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">csharp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">//CF: thanks, rssbandit :)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> bool</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PreFilterMessage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">ref</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Message</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> m</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  ..</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>The code then looks for the WM_KEYDOWN or WM_SYSKEYDOWN messages and handles
things according to whatever rules you put in there. To get it hooked up, I
simply overrode OnActivate and OnDeactivate and added
Application.Add/RemoveMessageFilter(this);</p>
<p>I figured if I already posted the problem, I might as well post a solution as
well. This was really helpful to the flat spot that was forming on my forehead,
so thanks again RssBandit.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Gmail Delete Button]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-20-gmail-delete-button</link>
            <guid>https://chris.pelatari.com/posts/2006-01-20-gmail-delete-button</guid>
            <pubDate>Fri, 20 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Broseph.</p>
<p>This was the <strong>first</strong> thing that I requested from gmail, and 
they've taken it up a notch - instead of only deleting messages, it notifies you 
if there are messages in a current "conversation" that have already been 
deleted:</p>
<p>  32 deleted messages in this conversation. <span class="lk" id="str">View 
messages</span> or <span class="lk" id="dlf">delete forever</span>.</p>
<p>Nice.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - PostXING - Better Keyboard Support]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-19-re-postxing-better-keyboard-support</link>
            <guid>https://chris.pelatari.com/posts/2006-01-19-re-postxing-better-keyboard-support</guid>
            <pubDate>Thu, 19 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Heh, oops. This is what happens when the tool that you are building is the
same tool you are using to make tech notes to yourself.* Really, there should be
a bugtracker in place so that I can have a central organized spot to have bug
reports, feedback, etc.</p>
<p>Anyone have any suggestions? I've used (and liked) gemini, but delusions of
granduer aside the 10 user limit gives me pause. I want <a href="http://postxing.net">PostXING</a> to remain free, so any supporting
items like this need to be free as well.</p>
<p>*yes, most of my notes do look like this.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[MonoDevelop to get a Design-Enabled]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-17-monodevelop-to-get-a-design-enabled</link>
            <guid>https://chris.pelatari.com/posts/2006-01-17-monodevelop-to-get-a-design-enabled</guid>
            <pubDate>Tue, 17 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It's for glade3, but <a href="http://primates.ximian.com/~lluis/blog/pivot/entry.php?id=47">having a 
designer </a>will definitely get me looking at Mono again. </p>
<p class="media">[ Currently Playing : Motel of the white locust - Glassjaw - 
Everything you ever wanted to know about silence (8:41) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Got my new glasses]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-13-got-my-new-glasses</link>
            <guid>https://chris.pelatari.com/posts/2006-01-13-got-my-new-glasses</guid>
            <pubDate>Fri, 13 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Strictly filed under "As if you cared".</p>
<p><img src="http://www.chrisfrazier.net/images/new_glasses.png" /></p>
<p class="media">[ Currently Playing : Audioslave / Out Of Exile - Audioslave - 
Out Of Exile (4:53) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[MVP Again]]></title>
            <link>https://chris.pelatari.com/posts/2006-01-11-mvp-again</link>
            <guid>https://chris.pelatari.com/posts/2006-01-11-mvp-again</guid>
            <pubDate>Wed, 11 Jan 2006 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I got selected for the <a href="http://mvp.support.microsoft.com/">MVP 
</a>award again this year. Many thanks to BenMi, who has been an awesome lead 
this whole time. You rock, dude.</p>
<p>I was also awarded the (unofficial) <a href="http://angrypets.com/tools/rdos">ReverseDoS</a> MVP award for my 
unending quest to tell anyone who is fed up with comment spam about it. If 
you're running an asp.net blogging engine (really, anything that could generate 
spam from automated bots that runs asp.net) you owe it to yourself to check this 
component out.</p>
<p>Since installing and configuring it correctly, I have gotten exactly 1 (one) 
comment spam, and it was a manual entry. None that are automated, tho. Nice 
:)</p>
<p class="media">[ Currently Playing : demon days - Gorillaz - (4:28) 
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING v2 alpha and proxies]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-23-postxing-v2-alpha-and-proxies</link>
            <guid>https://chris.pelatari.com/posts/2005-12-23-postxing-v2-alpha-and-proxies</guid>
            <pubDate>Fri, 23 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'd like to apologize if any users of <a href="http://postxing.net">PostXING</a> have to go thru proxies...I've been 
bugchasing this evening and it occurred to me that specifying a proxy for a new 
blog is kind of...well, weird.</p>
<p>First, it's a wizard-style dialog, so you expect the next/back buttons to 
work like it would in say an installer (well, I would anyways). Instead, you've 
got to specify at least a host, "page", and port, click on a special linkbutton 
(not next), click back to specify now the rest of the properties (including 
re-typing what you've already typed) and <em>then</em> you can go to select 
which blog you want to use.</p>
<p>I don't have an answer for this yet, but I'm working on it. 
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Yahoo! Widgets (Konfabulator) 3.0.2]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-21-yahoo-widgets-konfabulator-3-0-2</link>
            <guid>https://chris.pelatari.com/posts/2005-12-21-yahoo-widgets-konfabulator-3-0-2</guid>
            <pubDate>Wed, 21 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I wanted to install the newest version of Konfabulator to one of my 
computers, so I went to <a href="http://www.konfabulator.com">www.konfabulator.com</a> and tried to install 
the latest version (3.0.1 earlier today, 3.0.2 this evening) but instead of 
getting the 11MB download that the site reports, I get a little &lt;500KB file 
called widgetsus.exe. </p>
<p>According to some forum posts, I'm not the only person having problems here. 
My problem was that no computers that didn't already have an earlier version of 
Konfabulator would actually install off of this file. So I looked thru a few 
more forum posts and found a url to 3.0.1 (<a href="http://us.dl1.yimg.com/download.yahoo.com/dl/widgets/us/yahoowidgets3x77.exe">http://us.dl1.yimg.com/download.yahoo.com/dl/widgets/us/yahoowidgets3x77.exe</a>) 
and was then able to guess for the 3.0.2 version (<a href="http://us.dl1.yimg.com/download.yahoo.com/dl/widgets/us/yahoowidgets3x79.exe">http://us.dl1.yimg.com/download.yahoo.com/dl/widgets/us/yahoowidgets3x79.exe</a>) 
these are the files that the web installer are <em>supposed</em> to download, 
but don't. </p>
<p>Hopefully me posting this won't tip off the developers and make them choose a 
different naming scheme. Better yet, why not just let end users download the 
installer instead of <em>having</em> to go thru the web 
installer.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[MSN Spaces opens up MetaWeblog API support]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-13-msn-spaces-opens-up-metaweblog-api-support</link>
            <guid>https://chris.pelatari.com/posts/2005-12-13-msn-spaces-opens-up-metaweblog-api-support</guid>
            <pubDate>Tue, 13 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>And now I can post there with <a href="http://postxing.net">PostXING</a> (v2).</p>
<p>Dare has put up a <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=50920c46-f405-4f8f-85b3-6c2d18330c64">couple 
</a>of <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=f7a05332-7838-40ed-bcc2-af2667f79a77">tutorials 
</a>on how to setup Metablog support for w.bloggar and BlogJet. Since I 
"borrowed" ideas from both of these fine applications, the setup for w.bloggar 
is nearly identical to what you need to do in PostXING v2. Sorry for those v1 
folks, I don't think it'll work in that version. Maybe I can put out a patch so 
that v1 will work too.</p>
<p>I'd also like to thank <a href="http://www.25hoursaday.com/weblog/">Dare</a> for being so helpful in 
the beta stage. He personally replied to my questions and gave insight on a 
couple of things that were very helpful (like the BOM thing, which may or may 
not be a fluke in the beta version of spaces)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[NetVibe - listen for network changes and execute a script.]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-12-netvibe-listen-for-network-changes-and-execute-a-script</link>
            <guid>https://chris.pelatari.com/posts/2005-12-12-netvibe-listen-for-network-changes-and-execute-a-script</guid>
            <pubDate>Mon, 12 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>A few people asked for the source code/a download for the little widget I<br /> whipped up on Friday, so I spent this morning adding a little bit of<br /> persistence. The original code for switching my networks is still in there (and<br /> still works on my machine if I change the code to point there) but I made it<br /> more general and also used it as an excuse to explore the Settings API as well<br /> as use a couple of neat features of VS 2005. (If you don't care about any of<br /> that stuff and just want to see if you can build the project and make some use<br /> out of it, it can be found <a href="http://projectdistributor.net/Releases/Release.aspx?releaseId=289">here on<br /> projectdistributor</a>. )</p><p>So the settings goop in VS 2005 is pretty neat, but there's a limited subset<br /> (it seems) that you can specify as types in the designer. I wanted to use a<br /> Domain Object, tho - so, no designer love for me. I ended up making a simple<br /> string setting just to see what code it generated for UserScopedSetting<br /> properties. I ended up with this:</p><pre>[global::System.Configuration.UserScopedSetting]
<span style="color:blue;">public</span> ConfigItem Disconnected {
	<span style="color:blue;">get</span> {
		<span style="color:blue;">if</span> (<span style="color:blue;">this</span>[<span style="color:maroon;">"Disconnected"</span>] == <span style="color:blue;">null</span>) {
			ConfigItem item = <span style="color:blue;">new</span> ConfigItem();
			item.IPAddress = <span style="color:maroon;">"127.0.0.1"</span>;
			item.Condition = ConditionKind.Equals;
			item.DisplayText = <span style="color:maroon;">"disconnected."</span>;
			item.Icon = IconKind.Disconnected;
			<span style="color:blue;">this</span>[<span style="color:maroon;">"Disconnected"</span>] = item;
		}
		<span style="color:blue;">return</span> (ConfigItem)<span style="color:blue;">this</span>[<span style="color:maroon;">"Disconnected"</span>];
	}
	<span style="color:blue;">set</span> {
		<span style="color:blue;">this</span>[<span style="color:maroon;">"Disconnected"</span>] = value;
	}
}</pre><p>I found that a suitable default value was needed to start off with in<br /> settings, so I did something similar for a Home, Work, Unknown, and Other<br /> network. This way I can persist the Settings using the Settings API instead of<br /> something home cooked (although I'm not sure if you would have to to avoid<br /> version conflicts...) UserScopedSettings look to me a lot like IsolatedStorage,<br /> that is the version and the product name help determine where settings should<br /> go. If you wanted to use the same settings across different versions, I guess<br /> you would have to copy the user.config file from one version location to the<br /> next.</p><p>Next I wanted to see what the designer had to offer. The table layout panel<br /> was real nice. It took care of all of my layout issues with respect to space. To<br /> get what I wanted done, I first created a dummy Collection that inherits from<br /> System.ComponentModel.BindingList&lt;&gt;:</p><pre><span style="color:blue;">internal</span> <span style="color:blue;">class</span> ConfigItemList : BindingList&lt;ConfigItem&gt; {}</pre><p>This is how I was able to add it as an Object datasource to the Data Sources<br /> window:</p><p><a href="http://chrispelatari.files.wordpress.com/2005/12/datawindow_tablelayoutpanel.png"><img class="alignnone size-full wp-image-1167" alt="DataWindow_TableLayoutPanel" src="http://chrispelatari.files.wordpress.com/2005/12/datawindow_tablelayoutpanel.png" width="377" height="324" /></a></p><p>From there, you can change the type of control you would like to output. I<br /> simply Dock.Fill 'ed the TableLayoutPanel and added the correct amount of rows.<br /> To get the labels to line up with the controls, I set all of their AnchorStyles<br /> to Top | Left (that's Top AND Left). When each usercontrol is loaded up, I<br /> manually bind to the information. When the Save button is clicked, all of the<br /> info gets put back into the Settings object from the controls and<br /> Settings.Default.Save() is called. This automatically saves the changed data to<br /> a safe location under Documents And Settings (specifically Local<br /> SettingsApplication DataCompanyNameFileName+ a bunch of other<br /> stuffProductVersion).</p><p>Now, for the main reason I created this thing: I host a few external<br /> sites at work, and I can't see them without an entry in my hosts file<br /> (%windir%system32driversetchosts) for each one. At home (or anywhere else)<br /> however, I need to be able to rely on DNS to be able to get me to those sites,<br /> so I created 2 extra hosts files, hosts.work and hosts.home. hosts.home pretty<br /> much just has the single entry:</p><p>127.0.0.1    localhost</p><p>whereas hosts.work contains definitions to the internal network address of<br /> the servers involved. I created 2 batch files that copy over the hosts file<br /> depending on where I am. The one to switch to work has the following<br /> command:</p><p>copy /Y %windir%system32driversetchosts.work<br /> %windir%system32driversetchosts</p><p>and the one for home simply replaces hosts.home into the hosts file the same<br /> way. So the command to execute for work is the fully qualified path to the bat<br /> file. Everything else has the fully qualified path to the switch to home batch<br /> script. So now, I just have this small utility run on startup and stay in the<br /> tray, and whenever the network is changed, I am automatically configured to go<br /> with this utility.</p><p class="media">[ Currently Playing : Quarantined - At the Drive-In -<br /> Relationship of Command (5:24) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[System.Net.NetworkInformation]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-10-system-net-networkinformation</link>
            <guid>https://chris.pelatari.com/posts/2005-12-10-system-net-networkinformation</guid>
            <pubDate>Sat, 10 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is pretty cool:</p>
<pre>System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged += 
<span style="color:blue;">new</span> System.Net.NetworkInformation.NetworkAddressChangedEventHandler
(NetworkChange_NetworkAddressChanged);</pre>
<p>I have a laptop that everyday switches between my wireless home network and
my wired work domain. I was looking for a way to add scripting abilities to the
interface itself (i.e. when a network connects, run some script) when I stumbled
upon this jem.</p>
<p>So, I now have a little winforms app that sits in my tray (yet another one)
and doesn't do anything but run a script (that in turn modifies my hosts file)
and change its tray icon when I'm connected to different networks.</p>
<p>Here's what connected at home looks like: <a href="http://chrispelatari.files.wordpress.com/2005/12/connectedhome.png"><img class="alignnone size-full wp-image-1169" alt="connectedhome" src="http://chrispelatari.files.wordpress.com/2005/12/connectedhome.png" width="32" height="38" /></a></p>
<p>It began as a quick'n'dirty POC, and I started to make it more generalized by
extracting the common elements to an object model and persisting/loading. Then I
stopped myself. I'll just let this one remain quick'n'dirty for now. Why?
Because it works. And it saves me from having to remember to execute those batch
scripts every time I come home and logon or go to work and logon.</p>
<p>nice.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING - Offline Categories]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-07-postxing-offline-categories</link>
            <guid>https://chris.pelatari.com/posts/2005-12-07-postxing-offline-categories</guid>
            <pubDate>Wed, 07 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.peterprovost.org/">Peter</a>, bro, you must be inspirin'
or something. I hope I didn't miss anything (it was one of those &quot;it can't be
that easy©&quot; deals), but I'll just let the screenshot do the talking:</p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/12/offlinecategories.png"><img class="alignnone size-full wp-image-1171" alt="offlinecategories" src="http://chrispelatari.files.wordpress.com/2005/12/offlinecategories.png" width="257" height="659" /></a></p>
<p>[ Currently Playing : Precious - Depeche Mode ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING conversation with Peter Provost continues...]]></title>
            <link>https://chris.pelatari.com/posts/2005-12-07-postxing-conversation-with-peter-provost-continues</link>
            <guid>https://chris.pelatari.com/posts/2005-12-07-postxing-conversation-with-peter-provost-continues</guid>
            <pubDate>Wed, 07 Dec 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.peterprovost.org/">Peter </a>gives me some <a href="http://www.chrisfrazier.net/blog/archive/2005/11/14/1413.aspx#1429">awesome 
feedback</a>: </p>
<blockquote style="margin-right:0;">
  <p>Hey man. Glad to know you're listening. I really think that PostXING could 
  rock with a little more TLC. You're doing great. <br /><br />A few comments on 
  your comments: <br /><br />1. I don't think you understand my request. Assume for 
  a second that I know that I want to open post ID 117, I should be able to 
  "Open 117" instead of "open, browse, wait, wait, 117, OK". I know this can be 
  done with MWAPI 'cause I wrote one. metaWeblog.getPost takes postid, username 
  and password, right? <br /><br />2. For categories, I want to be able to select 
  the category(s) for the post quickly and without waiting for stuff. So cache 
  them, let me reload the cache, and enabled me to select them with the keyboard 
  without a lot of fuss. BlogJet is pretty good on this front. <br /><br />3. I 
  understand your choice here, but I think you would be better to choose the 
  standard keystroke used by Outlook, FrontPage, BlogJet, etc: Ctrl+M and 
  Ctrl+Shift+M. Not the best keystrokes in the world, but they are what people 
  are used to. <br /><br />4. Make all the keystrokes configurable! :) That solves 
  many/all of my issues., eh? <br /><br />5. What I'm saying is that after using 
  Ctrl+K (which I realize is a MSHTML command), and the focus returns back to 
  the app, the input focus should stay where it was. I suspect you have 
  something going on in Form_Activate that sets the focus somewhere. Try it, 
  you'll see what I mean. <br /><br />6. Ctrl+Enter should be Post &amp; Publish. 
  Personally I don't think Post (w/o Publish) has any value at all. If I can 
  save locally, I don't need to post without publishing. <br /><br />Thanks! Keep up 
  the good work!</p></blockquote>
<p dir="ltr">We sure like lists, eh? :) Here's mine in response again:</p>
<ol>
  <li>
  <div>This can be done, absolutely. (meaning I understand now ;) Maybe a 
  command that just loads a post into the editing surface? </div>
  </li><li>
  <div>This is something I've actually had on the plate for a long time that 
  will probably never make it into v1 of <a href="http://postxing.net">PostXING</a>. Since I'm working on v2, tho, it can 
  definitely make it into that code. This will also improve the offline story 
  (currently falls back to an empty textbox where each category gets its own 
  line.)</div>
  </li><li>
  <div>Sounds good, definitely will look into this one too.</div>
  </li><li>
  <div>Wow, that sounds like a lot to do...how many keystrokes should be 
  supported, how could I map them to logical commands, should it be per-user? 
  Lots of questions on that one, I had never thought of doing something like 
  this before.</div>
  </li><li>
  <div>I actually got a tip from Dmitry (creator of BlogJet) on how to deal with 
  this issue. Apparently, mshtml has a focus issue that needs to be explicitly 
  handled.</div>
  </li><li>
  <div>Consider it done.</div></li></ol>
<p>Thanks again, Peter. Sorry it took so long for me to reply, but my 
CommunityServer install is not sending me emails when I get comments :( 
</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Two years ago...]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-24-two-years-ago</link>
            <guid>https://chris.pelatari.com/posts/2005-11-24-two-years-ago</guid>
            <pubDate>Thu, 24 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="/blog/archive/2003/11/24/221.aspx">..the idea for PostXING began</a>. <br />
<br />
Wow. I still hack it every now and then, but I don't devote nearly as
much time as I used to. I'm hoping that the new Settings goop in v2
will allow me to improve the options story: the last incomplete feature
before PostXING v2!<br /></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Jim Ross Dies]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-18-jim-ross-dies</link>
            <guid>https://chris.pelatari.com/posts/2005-11-18-jim-ross-dies</guid>
            <pubDate>Fri, 18 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Our prayers are with you, Jim. I only
met Jim in real life one time, and he gave me a ride to my hotel on my first
visit to Washington. He lived 5 hours away from me, but we had to go to another
state to meet in person! Even though I didn't know him very well personally,
it's funny the repoir you build with folks you communicate with often. Most of
the Insiders I've come in contact with have just started talking as if we had
seen each other just a few days ago. Jim was just like that.</p>
<p>This is a sad day in Texas.</p>
<blockquote>
<p>I was sad to hear that fellow ASP
Insider and ASP.NET MVP Jim Ross died peacefully yesterday from his
cancer.</p>
</blockquote>
<blockquote>
<p>He told us all about his illness
earlier in the year, then carried on posting answers as if nothing had
happened. His last post on the email lists I frequent was just 10 days ago.</p>
</blockquote>
<blockquote>
<p>Funeral information:</p>
</blockquote>
<blockquote>
<p>The funeral will be Monday at 2 pm at Tyler Memorial, 12053 Hwy 64W, Tyler,
TX 75704; 903-597-1396. Visitation is Sunday, 6-8pm</p>
</blockquote>
<p><em>It is with heavy heart that I inform you that my beloved husband, Jim,
died today around 4:30pm. When he awoke this morning, he was too weak to get
out of his recliner. I called the hospice nurse and she came right over. She
made arrangements for Jim to be transported to Hospice Home Place. I called
Ron Dart and he was here with me when the ambulance came at 10:30am to
transport Jim. Jim was able to talk with both Ron and me. He said he was ready
and he hoped his time would be short. God answered his prayer. Jim took a turn
for the worse in the ambulance and never regained consciousness. I was alone
with Jim, holding his hand, when he died...it was very peaceful. Praise God.</em></p>
<p><a href="http://coveryourasp.net/Personal/JimRoss" target="_blank" rel="noreferrer">Via James Shaw at
CoverYourASP.NET</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING - Recent Fixes]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-17-postxing-recent-fixes</link>
            <guid>https://chris.pelatari.com/posts/2005-11-17-postxing-recent-fixes</guid>
            <pubDate>Thu, 17 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>NEW: "PostXING" in about page now links to postxing.net.</p>
<p>NEW: FTP Settings page now is labeled as such. This was confusing in the new
user wizard.</p>
<p>FIX: Plugin ToolStripButtons now actually do something.</p>
<p>These are a couple of the things that I've fixed this morning based
on some really great feedback from a few really brave souls. The most work it
looks like is still going to be the options story. I knew this was going to be
the case when I announced the alpha, so thanks everyone for your
input!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - 8 Steps to Better Windows Applications]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-17-re-8-steps-to-better-windows-applications</link>
            <guid>https://chris.pelatari.com/posts/2005-11-17-re-8-steps-to-better-windows-applications</guid>
            <pubDate>Thu, 17 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p dir="ltr" style="margin-right:0;">In an attempt to work on steps 7 and 8
in <a href="http://www.holliday.com.au/blog/2005/10/15/8-steps-to-better-windows-applications.html">Grant
Holliday's Blog</a>, I've started a <a href="http://communityserver.org">community server</a> site for <a href="http://postxing.net">PostXING</a>.</p>
<p dir="ltr" style="margin-right:0;">It's lite on content at the moment, (and
also may not work everywhere for the next couple of days thanks to DNS) but
hopefully this will let me address number 7 via the forums and number 8 via the
gallery.</p>
<p dir="ltr" style="margin-right:0;">6 is done - actually using the default
browser for the view blog function. I think I'm doing pretty well for number 5,
and number 4 should probably be implemented in a couple of more places. Number 1
is a big duh and should have been done since day one. 2 sounds like an
interesting problem and will require a little more thought (although initially
I'm thinking something like the auto-saved draft feature in
gmail)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING Sux.]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-16-postxing-sux</link>
            <guid>https://chris.pelatari.com/posts/2005-11-16-postxing-sux</guid>
            <pubDate>Wed, 16 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>And I know it. I haven't updated the binaries on <a href="http://projectdistributor.net">ProjectDistributor </a>for a long time 
because I've been taking my time writing v2. Thing is, it's starting to <a href="http://www.holliday.com.au/blog/2005/10/15/offline-blog-posting-with-blogjet.html">catch 
up to me</a>.</p>
<p>PostXING v1 is far from polished. It works well enough for my needs and I 
made it available for download in the hopes that it would be useful to someone 
else, nothing more. But I do want to make it a better application, and that's 
where you, dear reader, can help me out a little bit. I've decided to release an 
early alpha of PostXING v2 in the hopes that doing so will help it suck less 
than v1.</p>
<p>What's in it for you? Well, the same thing that's in it for me: if you catch 
some nasty behavior that I've missed then PostXING becomes a better product for 
everyone who uses it (all two dozen of ya) </p>
<p>If you're interested, <a href="http://www.chrisfrazier.net/blog/contact.aspx">contact me</a> with 
the subject "PostXING alpha request" and I'll send you a zipfile with the new 
bits. The program requires v2 of the .NET framework. </p>
<p>Thank you.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - MetaWeblog API beta for MSN Spaces chugs along]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-16-re-metaweblog-api-beta-for-msn-spaces-chugs-along</link>
            <guid>https://chris.pelatari.com/posts/2005-11-16-re-metaweblog-api-beta-for-msn-spaces-chugs-along</guid>
            <pubDate>Wed, 16 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>Since announcing that we've started
  the beta of our implementation of the <a href="http://www.xmlrpc.com/metaWeblogApi">MetaWeblog API</a> for <a href="http://spaces.msn.com/">MSN Spaces</a>, I've received a bunch of
  positive responses from a couple of blogging tool developers. So far it looks
  like there'll be at least six blogging tools users will be able to use to
  manage the blog on their space after we launch the API. </p></blockquote>
<p><i>[Via <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=a48f5a69-86e9-4264-ae0b-8f8b39f3baef">Dare
Obasanjo aka Carnage4Life</a>]</i> </p>
<p>Add at least one more - PostXING v2 will work with MSN Spaces via the
MetaWeblog API. I don't think that it will work well with previous versions
because I had to change some code in <a href="http://xml-rpc.net">xml-rpc.net</a> to handle the BOM as I noted
earlier. If the xml-rpc.net library was updated for v1, I'm sure it would work
there as well.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - PostXING Review - Yet Another Blog Posting Client]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-15-re-postxing-review-yet-another-blog-posting-clilent</link>
            <guid>https://chris.pelatari.com/posts/2005-11-15-re-postxing-review-yet-another-blog-posting-clilent</guid>
            <pubDate>Tue, 15 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Ah! It's been a while since I've gotten some good PostXING feedback. Guess
the current version isn't very keyboard-friendly. I'm probably not going to
upgrade the v1 code in v1 of .net, but I've been working for the past couple of
weeks on getting PostXING to v2 under .net v2, so none of these requests are out
of the question. As a matter of fact, I welcome all criticism in the hopes of
making PostXING a product that works really well for more than just myself.
Anyways, <a href="http://www.peterprovost.org/archive/2005/11/13/9511.aspx">Peter</a> has
some good feedback for PostXING in general, my responses follow his post:</p>
<blockquote>
  <p dir="ltr" style="margin-right:0;">I decided today to try out <a href="http://projectdistributor.net/Projects/Project.aspx?projectId=12">PostXING</a>
  as an alternative to <a href="http://blogjet.com/">BlogJet</a>. So far my
  reaction is mixed.</p>
  <p dir="ltr" style="margin-right:0;"><strong>Pros</strong></p>
  <ul>
    <li>
    <div style="margin-right:0;">Seems to have good WYSIWYG support</div>
    </li><li>
    <div style="margin-right:0;">I like having the standard HTML heading tags
    available in the toolbar.</div>
    </li><li>
    <div style="margin-right:0;">I can easily insert a horizontal rule in my
    post</div>
    </li><li>
    <div style="margin-right:0;">I <u>love</u> the fact that it has the <a href="http://puzzleware.net/codehtmler/default.aspx">CodeHTMLer</a> syntax
    hilighting engine in it, but it doesn't feel quite as smooth to me as
    BlogJet does.</div>
    </li><li>
    <div style="margin-right:0;">I'm very glad that it supports uploading
    images via FTP in the same way that BlogJet does. This is a must have in my
    book.</div>
    </li><li>
    <div style="margin-right:0;">As with BlogJet, I can't open an arbitrary
    post by ID. I have to find it in the historical list of posts, which sucks
    when the post is from a year ago.</div></li></ul>
  <p style="margin-right:0;"><strong>Cons</strong></p>
  <ul>
    <li>
    <div style="margin-right:0;">I have to click a button and wait for a popup
    to set the post's categories</div>
    </li><li>
    <div style="margin-right:0;">I can't use TAB to navigate the UI
    which means I have to use the mouse (a serious usability error as far as I'm
    concerned). And I don't know if I agree with the idea that TAB causes
    BLOCKQUOTE in the resulting HTML.</div>
    </li><li>
    <div style="margin-right:0;">I can't find keystrokes for many of the
    standard formatting things like ordered and unordered lists, styles,
    etc.</div>
    </li><li>
    <div style="margin-right:0;">Sometimes after using CTRL+K to format some
    text as a link (good), the input focus leaves the text editor and goes up to
    Title field (bad).</div>
    </li><li>
    <div style="margin-right:0;">I can't figure out how to post with a
    keystroke. It should be CTRL+Enter (like Outlook and BlogJet) but it
    isn't.</div></li></ul>
  <p dir="ltr" style="margin-right:0;">This will be my first post with it, we'll
  see if it is also my last. If the author can fix a few of those cons, I would
  be considering switching. For now though, I'm not so sure.</p>
  <p dir="ltr" style="margin-right:0;">This seems like such a simple problem...
  I can't believe how poor all the choices really are.</p>
  <blockquote style="margin-right:0;">
    <p><img height="1" src="http://www.peterprovost.org/aggbug/9511.aspx" width="1" /></p></blockquote></blockquote>
<p><i>[Via <a href="http://www.peterprovost.org/archive/2005/11/13/9511.aspx">Geek
Noise</a>]</i> </p>
<p>I'll try to address these as best I can, starting with the last Pro...</p>
<ul>
  <ul>
    <li>This is a drawback of the MetaWeblog API, which is why you see the same
    behavior across both BlogJet and <a href="http://PostXING.url123.com/main">PostXING</a>. The only way to really
    get around this is to use a different API to access your blog, like perhaps
    the webservice API in CS. Hopefully when CS v2 drops I'll be able to code up
    a plugin/provider that allows native access to the webservice api instead of
    having to use mwb all the time.
    </li><li>In v2, the popup is replaced with a "Container Bar", but it's still the
    same concept. How would you rather see the category feature implemented?
    Perhaps as a dropdown next to the title kind of like w.bloggar?
    </li><li>PostXING does capture the tab key in the editor surface to create a
    blockquote: I did this to be able to format quotes quickly. Maybe it was a
    wrong decision, but this is the first time that I've ever heard anything bad
    (if a Con is bad) about it. I could for sure make this configurable, but
    what should the default behavior be? Insert 4 spaces, or be able to tab
    around the rest of the application? I guess at the time that I implemented
    the tab capture, I figured the editor experience was the main focus of
    PostXING.
    </li><li>You can't find these keystrokes because they don't exist. What should
    they be?
    </li><li>This is 100% mshtml code (especially the ctrl+k part). I don't know how
    to address this but like all of the other points I'm open to suggestion.
    </li><li>Again, there is no keystroke for this. Sorry. :( I will for sure add
    ctrl+Enter support, but which button should this be associated with? Post or
    Post &amp; Publish?</li></ul></ul>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Woe unto the COM-referencing VS2005 Winforms Designer]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-10-woe-unto-the-com-referencing-vs2005-winforms-designer</link>
            <guid>https://chris.pelatari.com/posts/2005-11-10-woe-unto-the-com-referencing-vs2005-winforms-designer</guid>
            <pubDate>Thu, 10 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><b><font face="Arial" size="2">One or more errors encountered
while loading the designer. The errors are listed below. Some errors can be
fixed by rebuilding your project, while others may require code
changes.</font><font face="Arial" size="2"></font></b></p>
<div class="ErrorStyle" id="div1"><span style="font-weight:600;"><br />The designer loader did not provide a root 
component but has not indicated why. </span><br /><a id="details0" href=""><u><font color="#0000ff">Hide</font></u></a><font color="#0000ff">    </font></div>
<div class="StackStyleVisible" id="div20"><br />at 
System.ComponentModel.Design.DesignSurface.get_View()<br />at 
Microsoft.VisualStudio.Shell.Design.<br />WindowPaneProviderService.CreateWindowPane(DesignSurface 
surface)<br />at 
Microsoft.VisualStudio.Design.Serialization.CodeDom.<br />DeferrableWindowPaneProviderService.CreateWindowPane(DesignSurface 
surface)<br />at 
Microsoft.VisualStudio.Design.VSDesignSurface.Microsoft.VisualStudio.<br />Designer.Interfaces.IVSMDDesigner.get_View()</div>
<p> It looks like there are a lot of people that got this error when going 
from beta2 -&gt; RC1, but this was on the RTM version. The thing that's tricky 
is that now the designer is so nice for us, it adds default values to public 
properties. Well, since the code that was being called was basically a wrapper 
for mshtml, I guess you could say COM was involved (like a third cousin). In 
order to find this bug (in my code, but my code generated by VS2005.) I had to 
fire up another devenv.exe instance and set it to attach to the first devenv's 
process for debugging. I don't know the exact workaround for this yet...maybe 
making the particular property that was causing trouble readonly w/ an 
accompanying SetProperty(value) method that would still let the underlying value 
be set. See the problem is that VS regenerates all that goodness for me, so 
whenever a change is made and saved in the designer I would be facing the same 
problem, have to hunt down one line of code, and start over again. Boo. </p>
<p>Is there a way to turn off the designer's new behavior?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ToolStripColorButton - a WinForms 2.0 Control]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-07-toolstripcolorbutton-a-winforms-2-0-control</link>
            <guid>https://chris.pelatari.com/posts/2005-11-07-toolstripcolorbutton-a-winforms-2-0-control</guid>
            <pubDate>Mon, 07 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Disclaimer: the code for showing the color menu is totally ripped off of a <a href="http://codeproject.com/cs/miscctrl/ColorButton.asp">CodeProject
article</a>. I just took the ColorPanel part and parented it with a
ToolStripButton. The idea works, tho.</p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/11/toolstripcolorbuttonxp_clos.jpg"><img class="alignnone size-full wp-image-1174" alt="ToolStripColorButtonXP_clos" src="http://chrispelatari.files.wordpress.com/2005/11/toolstripcolorbuttonxp_clos.jpg" width="179" height="185" /></a></p>
<p>Here's the source: <a href="http://vaultpub.sourcegear.com/VaultService/VaultWeb/GetFile.aspx?repid=5&amp;path=%24%2ftrunk%2fv2.0%2fPostXING.Controls%2fToolStripColorButton.cs&amp;version=2">ToolStripColorButton.cs</a> (login
is guest/guest).</p>
<p>I've been working recently to bring PostXING v2 to .net v2. Part of this
process has shown me that Divelements' SandBar menu system (the last freeware
version) doesn't like to be in a nested UserControl after a recompile. Throws
all kinds of errors that are obfuscated and painted directly on the control in
the designer. Unfortunately, I can't try a newer version of SandBar because they
discontinued the freeware versions that they used to have. Shame, it's a really
good library.</p>
<p>So anyways, I find myself needing a similar experience to the ColorMenu that
I extended that comes as an example with the trial download. Now that we have a
first-class menu system in System.Windows.Forms, I decided to see if I could
create something that kept the simplicity of the ColorMenu. The
ToolStripColorButton simply has a subclass called ColorPanel that inherits Form.
When you click on the button, the form is shown. When a user selects a color, a
changed event is thrown and you can do what you want with the resulting color by
handling this event:</p>
<pre><span style="color:blue;">private</span> <span style="color:blue;">void</span> btnFontColor_Changed(<span style="color:blue;">object</span> sender, EventArgs e)
{
	<span style="color:blue;">this</span>.DesignEditor.TextFormatting.ForeColor = <span style="color:blue;">this</span>.btnFontColor.Color;
}</pre>
<p>A couple of points that could be extended: The gradient background looks
all wrong with the default XP themes. I wonder if there's a way to query what
the start/finish colors are for the current theme w/o going into unmanaged code?
Heck, even <strong>with</strong> unmanaged code (via P/Invoke) would be fine.
This same problem shows up for the GradientPanel I
recently posted. Something to look into, anyways. There's also the
extension point of adding the actual color as the image instead of using a stock
icon or something similar. The code to do it is basically in the CodeProject
article linked above, I was just happy with the icons for my current purposes.</p>
<p>[ Currently Playing : Drive Slow (Feat. Paul Wall &amp; - Kanye West - Late
Registration (4:32) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ctrl+K, X]]></title>
            <link>https://chris.pelatari.com/posts/2005-11-04-ctrlk-x</link>
            <guid>https://chris.pelatari.com/posts/2005-11-04-ctrlk-x</guid>
            <pubDate>Fri, 04 Nov 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Is the insert snippet chord in VS 2005.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[VistaDB]]></title>
            <link>https://chris.pelatari.com/posts/2005-10-27-vistadb</link>
            <guid>https://chris.pelatari.com/posts/2005-10-27-vistadb</guid>
            <pubDate>Thu, 27 Oct 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<!--StartFragment --> Viral Marketing:
<p><img height="12" src="http://www.vistadb.net/images/quotes_left.gif" border="0" /><b>VistaDB 2.1 database for .NET has been released</b><br />This 2.1 
update includes over 60 improvements, including new support for .NET 2.0 and 
Visual Studio .NET 2005. VistaDB is a small-footprint, embedded SQL database 
alternative to Jet/Access, MSDE and SQL Server Express 2005 that enables 
developers to build .NET 1.1 and .NET 2.0 applications. Features SQL-92 support, 
small 500KB embedded footprint, free 2-User VistaDB Server for remote TCP/IP 
data access, royalty free distribution for both embedded and server, Copy 'n Go! 
deployment, managed ADO.NET Provider, data management and data migration tools. 
Free trial is available for download.<br /><a href="http://www.vistadb.net/overview.asp?ref=blogger">- Learn more about 
VistaDB</a><br /><a href="http://www.vistadb.net/blogoffer.asp?ref=blogger">- 
Repost this to your blog and receive a FREE copy of VistaDB 2.1!</a> <img height="12" src="http://www.vistadb.net/images/quotes_right.gif" border="0" /></p>
<p>I've always wanted to try this product to see how it fares anyways...let's 
see if this pans out.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Zeppelin - Babe I'm gonna leave you]]></title>
            <link>https://chris.pelatari.com/posts/2005-10-27-zeppelin-babe-im-gonna-leave-you</link>
            <guid>https://chris.pelatari.com/posts/2005-10-27-zeppelin-babe-im-gonna-leave-you</guid>
            <pubDate>Thu, 27 Oct 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I know I've figured out a fun song when my left hand hurts after
playing. That hasn't happened for a loong time.</p>
<p>I was playing my guitar, trying to soothe the pain that the Astros getting
swept in the World Series ignited, when I came across a chord pattern that
sounded familiar: Am, G, [whatever's between G and F], F, E. To check if I was
right, I looked it up: <!--StartFragment --> <a href="http://www.guitaretab.com/l/led-zeppelin/10185.html">Led Zeppelin – ( BABE
IM GONNA LEAVE YOU TAB )</a> </p>
<p>This is going to take a while to master, but it's definitely going to be a
fun ride.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Guess who's going to the World Series?]]></title>
            <link>https://chris.pelatari.com/posts/2005-10-20-guess-whos-going-to-the-world-series</link>
            <guid>https://chris.pelatari.com/posts/2005-10-20-guess-whos-going-to-the-world-series</guid>
            <pubDate>Thu, 20 Oct 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2005/10/05houstonastroscomp.jpg"><img class="alignnone size-full wp-image-1176" alt="05HoustonAstrosComp" src="http://chrispelatari.files.wordpress.com/2005/10/05houstonastroscomp.jpg" width="326" height="400" /></a></p>
<p>Fan-freakin-tastic. w00t!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Visual Studio Editor, how you mock me.]]></title>
            <link>https://chris.pelatari.com/posts/2005-10-12-visual-studio-editor-how-you-mock-me</link>
            <guid>https://chris.pelatari.com/posts/2005-10-12-visual-studio-editor-how-you-mock-me</guid>
            <pubDate>Wed, 12 Oct 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been chasing down this odd <a href="http://blogs.msdn.com/vseditor/archive/2005/05/12/417011.aspx">Visual 
Studio bug where the Enter, Backspace, and Arrow keys stop working.</a></p>
<p>It happened to me in Redmond at Microsoft Campus (of all places!) and it's a 
known bug that a lot of others have run into apparently. Some folks have noted 
that <a href="http://www.hanselman.com/blog/CommentView,guid,7d4b6fa8-85d8-4e3d-90d8-cb1d4e2966a2.aspx">it 
happens with the Beta 2 build</a>, but the link above claims that it is gone 
from later builds. Sorry, wrong answer, kimo-sabe. Even on the RC 
build, this showed up.</p>
<p>It has to do with how Visual Studio handles USER SETTINGS. Thanks to a 
comment in ScottH's blog, I found a command line switch (devenv /resetuserdata) 
that brought up a user settings dialog asking me to set a profile when I started 
Visual Studio again. Instead of my usual C# profile, I decided to go with the 
General profile to mimic VS2003's settings. And whaddaya know? I can actually 
edit source files (for now). This does not bode well for Visual Studio as a 
development environment. Things should work by default, right? I can 
envision answering many questions about this in forums which I am subscribed to. 
</p>
<p>Goodbye, past coupla days. I'll miss ya.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Creating a Google Maps .NET Control]]></title>
            <link>https://chris.pelatari.com/posts/2005-10-11-creating-a-google-maps-net-control</link>
            <guid>https://chris.pelatari.com/posts/2005-10-11-creating-a-google-maps-net-control</guid>
            <pubDate>Tue, 11 Oct 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Choice Quote:</p>
<blockquote style="margin-right:0;">
  <p><!--StartFragment --> Now that I have actually used XSL in a project 
  I've come to this conclusion: XSL is the Devil. </p></blockquote>
<p dir="ltr"><a href="http://www.codeproject.com/useritems/LatLaysFlat-Part3.asp">Go Check it 
Out</a>. It's an interesting approach to wrapping [insert buzzword] 
functionality in an asp.net control. If you haven't read the first and second 
articles, you may want to read those first. The only drawback to this approach 
for me is the apparent lack of a commercial use license for the google maps api 
(somebody <em>please </em>prove me wrong on this).</p>
<p class="media">[ Currently Playing : Drive Slow (Feat. Paul Wall &amp; - Kanye 
West - Late Registration (4:32) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - Microsoft Codename "Spang"]]></title>
            <link>https://chris.pelatari.com/posts/2005-10-03-re-microsoft-codename-spang</link>
            <guid>https://chris.pelatari.com/posts/2005-10-03-re-microsoft-codename-spang</guid>
            <pubDate>Mon, 03 Oct 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p><font face="Verdana" size="2">Just been shown something Microsoft are working
  on called "Spang" it's UNREAL.</font></p>
  <p><font face="Verdana" size="2">When "Spang" comes out you'll all be so much
  happier, wish I could share but it's all <font color="#ff0000"><strong>NDA</strong></font>.</font></p>
  <p> </p><img height="1" src="http://weblogs.asp.net/plip/aggbug/426444.aspx" width="1" /></blockquote>
<p><i>[Via <a href="http://weblogs.asp.net/plip/archive/2005/10/03/426444.aspx">Plip's
Weblog</a>]</i> </p>
<p>What is Spang? It's going to revolutionize development as we know it. Keep a
lookout for Spang.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Starting to dogfood PostXING v2.]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-30-starting-to-dogfood-postxing-v2</link>
            <guid>https://chris.pelatari.com/posts/2005-09-30-starting-to-dogfood-postxing-v2</guid>
            <pubDate>Fri, 30 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I figured that 27 test posts were enough to actually publish one.</p>
<p>This thing hasn't even reached feature <strong>parity</strong> with v1, but
if you both see this post in ye olde aggregator, I've at least made some
functionality progress.</p>
<p><span style="color:red;">edit</span>: Houston, we have liftoff. 😄</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Houstonians are starting to panic.]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-21-houstonians-are-starting-to-panic</link>
            <guid>https://chris.pelatari.com/posts/2005-09-21-houstonians-are-starting-to-panic</guid>
            <pubDate>Wed, 21 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just got back from the gas station to get some sodas before everything runs
out, and this is what I saw:</p>
<p>[[photo lost 😦</p>
<p>My little phone wasn't able to get the entire line of vehicles, but it was at
least 6 deep for every pump. The parts of the Houston metro area that are closer
to the coast have been issued a mandatory evacuation, with a voluntary evac for
everyone else. They say it's going to be nasty. We'll just have to see I
guess.</p>
<p class="media">[ Currently Playing : Emotion Sickness - Silverchair - The Best
of: Volume 1 (6:01) ]</p>
<p class="media">P.S. Thanks to all those who wished me well on my previous post.
I really do appreciate that (molto gratzi:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Expected downtime]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-21-expected-downtime</link>
            <guid>https://chris.pelatari.com/posts/2005-09-21-expected-downtime</guid>
            <pubDate>Wed, 21 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Just to let both of you know - I'm expecting some downtime this weekend for 
<a href="http://www.chrisfrazier.net">www.chrisfrazier.net</a> . See, I live in 
Houston and we've got a little storm coming our way. Since I host my site on my 
own on-site server, that means that I've got to unplug it and put it in a room 
with no windows. Ya know, just in case.</p>
<p>So now you know why my rss feed won't work this weekend. Don't you just 
feel all squishy inside now? As for me, I'm heading to the hill country for the 
weekend. Just in case, feel me?</p>
<p class="media">[ Currently Playing : Caress Me Down - Sublime - Stand By Your 
Van - Live (4:22) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan and Cody at the beach]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-18-ethan-and-cody-at-the-beach</link>
            <guid>https://chris.pelatari.com/posts/2005-09-18-ethan-and-cody-at-the-beach</guid>
            <pubDate>Sun, 18 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I took Ethan and my cousin Cody to the beach today. I got them some du-rags
and ninja swords, so they could play pirates. They had a sword fight on the
ferry ride to crystal beach.</p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/09/swordfight1.jpg"><img class="alignnone size-full wp-image-1181" alt="swordfight1" src="http://chrispelatari.files.wordpress.com/2005/09/swordfight1.jpg" width="593" height="444" /></a></p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/09/swordfight2.jpg"><img class="alignnone size-full wp-image-1183" alt="swordfight2" src="http://chrispelatari.files.wordpress.com/2005/09/swordfight2.jpg" width="593" height="444" /></a></p>
<p>I was even able to get a resounding &quot;Arr Matey!&quot; out of Ethan</p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/09/arrmatey.jpg"><img class="alignnone size-full wp-image-1184" alt="arrmatey" src="http://chrispelatari.files.wordpress.com/2005/09/arrmatey.jpg" width="593" height="444" /></a></p>
<p>When we were at the beach, we did what everyone should do at the beach every
once in a while. We buried each other. We probably should have gone from biggest
to smallest, but we started with Ethan.</p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/09/buriedethan.jpg"><img class="alignnone size-full wp-image-1185" alt="buriedethan" src="http://chrispelatari.files.wordpress.com/2005/09/buriedethan.jpg" width="320" height="240" /></a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[My Weekend]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-14-my-weekend</link>
            <guid>https://chris.pelatari.com/posts/2005-09-14-my-weekend</guid>
            <pubDate>Wed, 14 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is definitely filed under &quot;As if you cared&quot;. My friend Peyman had a
little gathering at his new house in Austin this past weekend. I've been to
quite a few parties in my day, but I can honestly say that the girl that swung
balls of fire around herself was a first for me at a house party. (every time
I've seen/done something similar in the past, the lit part couldn't burn you.
glowsticks are good that way;)</p>
<p>I intended to stay only one night, but circumstances dictated that I stay
until Monday morning. At least I got to get a good glimpse of the only state
capital bigger than the federal government's building!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Eric is a stand-up guy.]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-12-eric-is-a-stand-up-guy</link>
            <guid>https://chris.pelatari.com/posts/2005-09-12-eric-is-a-stand-up-guy</guid>
            <pubDate>Mon, 12 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2005/09/standupguy.jpg"><img class="alignnone size-full wp-image-1188" alt="standupguy" src="http://chrispelatari.files.wordpress.com/2005/09/standupguy.jpg" width="593" height="444" /></a></p>
<p>Eric is my friend Peyman's roommate in Austin. He's a stand-up guy. Trust me
on this.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Virtual Earth for commercial apps]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-09-virtual-earth-for-commercial-apps</link>
            <guid>https://chris.pelatari.com/posts/2005-09-09-virtual-earth-for-commercial-apps</guid>
            <pubDate>Fri, 09 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Ha! <a href="http://blogs.msdn.com/cthota/archive/2005/9/9.aspx">Look at 
that!</a> I totally <a href="http://www.chrisfrazier.net/blog/archive/2005/09/06/1317.aspx">called 
it</a>.</p>
<p class="media">[ Currently Playing : All You Need - Sublime - Stand By Your Van 
- Live (2:44) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING v2? Where's the goods?]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-09-postxing-v2-wheres-the-goods</link>
            <guid>https://chris.pelatari.com/posts/2005-09-09-postxing-v2-wheres-the-goods</guid>
            <pubDate>Fri, 09 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Ah, the joys of writing open source software 😕</p>
<p>I had been working hard on v2 of <a href="http://PostXING.url123.com/main">PostXING</a>, but somehow development has
stagnated on my end quite a bit. I brought it about 90% of the way towards the
direction I was hoping to go. I even got an offer of help from a fellow
Houstonian, but it seems I've dropped the ball. My bad.</p>
<p>Fortunately, as I said I've completed most of the grunt work, now it's just a
matter of gluing everything together and creating a different provider than the
Metablog API. It was still evolving when I last hacked on it, so I may only be
85% done, but at any rate, if I can get that fire going back under my ass I
should be done in no time. I hope 😄</p>
<p>Since nobody but me is clamoring for v2, I can at least take my time and do
things the way I want them. It's nice to be able to work on a software project
without any stinkin time constraints. Another pitfall is that the latest v1 rev
works well enough that I haven't felt the <em>need</em> to develop v2. I just
<em>want</em> to. I want to make PostXING a better program. We'll see how it
goes.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[It's fixed.]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-08-its-fixed</link>
            <guid>https://chris.pelatari.com/posts/2005-09-08-its-fixed</guid>
            <pubDate>Thu, 08 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Yesterday I realized that I was having issues with anonymous users posting 
comments to <a href="http://chrisfrazier.net/blog">my CS site</a>. After going 
over the code a little bit, what I didn't realize is that the bug is a 
<strong>custom skin bug. </strong>(ie a skin that I wrote was missing one line 
containing a specific control.)</p>
<p>After a little searching I found someone with a similar problem, and <a href="http://callmealex.com/default.aspx">Alex Lowe </a>pointed them here: <a href="http://communityserver.org/forums/491886/ShowPost.aspx#491913">http://communityserver.org/forums/491886/ShowPost.aspx#491913</a></p>
<p>And it worked. Yay.</p>
<p class="media">[ Currently Playing : Seed - Korn - Follow the leader (5:54) 
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[This is getting fixed. Today.]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-08-this-is-getting-fixed-today</link>
            <guid>https://chris.pelatari.com/posts/2005-09-08-this-is-getting-fixed-today</guid>
            <pubDate>Thu, 08 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><!--StartFragment --> I noticed that I haven't gotten any comments on my 
blog in a while. Granted, I haven't posted in a while, either, but come on! 
There's gotta be at least one post I've made that's been worth comment since 
July, right? no? Well, I'm going to track this down anyways.</p>
<blockquote style="margin-right:0;">
  <p><b>Message:</b> Object reference not set to an instance of an object. </p>
  <p>System.NullReferenceException: Object reference not set to an instance of 
  an object. at 
  CommunityServer.Blogs.Components.Weblog.EnableNewComments(WeblogPost post, 
  User user) at 
  CommunityServer.Blogs.Controls.CommentForm.btnSubmit_Click(Object sender, 
  EventArgs e) at System.Web.UI.WebControls.Button.OnClick(EventArgs e) at 
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String 
  eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler 
  sourceControl, String eventArgument) at 
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) at 
  System.Web.UI.Page.ProcessRequestMain() </p>
  <p><b>User Agent / IP Address</b><br />Mozilla/4.0 (compatible; MSIE 6.0; 
  Windows NT 5.1; SV1; .NET CLR / 70.120.179.36 </p>
  <p><b>Path</b><br />/blog/blogs/comments.aspx?App=blog&amp;PostID=1320 as HTTP 
  POST </p>
  <p><b>Referrer:</b><br />/blog/comments/1320.aspx </p></blockquote>
<p>no wonder I haven't gotten any comments lately. That's gotta be annoying for 
both of you.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hazaa! 0 unread feeds in my subscriptions]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-07-hazaa-0-unread-feeds-in-my-subscriptions</link>
            <guid>https://chris.pelatari.com/posts/2005-09-07-hazaa-0-unread-feeds-in-my-subscriptions</guid>
            <pubDate>Wed, 07 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I took a week off from reading blogs last week (as is evidenced by my 
responding to week-old posts). I ended up having about 600-700 unread posts in 
RssBandit.</p>
<p>The UI took care of it pretty well, since I have my opml separated by 
category I could zip thru most posts and decide whether or not I wanted to keep 
it around in the aggregate view. It got me thinking about how this would scale 
for a web app, tho. I don't remember how Bloglines handles this (don't you just 
get what's available at the time if there are unread feeds available?) but it 
seems like an interesting problem: how do you keep a rich experience in a web 
app without sacrificing performance or content that I may want to read (mark all 
read is not always optimal for me (I always feel like I'm missing something 
golden (I <em>did</em> subscribe to the feed, after all)))?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - RSS Bandit [Nightcrawler Edition] Alpha Progress Report]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-07-re-rss-bandit-nightcrawler-edition-alpha-progress-report</link>
            <guid>https://chris.pelatari.com/posts/2005-09-07-re-rss-bandit-nightcrawler-edition-alpha-progress-report</guid>
            <pubDate>Wed, 07 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>By the way Torsten has started an <a title="Torsten Rendelmann" href="http://www.rendelmann.info/blog/PermaLink.aspx?guid=1515446d-c611-4f44-8ac2-1ce7018084bc">RSS
Bandit new logo design contest</a> and we'd appreciate your comments. It seems
a lot of our users who use RSS Bandit from their place of work feel our
current smily face icon and logo are unprofessional. I don't mind changing our
application icon but would probably like to keep the smily bandit in the
logo.</blockquote>
<i>[Via <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=c676193f-1a01-4230-a135-d05064389636">Dare
Obasanjo aka Carnage4Life</a>]</i>
<p>I can't really offer anything <em>original</em> per se, but here's the icon I
use in ObjectDock for RssBandit:</p>
<p>[photo lost 😦]</p>
<p>Okay, so I just slapped an eye patch on an existing image I found somewhere
on the net...isn't that what the current icon is, too? 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - www.windowsforms.net is dead]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-07-re-www-windowsforms-net-is-dead</link>
            <guid>https://chris.pelatari.com/posts/2005-09-07-re-www-windowsforms-net-is-dead</guid>
            <pubDate>Wed, 07 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>Anybody else find that MS has so much
  crap going on that it's hard keep tabs on a single, solid,
  resources to use to keep up to speed on things? (And don't even send me to
  msdn.microsoft.com - that thing is 1) schizophrenic (is it a developer
  resource, or a place to buy subscriptions and stuff?) and 2) complete sensory
  overload. )</p></blockquote>
<p><i>[Via <a href="http://angrypets.com/blog/posts/554.aspx">AngryPets.com ::
Blog</a>]</i> </p>
<p>It is pretty worthless unless you are looking for controls - even then, the
contol gallery has broken images and dead links everywhere.</p>
<p>I've found that unlike the asp.net community, it's pretty much yo-yo (you're
on your own) when it comes to winforms development. (and I <a href="http://www.chrisfrazier.net/blog/archive/2003/09/24/184.aspx">complained
loudly about it </a>when I embarked on my first winforms project)</p>
<p><a href="http://CodeProject.com">CodeProject </a>has a lot of interesting
tidbits, but I've yet to find a complete solution in any of the articles there.
Bits and pieces, yes...</p>
<p>Another good resource is the dotnet-winforms list on <a href="http://discuss.develop.com">discuss.develop.com</a>. There are at least
one or two winforms PMs that hang out there.</p>
<p>Lastly, get Chris Sells's book <a href="http://www.sellsbrothers.com/writing/wfbook/">"Windows Forms Programming
in C#" </a>(or VB.NET, whatever.) That book has basic examples of almost
everything you would want to achieve in a normal winforms project. Anything else
is up to google skillz.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - Google maps .NET control]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-06-re-google-maps-net-control</link>
            <guid>https://chris.pelatari.com/posts/2005-09-06-re-google-maps-net-control</guid>
            <pubDate>Tue, 06 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>Check out this code project article with code for a <a href="http://www.codeproject.com/useritems/LatLaysFlat-Part1.asp">Google Maps
  .NET control</a>. very cool and handy stuff. and there are some demos <a href="http://www.sctc.state.co.us/dev/GoogleMaps/">here</a>.</p></blockquote>
<p>
</p><p><i>[Via <a href="http://feeds.feedburner.com/lotas?m=2023">Tiernans Comms
Closet</a>]</i> </p>
<p>I read thru that, and it seems very useful to be able to manipulate things in
codebehind like that. Once the lat/lon overlays are included, I may even check
it out. </p>
<p>In other mapping news, I was contacted recently by the mappoint webservice
team b/c I haven't made any requests to the webservice for a while. I told them
that the current webservice doesn't buy me a whole lot in terms of functionality
from the current solution that I use that simply has a mapserver control on my
webserver and asked if virtual earth may be rolled into the webservice (since
virtual earth currently only has licensing for non-commercial apps). They didn't
tell me one way or the other, but my mappoint account was reinstated. Could this
mean virtual earth goodness on the horizon? I hope so.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Darren and BlogML]]></title>
            <link>https://chris.pelatari.com/posts/2005-09-05-darren-and-blogml</link>
            <guid>https://chris.pelatari.com/posts/2005-09-05-darren-and-blogml</guid>
            <pubDate>Mon, 05 Sep 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>A few weeks ago I wanted to release an update to my own blogging engine 
  and, because there was a minor data change I thought that it would be 
  nice to export the data before running the update, change the files and then 
  re-import it afterwards.  As I looked into this more I decided that I 
  really should do it in a standards-compliant manner (if possible) and so then 
  set out to: A) talk to people about it, B) rtfm some of the existing formats 
  and C) write down my requirements.</p></blockquote>
<p><i>[Via <a href="http://MarkItUp.com/Posts/Post.aspx?postId=d4b59067-7c2f-4271-9023-99149d17166f">MarkItUp 
- Thinking Products</a>]</i> </p>
<p>Very seldom does someone come along who has simple ideas that can work 
coupled with what it takes to make those ideas reality. Darren is one of those 
people.</p>
<p>BlogML may not be the best thing since sliced bread, but it's an idea that is 
brilliant in its simplicity. Why should a task - importing and exporting blog 
content - be shoehorned into a spec that was never meant to do this in the first 
place? Isn't that the reason that atom was designed itself? To rehash the 
failures and stick with the successes of past specifications dealing with 
blogging? So is BlogML IMHO to import/export of blog content.</p>
<p>Keep up the good work, Darren. Although we live on opposite sides of the 
globe, you are always welcome to ping me with these crazy ideas of yours, if for 
nothing else than to talk them out.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Dual booting Linux Redhat 9 and Windows XP using a CD]]></title>
            <link>https://chris.pelatari.com/posts/2005-08-26-dual-booting-linux-redhat-9-and-windows-xp-using-a-cd</link>
            <guid>https://chris.pelatari.com/posts/2005-08-26-dual-booting-linux-redhat-9-and-windows-xp-using-a-cd</guid>
            <pubDate>Fri, 26 Aug 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>We have a couple of legacy applications here, written in C++, that have 
always run on windows and *nix. In order to support the *nix versions, we always 
have to have a Linux install hanging around (we also have a solaris, but that's 
already set up).</p>
<p>So we got a Dell Precision 380 workstation with a SATA drive that had Windows 
XP installed on it. Since the Dell didn't come with a floppy drive, I couldn't 
very well just create a boot diskette. That would be useless. So based on the 
fact that there is a spec called "El Torito", I looked up an <a href="http://url123.com/ucrup">article online about Linux Bootdisks</a>. It 
looked pretty good, but there was one glaring omission: the author mentions that 
you need to load any initial ramdisk via LILO, but doesn't explain how to setup 
LILO correctly for a floppy image. I decided to go back to it if necessary and 
went to redhat.com to see if there was any insight there.</p>
<p>I ended up finding a section of documentation that outlines <a href="http://url123.com/uc6sh">how to create an Installation Boot CD-ROM</a>, 
but I had already installed it! I later found that if at the bootloader screen 
of the install CD I typed the command:</p><pre>vmlinuz root=/dev/hdb2</pre>
<p>It would in fact load the installation off of the second (IDE) harddrive 
(thanks, btw, linux for making me use a modified kernel to support SATA drives. 
That's top-notch, guys.)</p>
<p>So I figured that the secret to the sauce was probably in the isolinux.cfg 
file that configures all the commands visible at the boot loader screen. First I 
tried something like this: </p><pre><span style="color:blue;">default</span> linux
label linux
	kernel vmlinuz
	append root=/dev/hdb2 initrd=initrd.img</pre>
<p>but that didn't work, it still brings up the install screen. So I figured why 
not try the simplest possible solution using the config file, and this is what I 
came up with:</p><pre><span style="color:blue;">default</span> vmlinuz root=/dev/hdb2</pre>
<p>Guess what? I now have a Redhat Linux 9 install that will boot from a CD and 
I didn't have to mess with a bootmanager or touch the MBR in any way. I don't 
have to wait those pesky 10 seconds for either grub or the windows NT bootloader 
to select which install to start - I just pop in a CD if I want linux, and open 
it if I want WinXP.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A week already]]></title>
            <link>https://chris.pelatari.com/posts/2005-08-05-a-week-already</link>
            <guid>https://chris.pelatari.com/posts/2005-08-05-a-week-already</guid>
            <pubDate>Fri, 05 Aug 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, it's been a week now since I handed over my pip-squeak back to his mom.</p>
<p>I gotta say, I miss him a lot. Having him around every day and then all of a sudden not having him any more is a real shock to the system. I've also gotta say that I feel really blessed to have been able to spend that time with Ethan, and do fun Father/Son stuff. By far the most fun that I had was when I took him to the beach for the first time <em>ever</em>.</p>
<p>I tought Ethan the basics of doing a jig after you throw down a football. Ethan taught me that you need a bucket of water to wash each hand when they get sandy at the beach: <a href="http://www.bluefenix.net/videos/Ethan072405.MPG">Ethan072405.MPG</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Thanks!]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-28-thanks-2</link>
            <guid>https://chris.pelatari.com/posts/2005-07-28-thanks-2</guid>
            <pubDate>Thu, 28 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Earlier I said:</p>
<blockquote style="margin-right:0;">
  <p>call them "labels" or "tags" but give me a way to categorize my thoughts. 
  Please.</p></blockquote>
<p dir="ltr">Thanks, <a href="http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html#rfc.section.4.2.2">Atom 
1.0</a> <img alt="" hspace="0" src="http://www.chrisfrazier.net/blog/emoticons/emotion-5.gif" align="baseline" border="0" /></p>
<p class="media">[ Currently Playing : A Message - Coldplay - X&amp;Y (04:45) 
]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - Blog APIs]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-27-re-blog-apis</link>
            <guid>https://chris.pelatari.com/posts/2005-07-27-re-blog-apis</guid>
            <pubDate>Wed, 27 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Darren's <a href="http://markitup.com/Posts/Post.aspx?postId=823c0159-e081-46a7-ba96-b212aed5df26">looking
for ideas </a>on how to migrate data from one blog engine to the next. This has
been discussed before a lot, I'm sure, but it's not a bad conversation to
have.</p>
<p>So what's the answer? Sorry, I don't have that. I know that it would have
been nice when developing <a href="http://PostXING.url123.com/main">PostXING</a> to have an api that
gives you more control or gives better querying ability, and I also know that
none of the APIs that Darren talks about are it. For all of the metablog api's
shortcomings, I find it at least decent enough to not have made a post using the
web interface of my blogs since writing PostXING. I agree with Darren that the
atom api does not seem complete. No categories? That's weird. If you're worried
about being different from rss in some small way (and come on, that's what it's
about in the first place, innit?) call them "labels" or "tags" but give me a way
to categorize my thoughts. Please.</p>
<p>One person whose thoughts I'd like to hear on the idea of a better blogging
api is <a href="http://scottwater.com/blog">ScottW</a> who has written a
few external apis for different evolutions of the popular aspnetweblog software
that we all know and love and call <a href="http://communityserver.org">CS::Blogs</a> these days. <img alt="" hspace="0" src="http://www.chrisfrazier.net/blog/emoticons/emotion-1.gif" align="baseline" border="0" /></p>
<blockquote>
  <p><strong>A better blogging API</strong></p>
  <p>I'll also do some searching over the next week or so to see what others
  have been discussing around this topic as it is obviously something which must
  have come up a lot.  Maybe we have to wait until industry heavyweights
  start to build blogging products into their core platforms before clear spec's
  start to emerge around what is needed from an API that would allow for the
  programmatic disovery and interaction with blogs.  </p>
  <p>And then, who knows how long it will take for the current blog engines to
  implement that?</p></blockquote><i>[Via <a href="http://MarkItUp.com/Posts/Post.aspx?postId=823c0159-e081-46a7-ba96-b212aed5df26">MarkItUp
- Thinking Products</a>]</i>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Applesauce tastes gooood.]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-23-applesauce-tastes-gooood</link>
            <guid>https://chris.pelatari.com/posts/2005-07-23-applesauce-tastes-gooood</guid>
            <pubDate>Sat, 23 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Indeed. </p>
<p><a href="/audio/Ethan072305.mp3">Applesause tastes 
goood</a>.</p>
<p class="media">[ Currently Playing : Audioslave / Number 1 Zero - Audioslave - 
Out Of Exile (05:01) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan's got some money...]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-23-ethans-got-some-money</link>
            <guid>https://chris.pelatari.com/posts/2005-07-23-ethans-got-some-money</guid>
            <pubDate>Sat, 23 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2005/07/07-23-05_1309.jpg"><img class="alignnone size-full wp-image-1193" alt="07-23-05_1309" src="http://chrispelatari.files.wordpress.com/2005/07/07-23-05_1309.jpg" width="593" height="444" /></a></p>
<p>Ethan went to go play with his friend Emma today. Emma's older sister gave
Ethan 11¢.</p>
<p>That's right, the <em>older</em> sister. That boy Ethan...😄</p>
<p class="media">[ Currently Playing : Audioslave / Yesterday To Tomorrow -
Audioslave - Out Of Exile (04:36) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Clearly a windows user...]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-22-clearly-a-windows-user</link>
            <guid>https://chris.pelatari.com/posts/2005-07-22-clearly-a-windows-user</guid>
            <pubDate>Fri, 22 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><img alt="" hspace="0" src="http://www.resistcomfort.com/typing.gif" align="baseline" border="0" /></p>
<p class="media">[ Currently Playing : Night Bird Flying - Jimi Hendrix - 
Experience Hendrix (3:50) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Richard...]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-22-richard</link>
            <guid>https://chris.pelatari.com/posts/2005-07-22-richard</guid>
            <pubDate>Fri, 22 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://jazzynupe.net/blog/archive/2005/07/21/2.aspx">You're
Welcome</a>!  😄</p>
<p class="media">[ Currently Playing : Suite-Pee - System of a Down - System of a
Down (2:32) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ethan and Mama re]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-19-ethan-and-mama-re</link>
            <guid>https://chris.pelatari.com/posts/2005-07-19-ethan-and-mama-re</guid>
            <pubDate>Tue, 19 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Welcome to the poor man's vblog...a link with text 😃 I took this video on my digital camera the other day. It's 2:41. I thought I'd post it up here so I can search on it after Ethan becomes a teenager to remember &quot;the good ole days&quot;. It's a little dark, and Ethan is totally oblivious to what I'm doing. He actually thinks I'm getting ready to take a picture, I believe. Anyways, here it is: <a href="http://www.bluefenix.net/videos/Ethan071705.MPG">Ethan071705.MPG</a></p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/07/dsc00170.jpg"><img class="alignnone size-full wp-image-1195" alt="DSC00170" src="http://chrispelatari.files.wordpress.com/2005/07/dsc00170.jpg" width="593" height="444" /></a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Set the passive port range for IIS ftp]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-14-set-the-passive-port-range-for-iis-ftp</link>
            <guid>https://chris.pelatari.com/posts/2005-07-14-set-the-passive-port-range-for-iis-ftp</guid>
            <pubDate>Thu, 14 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://support.microsoft.com/?id=555022">http://support.microsoft.com/?id=555022</a></p>
<p>I've needed this a couple of times, what better way to find it? 
;)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I feel like a commercial]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-13-i-feel-like-a-commercial</link>
            <guid>https://chris.pelatari.com/posts/2005-07-13-i-feel-like-a-commercial</guid>
            <pubDate>Wed, 13 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>but I did switch to geico
and I'm going to save a rediculous amount from my current insurance provider. To
the tune of nearly $2,000 a year. Plus, they took a cue from my current
insurance provider and got <a href="http://geico.com">geek friendly</a>. I did
the whole quote process online and only called after I had a couple of
questions.</p>
<p>I only decided to start shopping around when I learned that when I turn 25 (a
key age for single males in America for car insurance) that I would only get
about $300 off of my current rate <strong>a year.</strong> All I gotta say -
&quot;That's so condescending!&quot;</p>
<p class="media">[ Currently Playing : Let You Down - Three Days Grace - Three
Days Grace (3:45) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[My favorite Top 11 Country Songs]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-13-my-favorite-top-11-country-songs</link>
            <guid>https://chris.pelatari.com/posts/2005-07-13-my-favorite-top-11-country-songs</guid>
            <pubDate>Wed, 13 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>GET-R-DONE!<br /> <br />My favorite Top 11 Country Songs</p>
<p>11. If The Phone Don't Ring, You'll Know It's Me.</p>
<p>10. How Can I Miss You If You Won't Go Away</p>
<p>9. I Liked You Better Before I Got to Know You So Well.</p>
<p>8. I'm Still Missing You Baby, But My Aim's Gettin' Better.</p>
<p>7. I'll Marry You Tomorrow But Let's Honeymoon Tonight.</p>
<p>6. I'm So Miserable Without You, It's Like You're Still Here.</p>
<p>5. If I Had Shot You When I first Wanted To, I'd Be Out Of Prison By Now.</p>
<p>4. My Wife Ran Off With My Best Friend And I Sure Do Miss Him.</p>
<p>3. She Got The Ring And I Got The Finger.</p>
<p>2. You're The Reason Our Kids Are So Ugly.</p>
<p>1. How Can I Kiss Those Lips at Night When They've Been Chewin' My Ass 
All<br />Day Long? </p>
<p class="media">[ Currently Playing : New Song - Sublime - 40 Oz. to Freedom 
(3:14) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Divelements SandDock 2.0]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-13-divelements-sanddock-2-0</link>
            <guid>https://chris.pelatari.com/posts/2005-07-13-divelements-sanddock-2-0</guid>
            <pubDate>Wed, 13 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://divil.co.uk/net/controls/sanddock/">Was just released</a>. In
the newsletter, it said that you can use a DocumentContainer (tabs) outside of a
SandDockManager - simple tabbing with the same interface that is all over <a href="http://PostXING.url123.com/main">PostXING</a>. Sounds promising!</p>
<p>Well, the &quot;document&quot; tabs only render
at the top, and I need tabs at the bottom to keep the interface at least a
little similar to what it always has been. Plus, with the interface that I have
in PostXING, I just like the way the tabs look at the bottom better. So I have
two choices: keep the interface that is already in place (using the older (free)
version of Magic) or have tabs at the top, right? Nope.</p>
<p>I found a way to use the docking
windows (that show their tabs at the bottom) to get the effect that I
wanted.</p>
<p>First, I created a usercontrol
and added four docking windows (with tabs). Then I expanded the dock
control that holds the windows to be the same width as the usercontrol and
anchored to top | left | right. After that, I basically disabled all docking,
closing, and extra actions. At a pinch of graphics, and this is what I
get:</p>
<p><a href="http://chrispelatari.files.wordpress.com/2005/07/testsanddocktabs.png"><img class="alignnone size-full wp-image-1200" alt="testsanddocktabs" src="http://chrispelatari.files.wordpress.com/2005/07/testsanddocktabs.png" width="593" height="467" /></a></p>
<p>Nice, huh? Well, I thought it
was anyways 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Free at last...]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-05-free-at-last</link>
            <guid>https://chris.pelatari.com/posts/2005-07-05-free-at-last</guid>
            <pubDate>Tue, 05 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...free at last, thank God Almighty: I am free at last.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ReverseDOS Configuration for CS::Blogs revisited]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-02-reversedos-configuration-for-csblogs-revisited</link>
            <guid>https://chris.pelatari.com/posts/2005-07-02-reversedos-configuration-for-csblogs-revisited</guid>
            <pubDate>Sat, 02 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just set up CS::Blogs 1.1 on my server <a href="/blog">over here</a> and I wanted to keep 
ReverseDOS going for it. So I just copied over the settings from my web.config 
and thought I would be gold...not so, grasshopper.</p>
<p>The new section in the default web.config is now named 
<strong><u>memberrolesprototype</u></strong> so if you want to upgrade and 
not have to pull your hair out, keep this in mind.</p>
<p><font color="red">update</font>:</p><pre>	<span style="color:blue;">&lt;</span><span style="color:maroon;">memberrolesprototype</span><span style="color:blue;">&gt;</span>
		<span style="color:blue;">&lt;</span><span style="color:maroon;">ReverseDOS</span><span style="color:blue;">&gt;</span>
			<span style="color:blue;">&lt;</span><span style="color:maroon;">settings</span> <span style="color:red;">enabled</span>="<span style="color:dodgerblue;">true</span>" <span style="color:red;">debugEnabled</span>="<span style="color:dodgerblue;">false</span>" <span style="color:red;">debugKey="oink</span>=225678" <span style="color:red;">hideExceptions</span>="<span style="color:dodgerblue;">true</span>" /<span style="color:blue;">&gt;</span></pre>
<p class="media">[ Currently Playing : The World Has Turned and Left - Weezer - 
Weezer (Blue Album) (4:18) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Dangerously close...]]></title>
            <link>https://chris.pelatari.com/posts/2005-07-01-dangerously-close</link>
            <guid>https://chris.pelatari.com/posts/2005-07-01-dangerously-close</guid>
            <pubDate>Fri, 01 Jul 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://chrispelatari.files.wordpress.com/2005/07/postxingv2_014.gif"><img class="alignnone size-full wp-image-1203" alt="PostXINGv2_014" src="http://chrispelatari.files.wordpress.com/2005/07/postxingv2_014.gif" width="593" height="415" /></a></p>
<p>...to having something that actually works 😃 Do you think I'm going a
little nuts with the logo?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ReverseDOS attracting ire...]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-27-reversedos-attracting-ire</link>
            <guid>https://chris.pelatari.com/posts/2005-06-27-reversedos-attracting-ire</guid>
            <pubDate>Mon, 27 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm seeing a little trend - I delete comment spam as soon as it gets to any 
of my weblogs, so I don't have any hard numbers - posts that I have written 
about Mike's <a href="http://angrypets.com/tools/rdos">ReverseDOS</a> sure 
<em>seem</em> to be getting targeted by comment spammers. I don't see this in 
the <a href="http://www.chrisfrazier.net/blog">blog that has ReverseDOS 
installed</a>, but instead at <a href="http://weblogs.asp.net/cfrazier">the one 
hosted on weblogs.asp.net</a>.</p>
<p>What they don't know is that I have comment moderation turned on, so no 
comments make it thru without my say so. I wonder how many layers of defense 
will be required before I no longer have to worry about comment spam?</p>
<p class="media">[ Currently Playing : Square One - Coldplay - (4:47) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[What's this? PostXING can post to dasBlog?]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-25-whats-this-postxing-can-post-to-dasblog</link>
            <guid>https://chris.pelatari.com/posts/2005-06-25-whats-this-postxing-can-post-to-dasblog</guid>
            <pubDate>Sat, 25 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I saw that <a href="http://thequeue.net/blog/PermaLink,guid,652ae3fa-bad0-4e84-b6df-0a0257549e70.aspx">Jeff 
got things up and running </a>with PostXING (sorry again about the whole 
BlogInfo[0] thing) when I looked at the url. What's this? dasBlog? I never knew 
that dasBlog supported the Metablog API, although I did see the methods exposed 
from its blogger.aspx page. I thought they were just place holders, but I fired 
up my local copy of dasBlog and, sure enough, PostXING can post to it.</p>
<p>WordPress also supports the metablog API - hopefully subText will retain that 
feature of dotText so there will be at least a few blogging engines (I know of) 
that you can set up for a personal blog and post to with <a href="http://PostXING.url123.com/main">PostXING</a>.</p>
<p><font color="red">update</font>: It seems it was a fluke on my end, but I have 
an older version of dasBlog. It sure looks from Jeff's post that it works with 
whatever version he's running...</p>
<p class="media">[ Currently Playing : White Shadows - Coldplay - (5:28) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ReverseDOS: 8 days later]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-23-reversedos-8-days-later</link>
            <guid>https://chris.pelatari.com/posts/2005-06-23-reversedos-8-days-later</guid>
            <pubDate>Thu, 23 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>If you are running your own asp.net blogging engine and you support 
comments/trackbacks/pingbacks, <a href="http://angrypets.com/tools/rdos/">go get 
ReverseDOS</a>. Right now. I'll wait.</p>
<p>Back already? Great! Seriously, ever since installing ReverseDOS, I have 
yet to see one auto-generated comment, when I used to get about 50 a 
day. Worse on weekends. Here are a couple of lines that I added to the 
ruleset:</p>
<p><pre><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">add</span> <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">post</span>" <span style="COLOR: red">pattern</span>="<span style="COLOR: dodgerblue">poker</span>" <span style="COLOR: red">action</span>="<span style="COLOR: dodgerblue">403</span>" /<span style="COLOR: blue">&gt;</span>
<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">add</span> <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">post</span>" <span style="COLOR: red">pattern</span>="<span style="COLOR: dodgerblue">blackjack</span>" <span style="COLOR: red">action</span>="<span style="COLOR: dodgerblue">403</span>" /<span style="COLOR: blue">&gt;</span></pre></p>
<p>Simple, right? It's usually the dead simple ideas that are the most elegant 
solutions in the end. Thanks, <a href="http://angrypets.com/blog/">Mike</a>.</p>
<p class="media">[ Currently Playing : Star Spangled Banner - Jimi Hendrix - 
(3:47) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[CS::Blogs : beware the permission set]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-23-csblogs--beware-the-permission-set</link>
            <guid>https://chris.pelatari.com/posts/2005-06-23-csblogs--beware-the-permission-set</guid>
            <pubDate>Thu, 23 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I got some feedback about <a href="http://PostXING.url123.com/main">PostXING</a> saying that someone who 
had setup multiple blogs with <a href="http://communityserver.org">CS::Blogs</a> was getting the wrong blog 
back while trying to communicate with the Metaweblog API.</p>
<p>After a couple of questions, it turns out that all of the users were set up 
as sysadmins in the CS permission set, so anyone making a request to the 
metablog api would get a list of all the blogs available. Since PostXING 
ignorantly just uses BlogInfo[0] from the metablog_getUsersBlogs() method, 
everybody was trying to post to the first blog returned in the list.</p>
<p>So if you are running a multiple blog setup and wish to use the metablog api, 
make sure that your permissions are set so that when a user makes a request into 
his/her blog, theirs is the only blog they get back.</p>
<p>Thanks, <a href="http://cs.thycotic.net/blogs/jeff_schoolcraft/">Jeff.</a></p>
<p class="media">[ Currently Playing : Voodoo Child (Slight Return) - Jimi Hendrix 
- (5:12) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Maybe I'm Amazed]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-19-maybe-im-amazed</link>
            <guid>https://chris.pelatari.com/posts/2005-06-19-maybe-im-amazed</guid>
            <pubDate>Sun, 19 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Tina asked me to learn this Paul McCartney song...<a href="http://cifraclub.terra.com.br/cifras/cifras.php?idcifra=13419">so I 
cheated</a> :)</p>
<p>That's it. This was purely so I didn't forget the url. Nothing technical to 
see here.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Blogging API commonalities]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-17-blogging-api-commonalities</link>
            <guid>https://chris.pelatari.com/posts/2005-06-17-blogging-api-commonalities</guid>
            <pubDate>Fri, 17 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Here is some of the common ground I can see between the metaweblog api and 
CS::Blogs BlogService asmx.</p>
<p>Blog/Authentication:</p>
<ul>
  <li>UserName</li>
  <li>Password</li>
  <li>BlogID/BlogName</li></ul>
<p>Post/Entry:</p>
<ul>
  <li>DateCreated/Date</li>
  <li>Description/Body</li>
  <li>Title</li>
  <li>string[] Categories (nice!)</li>
  <li>PostID</li></ul>
<p>Non-Conformities (for Posts):</p>
<ul>
  <li>Metablog API</li>
  <ul>
    <li>Enclosure (although this is not used by CS::Blogs or .Text)</li>
    <li>link</li>
    <li>permalink</li>
    <li>Source (name and url, was supported by .Text, not so sure about 
    CS::Blogs)</li>
    <li>userid</li></ul>
  <li>BlogService.asmx</li>
  <ul>
    <li>Excerpt</li>
    <li>Name (I guess this is for url rewriting)</li>
    <li>Enable Comments</li>
    <li>Enable Trackbacks</li>
    <li>Moderate Comments</li>
    <li>Enable Ratings</li>
    <li>Syndicate</li>
    <li>Syndicate Excerpt (I guess you have to define an excerpt for this to 
    work?)</li>
    <li>Syndicate Root (for communities?)</li>
    <li>DisplayOnHome (again, communities?)</li>
    <li>IsArticle (I really dig this one. I've wanted to be able to edit 
    articles from the desktop for a long time.)</li></ul></ul>
<p>I've also been looking at ATOM a little bit - there doesn't seem to be any 
mention of categories in atom, which kinda sucks considering categories are a 
nice way to filter content.</p>
<p>All of the apis, including atom, have one other thing in common: getting 
general blog information is usually a two-step process. As an end user, I must 
supply a username, a password, and a url (although the atom api lets you enter a 
homepage url with a &lt;link/&gt; element that points to the service url (v1.0 
of CS::Blogs asks for a blogname, too. Maybe this says that you should only work 
with one blog at a time?)). Then I get a list of blogs that I can edit with the 
credentials supplied. Then I can create, update, or delete a post. I can also 
get a list of recent entries (and articles in the case of the BlogService.asmx). 
</p>
<p>With atom, on blogger at least, you are required to use https:// as the uri 
scheme. Not a big deal, this just means that the common denominator for a blog 
has to have a couple of booleans: UseSSL and SupportsCategories, because those 
two are what separates atom and the apis of CS::Blogs from a coding standpoint. 
Since I'm going to be using libraries to handle the xml transfers (xml-rpc, 
soap, or rest) I could care less what the xml looks like.</p>
<p>Speaking of libraries, the code that I have for handling the metaweblog api 
also includes support for the old blogger xml-rpc api (thanks, dasBlog!), so 
I'll probably include support for posting to that api as well in the new version 
of <a href="http://PostXING.url123.com/main">PostXING</a>.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ReverseDOS in Community Server]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-16-reversedos-in-community-server</link>
            <guid>https://chris.pelatari.com/posts/2005-06-16-reversedos-in-community-server</guid>
            <pubDate>Thu, 16 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>After another slew of referrer/comment spam that showed up in my blog this 
morning, I went ahead and downloaded Mike's <a href="http://angrypets.com/tools/rdos/">ReverseDOS</a>.</p>
<p>I followed the steps outlined for setup, but it didn't quite work the way it 
was outlined at first - I got the dreaded "yellow screen of death". This was due 
to the entries that I had made in the web.config. So I looked at the entries 
that were already in there, and I noticed that some <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section/</span><span style="COLOR: blue">&gt;</span> nodes were added to the <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">system.web/</span><span style="COLOR: blue">&gt;</span> node. Moving the default configuration from 
looking like this:</p>
<p><pre><span style="COLOR: blue">&lt;</span>!-- copy and paste the following code --<span style="COLOR: blue">&gt;</span>
<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">configSections</span><span style="COLOR: blue">&gt;</span>
   <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">sectionGroup</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">AngryPets</span>" <span style="COLOR: blue">&gt;</span>
      <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">ReverseDOS</span>" <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">AngryPets.Web.Frameworks.ReverseDOS.FilterConfigHandler, AngryPets.Web.Frameworks.ReverseDOS</span>" /<span style="COLOR: blue">&gt;</span>
   <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">sectionGroup</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">configSections</span><span style="COLOR: blue">&gt;</span></pre>
<p class="media">Instead, mine now looks like this:</p><pre><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">sectionGroup</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">system.web</span>"<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">membership</span>" <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">Microsoft.ScalableHosting.Configuration.MembershipConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562</span>"/<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">roleManager</span>" <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">Microsoft.ScalableHosting.Configuration.RolesConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562</span>"/<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">profile</span>" <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">Microsoft.ScalableHosting.Configuration.ProfileConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562</span>"/<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">anonymousIdentification</span>" <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">Microsoft.ScalableHosting.Configuration.AnonymousIdConfigHandler, MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562</span>"/<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">section</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">ReverseDOS</span>" <span style="COLOR: red">type</span>="<span style="COLOR: dodgerblue">AngryPets.Web.Frameworks.ReverseDOS.FilterConfigHandler, AngryPets.Web.Frameworks.ReverseDOS</span>" /<span style="COLOR: blue">&gt;</span>
<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">sectionGroup</span><span style="COLOR: blue">&gt;</span></pre></p>
<p class="media">And I of course moved the ReverseDOS node to be under system.web. 
We'll see how this pans out, but I thought I would put it out there just in case 
someone else was having issues with it.</p>
<p class="media">[ Currently Playing : Stinkfist - Tool - Aenima (5:10) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: This is just a test]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-15-re-this-is-just-a-test</link>
            <guid>https://chris.pelatari.com/posts/2005-06-15-re-this-is-just-a-test</guid>
            <pubDate>Wed, 15 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Nice! Lookin good, Don! I personally have had firewall issues with FTP (what 
a beast!) and have yet to find an opensource SFTP (ftp as a subset of ssh) 
solution, which does work on my server. One of these days I'm going to beef up 
my firewalling skills and let the stinkin ftp traffic thru. </p>
<p>Anyways, glad to see you "back in the game" :)</p>
<blockquote>
  <p>In an attempt to get back on top of my blogging, I've just installed the 
  latest release of <a href="http://www.chrisfrazier.net/blog/">Christopher's</a> <a href="http://projectdistributor.net/Projects/Project.aspx?projectId=12">PostXING</a>, 
  all of its plugins, and configured the FTP support. If this post is 
  successful, I (and you) will know I'm good to go.</p>
  <p><img alt="This is one of my MSN Instant Messenger avatars. It's supposed to look like me ;-)" hspace="0" src="http://dev4net.members.winisp.net/images/character.jpg" align="baseline" border="0" /></p>
  <p class="media">[Currently Playing :: Louder Than Words - 
Greenwheel]</p></blockquote>
<p><i>[Via <a href="http://dev4net.com/blog/archive/2005/06/15/2320.aspx">Don Smith 
(dev4net)</a>]</i></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING Answers for Yex]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-15-postxing-answers-for-yex</link>
            <guid>https://chris.pelatari.com/posts/2005-06-15-postxing-answers-for-yex</guid>
            <pubDate>Wed, 15 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Yex sez: <!--StartFragment --></p>
<blockquote>
  <p> Nice. So where's the Categories, Post, Post and Publish and Crosspost 
  buttons at? Where's the post editing toolbar? When can we get our grubby 
  little hands on it? <br /><br />Since it appears you've decided to go with the 
  whole sidebar idea, why not use that to list the cateogories checkboxes? Seems 
  logical to me anyway. </p>
  <p class="posteds"><a id="_ctl0__ctl0__ctl0__ctl0__ctl0__ctl0_Comments__ctl0_Comments__ctl0_NameLink" title="Anonymous" href="http://www.chrisfrazier.net/blog/utility/Redirect.aspx?U=http://yexley.net/bob/" target="_blank" rel="nofollow">Yex</a> </p></blockquote>
<p>Good questions! I've actually created a sidebar for the categories, and am 
currently studying a couple of the API's I want to support right away - it looks 
like I will be able to handle categories the same way that I do currently. I'm 
going to try and find a way to push categories into the file that is saved 
(er..File -&gt; Save) for a better offline story too.</p>
<p>I'm also looking to remove the History dialog and replace it with a "view" on 
the main form - no reason other than trying to get rid of unnecessary dialogs. 
And it'll look cool :)</p>
<p>As far as all of the other buttons, my current plan is to have all of that 
plus some configuration details pushed off to a kind of "provider" - each api 
plugin should know what buttons it wants to add, what operations those buttons 
support, what kind of identifying information the api needs, etc.</p>
<p>I'm hoping that I'll be able to break things down to a common denominator and 
have something that will be able to tailor the UI to the current blog that is 
being edited.</p>
<p>And as far as the grubby hands, sorry - it's probably going to be a little 
while before this is ready for prime time. I'm not even ready to dogfood v2 
yet. :( </p>
<p>[ Currently Playing : Would? - Alice in Chains - Unplugged (3:42) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Greasmonkey goodies; embrace and extend]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-15-greasmonkey-goodies-embrace-and-extend</link>
            <guid>https://chris.pelatari.com/posts/2005-06-15-greasmonkey-goodies-embrace-and-extend</guid>
            <pubDate>Wed, 15 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Thanks to <a href="http://blog.dreamprojections.com/archive/2005/06/02/905.aspx">Alex</a>, I 
checked out a great application of <a href="http://greasemonkey.mozdev.org/index.html">Greasemonkey</a> - the <a href="http://www.arantius.com/article/arantius/gmail+delete+button/">Gmail 
Delete Button</a>.</p>
<p>Of course, I had to look at the 
script since it's just javascript and play with it to see if I could extend it a 
little bit.</p>
<p>As with most of my "embrace and 
extend" forays, it was just a simple change - I use a <em>lot</em> of labels in 
gmail, so when I'm reading via the web interface, I have some organization to 
the 50+ email lists I'm a member of. Every screen that has conversations listed 
on it has a delete button, including the search view, except for labels (until 
you hit the search mail button, but then the number of visible conversations 
goes from 50 to 20).</p>
<p>So, I popped open the "view frame 
info" context menu item from gmail and saw that the view querystring parameter 
for a label was tl. With that in mind:</p>
<p><pre><span style="COLOR: blue">if</span> (document.location.search) {
	<span style="COLOR: blue">if</span> (document.location.search.match(/search=inbox/)
		||
		document.location.search.match(/search=query/)
		||
		<strong>document.location.search.match(/view=tl/) &amp;&amp;
		!document.location.search.match(/search=trash/)</strong>
		||
		document.location.search.match(/view=cv/) &amp;&amp; 
		!document.location.search.match(/search=trash/)
	) {
		setInterval(<span style="COLOR: maroon">'try{window._gd_place_delete_buttons();}catch(e){}'</span>, <span style="COLOR: maroon">25</span>);
	}
}</pre></p>
<p>I'm not sure if the  &amp;&amp; 
!document.location... part that I added is necessary, but it doesn't hurt 
anything. Now I can delete posts in all of the views that I would want to in 
gmail.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING development]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-10-postxing-development</link>
            <guid>https://chris.pelatari.com/posts/2005-06-10-postxing-development</guid>
            <pubDate>Fri, 10 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been working a little on my plugin/provider idea on <a href="http://PostXING.url123.com/main">PostXING</a>. Currently, I have it 
building, but I've had to disable some of the post-build commands because 
although it builds, it doesn't do anything currently and I don't want it to 
overwrite the working copy that I have on my computer.</p>
<p>Interesting aside: I didn't actually <em>remove</em> the commands, but since 
they are all written to a .bat file, you can use normal batch commands - like 
rem - to effectively disable the commands. An example that is currently disabled 
in the branch .csproj file but not in the main trunk:</p>
<p><pre><span style="COLOR: green">rem COPY /Y $(ProjectDir)ReadMe.txt $(TargetDir)ReadMe.txt</span></pre></p>
<p>This way, when I'm ready to actually dogfood my new creation, I just need to 
remove the rem's and I'm good to go.</p>
<p>I've only made progress on the UI so far, but if you want to see the 
progress, the code is always available on <a href="http://vaultpub.sourcegear.com">vaultpub</a>. You can view everything on 
the web <a href="http://vaultpub.sourcegear.com/VaultService/VaultWeb/ShowFolder.aspx?repid=5&amp;path=$/branches/PostXINGv2">over 
here</a>: the login is guest/guest. </p>
<p>As if you cared...</p>
<p>I'm still trying to work out how cross-posting should be implemented. I've 
decided to go with an interface-driven plugin model because I don't have an 
app.config with this app (no reason for that - just haven't needed it yet) and 
I've already got 2 types of interfaces loading as plugins. I have 3(1/2) 
different types of plugin/providers that I want to implement, all of which I 
have access to so I can at least test it a little bit. They will include 
providers using xml-rpc, webservices, and the Atomizer. On the UI side, I'm 
going to do away with as many dialogs as possible. I'm trying to have this app 
have only one or two dialogs where it makes sense. I think everything else 
should just be a "view" on the main form. </p>
<p>I've also imported a couple of controls to the project along with an <a href="http://url123.com/a2nq7">IUI </a>library so different "views" shouldn't be 
too hard to implement I think. Anyways, back to coding...</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A new face for PostXING]]></title>
            <link>https://chris.pelatari.com/posts/2005-06-10-a-new-face-for-postxing</link>
            <guid>https://chris.pelatari.com/posts/2005-06-10-a-new-face-for-postxing</guid>
            <pubDate>Fri, 10 Jun 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I didn't go too too far, I think. It's definitely a step in the right 
direction, tho:</p>
<p><img alt="" hspace="0" src="/assets/images/ScreenHunter_008.gif" align="baseline" border="0" /></p>
<p>I don't know why I've opted to start at the top and go down...probably 
because I'm just procrastinating on getting to the meat & potatoes (!) 
problems. I also had to go into a different program to upload the file 
above...I'll be checking that as well.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[If I only knew then...]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-27-if-i-only-knew-then</link>
            <guid>https://chris.pelatari.com/posts/2005-05-27-if-i-only-knew-then</guid>
            <pubDate>Fri, 27 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Not what I <strong>know</strong> now, but what I'm <strong>learning</strong> 
now. I recently picked up a copy of the src to <a href="http://www.flexwiki.com/default.aspx/FlexWiki/FlexWikiPad.htm">FlexWikiPad</a>. 
I just wanted to see how things were wired together in there: I only have a very 
old installation of FlexWiki sitting around that still looks like crap in 
FireFox.</p>
<p>To his credit, <a href="http://pluralsight.com/blogs/craig">Craig </a>has 
done an awesome job of making FlexWikiPad very testable - something I didn't 
think was all that easy to do in winforms. Apparently, his dialogs are very 
humble. He's using a pretty strict <a href="http://www.martinfowler.com/eaaDev/ModelViewPresenter.html">Model View 
Presenter </a>(or controller, whatever) pattern throughout the application. I 
thought this was a lot of extra coding at first (it kinda is), but in the 
process Craig has made FlexWikiPad easier to maintain and update thru the use of 
mocks/stubs and tests with this pattern.</p>
<p>Currently, I've got this itch that I want to scratch with regards to <a href="http://PostXING.url123.com/main">PostXING</a> that would have been so 
nice to be able to test my way thru. I'm just hacking thru it now, and I've 
done a pretty good job of messing everything up so far :) In my 
defense, I'm still learning unit testing and when it comes to winform 
applications I feel that there is a balance that I like to hit right on the line 
of usability and architectural beauty. Anyone who has looked at PostXING's 
source will soon see that my architectin' ain't so purty - it's still just a lot 
of different pieces from different places glued together. I don't validate 
everything that I should. I left fields that I <em>intended </em>to add 
functionality for disabled but visible. Even up to 1.1 versions. 
<strong>BUT</strong>...</p>
<p>...and this is a big but...</p>
<p>...it works. That was priority #2 for me with PostXING. Priority #1 was to 
make something useful that I could use to learn winforms. </p>
<p>Anyways, I'm hoping that I can glean some insight off of people like Craig 
that are way more knowledgable than me on this front. If I feel like the task 
for PostXING to be testable is too great, I may just try to apply this knowledge 
to future projects. So, thanks Craig for making FlexWikiPad follow a concise 
pattern that I did know about but have never seen implemented with tests in C# 
before.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Converting a Base64 String to an image]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-27-converting-a-base64-string-to-an-image</link>
            <guid>https://chris.pelatari.com/posts/2005-05-27-converting-a-base64-string-to-an-image</guid>
            <pubDate>Fri, 27 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Do you ever get an email that has some base64 gobbledegook in it? A lot of
times, based on MIME information directly preceding this junk, it's actually an
image that got converted to text but never converted back to an image (duh,
right? Tell me something I don't know? Okay...)</p>
<p>I got one of these
earlier and decided to write a little utility to convert that string back into
an image using the .net framework. It was pretty simple once I got the
namespaces right:</p>
<pre><span style="COLOR: blue">using</span> System;
<span style="COLOR: blue">using</span> System.Drawing;
<span style="COLOR: blue">using</span> System.IO;
<span style="COLOR: blue">using</span> System.Collections;

<span style="COLOR: blue">public</span> <span style="COLOR: blue">class</span> MyClass
{
	<span style="COLOR: blue">public</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> Main()
	{
		<span style="COLOR: blue">string</span> base64 = <span style="COLOR: maroon">@"R0lGODlhSwDRAPYAAG9qb6mlqJwdJMzHy5qYm722vbS2zldTWKzK9smjabKPZfLVnL26vo
		V7gsS2vkc5QoeEiG1LS5Rydv/+/zYyOMS8wkoyNEhDSLSus5GVrbSytbJycQwIEGNdZCciKbSJjOrl6nUwNXqIrY
		xPTGhAOHd1flxWXq2usK+prs9uZyIaIzErM5aq0zo1QVNMU4xNL/z3/a1RTysmMKOdoykMEPTu9K9oW7Kjk4yMkJ
		SNk04FC5JuUExLT5i36dGugbW1uZiDiHkDCNTU3DUkKpqjsdKJf6m841hCSRkUHPbz9ruyuI8zN62ztOHd4rFdY+
		zr805SVnNgYx0iKk4YIOS6iT0/TLmxq/f1+zEdGjcvKoeaw00oIeeWh8bl+p6fns3n2VtjfP/J2XQZH7W7ukpPS4
		9fXy0vN1JSUNCcm3IpIpOSlZ+XhvvqurwyN+/r7cDExqm2qvb17uDAe/v0+RseHXx8fsO6sen7+ycuKl5fYIqPi/
		b8//v886yGSkA8Peq6oSwAAAAASwDRAAAH/4ADYz8MFQwOFUoOSkoYSgUVDg4FlJMFjgwMlBWGmWOZnBUFioiSkY
		oVbxU/hAyDn5mxhZqxFbAMjJGnjJWSvpSPnLQMb8W1kaO+ygWIhgWxY5+dss6xb7WVj5abzMuUhc7PstjdysrT0L
		Pjs+LEPxg/nJO8md/alsGhmu3jot3J5r5Bk8agVa1hmjRgcPQIkkCFGHpRYiZsIrhQGCfOKydJoCeCBkEhdDRqoZ
		JdCU9ooGip2b5nwvSBm0iznMV1qtZVy4RqEaZL8AqwqsnLn0VOFmm+ZNfRo0hQ6NhhY5RJA4oKCllp0PDjESOTSt
		kJvCkUUkxL6zIREkYNYamJP/9OMNCgcu6JHzAZYNCgaUABFCu/RUTaaOEzVrFqaroFtRO/dg2/FeCKuODdskJnBd
		BQYQDWAgM8l4T0ZmUqBnUVq9UZdViisD8oV71ryBDXyYU0BFDiOcBEURhUWq0QfMA11WnBFWstqt4zocIJvfsBWF
		Nd4koCB0AhBAMKFAEI5JhRtXIAo/x0XjN28JBDVrGZnJDPl4GVyXjf8c0/CnSADi20sIIMSCBBARRqDOAFBkJoYN
		xN47QSTCbXHMMJZcHNJ9wJJ9iBCySxsWLICQVsVwEBFxSIBAccFMjii9wRQIhvTqWzT2sXEacQhxoyQdcJjFihBI
		eAFfDGAAwIQYD/Zysg4UeLK0LJohQecJCHKFfVKEtOLrlCDSd7xcUjh1upZEWRs5wAGAYEKGmGi1GyuGKcK3DQQR
		Mz+JMWXpw8QowhjMVCFwp7jWkoh0wwwYoVAyjBQABvVOHiiy2+GKcUSHjAmyOl2TaAL7K0w9Y4g6pE5laobiUfh2
		fagQKjB1Aq64o0rKhCpRysoAgGxKnCGSlNHZVKbaF8h4KhCy00JnxW2SHkGy3eGiUWdKhAw7WUSiEFHRwQgMIPb6
		DwxihI1QRhWsamS2iGPB67FwYB2EHiD9LSSgMH1147hAVYYKEii3ngB2kl6IXl3FCUqGtssslyyLBv+3FwKw1YcI
		AF/w1ZbLEFCSPsUEYUFtxboAwDqCSuJrz885tMSa2r8HeGasCIEijoFReUWFigMccd21CGzx5vYTESMlSE13MSJf
		WNYwkvtPDLCgfwAxEnDMCBBxRHEMEONmywQRFcpLBBCiOUQcK9NFBgXCE0HmfuKDOrTMl239GtsMPJWoXaCQa0IL
		EFEZQxgg1FpAA2F4XbEMMLW1yrwgDfhYtkBSi87RAvLUlCd7IvJ0uzdzSz8obfWGzMNeFgF1F4CjY4QcIUFCMhBO
		XEEaKKKH2edBIy9/gCtboMe7cQZRlAwOIWEbxQhupcNB+2DUuk8cII96qQCCFLV15SKc1gtIjv4AUg/v/v31mlt0
		K64YsFx14XsQEXf3CRhvQjTEGCBUhAMYDM582Fle68SgRGQhGsGdBNTd/xTtSEVzm6PApfNEieDiY4gvi9IA1d48
		IGymABDpRAFQPAQAi5UhA/JWJ3otBGuQrgBfERiXzHMt9eUDCDGVBMY1uw3wtCsAOv7WAE80PDBixAggZYYQYRKd
		kbpBYuXuWiXEUxivgC4IUZtDAABhzfutRkFZqdCQVKiAANNBYBG8xvcEV4AfRisAEzlgEIEQgNBnKAAwDUoQ6p2I
		omEKGIdpjLC14gAiAJAMgqZjGBJ9gOBr6IAjs4YAb9ChwJ1GgDNcbABikwHOtGsIEd7OD/CAK6QBX84AcAQIAvnH
		nNY/pDCUJScZCFrOEUA5BIqVnBCgE4EwEcALItDM4JKYjBEi6pRsRxwQkhsIEEjjCEMwhoBQGSgRm8wICr0A4YCH
		uJLMVXQ0NaUZYoIAIBAsCANTSShgFwQAQsMAVK2qCSmHzBJRFHtjKU4QEUqIIMWnCBFazgAhRoAW362L3ExIIANU
		zoN61YyO14gQlYtIIdgGCFcBUAZECMgeqE+YJMxoB17xzB/VRQBTMEtApVWIEZWkABNbxhLYwIlkcIQMiEFvKmgK
		QaARK5Bjtw8wcBaMDGpje2FwzTfWkIgRM6agMSbCGgJhVQgDxAARnk4Q0n/8hdU9ZBSIR6gaZgxakXTpCBhKLgBh
		hgQJ5mcAQdVnJxL3jBBkdAyRfowAJDkEEVPBAgFTxApXi4wFC8AqqKtBKsiKUpTmeA0O+s4Tx0HECsrsWxuF5wg2
		X4wAbSsAGNjmAIodznA6jaAjP44QLigtciFEMTNST2tYoNJGNfpYYjAuBNEssh10KgRjSEIQxoEJwCNkACLPyVAs
		j95wMMtE8eQMo7r9mHcyiRAzVY97rXTawX1LAZNTTACxqAQgukcDUVXIwEXBuBer02giVEoAgS+IADoNkCvcqAAh
		dQQVXNcADt8aUZDgDHS3JA4ALj4MDVxS5CxUMABgAAmmYwg/8KVjCEi22sCOplo9e8JoEoPLIEYAhQFVowhAeY2A
		8U6ABqNDEYZJjrunTEQXUhUN0D48C6M1DDjWdwXwqotKoquADGLGBPTsbgoz6TAAAMUAIjaAEJIw4QPh/QAhUAQK
		3Z7NMzHJUJGRc4weK5sY4PrAYIBCAHfkCCCwIqAxX4wc0ceEAWLCCBEXw0kxssQQlYwAIjGEEEZkBpVQPqhxaYgB
		VCsAKLT0ILuClBxtYl8IEhMGlKuxYHKCjBBS7AA5Pqk68t8AASHtABCxzhZ5hkXRlcoAUj9IAFPehBCVC6Ahe4AJ
		r5pOUqHEkopKiDAQSONASGTWwc0BQCJdCxCVj/2ukArQC5FxiCP03QAAsADnUbkEAHjIAAFiAAAUZgAUpR2gI/lN
		QEBrDKAKxwQl+/xMaVHnYdKI2DYR/YBC4Yb4QFRAGqUgCfMhjCDEpwhAuQIApli0IOwq2FbvcAASJoAQ/ue4EAmc
		A48VJ0M4JBk3oTGwINqEMJhl0CU4LcBRX3AEpJuwIsSPu0FBiCCYggAhyAoQNRyHkBhABrPoPbCFAwAxQu4IdAtw
		AHpcm4QwbTDo834Ol3bAAERA4BNeSBaPsccRV87IchZAELWaAADx5whAdkoNVGEMK6G4ABA/TZ2wjogRa0YAYe5L
		MFJdUfA+xgh/6sNhwFgPrThy11/z0PGwAVB2igV1pVGVB4CEi4wAOs/QAweLsLXfiCEG6AAhwYwM8Pj7sRqiAFra
		9AvEJAgYLa3RyMgPzpUK+DHUfegHxXdcR4MCkFLOCBB8iADs829RYsAIa49yDzX3isGurw7ebHGgyRb8EDXCAFM2
		TgB0KiSUOMEvs76hkAJWhAyR1fX7yTEsWgfbbjh7AvEkTABWDAvBa+8IYFjKECIM6A87tNbnySO4SRcRTfEHJ35H
		3fJ3I8MGH1JQO5RwF+YGIPQFIeUC378gEDAH8s0AV38AVwsAZAsAYzMAAl0AXNx20icGt/NWKy0whjAQoTAXV6Fo
		PgZ0fIRX4eQCV0QP9VFkABJJWDKrAvaIAGDXABBqAFRNAFb+AHN/AHOVAAfuZ8RkAE+SZ5pWUGHXIfNTIRIPd9Mg
		gAXqgCAuIBK+ABJmVSDwBQeFd6HtAvZSABaHAEYPAELEAEcOAHa7ADfyAuPxd6RmACAJVvgYYDtxSAL/EMIldyXp
		iI4GcCKiCGotYidJCDK2BiJVV61jIFbjhEUZABLJABarAGf5AAC2ALnxdrcYcAJSB9ojRiOOAqlgMK36eIiVgCJu
		ABKuB4NUgljneGpSVNMlA6JPABZRACUTADBtAFECAEEqAACnADA8AE3BZrD5cBgeZ/R3dN5gIKioiIXtgB3ugBBC
		ID4Lj/LXgQUFQIBSX1AEMQQR/wASEwBAtnBBBgB32gAAvgA3XwBk/4bT1gACl1AStVBR3Ad4BXiAUgi4rojR0Ahl
		g3IFIgTRTmY50WczoTAR9QBOsEBBlgBCVgBWzQB30gB3owBvvYA0bQBVAgA4BYdwVgBaulNJSAkB0AADNJk0igAr
		coA+KoLR7Qk0hQX2YgechDAuxFAg+AABkABXqwAHKwAAtgB29Qig/3aiKgUgHCA1KQAwUjGZQQizSpkF5oAitiiz
		0pTVH1V23WAi4wea/zAWggAVuABWAgAmqzAAkgB3KwAzdQhLD2cFogAjo5YhNXAo2AMinUCfiHkDSZB95I/wG5gn
		VmSSX/tAKSsnskEAIhIAHwdXAyQJcDsAMhuQBssAZEoAWxZppakAG5EmUCaSLkMhmIKYveSJMmMJMuYCC3eINmsC
		23+Gw8MGo6IzictUxH4AI4cABrwAaimAAJAAQo4HbGN3cSEyB4xwPfcZiXYBQJqZAdwJgA4AIcoJMqoC1mgAdSQF
		98FXNthZlpgAZAEJcHAAA5xwb2aI83UAHQyY8mIDE8gHe1RjPAgJ0xmYgKyZi1iW8So5Paoi04KQNU5k8cQAKvkw
		Yk8JYWYAJHYAIRkJyiaJc+wG7fxmcsQF4eYHfIFTAkgTQWUZNf2Z212QEHcABkOZ4L+pA6qf9SHdBWWxACSxACZa
		A1JuYCR8CMzJkAVNBTAxBurwZ9N7lPK+AHeTAX8DAMcRMF3WgCJpAHWpoH+NYBEoOTOClqYDggVVCbR8BOIZAGIy
		ABZXAEWVB2D7AGPuADdkkFPpADSRpuLAAG5NUiW4divFE5/sArE+GFUVCgWnqgYkkgKjAyeVVfVQAGBlBqFhACUz
		ACRYAGxkUBBRcBWFCkzHkDFdVncycpBUJSDugBOPAZrLQNh8qdeXAAXOqNB6CTSMCgOul4MsABBgABF9BWaRADmB
		kB7jd9c7YDd8mUcnADN3ACrqYFLCBeBCIFpdVPURALXVEIkeGNWOqNscqYBwD/oyvQiEiABzoJjgOSAUSAAy5gbV
		uQVCPwAUDgcmXnflSQAH1gpHqJAk72l1DwkAVSWqTkAp3hHCE0EdzprTHaAS6ApXUyrdVXhTJAVg1QYhM6AlvAQW
		/aTBGwBcyZr3ZpBwNgACIgd/86rhwQUHhAZcUQD7igSgWQsC4argdQm35Do3QQYbdYBQZwAmqAoRJ6mT9aYUfgBx
		XpA3IQki/wB2h1diygBaQnjj95ASu7AlJqCCexDTLbAViqqBN3q7spA+QlAzzAZETQARdArIETAUPgAhXzq1mAXs
		x5jwnwAQTAZ6Uqnj1JSn9VTYGRDAjLtd1qAuHqAlxbs7cZnlKQ/5MRVgIGQAQZ0HtHIAFAIHP4NAR+8KYWYJcJ8A
		J5eQMAkAElIAJ7CrB1EpQDUk2soDs0oZBdO7hYWrMX0GYF0pPjCWVRKIV2kgMEh08UEIlZMGc+AJrLyXl82QMpWQ
		Uc0AIG4gf3hRgu6wi+4Lqvi28virY32YiN2oiYIgKQawB6lQEROIV4gARZkLl2iZcKULdr8Hl/KQIcoE8qQAd4gA
		fjuhAIE4Dc+bqHi3IH4AK22KiTQlIcAAacyIl1kG88gAdZUL/BmwVn4AP5yow+EE4iMJd095OYQgf4RQGXQQvmoK
		Xc2rUMi6UNm4BIgAVgWiDUigQrBQWzxrz6xAN+QP8GT/KAJHCX69ucGikCfwkGJVAgjokEdOB75KStGiEJiVq91q
		uQCRiebTa/ZMgBuxm/HAAF4ZmAmXtaMkADpJSvL7ADVNCMZ9cDPgwGyhuJkTi7EFAWgJEyBcDE3UqrLlCzB+B71Y
		IHkSiOEkYgPMABpVduREcBWaCOGZMASIuvCkCasGZ5pCcpkegBm9YBWlE5ASjHXcqtPGC4iBdh5dmTTeJ7VOUBfj
		CGLCVnpvYAHLA1+ZoA66sH7mt5BmAleAAlYNgCBbEQAjQRNcvE3mhrXMsDB8ADYJAHZsAB5eiD2VsgHNxPckZ2Jr
		aOfWCnRrrIRLCnpFsCfmqedCADF+D/AQXRaxjgAMmSpYdLwufMtWcwzDwwgXRwk5mCk6dKVb4LgSS2jlGgAH2wAx
		K8Bkxwwd62ItJ0q1ScIgOwHZfgEJSQpVzay4Mbo4R7BnlgazO6vbZ4qo6HYgElfRTgAlnAAVsgwUUKBG+QASTbqC
		9SntzSJAk0FzPDCL0M0bEbuy5wBjY90QAsz2AqavBMVUS3aWd4AWC3PsiqyDewBmawqyxyKxzALWPrAUiUVpSQVp
		kQ0w7dtbZm0+u8yWJ6k7bYJDcpMU/6b1R2hh59MdP8sTuwvAKNLxyQBRs8MoXBC5ER00z8vzV9AOtcs1EcphMWpl
		cz1v92WtGWuTQAmi+A/68+AHZf6nVIQAY2/CLWsyYy0w5d69AxXccxascdMK4C3KArrF9E94BBfQEuMEZi/LEK0C
		/Q9INLrcc4eS/VQQkhoaiXLdObjbgyGs9eHcAWfX6CfFrBiwXI6gNpsL78QpYXgwUAZSBRUgKGRRwLMcKXLcyJeg
		BQULM8gMLi2IiN19d0sGl8O9p+cARbkNg+4MoKUFzIZTEsQrU5iwSQdwF+sRW1jc6Ey9CxCgUN6wI0zNNePSA9Gc
		AcfFqkJHkWkLlZwM8vIMFywC+OZyD38iZiS8huNkJ3UR8MILivCwUeHqP8Ha787Qddja7+NCDyXI6bxmlnuC8WwM
		936cpbEP+8PjYEt8jCUvBmHHAB2bEVtrEVHP662O3htqbbVSbPZel4Y6gidDAEK76WQpoxEQDG+EoCZ9BvWTCub4
		IpSDCGHqBijSAXcwHk1ZuoH77Z1ltlPG3ibLbCWMC3ZXcEZzpJ96rI/IJiYWeLdLCg5psFALBuEMEVn1C92I3dZ5
		Ddr8sDJsCD0pKrz1ZfYVotu0d2zOQHxSXGW0AFO6AAO3C+eEDKWaAiZiBq/tIBIWQIhBILmO3h2Q0Fe43XDcvoCQ
		qOuBjFmYIFZF1wHZAFxNrgzHmvJEAHwUtK0tYiEraOWYBHu1EAdwEfQu7qUBCrNm1rm0y4tp6rPoZrUjsEHlD/Yi
		bGTHO2NXf5Avp8Pw/8dculvV7nArd0JlagAWOAKi8a0Vqt1bbWsPgWwF1+owNSg6I2rsYFgb9KRMy4vvrML2D3wH
		WCk18n5wMQgtWRKr2c13mwzmdABq9em7+5vV7e7yQearxtAfjEA2QAwVnQBxJcjwqwMVkwBMjV3mv4dRFwBJCDHX
		uhAYnSyzYdozYN2Wfg33VsAhvfpNJEAfbrvCXlgypQyBZQcaSUBfaY3n1wNnF5vkbfb+qDBR3mAOn0CPvBCrdd7/
		a+yf+bIvLseCbFgKW8dQEMdiYGkI+NLyTgAwrgAxLKL2FXWr85algAMrs0zpPxLc4u02Ifo0WO/29ppiITtgIOXH
		RFx6gud4aqnOMWswUKgAar3S9YECAUEJQukgUuAACrxQjmoyowKqsmcPFardf3HqPM6yIqYAb+hFwoFoZevS8PgG
		Im8M4sQgMfIAHDHVDJFXM3OQRRcArkzBWCHg2nj6UXj/EWf+91/Hsqsk+y38A+1vnlWy05k/tn2Ga5MgQcYAHBy1
		fPJnkyEOoeYAKgAwlhokeZILh2rPr2DuvvLMDP1u9ieF8RFonmNWeA8GCyIuPhwaGy4mco8/CwQvEwRKHCgaKEUl
		Ch8fOjccLU+WNCemB6RkZ2dsbj4spzxoGkgoRkJkNIsZIFSWEmRasylPVAkVUIqf+Ci0TRTCHjl3WRxTFTsfnDEJ
		D9wzSmAW7SQbq6mnpwdnFgcnAh60Erg+tH1+xx0WJmhsQxhCRNjwKeLHgoSMGDh1kLP8b8WMhCpwmGH28wcGLAYE
		w3UQdc5ICQJ88qAHrqXMhDIEeJlQBaqFABoAQhDzz8rLzw7CUHQ1nyWLHi5QISPPSkUGBoLItSOlEYnDih0ROTqV
		SnjpuQhBU6CBMmtErSdUKNJjA4cIABY6GfISpgTAAgg9JOJCXcxOHDxy4fOnjo0LngB1I0pUi8PB3DhIGnp6B+jB
		nDoOYcryJ5QACxh4eJCTCSNOn6RBZaCnSyuPAAogkEP7UMdXA7wYr/HbtuJlwYaObZwizR8Nz49OZEJ8WfpnIE0H
		WVOhwTrpw5MLkEaxmyVnw+6seRWBNZnknhcOWKBnqss2AdwNuDLl2Q8Jzx8gPqCU6iqk414aKJmzMm8lxQM8AEB/
		AwQRNeUFALP0hw5gFDQ6zgBgwQKPWSEHs0IcUKft1DQQ0wGKNCdi1AIkMWdYCiwTbggEOVY491cABnEJRAAARjcJ
		bHATXMAcEzHFxAyxVJHLXCEA9MMId0WXiAxB57SFHFCh7QUUhbIJSARRYtPNBClyu0gMMb2QTAADgW0dfNVDx0MA
		EIXdUmllcEupFEDV0FsFNXjfgRGAw1TEiPB1c80QId//tQMksAMAyAxQUybNkCBVVQECZxnoCTjWJMMNZRgWHtMU
		FtLphQg51XdHWCLEhC84AfMnBWApELTiCFDFIYkogHGFzxwz1d6tLlf2MEMN+KF1mqARMduGAnBVCYUIUaYrmg4w
		Q90sEPlWDxgAROF8g4YjOcNaAIISsg0uYBhlDQIC645PAJCp88hUKxn4BzgjhJwABFFVAcAIGdNXWWgyHYIiEDCG
		m1cIELLTQxBwEUtODCCgCglUtcK0DwGR2uttAgJCuYoQYG2mhQ7wkpz7siKXbmAQUUZKgxBwwwFpjDAdQhYUh45R
		bjVgMtIKwIZ3PUwUFcGLRJQIORuoqdH/8EcCIvvvbe+8kBHVzRRB6pkIHDHHN0BAMIpTY3QZ6clQpCC21y5tYKtN
		TsFlpuiKeMUXGpN/F/n2BwglNXPzXvBa9N4G8qXI3twhxgNfdEE8z4CcMTYqnwmcJtMoQLALV5OMcFTMpQDyFeUn
		CAF06hzLKxwoVDLQ8HxAzFmiuIc0HuF5xLogqiR3o7EhQ3UwgSch8yiwy1qODLyL7gc1QeJseLAgbWW7/ipQdE4U
		cHMl9QOzs8tLCK7Ej4YdZRDSIVl+jJ7O7B0LUgwgy7K0j5ZW4M5XFv1YCjAMD5/ABw+YqCC05ChpixwwWyY0c6Zq
		ECD+DiS79awQG+9CUP3C//V4h4CTOkJAPmjYgh+gDANlQWH0wtJmVPMUEU2uG1mJWPB7BghQs8KEFd8GliPFjB7t
		gVF5esAGEKchUHiBepKpjBDy3AQwm2UTVineBMU5zXCbQ2IJjVbhUMrGEraEE09jjjfthpE5AIUYs6gYADkWpQbZ
		5Rgua4wU5u2EZwAFg9DFTPWOIwAX9iVkNXuKAcQkneBOOiCxngxA8D+AwAiEcLN9WgApXwBWco0IHLwOYzE3jDDK
		aoRz0C8EwaIIUf/5VALnYRFkJ5yRA0eD+QyYAHFMBJZ7Ait0ogQUhI8sBpKFAbHtABOULgAXOa4KYyaQB7osQjCs
		YhvgOowoar/6QhGJc3QfW0IC44cEsTknCA5SHBTm+YQxNCdoUaXKAKzEmCH35Apq6AoEzYW+YorWdKE2imhmcQJA
		15cIQEKUgZkAASQzrTALFUgDqyqA2bYGCCuFySAg3YFxQGQKY32CkA9ryeRzHAjv7wIIas8CINWxnBBCVNg/K4wG
		RmiZWkmSVUK6nBkFoAFoZBACwAYAAK4CkW4tTrf9abYkhnNyAy/JOG5eCWB2cxP1kwbwBuAZmdOmAWDjiuAx4IVQ
		7cBgPAxDEJOBjACSowg674jzFsPQE0WYEKmSk1kKyA4EuYxDNlzBQGtYHBqebADw50BQDdwoofOLOQEthJAzMIwP
		823PKGFbWVMR3Igx95IDO58kAVXWylISRIC7xeAAOac4sbzEZYJMBgDh1QZAWSMIPO4KMOfnpDAISggQEkgVdWY4
		wVLZuj8n0NFksdWgTlIaW7ajCZtCBEV2ogi8kQFheTQdLu4giCABBADZ8ZixTbasWjPoeGMjNpD3nGUjJqsEF1mp
		g8mDfHWYitA4lEAQhq5ocLxLErkwGBm1Q22bbmCD/lWwUUVOmKITICucwzRKhgcD94KKM5TbMTANQDCbfMYUQAYF
		tY3PADwwSYrW8l7oEPjODjKQO5X6KACQBgEpCJjh8BeDESOlACHvDNcABoQGAOkAMANKEJ8XGs4Eb//JRxBBeu5f
		2nKyjR3PtBQoKIDAyCEMQBHOwkaRF01EIoQMsvq0cbM8DoMr/LVhZ2AADiwywsDlwT8Q1ReRqUpZTvkYhHEREHgd
		3bjnFSy0iJrgIB+Ok2fiCvAsxgBihz7Da8wOZ0VFYdByDfBQCQuwOgL350hkdLW/CjBoFWBQ0wC15r4sPd5Y6J2/
		QDA0z2FDIRYNEYILRj96gBNmtgAmo4g3/cMABNXwAtLkCBPONGgVCd0VErwK5Y3ICIIzKJLFiBqA8xOZYmKBocDK
		hbNur0phoAEAAd6EATauAHU9wNi447QAWaIASxJEFuHsKJD5FQAIX5KVS2qUWM3FBd/yHUYAArcMGsYKAEYsnLbB
		MA4By4xldx17gD36IMAcTi680M4AIVmEAJONCLV0G4Sx5AgVuKdwGTuwFkbQIAD1TQAja5IQc+7EoSKMJoNyUhCQ
		BEywzKVGglRKHcHRcJCE7VABMEyHAYcEMDMBxCD01MSmLhwU5UcEAmeWAGc5jBM5ASRzfgBGIFwoB2PdXwGdipeo
		uungvGsdMffOubTThsDUzxmSakiAH3w0rIWvBG5XEAAAYfGmfCKeVHuEmRnFEYmTq+axj0HAZCQGYTFg0AU5igMx
		0AAW3F7hmXB2BfboKwB1ZbS2hMJlcqKDedPyO83DTMD7WBRKh+MIEKEP/Apj9wyzb4DRYQqKEA5c78ZJjDgzpMgF
		QBuMAZKgCDRwaGeUKa2FHchMOWsIsOWKFDC4zCJz+AYN5+mEMcvAAWY9fgBJyZT4ECUAF6BaDcWuPKbvuzc6+cgZ
		FXmgW7VDsBXcIQbfJxCNIABic6XAECf0EklzEBxmB+XlAbbzABHNUVM7B7E3AC2rWBGFBu4sAmXOMHeXAFbmETo/
		UWj3IuHnBazbBNyVZHHGAT8QZhZnAFQvAEApFyi+cBWRAHGugFoXIFPxUqFlEnGFAADIBRAcBmbNYBbtAEOPBruL
		V/JlAA+dcVtAB8H6JftfE4bvAEc2YGXVE3bkJxjsJXFqH/MCCAAjngISgQAG3iFjvHWJk3DvkxAfmVOgLiB6sQIJ
		QzAXHhFvcVgEfRAlSVBE8QAF93EBxwcZwhBDL2DJyhXT6naBcoLWLhIW6AAgSwZn3EJ6RwATpWGQfgQS7BDDzzJe
		cDWgnSAnXQASCkQWZQKHRAS0G0O0pTAWpwCQGwaASQhLPGdgUwa4Q3DgfgcurgfCIhTSaAIC/xDLgAMoowjbrgfx
		DAVfJQCLhgAkyEDwyDC+wCQEpQAADkAHAIQMDYWOcYAB5IblrjfFqxf7KjGSAXQlICD/ezjZRwjz8CARf0DPHzDI
		FGi1MHDS1QjgA0A9VTaIWGR42FR+QWUn5U/1LlAFcRpHXwYAiLEI74ww9nAIvhaCg65IJdMiKK8AAVwJBm10zO5I
		t41EfrMCAlxVQ0tAj+xzPos033IDwhggSlkQdSSAcqYAYa5ILNYAZkdD8NkyKO1pAO6ZQLCUAgWAqwwEBKlQ5nYA
		g14F+QOAEhUks74imPBAAQMAjrEResVkHW1z2NFkpw6JBw6ViLNgNrBk0z2VTtYAJDSYbf1BznUgE1ECFg4QZ8AA
		MlUAclwAzQ0D4T0wJVMClfRgEAsIGftJBzCZWZyYQS2WatoBUXsJfC4wHnVgLbSABgwQC4kGWhciUFqIK15JjWFy
		m5cSIB4AUo4AWO5gW5uZu56f+UAMCZ+MFABeZ82CIPXdEBx8UZdRBBGsIBeBAqegABHwQsDOElkTIiZpAFELCBxO
		KUvtmb4QlpEjkO41Vg+0dlKmBhLzED+8JgP+kBQhAHqnFEt+CYAvgrINMMEKBd4rmbjuWfu1lu0MRA1IIKsHAA/x
		c/aNEBt6IwasBSPMMPyPEWfPEL+QkphGAG9dACEOAFBGCbtnkC4UkAARoSpXAER8BAmdVPD/ASheBXAMAXzWECXX
		IQ2DJ4bVIHCIEQE2MBXHKSyOUqaqCbAWqk5EagryBXSvUAWCCN0fGTFIgC2viTZiGBE5AHfMGjFPCjXYJcukMHvm
		mbRtqbJbqbADD/dKakpJulVH6gAn5hBgojo1lwBhPwBDLgAkNQGljAAfc1ACqAB/qAB7jQpbmxlLmDBL7Im0ZKAG
		a6mzMQBWk6OzHzCl1UBX6BEIP1D1lgNjAwBDTApxzgAGIjATSgn1kwDBbQRFKgFoKWqI5aprHam44WqZVFO1DgCi
		rqAmRwqc9JB27gBgCABXjQKAVyWlYgcJEzAx8gDCqgFM8qEIHqBzywSHTQif5ppo1aoo1lppEKADCTCrgaAUcQAb
		taBTcqWG+BBX6wrnjQXTUQB0mwB0wYBWzxCKg6DNLKEC02ImNKpr05Ax/aqFGAph2ACqlALeRqrlpKB+VWDMNKB+
		dq/wYE4BQlAAU9NgghMgQbOwQ8ukT7WEu2GbDiSZe7qa3aGqlRQJGo0E8pqqLnWh2EgAsbKxQJ8R0/mQdoOgi/gA
		fDoBQ8Sgc+FCkycAAl26gmW6aNqgZqoK1oGqkRMK6pcAbkegQPIEw0YAGH0AIbiwUWgLWFQANhiwVREAEjcAQdax
		RFcj+DigxD6wEAsGgkerLaSpdNS7YjQAIRQAKpQK0pSgIksAVYgAV3tQJTYLhbMAVhuwU6QAM6MAIj4AQ64KTNwA
		tZcAssFkvNdrImO7d0+4szkLNlGwIhELVkkKIRMLohkAaSqwKgOgVpIAZLsASwqwM6sAQCIABtILsh0P+xu3A/lz
		tBGQMBKLC0TLtdxcu0xTu3wFkGSzC6JHAESpWiITC7sqsDicsBhpsGt4u7SxAEQZC7uJu7U/AQG7u2mEtGMoAD2m
		W8x6u8apADOJADyIumzSu70Cu9JCC74ru6ibsFYoC73yu+OhAEbYC7bRAEOlC+5osQdzYPfoADOIC8yHuyahDByB
		upIyC7S/C3NHQE1Cu+uMu4NGC4t/u93ysGCbwEBozAUzAEMrCxqNrAEWYuxmTBESzBFLy0OIzDORAFZaDBApAG49
		oKR7C/ISwGIwzACPy9tVu72ysAzjsF6sGxHnAQMJwxSGACODADOKwHOawGeiDGX4wDYoz/w2iqwc4bAroKwrkLvi
		JMA4i7xFFcu3E8AgC8BDqwBSvQs0MwuHxhvupRlCUgv8X7xTkQv148wUsbqTFwu0tgtkdgAqMbwgdcu4Zru3icx9
		dbvQJguMhQxX1MEIEqAwQABPMLAWKMyEuLyKtcvDhwygAAxBvMwUdAAm1cyQJwvZj8xkuQxLF7u0k8BTIwqIaABX
		6BBT1IGgyTEhEsxmqwBogMAa3szKqMyLLsyFGsxtRrwCFswJucwCccBLGrA9u7vWLwyXiAKypQK1K2D1XQATkABB
		BAz3ogz0CAAxDAw2UcwfoMAT8cxNp8xOJ7wgEcBMF8wuRMvecsubZiKy+a/xvsIhAt0GPzTM/03AD63M/73MMZzL
		1CPNDWW7vVS8AIHcWrm7ohgM5TfCvA4AH6cLkrMCkZ3QDzTNMN0ABlLAJmjMMajQP1O7vmHMJqXMdiwNDdG9TX+7
		eja7jJLGHCMHVFMgSPCQRAIAESgNM4jdV1wNX0LL+tfNEl4NFL8AJpkLpqbAGtC6qIu7q1a9QrnbdLfb2gSgtYsL
		EWYAFSvbEdUNVXbdUSYNUNgJhcndFVXdVn7LRArLe3nLoHNJS0wBZYYLhToAMrPQV+e8tzPQWCe7iTHbYWMAU1vQ
		ESsAEfcNUfsAFAcNNW/ddZnZglQG4RYAJQm7fj+rK3ojyP4v9Kk03ZUzCupCvHNBACrvvWwjzZG4DcG+AENoDaZY
		DagG3apO3Xrr0SsI2mlmUCLnsE+AAMlcCqUnArkj0FqYu6o7sEmKzHqisG1Ou8zpsGJDACabC97o3c620DG1AGGx
		AC8B3dFp3V1k2gKcpAILOxSCAFv0AHHjAEhhu75t3ev2y7Kg3A4ivFTpDNArDeU+AEGyC7MWADKSC7aWDaqp3REE
		DiwAkAYKCmB+QCD4AEG0sL4F0rkl3ZtCy7YpDC46y6JS0A4IvjOuDIKxwDMZACyu3IYtAGKRAD643fEtBjWV3Vgm
		3dYGAKB9QwLk7XP9nOQ4C4mZzL3+vLm2zAKGz/1haeu0QeA06g5gdswGIQA2VQBlEABNXdAIicz4KdpitKrS7xEj
		J7Cwre5R/dzT3+xgT8xgFsu0OeuymQAmpeBk7A5gKQ5jaA1RCQmA0gAWYMAXh+ACKhCkxaCEZxCyCkAuL90eLLxC
		IMu93cBus95IMuACEAuZA+6Eq+AQ3w2iuR0f286dft6X5ABo5inMgwQQs+BaeOwJVc2Yce67LuBCzcvSGw4QV8wL
		YOnHpA55uO04kJnCGRCuDjpllFC9sUQVgQx7c76NRe6FPwxj4eAhug6G3QBkO+4ZAevpK+3BJQBzBG5/8NnFFgWW
		dAcSCTVQrCD2A0BJQcwm885pU9/+EYXs5qHgMIrORqruZL3M0eTrDY3u/bvu/AOSDOSAtZZRaBlSAPgLofnQYCLM
		KMa7uELgYW382M7gSN7gTongKtvgQfUAZbre3bvhJ1gOslkCOnIQtHX/IKYhYXUN5CDLs9jrtiELaNy714LPFDvQ
		RpfrtDHgOxvvNYndVgX91c/fFsdrNIb/BZ5QdRwNgp7bghgL2N28YqrfVhfuRE/ro1b+EjMAXTbdhk39X7Dtt58H
		1IX/KHzwF/QbZ6GwJbsAVwT9k0QPKGXs4jgNwW7sgv8OYbPgJlYAM2sOFwLuclbuKAXweWDmMAwBoqlfhRBd7POV
		IHkKIWcLpeG7Y/Sf8HYevEJCwBEXDVpA3n+O3cQAAAfw3YQHD6X50DZI+YqF9uVXD0tYL0lcDOUgAFeTCgZOsCKd
		q60ZZVJDz1Q2ACkBoFO7ADvw/YOJ3KUZ7K+Syd9DzYQW/dPGAGsmAL+0DytkBe14/iQ0cGFwQINDQchBxIHIJIKh
		wydSUAdXUSDRJAQDg4enoQl5k4EBCYOJGOAKZ5PC1ShoaHhEiKKy0XPDwuBwcdeQC7Jio0SC4lVWYcKkhSyUhVUH
		kljpaWOZiboZhqaqKjjwAmPBcXVVUyLWaqLRQUs7cHJgAl8I/cefQdUREmHTz6YFD9YMygQCFzpoMpCSUagAIFJI
		fDhw//G8AD0OHALR4HLnjLA8WgqYSh1EDIoYZAjlAQNOmpQ6BBg3wmSnQwERAKDzAmoOQrEeWgS0wjHTbMMTSHo3
		gfn8WDUGehNRwlZwSYQdVLgAAaTsCBMyYHiqtqqBIgQpYAgRlqcsww+fUqChQYlMR1QJduBbpK4umVqLDEQoXX9G
		Az6+Xs2rVn9XhZfDXA4hMzUGC7GjnA27eWLWPYrKTAXbsVQjtQCKFBHZcuQTWYBhRqycWMA2ymPEOJVgInHOueet
		VKAN8YMmNgQpzJmAJ231RgwCA0gzdvGCR0ebp0aZClcTgcvJiw4cgolFw9QfwE+QBMMFixomT9GysOlFQoM1CAwZ
		j7Y5g/hx4auv8xprkEEmoEquZUStpkAxRrrYGSjRoNYQMbbFXphtllbc1gFWyBAAA7"</span>;

		Bitmap map;
		
		<span style="COLOR: blue">using</span>(MemoryStream stream = <span style="COLOR: blue">new</span> MemoryStream(Convert.FromBase64String(base64)))
		<span style="COLOR: blue">using</span>(FileStream fs = File.Create(<span style="COLOR: maroon">@"C:\tmp\img.gif"</span>)){
		
			map = (Bitmap)Image.FromStream(stream);
				
			map.Save(fs, System.Drawing.Imaging.ImageFormat.Gif);
		}
		
		WL(<span style="COLOR: maroon">"Converted Image Successfully!"</span>);
	}
	
	<span style="COLOR: blue">private</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> WL(<span style="COLOR: blue">string</span> text, <span style="COLOR: blue">params</span> <span style="COLOR: blue">object</span>[] args)
	{
		Console.WriteLine(text, args);	
	}
	
	<span style="COLOR: blue">private</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> RL()
	{
		Console.ReadLine();	
	}
	
	<span style="COLOR: blue">private</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> Break() 
	{
		System.Diagnostics.Debugger.Break();
	}
}</pre>
<p>Slap that little snippet into Snippet Compiler and look at what is 
generated. I actually changed the image to something a little bit friendlier 
than the image I recieved in the email. Enjoy!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[We're back online!]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-25-Were-back-online</link>
            <guid>https://chris.pelatari.com/posts/2005-05-25-Were-back-online</guid>
            <pubDate>Wed, 25 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It seems that there was a major power failure yesterday: at least a few city 
blocks. For those that don't know, a city block in Houston is a pretty big 
area.</p>
<p>Looks like it's fixed for now, so the two of you can go about getting that 
there rss feed :)</p>
<p class="media">[ Currently Playing : Karma Police - Radiohead - OK Computer 
(4:21) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[To those that care...]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-24-to-those-that-care</link>
            <guid>https://chris.pelatari.com/posts/2005-05-24-to-those-that-care</guid>
            <pubDate>Tue, 24 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I.e. Both of you...I've changed the repository structure of <a href="http://PostXING.url123.com/main">PostXING </a>on <a href="http://vaultpub.sourcegear.com">vaultpub </a>to better facilitate 
branching.</p>
<p>These crazy new ideas I've been having are so different from the current 
architecture of PostXING that I have to branch it just in case someone comes to 
me with a nasty bug they found that I just overlooked (this has happened a few 
times already, although not for a while). I don't like having broken software 
with my name on it out in the wild.</p>
<p>Anyways, I thought I would keep tabs on my progress for this on my blog. I 
feel like there is something that I'm missing in the ideas that I'm having, so 
I'm taking this slowly, step by step. To be honest, I've always had this idea in 
my head for PostXING. It's why it's built the way it is - I've left 
extensibility points open at the expense of writing a bit more code on the 
onset. When I'm done, a developer that has a good handle on the API they want to 
post to will be able to author a plugin/provider, drop it into a subdirectory 
off of the application root, and be able to use PostXING as kind of a shell to 
post to their custom API.</p>
<p class="media">[ Currently Playing : Sad Statue - System of a Down - Mezmerize 
(3:25) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ever looked back in time?]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-23-ever-looked-back-in-time</link>
            <guid>https://chris.pelatari.com/posts/2005-05-23-ever-looked-back-in-time</guid>
            <pubDate>Mon, 23 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been doing just that on my blogs - way back to when <a href="http://weblogs.asp.net/cfrazier">this one </a>was hosted on 
dotnetweblogs.com.</p>
<p>Geez, I was such a dork...okay, maybe I'm still a dork. But 
that's a <strong>maybe.</strong> I admit nothing.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A couple of PostXING ideas]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-23-a-couple-of-postxing-ideas</link>
            <guid>https://chris.pelatari.com/posts/2005-05-23-a-couple-of-postxing-ideas</guid>
            <pubDate>Mon, 23 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Thanks to <a href="http://weblogs.asp.net/wallym">Sir Wally</a> for the first 
one...it's simple really, Wally just asked if I would cache a list of the 
categories for each configured blog to aid with offline posting. I pretty much 
always use <a href="http://PostXING.url123.com/main">PostXING </a>while online, 
so this particular feature didn't even cross my mind. As a side effect, this 
will let me add categories to posts off of my CS blog which gives a nice little 
error when I try to get the comments list currently. Good one, Wally.</p>
<p>The other thing is that I want to expand the abilities of <em>where</em> 
PostXING can post - not just using the Metablog API, but being able to use 
different services. I don't want to use the "provider model" because I 
don't think that particular pattern fits what I have in my head to make 
this work. Close, as a matter of fact, very close, but not exactly what I'm 
looking for.</p>
<p>The basic idea that I have now is based on the fact that a lot of the 
functionality that PostXING uses now already sits in separate dll's in the 
application root. I think that I can factor out the API specific functionality 
into kind of a plugin - thereby expanding the end applications that can be 
posted to from PostXING. I haven't hashed out all of the details yet. This is 
still a brainstorm at this point. However it works out, it's going to be a major 
version change. </p>
<p>If this can work out the way I think it can, this could be a very cool 
addition to PostXING. Very cool indeed.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PSKit: Replacing that pesky Lorem Ipsum text with dynamic content]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-18-pskit-replacing-that-pesky-lorem-ipsum-text-with-dynamic-content</link>
            <guid>https://chris.pelatari.com/posts/2005-05-18-pskit-replacing-that-pesky-lorem-ipsum-text-with-dynamic-content</guid>
            <pubDate>Wed, 18 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>The Personal Website Starter Kit is a great resource for getting up and
running with asp.net 2.0 beta. I've been using it to check out some features
while waiting for other projects to get to a point where I feel like I can
contribute more than just criticism (sorry y'all 😃 That said, the default.aspx
page comes with a FormsView that rotates pictures from your PSKit albums, but
everything else is static content! That is, you're greeted on the front page
with something like:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <h3>Welcome to my Website!</h3>
  <p>On this site you will find lorem ipsum dolor sit amet...</p></blockquote>
<p>Earlier, I had tried using one of the new data controls in asp.net -
namely the FormView. I ran into a few issues with this control, mostly having to
do with having to know what ID I was using in the database to set or edit the
FormView's contents - I'm sure I could have worked out a way to set the ID to
use in some clever way, but then I looked at the actual content that comes stock
with the PSKit and it hit me...</p>
<p>A DataList.</p>
<p>It's already separated by a horizontal rule - all I really need is to
bind a good old DataList to a couple of database entries and I've got something
that I can update, oh, say twice a year or whatever. heh.</p>
<p>I used a similar table structure to the one from before:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p dir="ltr"><u>Content<br /></u>ContentID<br />Heading<br />Content<br />IsVisible</p></blockquote>
<p>I had to actually write code (gasp!) to get it working the way I
wanted it to, but it was pretty stock stuff thankfully. I just set up a
SqlDataSource pointing to this table's CRUD procedures:</p>
<pre>                
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:SqlDataSource</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">SqlDataSource1</span>" <br />                  <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                  <span style="COLOR: red">ConnectionString</span>="<font style="BACKGROUND-COLOR: yellow" color="black">&lt;</font><span style="COLOR: dodgerblue"><font style="BACKGROUND-COLOR: yellow" color="black">%</font>$ ConnectionStrings:Personal <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font></span>" <br />                  <span style="COLOR: red">ProviderName</span>="<span style="COLOR: dodgerblue">System.Data.SqlClient</span>"
                  <span style="COLOR: red">SelectCommand</span>="<span style="COLOR: dodgerblue">GetContents</span>" <br />                  <span style="COLOR: red">SelectCommandType</span>="<span style="COLOR: dodgerblue">StoredProcedure</span>" <br />                  <span style="COLOR: red">DeleteCommand</span>="<span style="COLOR: dodgerblue">RemoveContent</span>" <br />                  <span style="COLOR: red">DeleteCommandType</span>="<span style="COLOR: dodgerblue">StoredProcedure</span>"<br />                  <span style="COLOR: red">InsertCommand</span>="<span style="COLOR: dodgerblue">AddContent</span>" <br />                  <span style="COLOR: red">InsertCommandType</span>="<span style="COLOR: dodgerblue">StoredProcedure</span>"<br />                  <span style="COLOR: red">UpdateCommand</span>="<span style="COLOR: dodgerblue">EditContent</span>"   <br />                  <span style="COLOR: red">UpdateCommandType</span>="<span style="COLOR: dodgerblue">StoredProcedure</span>"<span style="COLOR: blue">&gt;</span>
		  <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">DeleteParameters</span><span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Content_ID</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">Int32</span>" /<span style="COLOR: blue">&gt;</span>
		  <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">DeleteParameters</span><span style="COLOR: blue">&gt;</span>
		  <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">UpdateParameters</span><span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Content_ID</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">Int32</span>" /<span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Heading</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">String</span>" /<span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Content</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">String</span>" /<span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">IsVisible</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">Boolean</span>" /<span style="COLOR: blue">&gt;</span>
		  <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">UpdateParameters</span><span style="COLOR: blue">&gt;</span>
		  <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">InsertParameters</span><span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Direction</span>="<span style="COLOR: dodgerblue">InputOutput</span>" <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Content_ID</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">Int32</span>" /<span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Heading</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">String</span>" /<span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">Content</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">String</span>" /<span style="COLOR: blue">&gt;</span>
		    <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Parameter</span> <span style="COLOR: red">Name</span>="<span style="COLOR: dodgerblue">IsVisible</span>" <span style="COLOR: red">Type</span>="<span style="COLOR: dodgerblue">Boolean</span>" /<span style="COLOR: blue">&gt;</span>
		  <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">InsertParameters</span><span style="COLOR: blue">&gt;</span>
                <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:SqlDataSource</span><span style="COLOR: blue">&gt;</span></pre>
<p>Then the DataList itself:</p>
<pre>			<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:DataList</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">DataList1</span>" <br /><span style="COLOR: red">                          runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                          <span style="COLOR: red">DataSourceID</span>="<span style="COLOR: dodgerblue">SqlDataSource1</span>" <br />                          <span style="COLOR: red">Width</span>="<span style="COLOR: dodgerblue">100%</span>" <br />                          <span style="COLOR: red">OnCancelCommand</span>="<span style="COLOR: dodgerblue">DataList1_CancelCommand</span>" <br />                          <span style="COLOR: red">OnEditCommand</span>="<span style="COLOR: dodgerblue">DataList1_EditCommand</span>" <br />                          <span style="COLOR: red">OnUpdateCommand</span>="<span style="COLOR: dodgerblue">DataList1_UpdateCommand</span>" <br />                          <span style="COLOR: red">OnDeleteCommand</span>="<span style="COLOR: dodgerblue">DataList1_DeleteCommand</span>"<br />                          <span style="COLOR: red">OnItemCommand</span>="<span style="COLOR: dodgerblue">DataList1_ItemCommand</span>"<br />                          <span style="COLOR: red">RepeatLayout</span>="<span style="COLOR: dodgerblue">Flow</span>"  <span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">ItemTemplate</span><span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Panel</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">contentPanel</span>" <br />                                  <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                  <span style="COLOR: red">Visible</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Eval("<span style="COLOR: dodgerblue">IsVisible</span>") <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>'<span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">h3</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Label</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">HeadingLabel</span>" <br />                                              <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                              <span style="COLOR: red">Text</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Eval("<span style="COLOR: dodgerblue">Heading</span>") <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>'<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:Label</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">h3</span><span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Label</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">ContentLabel</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">Text</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Eval("<span style="COLOR: dodgerblue">Content</span>") <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>'<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:Label</span><span style="COLOR: blue">&gt;<br />                                        </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:HiddenField </span><span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">hdnContentID</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">Value</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Eval("<span style="COLOR: dodgerblue">Content_ID</span>") <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>' /<span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:Panel</span><span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Panel</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">Panel1</span>" <br />                                          <span style="COLOR: red">Visible</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># User.IsInRole("<span style="COLOR: dodgerblue">Administrators</span>"<span style="COLOR: dodgerblue">) <font color="black"><font style="BACKGROUND-COLOR: yellow">%&gt;</font>'</font> <br />                                          <font color="red">runat</font><font color="black">=</font></span>"<span style="COLOR: dodgerblue">server</span>" <span style="COLOR: red">Height</span>="<span style="COLOR: dodgerblue">50px</span>" <span style="COLOR: red">Width</span>="<span style="COLOR: dodgerblue">125px</span>"<span style="COLOR: blue">&gt;</span>
					  <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:LinkButton</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">LinkButton3</span>" <br />                                            <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                            <span style="COLOR: red">CommandName</span>="<span style="COLOR: dodgerblue">edit</span>"<span style="COLOR: blue">&gt;</span>Edit<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:LinkButton</span><span style="COLOR: blue">&gt;</span><font color="red">&amp;nbsp;&amp;nbsp;<br />                                          </font><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:LinkButton</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">LinkButton4</span>" <br />                                            <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                            <span style="COLOR: red">CommandName</span>="<span style="COLOR: dodgerblue">delete</span>"<span style="COLOR: blue">&gt;</span>Delete<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:LinkButton</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:Panel</span><span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">ItemTemplate</span><span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">SeparatorTemplate</span><span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">hr</span> /<span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">SeparatorTemplate</span><span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">EditItemTemplate</span><span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:TextBox</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">txtHeading</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">Text</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Bind("<span style="COLOR: dodgerblue">Heading</span>") <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>'<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:TextBox</span><span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:CheckBox</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">chkVisible</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">Checked</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Bind("<span style="COLOR: dodgerblue">IsVisible</span>"<span style="COLOR: dodgerblue">) <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>' <br />                                          <font color="red">Text</font><font color="black">=</font></span>"<span style="COLOR: dodgerblue">Visible</span>" /<span style="COLOR: blue">&gt;<br /></span>
					ContentID:<br />                                        <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:Label</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">lblContentID</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">Text</span>='<font style="BACKGROUND-COLOR: yellow" color="black">&lt;%</font># Eval("<span style="COLOR: dodgerblue">Content_ID</span>") <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>'<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:Label</span><span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:TextBox</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">txtContent</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">Columns</span>="<span style="COLOR: dodgerblue">40</span>" <span style="COLOR: red">Rows</span>="<span style="COLOR: dodgerblue">20</span>" <br />                                          <span style="COLOR: red">Text</span>='<font style="BACKGROUND-COLOR: yellow">&lt;%</font># Bind("<span style="COLOR: dodgerblue">Content</span>"<span style="COLOR: dodgerblue">) <font style="BACKGROUND-COLOR: yellow" color="black">%&gt;</font>'
					  <font color="red">TextMode</font><font color="black">=</font></span>"<span style="COLOR: dodgerblue">MultiLine</span>"<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:TextBox</span><span style="COLOR: blue">&gt;<br />                                        </span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span> /<span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">br</span> /<span style="COLOR: blue">&gt;</span>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:LinkButton</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">LinkButton1</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">CommandName</span>="<span style="COLOR: dodgerblue">update</span>"<span style="COLOR: blue">&gt;</span>Update<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:LinkButton</span><span style="COLOR: blue">&gt;</span><font color="red">&amp;nbsp;&amp;nbsp;</font>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:LinkButton</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">LinkButton2</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">CausesValidation</span>="<span style="COLOR: dodgerblue">False</span>" <br />                                          <span style="COLOR: red">CommandName</span>="<span style="COLOR: dodgerblue">cancel</span>"<span style="COLOR: blue">&gt;</span>Cancel<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:LinkButton</span><span style="COLOR: blue">&gt;</span><font color="red">&amp;nbsp;&amp;nbsp;</font>
					<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">asp:LinkButton</span> <span style="COLOR: red">ID</span>="<span style="COLOR: dodgerblue">LinkButton5</span>" <br />                                          <span style="COLOR: red">runat</span>="<span style="COLOR: dodgerblue">server</span>" <br />                                          <span style="COLOR: red">CommandName</span>="<span style="COLOR: dodgerblue">add</span>"<span style="COLOR: blue">&gt;</span>Create as New<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:LinkButton</span><span style="COLOR: blue">&gt;</span>
				<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">EditItemTemplate</span><span style="COLOR: blue">&gt;</span>
			<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">asp:DataList</span><span style="COLOR: blue">&gt;</span></pre>
<p>Several points of interest in the DataList declaration:</p>
<ul>
  <li>
  <div>No more pesky DataBinder.Eval(Container.DataItem, "field") syntax - much 
  leaner and meaner Eval() syntax for one-way binding.</div>
  </li><li>
  <div>Two-way binding happens via the Bind() syntax - notice that Bind() only 
  happens in the EditItemTemplate, since the ItemTemplate is readonly.</div>
  </li><li>
  <div>I'm only showing the edit/delete buttons based on what role the current 
  user is in. I wasn't sure if this (# 
  User.IsInRole("Administrators")) would work at first because it's 
  deceptively simple. But yeah, it does work. Works great!</div>
  </li><li>
  <div>I did most of this visually - there is no longer a reason to fear the 
  designer in asp.net (thanks Venus team!)</div>
  </li><li>
  <div>I had to disable Page input validation because I want the Content to 
  contain html, and by default, it don't like that.</div></li></ul>
<p>As for the codebehind, I guess I could have refactored it a little bit, but
since this is not a mission-critical application (it is just a personal site,
after all!) I just went the easy route and duplicated a lot of code. Probably
the best thing to do would be to handle just the ItemCommand because there is no
default handler for add and use a clever mix of a switch statement and
defaulting the value of EditItemIndex to -1. But this isn't about best
practices, it's about getting the stuff to work, ya know? Anyway, here's the
code:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> 	<span style="COLOR: blue">protected</span> <span style="COLOR: blue">void</span> DataList1_CancelCommand(<span style="COLOR: blue">object</span> source, DataListCommandEventArgs e)
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> 	{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 		<span style="COLOR: blue">this</span>.DataList1.EditItemIndex = -<span style="COLOR: maroon">1</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 		<span style="COLOR: blue">this</span>.DataList1.DataBind();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 	}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 	<span style="COLOR: blue">protected</span> <span style="COLOR: blue">void</span> DataList1_UpdateCommand(<span style="COLOR: blue">object</span> source, DataListCommandEventArgs e)
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 	{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 		<span style="COLOR: blue">string</span> heading = ((TextBox)e.Item.FindControl(<span style="COLOR: maroon">"txtHeading"</span>)).Text;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 		<span style="COLOR: blue">string</span> content = ((TextBox)e.Item.FindControl(<span style="COLOR: maroon">"txtContent"</span>)).Text;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 		<span style="COLOR: blue">string</span> isvisible = ((CheckBox)e.Item.FindControl(<span style="COLOR: maroon">"chkVisible"</span>)).Checked.ToString();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 		<span style="COLOR: blue">string</span> id = ((Label)e.Item.FindControl(<span style="COLOR: maroon">"lblContentID"</span>)).Text;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 13</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.UpdateParameters[<span style="COLOR: maroon">"Content_ID"</span>].DefaultValue = id;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 14</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.UpdateParameters[<span style="COLOR: maroon">"Heading"</span>].DefaultValue = heading;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 15</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.UpdateParameters[<span style="COLOR: maroon">"Content"</span>].DefaultValue = content;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 16</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.UpdateParameters[<span style="COLOR: maroon">"IsVisible"</span>].DefaultValue = isvisible;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 17</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 18</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.Update();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 19</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 20</span> 		<span style="COLOR: blue">this</span>.DataList1.EditItemIndex = -<span style="COLOR: maroon">1</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 21</span> 		<span style="COLOR: blue">this</span>.DataList1.DataBind();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 22</span> 	}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 23</span> 	<span style="COLOR: blue">protected</span> <span style="COLOR: blue">void</span> DataList1_DeleteCommand(<span style="COLOR: blue">object</span> source, DataListCommandEventArgs e)
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 24</span> 	{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 25</span> 		<span style="COLOR: blue">string</span> id = ((HiddenField)e.Item.FindControl(<span style="COLOR: maroon">"hdnContentID"</span>)).Value;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 26</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.DeleteParameters[<span style="COLOR: maroon">"Content_ID"</span>].DefaultValue = id;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 27</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 28</span> 		<span style="COLOR: blue">this</span>.SqlDataSource1.Delete();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 29</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 30</span> 		<span style="COLOR: blue">this</span>.DataList1.EditItemIndex = -<span style="COLOR: maroon">1</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 31</span> 		<span style="COLOR: blue">this</span>.DataList1.DataBind();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 32</span> 	}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 33</span> 	<span style="COLOR: blue">protected</span> <span style="COLOR: blue">void</span> DataList1_ItemCommand(<span style="COLOR: blue">object</span> source, DataListCommandEventArgs e)
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 34</span> 	{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 35</span> 		<span style="COLOR: blue">switch</span> (e.CommandName)
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 36</span> 		{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 37</span> 			<span style="COLOR: blue">case</span> <span style="COLOR: maroon">"add"</span>:
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 38</span> 				<span style="COLOR: blue">string</span> heading = ((TextBox)e.Item.FindControl(<span style="COLOR: maroon">"txtHeading"</span>)).Text;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 39</span> 				<span style="COLOR: blue">string</span> content = ((TextBox)e.Item.FindControl(<span style="COLOR: maroon">"txtContent"</span>)).Text;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 40</span> 				<span style="COLOR: blue">string</span> isvisible = ((CheckBox)e.Item.FindControl(<span style="COLOR: maroon">"chkVisible"</span>)).Checked.ToString();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 41</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 42</span> 				<span style="COLOR: blue">this</span>.SqlDataSource1.InsertParameters[<span style="COLOR: maroon">"Heading"</span>].DefaultValue = heading;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 43</span> 				<span style="COLOR: blue">this</span>.SqlDataSource1.InsertParameters[<span style="COLOR: maroon">"Content"</span>].DefaultValue = content;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 44</span> 				<span style="COLOR: blue">this</span>.SqlDataSource1.InsertParameters[<span style="COLOR: maroon">"IsVisible"</span>].DefaultValue = isvisible;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 45</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 46</span> 				<span style="COLOR: blue">this</span>.SqlDataSource1.Insert();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 47</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 48</span> 				<span style="COLOR: blue">this</span>.DataList1.EditItemIndex = -<span style="COLOR: maroon">1</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 49</span> 				<span style="COLOR: blue">this</span>.DataList1.DataBind();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 50</span> 				<span style="COLOR: blue">break</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 51</span> 		}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 52</span> 	}</pre>
<p>This is the quickest way I could figure out to make things work, and yeah, it
does work. So, there you have it - even though there are only two items
currently in the table, it's very easy to add content via in-place editing and
change what is currently there as well. You can view it live over at <a href="http://www.bluefenix.net">www.bluefenix.net</a>.</p>
<p class="media">[ Currently Playing : Voices - Godsmack - Other Side (3:44) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[On Community Support   give and you shall recieve]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-12-on-community-support---give-and-you-shall-recieve</link>
            <guid>https://chris.pelatari.com/posts/2005-05-12-on-community-support---give-and-you-shall-recieve</guid>
            <pubDate>Thu, 12 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I use Azureus as my bittorrent client. It has this nifty feature that is 
similar to the Updater Application Block that will automatically check for and 
download updates on startup of the application. The only downside for me is that 
since I was running JRE 1.4, and after a little battle with my wireless router, 
I could contact trackers okay, but not peers. </p>
<p>Balls.</p>
<p>So I look around the program to see what I can see. Oh look! There's an irc 
client that is loaded as a plugin! I haven't been on an irc channel since like 
'98 or '99, but it can't have changed that much, right? /join, /msg, yeah, I 
think I'm good to go. </p>
<p>So I hop on the channel, fully expecting some random bs to be flying around 
like it used to be. How wrong I was. Myself along with about 4 or 5 others 
having issues with azureus got coached thru getting azureus running like a 
champ. In particular, two people helped me not only get az up and running 
correctly again, but also coached me on getting it set to its optimal settings 
for my cable internet link at home.</p>
<p>I'd like to thank martouf5 (no link given) and <a href="http://www.20six.co.uk/PhilKC">PhilKC</a> for being such a big help 
with my n00b azureus hurdles. A couple of things that I learned thru this:</p>
<ul>
  <li>The channel has a very helpful, friendly tone - this was even true when I 
  returned later to ask permission to use these guys' nicks on my blog, so it 
  wasn't a fluke afaict. 
  </li><li>You can test your connection speed on <a href="http://www.dslreports.com">www.dslreports.com</a> or <a href="http://www.testmy.net">www.testmy.net</a> You gotta dig a little bit for 
  the one on dslreports, but they both give you pretty much the same 
  information. 
  </li><li>Installing the JRE v1.5 does not uninstall previous versions. It's been a 
  while since I've done any kind of Java development, but I wonder if this is 
  because they have a SxS story like there is with the .NETfx? If so, there must 
  be a way to tell a program which runtime to use... 
  </li><li>There is a bot (AzBot) on the channel (irc.freenode.net, #azureus-users) 
  that will tell you the optimal settings to use with azureus by typing a 
  command like /msg AzBot upspeed 5008. I find that simply incredible. And 
  incredibly useful.</li></ul>
<p>I was told by martouf5 that the motto of bittorrent is "give and you shall 
receive" - he said that was pretty much the attitude of this particular channel, 
and they all volunteer and help out people as they can. Judging from the 
conversations that I saw briefly, they get pretty much the same questions over 
and over, so I guess that helps in its way. He also humbly claimed that he was 
not one of the channel's "heavyweights" - that there were others there that 
helped a lot more than he does - but he helped <strong>me</strong> darnit, so he 
gets the credit he deserves here. PhilKC is actually what martouf5 would call a 
"heavyweight" and they both helped me when I needed it...so thanks, y'all.</p>
<p class="media">[ Currently Playing : Right Here, Right Now - Fatboy Slim - 
You've Come a Long Way, Baby (6:27) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: Announcing Subtext, A Fork Of .TEXT For Your Blogging Pleasure]]></title>
            <link>https://chris.pelatari.com/posts/2005-05-05-re-announcing-subtext-a-fork-of-text-for-your-blogging-pleasure</link>
            <guid>https://chris.pelatari.com/posts/2005-05-05-re-announcing-subtext-a-fork-of-text-for-your-blogging-pleasure</guid>
            <pubDate>Thu, 05 May 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://haacked.com/archive/2005/05/04/2953.aspx" target="_blank" rel="noreferrer">Awesome.</a> I had a
feeling I was going to see something like this sooner or
later.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PSKit - FormView initial thoughts]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-29-PSKit-FormView-initial-thoughts</link>
            <guid>https://chris.pelatari.com/posts/2005-04-29-PSKit-FormView-initial-thoughts</guid>
            <pubDate>Fri, 29 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://bluefenix.net/">I've been playing with the Personal Website 
Starter Kit a little bit lately</a>. One thing that I didn't like about it from 
the start was that the content in the default.aspx was largely static, so I set 
out to make it a little more dynamic. After a little digging in the <a href="http://beta.asp.net/QUICKSTARTV20/aspnet/doc/ctrlref/data/formview.aspx">whidbey 
quickstarts</a> I decided that a FormView <strike>would 
be</strike> looked like the way to go.</p>
<p>I'm trying to keep any modifications simple, so I created a really simple 
table that would cover the very basic needs of the sections that are shown 
on the default.aspx:</p>
<p><u>Content<br /></u>ContentID<br />Heading<br />Content<br />IsVisible</p>
<p>I then created the basic CRUD procedures that would go with this table, 
dropped a FormView onto the default.aspx, and created a SqlDataSource to supply 
it with data. Now, let me say that it is very...what's the word? liberating? to 
be able to do most of the work in the designer without worrying about the 
designer nuking stuff. It's almost there. One thing that I thought was missing 
was the ability to specify one of the connectionStrings from the web.config file 
as the connection string source - you've got to switch to source view to do that 
(afaict). Also, the friggin thing doesn't want to work unless I supply a 
DefaultValue for each &lt;asp:ControlParameter/&gt; in the markup - so what 
happens when my ID changes?</p>
<p>One other thing that I'd like to see (I know, give an inch, take a mile:) 
would be the ability to use the same SqlDataSource for many FormViews. As the 
default.aspx is laid out now, there are 3, maybe 4 areas that would be good 
candidates for being populated from the <u>Content</u> table outlined above. So 
if I had FormView2, FormView3, and FormView4, I would like to associate them all 
with the same SqlDataSource and vary the output based on a different ContentID 
for each. Right now, it seems like there is a 1:1 mapping between each 
SqlDataSource and FormView (as the ControlParameter has a ControlID associated 
with it.) Maybe I should try using a different type of parameter? </p>
<p>More to come...I'll get this eventually :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ObjectDataSource goodness.]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-25-ObjectDataSource-goodness</link>
            <guid>https://chris.pelatari.com/posts/2005-04-25-ObjectDataSource-goodness</guid>
            <pubDate>Mon, 25 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Since there are probably going to be a lot of posts about all things 
Whidbey soon, as people get more and more chance to play with things, I've 
decided to throw in my two cents about a really cool piece of functionality that 
I recently used.</p>
<p>ObjectDataSource - too cool, I've been waiting for something like this for a 
while. This is more my style than using stinkin' DataSets. You can see what I 
did at <a href="http://bluefenix.net/projects.aspx">bluefenix.net</a> . I 
built it based off of the Personal Site Starter Kit that comes with vwd on up, 
so there's still a lot of Lorem Ipsum text in there. Well, pretty much the whole 
site is Lorem Ipsum text right now, except for the Projects.aspx page.</p>
<p>The page consists of two DataLists, an ObjectDataSource and a SqlDataSource. 
For the ObjectDataSource, all I did was add a web reference to the website and 
point the SELECT part of the datasource to the method that had the info that I 
wanted to display. That worked off my local machine perfectly, but I needed to 
go thru a proxy at the host to make the webservice work correctly. Getting this 
working was a simple matter of creating a wrapper to the webmethod that included 
adding proxy info to the webservice stub class before calling the webmethod. 
Changing the ObjectDataSource's SELECT section to use the new class that was 
dropped into App_Code got everything working, locally and in production!</p>
<p>Very cool, indeed.</p>
<p class="media">[ Currently Playing : Imagine - A Perfect Circle - eMOTIVe (4:48) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: Digital Pontification - Podcast Show Notes (4/21)]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-21-RE-Digital-Pontification-Podcast-Show-Notes</link>
            <guid>https://chris.pelatari.com/posts/2005-04-21-RE-Digital-Pontification-Podcast-Show-Notes</guid>
            <pubDate>Thu, 21 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I want to second Jason's nomination (below in bold). This morning I was trying to figure out how to port Sql Express data to Sql Server 2000, and Wally was a big help in getting me there. I got it done, btw. 😃</p>
<p>So, thank you <a href="http://weblogs.asp.net/wallym/" target="_blank" rel="noreferrer">Sir Wally</a>!</p>
<blockquote><a href="http://66.33.214.167/podcasts/dp04212005.mp3"><img src="http://www.kuam.com/archives/podcasts/images/podcast-kuam.gif" border="0" /></a><br /><font size="1"><b><a href="http://66.33.214.167/podcasts/dp04212005.mp3">Download this podcast</a></b></font><br /><br />Topics discussed:<br />
<ul>
<li>So today's that "420" thing in the mainland, huh? 
</li><li>Real-time argument with my co-worker if today is Bob Marley's birthday 
</li><li>I'm back on the King Car Iced Tea 
</li><li>You want to hear me open a drink?  What the hell is wrong with you people? 
</li><li>Thanks to new friends for setting me straight on World Curling Championships 
</li><li>Do Microsoft jockeys not know what podcasting really is? 
</li><li><strong>My good buddy Wally McClure deserves to be knighted</strong> 
</li><li>I love Benny Hill, but I never really got Monty Python 
</li><li>Public school kids just showed up and excpected a tour of KUAM's station 
</li><li>The downside to podcasting: show contents can't be indexed by search engines&amp; yet 
</li><li>I want to know how you're accessing my podcasts (RSS aggregators, OS, PC/Mac, do you get it off my blog, etc.) 
</li><li>I get &gt; 10x more traffic from RSS aggregators than over the web for my blog 
</li><li>Have you ever copied something on one PC and tried pasting it on another PC?  I did.  Duh.<br /></li></ul>
<ul></ul>
<ul></ul><font size="1"><b><a href="http://www.kuam.com/archives/podcasts/podcast.xml">Subscribe to my podcast</a></b></font><img height="1" src="http://weblogs.asp.net/jasonsalas/aggbug/403623.aspx" width="1" /></blockquote>
<p><i>[Via <a href="http://weblogs.asp.net/jasonsalas/archive/2005/04/21/403623.aspx">Jason Salas' WebLog</a>]</i></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[CS::Blogs: allowing anonymous comments]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-19-CSBlogs-allowing-anonymous-comments</link>
            <guid>https://chris.pelatari.com/posts/2005-04-19-CSBlogs-allowing-anonymous-comments</guid>
            <pubDate>Tue, 19 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I don't know if this will post with the source, but I've got this link that 
may save someone the trouble of searching CS forums for an answer: <a href="http://communityserver.org/forums/479025/ShowPost.aspx">http://communityserver.org/forums/479025/ShowPost.aspx</a></p>
<p>I was wondering why I hadn't been getting any comments lately. Mostly because 
nobody really reads this blog, but even for those other couple of you that are 
subscribed - you couldn't leave a comment without registering!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: ObjectDock]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-15-RE-ObjectDock</link>
            <guid>https://chris.pelatari.com/posts/2005-04-15-RE-ObjectDock</guid>
            <pubDate>Fri, 15 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>Who else out there likes a dock better than the standard windows taskbar? I 
  have been using <a href="http://www.stardock.com/">StarDock</a>'s <a href="http://www.stardock.com/products/objectdock/">ObjectDock</a> for a 
  few weeks now and I think I'm sold. I have hidden my taskbar and I only run a 
  single visible dock at the bottom center of my screen. </p>
  <p><img alt="objectdock image" src="http://puzzleware.net/images/objectdock.png" /></p>
  <p>&lt;snip/&gt;</p><img height="1" src="http://weblogs.asp.net/whaggard/aggbug/400456.aspx" width="1" /></blockquote>
<p><i>[Via <a href="http://weblogs.asp.net/whaggard/archive/2005/04/14/400456.aspx">Wes' 
Puzzling Blog</a>]</i> </p>
<p>Big smile on my face from this one - I recognize the plainer looking icon in 
the picture above. I knew that Wes was running PostXING (heck, his <a href="http://puzzleware.net/codehtmler/">CodeHTMLer </a>is a big part of it) but 
it's really cool to see it really there, as one of the few programs he 
needs "docked". </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Goodbye, Lynn]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-09-Goodbye-Lynn</link>
            <guid>https://chris.pelatari.com/posts/2005-04-09-Goodbye-Lynn</guid>
            <pubDate>Sat, 09 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>One of my coworkers, Lynn Coyle, was found dead in his house this morning. 
</p>
<p>Lynn had diabetes. He was kind of an odd character, but he was a good person. 
I often joked around with him in the office - he had a strange sense of humor, 
but we got along pretty well.</p>
<p>I knew him for a little over 3 years, and in that time I learned a few things 
about him: he was a good geophysicist, with a specialty in borehole research. He 
served in the army when he was younger. He doesn't have much family left. He 
took care of his neighbors. For me, personally, he was there to talk about the 
things that he knew and he taught me lots about the oil &amp; gas industry.</p>
<p>Rest in peace, Lynn, you will be missed.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New PostXING release]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-08-New-PostXING-release</link>
            <guid>https://chris.pelatari.com/posts/2005-04-08-New-PostXING-release</guid>
            <pubDate>Fri, 08 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've added a small usability feature based on some <a href="http://blog.lotas-smartman.net/archive/2005/03/15/11201.aspx">recent 
feedback</a>.</p>
<p>Now, from the Tools -&gt; Options dialog, you can optionally set whether you 
would like to automatically create a new post when you hit Post or Post &amp; 
Publish. I also made some minor UI consistency changes, and removed a 
superfluous message that showed up in the options dialog in the last release 
(oops :)</p>
<p>So, go grab the new <a href="http://PostXING.url123.com/main">PostXING</a>. 
Enjoy.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Little Tony]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-06-Little-Tony</link>
            <guid>https://chris.pelatari.com/posts/2005-04-06-Little-Tony</guid>
            <pubDate>Wed, 06 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I went to go visit with my little (2 1/2 mos) nephew Tony tonight. Here's a 
couple of pics I snapped on my phone:</p>
<p><img src="/assets/images/04-05-05_2246.jpg" /></p>
<p><img src="/assets/images/04-05-05_2242.jpg" /></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: We're back!]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-02-RE-Were-back</link>
            <guid>https://chris.pelatari.com/posts/2005-04-02-RE-Were-back</guid>
            <pubDate>Sat, 02 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p>Well, I woke up this morning and found myself back in Roswell, GA. It seems 
  that the <a href="googlecms" target="_self">Google trip</a> must have been a 
  dream. </p>
  <p>Don't you just love April Fools Day <a href="http://weblogs.asp.net/wallym/" target="_self">Wally</a>?</p>
  <p>But thanks for the congratulations from a few friends and <a href="http://evitt.net/blog/archive/2005/04/01/357.aspx" target="_self">bloggers</a> (thanks <a href="http://evitt.net/blog/" target="_self">Josh</a>). I appreciate your thought that it might have been 
  possible!</p></blockquote>
<p><i>[Via <a href="http://www.CoverYourASP.NET/AprilFools2005">The 
CoverYourASP.NET Blog </a>]</i> </p>
<p>I got got. Good one, James. And yes, I thought it was possible, too - Dozing 
Dogs is a pretty good CMS.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Re: Here we go!]]></title>
            <link>https://chris.pelatari.com/posts/2005-04-01-Re-Here-we-go</link>
            <guid>https://chris.pelatari.com/posts/2005-04-01-Re-Here-we-go</guid>
            <pubDate>Fri, 01 Apr 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Congrats, James! Always good to see someone you know catch a deal like 
this. Too bad there are no comments for me to tell him in his blog :P</p>
<p>See for yourself: "<a href="http://www.CoverYourASP.NET/GoogleCMS">Here 
we go!</a>" on <a href="http://www.CoverYourASP.NET/blogs">The CoverYourASP.NET 
Blog </a>. </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Running WebMatrix with a Whidbey Beta installed]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-26-Running-WebMatrix-with-a-Whidbey-Beta-installed</link>
            <guid>https://chris.pelatari.com/posts/2005-03-26-Running-WebMatrix-with-a-Whidbey-Beta-installed</guid>
            <pubDate>Sat, 26 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I took a chance and installed a CTP of Whidbey on my laptop. Thing is, I
still use WebMatrix from time to time for POC stuff for v1.x of asp.net.</p>
<p>Problem is, when you run the Cassini webserver from webmatrix, it picks up
the latest version of the .netfx and will give you different errors based on
which version is installed. To get around this and ensure that the WebServer.exe
runs on version 1.1 of the .netfx, simply add a WebServer.exe.config file with
the following contents:</p>
<pre><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">configuration</span><span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">startup</span><span style="COLOR: blue">&gt;</span>
		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">requiredRuntime</span> <span style="COLOR: red">version</span>="<span style="COLOR: blue">v1.1.4322</span>"/<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">startup</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">configuration</span><span style="COLOR: blue">&gt;</span></pre>
<p>If you want to ensure WebMatrix runs on version 1.1 of the .netfx, you can
add the above startup element to WebMatrix.exe.config.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Enabling styles in CS]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-24-Enabling-styles-in-CS</link>
            <guid>https://chris.pelatari.com/posts/2005-03-24-Enabling-styles-in-CS</guid>
            <pubDate>Thu, 24 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.communityserver.org/forums/465132/ShowPost.aspx" target="_blank" rel="noreferrer">Straight from ScottW</a>, I added</p>
<pre><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">MarkUp</span><span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">globalAttributes</span><span style="COLOR: blue">&gt;</span>
		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">class</span> <span style="COLOR: red">enable </span>= "<span style="COLOR: blue">true</span>" /<span style="COLOR: blue">&gt;</span>
		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">align</span> <span style="COLOR: red">enable </span>= "<span style="COLOR: blue">true</span>" /<span style="COLOR: blue">&gt;</span>
		<strong><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">style</span> <span style="COLOR: red">enable </span>= "<span style="COLOR: blue">true</span>" /<span style="COLOR: blue">&gt;</span></strong>
		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">id</span> <span style="COLOR: red">enable </span>= "<span style="COLOR: blue">true</span>" /<span style="COLOR: blue">&gt;</span>
	<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">globalAttributes</span><span style="COLOR: blue">&gt;</span></pre>
<p>notice the style element? That cleared up the little non-formatted code issue
that I had in my previous post.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A little CS hack for the metablog API]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-24-A-little-CS-hack-for-the-metablog-API</link>
            <guid>https://chris.pelatari.com/posts/2005-03-24-A-little-CS-hack-for-the-metablog-API</guid>
            <pubDate>Thu, 24 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://sol3.net/blogs/starpilot/" target="_blank" rel="noreferrer">Keith</a> told me that
CSBlogs was returning relative urls for its Metablog API implementation. After I
installed it, I noticed the same thing - so I decided to hack it a little bit
and find out what was going wrong. It turns out that the software is just doing
what the guys at telligent are telling it to - thankfully I've got the code and
I can poke around when I find little issues like this 😃</p>
<p>First, I added a call to the Globals class to return a formatted url with the
application path intact. This was in Components.SiteUrlsData.cs:</p>
<pre><span style="COLOR: blue">public</span> <span style="COLOR: blue">virtual</span> <span style="COLOR: blue">string</span> FormatUrl(<span style="COLOR: blue">string</span> name, <span style="COLOR: blue">params</span> <span style="COLOR: blue">object</span>[] parameters)
{      	

    <span style="COLOR: blue">if</span>(parameters == <span style="COLOR: blue">null</span>)
        <span style="COLOR: blue">return</span> Globals.FullPath(<span style="COLOR: blue">this</span>.Paths[name]);

    <span style="COLOR: blue">else</span>
        <span style="COLOR: blue">return</span> Globals.FullPath(<span style="COLOR: blue">string</span>.Format(Paths[name],parameters));
}</pre>
<p>But wait! This causes the rss feed to show up with something silly like http:
/ /localhost/cshttp://localhost/cs/blog... for the links in the RSS and Atom
feeds produced by CSBlogs. So, I tried it without the &quot;HostPath&quot; to see if I
could get the same results. This was in
Blogs.Components.BaseWeblogSyndicationHandler:</p>
<pre><span style="COLOR: gray">/// <summary>
</summary></span><span style="COLOR: gray">/// Appends http://Host:Port to all blog urls
</span><span style="COLOR: gray">/// 
</span><span style="COLOR: blue">protected</span> <span style="COLOR: blue">override</span> <span style="COLOR: blue">string</span> BaseUrl
{
    <span style="COLOR: blue">get</span>
    {
        <span style="COLOR: blue">return</span> <span style="COLOR: maroon">""</span>; <span style="COLOR: green">//return Globals.HostPath(Context.Request.Url);
</span>    }
}</pre>
<p>That's it right? Nope, not if you have galleries enabled. One of the methods
(that I know of 😃 uses the modified FormatUrl above to try and get a MapPath to
a directory. You'll find out really quickly that MapPath doesn't like
fully-qualified urls passed to it...I know I did. So, I modified one more line
to make sure that I've got a relative path passed into the photo gallery. This
was in Galleries.Components.Picture:</p>
<pre><span style="COLOR: gray">/// <summary>
</summary></span><span style="COLOR: gray">/// This static method gets the location of the picture cache directory, mapped on the local filesystem.
</span><span style="COLOR: gray">/// 
</span><span style="COLOR: gray">/// <returns>string</returns>
</span><span style="COLOR: blue">public</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">string</span> CacheDirectory()
{
	Uri uri = <span style="COLOR: blue">new</span> Uri(GalleryUrls.Instance().PictureCache);
	<span style="COLOR: blue">return</span> CSContext.Current.Context.Server.MapPath(uri.AbsolutePath);
}</pre>
<p>After that, everything seems to be running as normal. I don't know if I'd
recommend doing something like this on your install, especially if things are
working well enough for you. I just use this particular feature of the Metablog
API quite often, so it bit me a lot.</p>
<p><font color="red">update</font>: It looks like the trackback feature uses fully 
qualified urls as well as the rss/atom feeds. I'll post a fix tomorrow when I 
find out where the BaseUrl is set for the trackbacks.</p>
<p><font color="red">update2</font>: Found it :) I would've got it done last 
night, but I don't have the broadband yet. Any ways, like I thought it was just 
a removal of a baseUrl parameter (case notwithstanding). I found this in 
Blogs.Controls.TrackbackMarkup:</p>
<pre><span style="COLOR: blue">protected</span> <span style="COLOR: blue">override</span> <span style="COLOR: blue">void</span> Render(HtmlTextWriter writer)
{
            
    <span style="COLOR: blue">if</span>(IsValid)
    {
        <span style="COLOR: blue">string</span> baseUrl = Globals.HostPath(Context.Request.Url);
	writer.WriteLine(tag,<span style="COLOR: green">/*baseUrl+*/</span>PermaLink,Title,<span style="COLOR: green">/*baseUrl+*/</span>PingUrl);
    }
}</pre>
<p class="media">[ Currently Playing : Rooster - Alice in Chains - Unplugged 
(6:40) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Customer Service Message]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-22-Customer-Service-Message</link>
            <guid>https://chris.pelatari.com/posts/2005-03-22-Customer-Service-Message</guid>
            <pubDate>Tue, 22 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is a message that my boss recently sent to a customer that had an issue 
with one of our software packages (I don't own it :)</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p>Brian, in the finest tradition of Microsoft, VDB's engineers have returned 
  an error message  that has absolutely nothing to do with the problem at 
  hand.   Time Steps should be in the range of 1 to 10.  Instead, 
  of limiting the input (1 to 10). VDB's fine engineers, it seems, prefer to 
  give a worthless message, then plow on with  a 10 millisecond 
  TD-Chart.  I conclude, the only reason for this is that they are trying 
  to kill me.   I will have the problem fixed.   Maybe we 
  will replace all messages with one that says "Call Tom, we are trying to kill 
  him, sorry for any inconvenience."</p>
  <p>Anyway, I have attached a new release 2.8.4, it has some new features like 
  ZOOM, Undo, and a way to graph Well markers (horizons). It will also launch 
  the help guide from the help button, now there is a novel ideal.  Though 
  not fully tested, I'm sure it has an entire new array of useless error 
  messages designed to kill me.</p>
  <p><br />Sorry for the problem</p>
  <p><br />Tom</p></blockquote>
<p class="media">[ Currently Playing : I Just Wanna Love U (Give It 2 Me) - Jay-Z 
- The Dynasty Roc la Familia (3:47) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A little down time...]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-17-A-little-down-time</link>
            <guid>https://chris.pelatari.com/posts/2005-03-17-A-little-down-time</guid>
            <pubDate>Thu, 17 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm going to be installing community server here today. There's going to
be a little downtime because of that. As if you cared.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING's vaultpub works.]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-16-PostXINGs-vaultpub-works</link>
            <guid>https://chris.pelatari.com/posts/2005-03-16-PostXINGs-vaultpub-works</guid>
            <pubDate>Wed, 16 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This shouldn't have gotten this out of whack, but it did, sorry. I've made 
sure that all of the folders are inherited now, and tested the get latest 
version on a different directory on my machine. </p>
<p><font color="red">WARNING</font>: The only thing to watch out for is that I 
like to copy my assemblies to my C:\bin folder so I can dogfood the output 
immediately. If you don't like that, go to the main PostXING project and clear 
out the build events. Also, the code that is now in the repository is more 
recent than the release on <a href="http://projectdistributor.net">Project 
Distributor</a>. It supports proxies for the web connection and has a couple of 
other bug fixes in it like handling FTP files with spaces. One more thing - not 
all of the projects in the trunk are either deployed to the world or active - 
the Client Template plugin project allows you to define a custom template on the 
client side (since dotText doesn't implement this particular metablog api 
feature) and the offline plugin was going to be the save/load posts feature but 
that got put into the main project instead. It's still there because someday I 
may decide to make it handle online/offline capabilities differently.</p>
<p class="media">[ Currently Playing : Bombtrack - Rage Against the Machine - 
(4:04) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[My comments are broken...]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-16-My-comments-are-broken</link>
            <guid>https://chris.pelatari.com/posts/2005-03-16-My-comments-are-broken</guid>
            <pubDate>Wed, 16 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...at a time when people are actually leaving comments. Balls. Josh - I'm
checking the vaultpub repository on a clean directory right now, I probably
forgot to add all of the files to the repository. Genius, Chris.</p>
<p><font color="red">update</font>: I'm such a jerk. I have this repository set up 
all bass ackwards. I'll fix it up lickety split.</p>
<p class="media">[ Currently Playing : Born of a Broken Man - Rage Against the 
Machine - The Battle of Los Angeles (4:40) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING feature requests]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-15-PostXING-feature-requests</link>
            <guid>https://chris.pelatari.com/posts/2005-03-15-PostXING-feature-requests</guid>
            <pubDate>Tue, 15 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://blog.lotas-smartman.net/archive/2005/03/15/11201.aspx">Teirnan 
asked for a few features for PostXING</a>. I started to write a comment, but it 
got too long-winded for a comment. You get a post Sir:</p>
<p>Can I help you? I think maybe so :) In order:</p>
<ul>
  <li>I did this in a very early build of PostXING, but got some feedback that 
  asked to be able to immediately edit the post that was just, erm, posted - in 
  case of typos or whatever. I guess I could make it configurable, that 
  shouldn't be too hard. Since you are literally the first person to ask for 
  this feature, I think I'll make the current behavior the default. 
  </li><li>I don't know how to tackle this one - PostXING is basically just a wrapper 
  for <strong>SOME</strong> functionality of the Metaweblog API. Generally, the 
  blog engine will handle the entry IDs. Sometimes it gives you an int, 
  sometimes it gives you a string. 
  </li><li>I actually tried to do this at one point, but I'm not sure how stable it 
  would be. Think about it this way: in order for this to work, images would 
  have to be parsed out (not a problem) and each one uploaded one at a time 
  using the FTP component. The resulting url would have to be pumped back into 
  the post and then and only then could you finally post/publish the entry. If 
  you have a lot of images, this could take a really long time and thus give the 
  perception that PostXING performs poorly. I guess I could make this a config 
  option too with the caveat that it could possibly take a really long time to 
  make a post. 
  </li><li>This one is easy :) If you want it to be zippy, download the latest 
  version of Vault from <a href="http://vaultpub.sourcegear.com">http://vaultpub.sourcegear.com</a> . 
  Login as the guest account (I think it's guest/guest) and go to the PostXING 
  repository. Set a working folder and click Get Latest Version. The latest code 
  release should be there, although it may be a little out of sync with the most 
  current version that I'm dogfooding on my local machine. You can also find any 
  plugins code that is associated with PostXING. If you don't want to install 
  vault for whatever reason, I'm pretty sure you can download from their web 
  interface using the same uid/pwd, but I'm sure it would be about 100 times 
  more painful.</li></ul>
<p>Thanks for the feedback, Tiernan. </p>
<p class="media">[ Currently Playing : I'm done - Korn - Take a look in the mirror 
(3:23) ]</p> ]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Using OpenSSH tunneling for RealVNC on Windows]]></title>
            <link>https://chris.pelatari.com/posts/2005-03-01-Using-OpenSSH-tunneling-for-RealVNC-on-Windows</link>
            <guid>https://chris.pelatari.com/posts/2005-03-01-Using-OpenSSH-tunneling-for-RealVNC-on-Windows</guid>
            <pubDate>Tue, 01 Mar 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I totally geeked out tonight.</p>
<p>I was searching for something else and happened upon <a href="http://www.trekweb.com/~jasonb/articles/vnc_ssh.shtml">a
tutorial</a> for tunneling VNC on windows, which led me to <a href="http://tech.erdelynet.com/ssh-vnc.html">another article</a> that was inspiration for the first article I found. Here was the problem with both: the webserver that I wanted to get to is behind an OpenBSD firewall.</p>
<p>So, first things first: I added a rule to pf.conf that allowed ssh to be redirected to the private address of my webserver using rdr syntax:</p>
<pre>rdr pass on $ext_if from any to $public_address port ssh \
-&gt; $private_address</pre>
<p>This rule passes ssh calls bound for the external address to be sent to the
internal network address (192.168.1.blah).</p>
<h4>But what about ssh running on Windows?</h4>
<p>Well, if you don't already have cygwin installed on the server, I ended up
using <a href="http://sshwindows.sourceforge.net/">sshwindows </a>(linked from
the <a href="http://openssh.org">OpenSSH </a>site under <a href="http://openssh.org/windows.html">Windows</a>) Just follow the instructions in readme.txt or quickstart.txt and you should be good to go there - it comes with an installer, so it was pretty easy to get up and running.</p>
<h4>But what about the client on Windows?</h4>
For this, I use <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>. I've used 
it for a while to ssh into my OpenBSD machines from windows. What I didn't know of is the Tunnel feature that sits near the end of the config setup tree...this is how the magic happens.
<p>See, before, when I needed to get into a firewalled computer, I would just add rules to the firewall to punch temporary holes while I did what I had to do remotely. I know, bad Chris. Using OpenSSH to tunnel the traffic that would normally be sent unencrypted over the wire makes me feel a lot safer, even tho the server in question doesn't have a whole lot of goodies to look at. It's still important to <strong>me.</strong></p>
<h4>So how does the magic happen?</h4>
<p>Using the tunnel feature of PuTTY, I added a link to port 5901 and mapped it to localhost:5900. Here's the rub: localhost in this case refers to the ssh server, not the computer the client is running from. The 5901 refers to the machine that the client is running from. This wasn't clear to me in either tutorial that I read thru. So you add the tunnel link to the SSH/tunels node of
PuTTY and when you fire up VNC, have it sent to <strong>localhost:1</strong>. This was also not very clear from either article (but that just probably means I'm dense).</p>
<h4>Is that it?</h4>
For VNC, yeah, it is. However, I also run a couple of applications on my 
network that contain sensitive data: namely SourceGear <a href="http://sourcegear.com/vault/index.html">Vault </a>and <a href="http://sourcegear.com/dragnet/index.html">Dragnet</a>. I want to get to these too! Can I do it in a similar way to the VNC deal? You betcha!
<p>This time, for the tunnel link I specified an arbitrary (but often used) high port in PuTTY: 8000. I also wanted to point to the internal server (say, 192.168.1.2) so instead of specifying localhost:80 (which is already exposed -duh!) I pointed it to 192.168.1.2:80.</p>
<p>Fire up PuTTY, login as some user that's configured for OpenSSH, and point my browser of choice to <a href="http://localhost:8000/dragnet"><a href="http://localhost:8000/dragnet" target="_blank" rel="noreferrer">http://localhost:8000/dragnet</a></a>. Nice!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Channel 9 guy...]]></title>
            <link>https://chris.pelatari.com/posts/2005-02-17-Channel-9-guy</link>
            <guid>https://chris.pelatari.com/posts/2005-02-17-Channel-9-guy</guid>
            <pubDate>Thu, 17 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><strong>|}34|2 M|2. <a href="http://radio.weblogs.com/0001011/">Scoble</a>,</strong></p>
<p><strong>1 H4v3 K1|}n4pp3|} y0U|2 p|23C10U5 &quot;CH4nn3L 9 6Uy&quot;. 1f j00 3v4|2 w4n7 70
533 H1M 4L1v3 4641n, My |}3M4n|}5 MU57 83 M37 1n fULL. My |}3M4n|}5 4|23 45
f0LL0w5:</strong></p>
<p><strong>1) 0n3 M1LL10n |}0LL4|25.</strong></p>
<p><strong>2) M1C|2050f7 MU57 0p3n-50U|2C3 w1n|}0w5 50 17 C4n 83 53CU|23 L1K3 L1nUx. j00 H4v3 48 H0U|25 70 C0MpLy. Y0U w1LL f1n|} 7H47 1 4M v3|2y 53|210U5 1n 7H15 M4773|2.</strong></p>
<img alt="" hspace="0" src="/assets/images/02-16-05_2128.jpg" align="baseline" border="0" />
<p><strong>516n3|},</strong></p>
<p><strong>31337 |-|4&gt;&lt;0|2z</strong></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[BradA at the Houston .NET UG]]></title>
            <link>https://chris.pelatari.com/posts/2005-02-17-BradA-at-the-Houston-NET-UG</link>
            <guid>https://chris.pelatari.com/posts/2005-02-17-BradA-at-the-Houston-NET-UG</guid>
            <pubDate>Thu, 17 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Although he only talked about high-level stuff (Exception Handling and Memory
Management), I think Brad did a pretty good job. I stopped going to the
Microsoft office out here because of all the <a href="http://support.microsoft.com/?scid=http://support.microsoft.com%2Fservicedesks%2Fwebcasts%2Flevels.asp">100
level</a> classes, I couldn't justify taking time out of the trenches for
learning stuff I already knew. But hearing the lead PM on the CLR team speak? It
was time to attend my first <a href="http://hdnug.org/hdnug/home.aspx">Houston
.NET UG</a> meeting. To be fair, there was also the <a href="http://www.hal-pc.org/~odiswooten/csharp/">Hal-PC C# sig</a> there, but
I've never seen that room so packed. Overflow rooms had to be set up. Way to go,
Brad!</p>
<p>So as is usually the case with these events, I came away with a couple of
golden nuggets of information, some of which is even relevant in v1.x of the
framework! (Imagine that!) Here are a couple of the notes I took:</p>
<ul>
<li>Finalizers keep objects alive an order of magnitude (about 10) longer than objects w/o finalizers</li>
<li>It's a <strong><em>really</em></strong> bad idea to throw an Exception from a finalizer.</li>
<li><a href="http://blogs.msdn.com/cbrumme/archive/2004/02/20/77460.aspx">Check out Critical Finalizers in v2.0</a></li>
<li>Finalizers are most appropriate for owned unmanaged resources (filestream, sqlconnection, etc classes are a case in point)</li>
<li>It's kind of an &quot;unwritten rule&quot; that any object that has a Close method should implement the IDisposable pattern and they should do the exact same thing. i.e. Close <u>should</u> just call Dispose.</li>
</ul>
<p>I brought my digital camera, but being the jerk that I am, didn't check to
see if the batteries were working first (doh!). Thankfully, I've got a camera
phone and was able to take a picture with Brad anyways (I'm the short one):</p>
<img src="/assets/images/02-16-05_1936.jpg" />
<p>This is also where I got my <a href="/posts/2005-02-17-Channel-9-guy.html">Channel 9 guy</a> along with a nice smattering of other cool swag. Sorry, <a href="http://radio.weblogs.com/0001011/">Scoble</a>, it was just a joke tho - I
thought it would be more appropriate to write the ransom note in 1337 than have
both of my subscribers download a bunch of newspaper-clipped letter images. I
still want my million, tho 😃</p>
<p class="media">[ Currently Playing : Napoleon 
Solo - At the Drive-In - In Casino Out (4:47) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Updated my engine.]]></title>
            <link>https://chris.pelatari.com/posts/2005-02-15-Updated-my-engine</link>
            <guid>https://chris.pelatari.com/posts/2005-02-15-Updated-my-engine</guid>
            <pubDate>Tue, 15 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, thanks to <a href="http://stevenharman.net/blog/">Steven's
</a>post<!--StartFragment --> <a href="http://stevenharman.net/blog/archive/2005/01/10/167.aspx">.Text's
MetaWeblog API - Edit Post Error...</a> I am now just a couple of revisions
behind the latest incarnation of .Text <a href="http://www.chrisfrazier.net/blog">over here</a>.</p>
<p>This has been a serious pain to get migrated from v0.94 (all because I need
to edit my posts w/ the metablog api - go figure!) but a lot of it has been due
to errors on my part. When you try to add content, you've gotta keep those
Identity fields intact or you end up with &quot;Server returned a fault exception&quot;
when adding a new post. Yuck.</p>
<p><font color="red">Update2:</font> Continuing my battle with this engine: It 
looks like the entry.FeedBackCount doesn't like to be DBNull or whatever 
(Imagine that!). I think I just might be g2g w/ the v0.95 .Text installation. 
Geebus.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Asian "Just Lose It"]]></title>
            <link>https://chris.pelatari.com/posts/2005-02-09-Asian-Just-Lose-It</link>
            <guid>https://chris.pelatari.com/posts/2005-02-09-Asian-Just-Lose-It</guid>
            <pubDate>Wed, 09 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.xanga.com/item.aspx?user=euiyun&amp;tab=weblogs&amp;uid=201515136">euiyun's
Xanga Site - 2/8/2005 9:41:55 PM</a></p>
<p>Always good to see a bunch of Asians &quot;go crazy&quot;. (ahahahahah!)
Bonus: It looks like it was filmed in good ol' H-Town - part of it at the
Williams Trace (once Transco) Tower! w00t! And Wal-Mart. Gotta love Wal-Mart.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[They're pretty useless but...]]></title>
            <link>https://chris.pelatari.com/posts/2005-02-07-Theyre-pretty-useless-but</link>
            <guid>https://chris.pelatari.com/posts/2005-02-07-Theyre-pretty-useless-but</guid>
            <pubDate>Mon, 07 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>They're fun anyways.</p>
<p><a href="http://www.bbspot.com/News/2004/10/extension_quiz.php"><img height="90" alt="You are .html You are versatile and improving, but you do have your limits.  When you work with amateurs it can get quite ugly." src="http://www.bbspot.com/Images/News_Features/2004/10/file_extensions/html.jpg" width="300" border="0" />
Which File Extension are You?</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <link>https://chris.pelatari.com/posts/2005-02-02-Added-Tabbing</link>
            <guid>https://chris.pelatari.com/posts/2005-02-02-Added-Tabbing</guid>
            <pubDate>Wed, 02 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I recently added Tabbing functionality for
indenting/outdenting (hey, it's a trident term 😃 in my dogfood version of
PostXING.</p>
<blockquote>
<p>Quoting has just become 100 times easier for me.</p>
</blockquote>
<p>I prefer to use the keyboard when
posting/changing text attributes when possible, and this whole no tabbing
business finally got me a little fed up. Wanna know the funny part? It ended up
being about 8 lines of code, give or take for whitespace:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> <span style="COLOR: blue">protected</span> <span style="COLOR: blue">override</span> <span style="COLOR: blue">bool</span> ProcessCmdKey(<span style="COLOR: blue">ref</span> Message msg, Keys keyData) {
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> 	<span style="COLOR: blue">if</span>(keyData == Keys.Tab){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 		<span style="COLOR: blue">this</span>._designEditor.TextFormatting.Indent();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 	}<span style="COLOR: blue">else</span> <span style="COLOR: blue">if</span>(keyData == (Keys.Tab | Keys.Shift)){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 		<span style="COLOR: blue">this</span>._designEditor.TextFormatting.Unindent();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 	}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 			
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 	<span style="COLOR: blue">return</span> <span style="COLOR: blue">base</span>.ProcessCmdKey (<span style="COLOR: blue">ref</span> msg, keyData);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> }</pre>
<p>What other unsupported keyboard shortcuts
would you like to see in PostXING (get em while I've got it fresh on my mind
😃</p>
<p class="media">[ Currently Playing : Dazed And Confused - Led Zeppelin - BBC 
Sessions CD 2 (18:36) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: /aiCAPTCHA article FAQ]]></title>
            <link>https://chris.pelatari.com/posts/2005-02-01-RE-aiCAPTCHA-article-FAQ</link>
            <guid>https://chris.pelatari.com/posts/2005-02-01-RE-aiCAPTCHA-article-FAQ</guid>
            <pubDate>Tue, 01 Feb 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip&gt;Q: You mean you didnt kill 200K people or change the tilt of the Earth's axis?
a: not yet &lt;/snip&gt;
<em>[Via <a href="http://www.mperfect.net/blog/browse.aspx?bid=632428362792968750.aspx">rains-N-brawn.com </a>]</em></p>
</blockquote>
<p>Classic. I rather enjoyed the article, and think that a lot of people are
missing the point. Not that my opinion matters anyways, but I thought it was
kind of a neat POC.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[This is gonna piss some people off...]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-29-This-is-gonna-piss-some-people-off</link>
            <guid>https://chris.pelatari.com/posts/2005-01-29-This-is-gonna-piss-some-people-off</guid>
            <pubDate>Sat, 29 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Going to download the spankin new <a href="http://www.microsoft.com/downloads/details.aspx?familyid=0325b97a-9534-4349-8038-d56b38ec394c&amp;displaylang=en">Enterprise
Library</a>, and before you can download you're presented with this:</p>
<h1 class="pageMainTitle">Enterprise Library</h1>
Your registration information enables us to better provide 
you with the latest resources relevant to your needs, including pointers to 
service packs, security notices, training, trial versions of new products, 
conferences, new books, and more. Note that at any time you can manage all your 
Microsoft.com communication preferences from our <a href="http://go.microsoft.com/?linkid=415499">Profile Center</a>. Thank you for 
your interest in this download.
<h3>Registration required for this download</h3>
<div id="divContainer" style="DISPLAY: block">
<table>
  <tbody>
  <tr valign="center">
    <td width="4"></td>
    <td style="CURSOR: hand" onclick="ToggleRadioButton(0)"><input id="radioButtonYes" onclick="ToggleRadioButton(0)" type="radio" name="radioButtonYes" /><span class="choice">Yes, please take me to the 
      registration page and then start the download.</span> </td></tr>
  <tr valign="center">
    <td width="4"></td>
    <td style="CURSOR: hand" onclick="ToggleRadioButton(1)"><input id="radioButtonNo" onclick="ToggleRadioButton(1)" type="radio" name="radioButtonNo" /><span class="choice">No, I do not wish to register--which 
      is required for this download--so please return me to the previous 
      page.</span> </td></tr></tbody></table></div>
<div style="DISPLAY: block"> </div>
<div style="DISPLAY: block">I'll probably still download it on Monday, but it'll 
be fun to see what people say about this. </div>
<p class="media">[ Currently Playing : Get What You Need - Jet - Get Born (4:07) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: This is gonna piss some people off...]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-29-RE-This-is-gonna-piss-some-people-off</link>
            <guid>https://chris.pelatari.com/posts/2005-01-29-RE-This-is-gonna-piss-some-people-off</guid>
            <pubDate>Sat, 29 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So earlier I said &quot;<a href="http://weblogs.asp.net/cfrazier/archive/2005/01/28/362869.aspx">This is
gonna piss some people off...</a>&quot; about the EntLib, right? Well, straight from
the developer's mouth:</p>
<blockquote>
  <div class="comment_author"><a id="Comments.ascx_CommentList__ctl1_NameLink" href="http://weblogs.asp.net/scottdensmore" target="_blank">Scott 
  Densmore</a></div>
  <div class="comment_content">The registration process is to help us better 
  connect with you. I hope it doesn't detract you from downloading. I think you 
  will love it.</div></blockquote>
<div class="comment_content" dir="ltr">Well, I hope I didn't come across as "I'm not 
going to download it", cuz I most definitely am. Matter of fact, I'm downloading 
now. I just thought it would be interesting to see who would say such classics 
as "The mothership is tracking you!" or some other garbage like that. Why would 
I not want to register with Microsoft? They're already tracking my behaviors on 
Windows XP (HAHA! just kidding (or am I?)) :)</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New PostXING coming soon]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-29-New-PostXING-coming-soon</link>
            <guid>https://chris.pelatari.com/posts/2005-01-29-New-PostXING-coming-soon</guid>
            <pubDate>Sat, 29 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>With the help of <a href="http://weblogs.asp.net/lkempe">Laurent Kempé</a>, 
I've traced down a bug in the PostXING FTP library (or rather my handling of it) 
and ended up changing the underlying FTP library code to the open source <a href="http://www.enterprisedt.com/products/edtftpnet/overview.html">edtFTPnet 
</a>library. This is a more complete library than the sample socket code that I 
was using before, and since it's LGPL licensed, I can link it into my code 
without affecting the license that PostXING is released under (which is 
zlib/libpng).</p>
<p>I also plan to add proxy support soon - the only hold up right now is that I 
like to at least dry run what I'm releasing before I put it out there, and I 
have no idea how to test if proxy code is going to work. Is there a such thing 
as a free proxy server that I can test against? I'm pretty resolved to, er, 
'borrowing' the functionality for proxy support from <a href="http://rssbandit.org">RssBandit </a>simply because the code works and has 
been a good reference for me before. So, I'm not worried about how to implement 
it, just on how to test it. Any ideas?</p>
<p class="media">[ Currently Playing : Move On - Jet - Get Born (4:20) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Sun's Open letter to IBM.]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-24-Suns-Open-letter-to-IBM</link>
            <guid>https://chris.pelatari.com/posts/2005-01-24-Suns-Open-letter-to-IBM</guid>
            <pubDate>Mon, 24 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I am not an expert in this area. Not even close. Wouldn't even call myself an 
amateur. But I had to stop reading <a href="http://blogs.sun.com/roller/page/jonathan/20050121">the 
letter</a> when he says "<!--StartFragment --><span class="body">It's the 
most secure OS the world has ever seen..."</span></p>
<p><span class="body">A quick hop over to the <a href="http://www.sun.com/software/solaris/">link provided</a> for solaris 
shows how proud they are...of thier new logo. Call me crazy, but if you were to 
make the claim that you are releasing the "most secure OS the world has ever 
seen", wouldn't <em>that</em> be what was <a href="http://openbsd.org/">highlighted on the front page of the site you are 
pointing to</a>? </span></p>
<p><span class="body">Right, different audiences, different priorities, different 
reasons for installing an OS, but if you are claiming that you have the "most 
secure OS the world has ever seen" (still can't get over that) - <a href="http://openbsd.org/">say it loud, proud, and in bright red letters on the 
first page of your site</a>. Heh.</span></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Score for CS Blogs]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-21-Score-for-CS-Blogs</link>
            <guid>https://chris.pelatari.com/posts/2005-01-21-Score-for-CS-Blogs</guid>
            <pubDate>Fri, 21 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I feel like a kid in one of those <a href="http://www.retrojunk.com/media/171/">old milk commercials </a>- you may 
try to com...ment $p4|\/| me, on....line pok...er, but my blog is running <a href="http://communityserver.org/blogs/">CS::Blogs</a>, so your stupid comment 
doesn't get past my inbox. Comment moderation: it does a blog good.</p>
<p><font color="red">update: </font>This blog is not running the version of 
CS::Blogs that has moderation. As a matter of fact, this blog is running .Text 
version 0.94 because of a bug in the Metablog API implementation of v0.95. Sorry 
to get your hopes up, I was talking about <a href="http://weblogs.asp.net/CFrazier">my other blog on weblogs.asp.net</a>.</p>
<p class="media">[ Currently Playing : Floyd The Barber - Nirvana - Bleach (2:18) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Halo (both of 'em)]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-21-Halo-both-of-em</link>
            <guid>https://chris.pelatari.com/posts/2005-01-21-Halo-both-of-em</guid>
            <pubDate>Fri, 21 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been playing Halo 2 recently, and I got to a part that reminded me why I 
lost interest in the first one.</p>
<p>Once you get to a certain part of the game (either one), it gets so difficult 
to advance that it's not fun anymore. Now, granted, I've never been close to 
being <a href="http://imdb.com/title/tt0098663/">the Wizard</a>, but gimme 
a break already. I guess it's back to <a href="http://www.princeofpersiagame.com/us/home2.php">Prince of Persia 
</a>(again, either one) for me. <a href="http://www.ubi.com">UbiSoft</a> gets 
it. Make a game that I'll want to play over and over.</p>
<p>&lt;/rant type="As If You Cared"&gt;</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New PostXING release]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-17-New-PostXING-release</link>
            <guid>https://chris.pelatari.com/posts/2005-01-17-New-PostXING-release</guid>
            <pubDate>Mon, 17 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've gone ahead and uploaded a <a href="http://PostXING.url123.com/v1.1.5017.1">new build of PostXING</a>. I
extended the plugin architecture a little bit to allow for posting to non-.Text
blog engines using IBlogExtension plugins, of which there are a few out there
already. Everything else is pretty much the same, but I had to give out some
credit for the plugin architecture - I didn't come up with that stuff on my own
and I'm all about giving credit where credit is due.</p>
<p>To test this IBlogExtension plugin architecture (really all you have to do is
drop the IBlogExtension dll/exe into PostXING's plugins subdirectory) I created
a <a href="http://bluefenix.blogspot.com/">blogger account</a> that I could
use the <a href="http://www.newsgator.com/plugins/default.aspx">NewsGator
blogger plugin </a>to test against. Guess what? <a href="http://bluefenix.blogspot.com/2005/01/new-postxing-release.html">It
works</a>.</p>
<p class="media">[ Currently Playing : No Excuses - Alice in Chains - Unplugged 
(4:56) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[IBlogExtension, from the other side]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-13-IBlogExtension-from-the-other-side</link>
            <guid>https://chris.pelatari.com/posts/2005-01-13-IBlogExtension-from-the-other-side</guid>
            <pubDate>Thu, 13 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I can now use the great <a href="http://www.newsgator.com/plugins">IBlogExtension plugins for NewsGator</a> 
to post with <a href="http://PostXING.url123.com/main">PostXING</a>. (with my 
built about 10 minutes ago dogfood version, that is :) Thanks for that 
idea, <a href="http://rosscode.com">Joel</a>.</p>
<p>The only problem with this method is that it's "push only" - I can only 
publish with these plugins. No history management, and strictly speaking, not 
manageable on the same level as using the Metablog API. So, I can't set an 
account for IBlogExtension blogs - no navigating to the site without manually 
opening a browser, basically no integration with the current UI. Categories seem 
to be up to the plugin as well. <a href="http://bluefenix.blogspot.com/2005/01/iblogextension-from-other-side.html">But 
I can post</a>. That's one step in the right direction, right?</p>
<p class="media">[ Currently Playing : Still Frame - Trapt - Trapt (4:30) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: New PostXING release.]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-12-RE-New-PostXING-release</link>
            <guid>https://chris.pelatari.com/posts/2005-01-12-RE-New-PostXING-release</guid>
            <pubDate>Wed, 12 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <p xmlns="http://www.w3.org/1999/xhtml">I've uploaded a new release of 
  PostXING to <a href="http://projectdistributor.net">ProjectDistributor</a>. 
  This release adds the ability to Load or Save a post as a .htm file, as well 
  as managing your blog (Categories, Post, Post &amp; Publish, Cross-Post, 
  Delete, and plugins) from the Preview page.</p>
  <p xmlns="http://www.w3.org/1999/xhtml">How ya like that, <a href="http://yexley.net/blogs/bob/">Bob</a>? :)</p></blockquote>
<p class="media" xmlns="http://www.w3.org/1999/xhtml">I went ahead and included a 
couple of bugfixes that slipped into this release, so the <a href="http://PostXING.url123.com/v1.1.5012.2">latest version of PostXING </a>is 
now uploaded and reflected on ProjectDistributor. Sorry I let a couple of bugs 
slip in there. Thanks for the feedback, Bob!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New PostXING release.]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-12-New-PostXING-release</link>
            <guid>https://chris.pelatari.com/posts/2005-01-12-New-PostXING-release</guid>
            <pubDate>Wed, 12 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've uploaded a <a href="http://PostXING.url123.com/v1.1.5012.1">new release 
of PostXING </a>to <a href="http://projectdistributor.net">ProjectDistributor</a>. This release adds 
the ability to Load or Save a post as a .htm file, as well as managing your blog 
(Categories, Post, Post &amp; Publish, Cross-Post, Delete, and plugins) from the 
Preview page.</p>
<p>How ya like that, <a href="http://yexley.net/blogs/bob/">Bob</a>? :)</p>
<p class="media">[ Currently Playing : God (Interlude) - Andre 3000 - 
Speakerboxxx/The Love Below (2:19) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A new feature...]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-11-A-new-feature</link>
            <guid>https://chris.pelatari.com/posts/2005-01-11-A-new-feature</guid>
            <pubDate>Tue, 11 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...for <a href="http://PostXING.url123.com/main">PostXING </a>that I should 
have added a long time ago. It only took roughly 40 lines of code (including 
gratuitous whitespace). I'll give you a hint on what it is:</p>
<p><img alt="" hspace="0" src="/assets/images/loadorsavepost.gif" align="baseline" border="0" /></p>
<p>There are a couple of other things that I would like to implement before 
uploading a new release, tho. For example - I don't see a good reason why you 
shouldn't be able to post/publish/cross post from the preview pane. Also, <a href="http://rosscode.com/Blog/index.php">Joel Ross</a> gave me the 
spectacular idea of using <a href="http://newsgator.com/plugins/">existing 
IBlogExtension plugins</a> to make posting to blogs other than .Text or some 
other Metablog API enabled blog engine not only possible, but extremely 
easy.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: Couple of feature requests]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-07-RE-Couple-of-feature-requests</link>
            <guid>https://chris.pelatari.com/posts/2005-01-07-RE-Couple-of-feature-requests</guid>
            <pubDate>Fri, 07 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p> <strong>Couple of feature requests </strong><br /><small>posted by Bob 
  Yexley on 1/7/2005 12:02:04 PM :</small> <br />Hey nice work on the latest 
  version. Spell checking works very nicely. There are a couple of things that 
  I've noticed about the application that I thought would make it nicer that I 
  wanted to mention. Fairly simple I'm pretty sure.<br /><br />First off, especially 
  with all of the different version releases you've had lately, I've wanted to 
  check the "About" box to make sure that the correct new version was running 
  after the new version, and I noticed that the current version isn't displayed 
  on it. It would be great to have the current version displayed on the About 
  box just for reference if nothing else.<br /><br />I've also noticed that when I 
  switch to the "Preview" tab, that the toolbar with the "Post &amp; Publish" 
  button disappears. Normally when I compose a new entry, I write it up in the 
  editor tab, and then I check spelling (well, I will from now on anyway), and 
  then I switch over to the preview tab to make sure everything looks OK with my 
  stylesheets applied and all. Well, if everything looks good, I'd like to be 
  able to just click "Post &amp; Publish" right then and there, but since that 
  toolbar is gone, I have to switch back to "Design" view to get that toolbar 
  back to publish the entry. It seems to me like that's a fairly common toolbar, 
  and maybe it (or it's buttons) should just be added to the standard toolbar 
  that has the "Setting" button on it. At very least, it would be nice to have 
  that one button displayed when using the "Preview" tab.<br /><br />Thanks for the 
  great free application though. I love it. </p></blockquote>
<p dir="ltr">Now, that is some great feedback. I've got seperate use cases 
than what I always do and clear concise suggestions on how to implement them. 
These are the types of things that you as a developer don't tend to think of all 
the time because you are used to a certain useage scenario. I would have never 
thought of any of these (except maybe the about box thing. whoops :) There are 
of course some other things that I know the application needs - like for example 
validation maybe? Heh.</p>
<p dir="ltr">Honestly, tho, I'm just glad that a few people are finding my humble 
little app useful. But to anybody else who is using <a href="http://PostXING.url123.com/main">PostXING</a>, I am always happy to at 
least consider making changes suggested on ProjectDistributor or my <a href="http://www.chrisfrazier.net/blog">blog</a>. It just makes it so much 
easier (and therefore likely to get implemented) with great feedback like <a href="http://yexley.net/blogs/bob/">Bob </a>gave.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Using the NetSpell plugin for PostXING.]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-06-Using-the-NetSpell-plugin-for-PostXING</link>
            <guid>https://chris.pelatari.com/posts/2005-01-06-Using-the-NetSpell-plugin-for-PostXING</guid>
            <pubDate>Thu, 06 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>With the <a href="http://PostXING.url123.com/v1.1.5005.1">latest release</a> 
of <a href="http://PostXING.url123.com/main">PostXING</a>, a plugin architecture 
has been added to allow for external extensions such as the new <a href="http://PostXING.url123.com/nsv1.0.5005.1">NetSpellPlugin</a> that 
adds spell checking to PostXING.</p>
<p>All that is required to install the plugin is to add the .dll file to the 
plugins subdirectory of PostXING's install directory, for me that's 
C:\bin\PostXING\plugins. When you start PostXING, you should see a new button in 
the toolbar:</p>
<p><img src="/assets/images/newtoolbarbutton.gif" /></p>
<p>as well as a couple of entries in the plugins menu under the Tools main 
menu:</p>
<p><img src="/assets/images/newpluginsmenu.gif" /></p>
<p>I really wish that was all there was to it, but unfortunately there's more 
that needs to be done. As I've said before, the spell checker is pretty well 
useless without a good dictionary file. If you try to use the plugin 
straightaway you should see this:</p>
<p><img src="/assets/images/pleaseconfigurenetspell.gif" /></p>
<p>So how do you do that? By using the ... - Configure menuitem, of course! 
:) Before you configure, tho, you should download the correct (for you) .dic 
dictionary file by either going to <a href="http://www.loresoft.com/Applications/NetSpell/default.aspx">LoreSoft's 
NetSpell page</a>, <a href="http://www.loresoft.com/Applications/NetSpell/Articles/246.aspx">creating 
your own</a>, or downloading from <a href="http://vaultpub.sourcegear.com">http://vaultpub.sourcegear.com</a> if you 
have <a href="http://sourcegear.com/vault/downloads.html">SourceGear's 
Vault Client</a> (at least version 3.0 at this time). Here's how to get the 
en-US.dic dictionary file from the command line:</p>
<p>Create a .bat file called getdic or whatever and put it either in your PATH 
or in SourceGear vault's install directory. Navigate to where vault.exe is 
located (for me it was cd C:\Program Files\SourceGear\Vault Client). Drop 
something like the following into the .bat file:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p>mkdir C:\tmp\vaultpub</p>
  <p>vault get -host vaultpub.sourcegear.com -user guest -password guest 
  -repository postxing -makewritable -destpath C:\tmp\vaultpub 
  $/ThirdParty/dic/en-US.dic</p></blockquote>
<p dir="ltr">Vault should tell you if you were successful or not in downloading 
the file. Note that the vault command above is all on one line. I don't know if 
the -makewritable is necessary or not, but this is what worked for me. Remember, 
if you prefer to blog in a different language (or a different, erm, dialect? of 
English) the ones available in vaultpub and from the NetSpell component itself 
are:</p>
<p dir="ltr">de-DE.dic<br />en-AU.dic<br />en-CA.dic<br />en-GB.dic<br />en-US.dic<br />es-ES.dic<br />es-MX.dic<br />fr-FR.dic<br />it-IT.dic</p>
<p dir="ltr">Now that you've downloaded the correct dictionary file, go to Tools 
-&gt; Plugins -&gt; ...- Configure and you'll be greeted by this simple 
dialog:</p>
<p dir="ltr"><img src="/assets/images/thissimpledialog.gif" /></p>
<p dir="ltr">Above, we said download to C:\tmp\vaultpub(\en-US.dic) so navigate 
there and hit OK. (side note: this is necessary because depending on where 
PostXING is launched from, i.e. standalone or from the <a href="http://PostXING.url123.com/plugin1.0.5004.1">BlogThisUsingPostXINGPlugin</a>, 
NetSpell will look in a different path (I think the Application.StartupPath) for 
the default dictionary based on your cultureInfo. This way, you can blog in 
English no matter what your cultureInfo is set to.)</p>
<p dir="ltr">You should now be able to spell check any Post from PostXING using 
either the toolbar button or the menu item.</p>
<p class="media">[ Currently Playing : 99 Problems - Jay-Z - The Black Album 
(3:54) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: I am Nerdier than Paul]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-06-RE-I-am-Nerdier-than-Paul</link>
            <guid>https://chris.pelatari.com/posts/2005-01-06-RE-I-am-Nerdier-than-Paul</guid>
            <pubDate>Thu, 06 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/pwilson/archive/2005/01/06/347869.aspx">I am: 
Not nerdy, but definitely not hip.</a> </p>
<p><a href="http://www.wxplotter.com/ft_nq.php"><img alt="I am nerdier than 79% of all people. Are you nerdier? Click here to find out!" src="http://www.wxplotter.com/images/ft/nq.php?val=8738" /> </a></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Extensibility Application Block - a review of an implementation.]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-06-Extensibility-Application-Block-a-review-of-an-implementation</link>
            <guid>https://chris.pelatari.com/posts/2005-01-06-Extensibility-Application-Block-a-review-of-an-implementation</guid>
            <pubDate>Thu, 06 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.iserializable.com" target="_blank" rel="noreferrer">Royo</a> asks:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p>I'm interested to know whether you found my Extensibility application block 
  useful, or if you had to make many changes to it to make it 
workable.</p></blockquote>
<p>The short answer to this question is: yes and that depends on your
definition of 'many'.</p>
<p>The <a href="http://weblogs.asp.net/rosherove/archive/2003/11/24/39484.aspx">EAP
</a>was useful to me: without the ideas and articles supporting it, it would
have taken me at <em>least</em> twice as long to implement a spell checking
plugin for PostXING. That said, there were some hurdles I had to overcome in
order to get it working consistently for me.</p>
<p>First, let me say that I wanted to mimic <a href="http://rssbandit.org">RssBandit's</a> plugin architecture because a)
I have the source code handy and b) it works. RssBandit's method of loading
plugins (called &quot;ServiceManager&quot;)...</p>
<pre><span style="COLOR: gray">/// &lt;summary&gt;
</span><span style="COLOR: gray">/// ServiceManager implements a similar algorithm described in
</span><span style="COLOR: gray">/// <a href="http://msdn.microsoft.com/asp.net/using/building/components/default.aspx?pull=/library/en-us/dnaspp/html/searchforplugins.asp">http://msdn.microsoft.com/asp.net/using/building/components/default.aspx?pull=/library/en-us/dnaspp/html/searchforplugins.asp</a> 
</span><span style="COLOR: gray">/// to find classes in assemblies that implements Syndication.Extensibility.IBlogExtension.
</span><span style="COLOR: gray">/// &lt;/summary&gt;</span></pre>
<p>Well, guess what? The author of the above article and the EAP are one
and the same! Good news for me.</p>
<p>Okay, that said, I was unable to get the DynamicFindPluginProvider to
work correctly consistently. The problem was that I was trying to load an
assembly from within itself (I think - I'm no reflection guru by any means) and
the result was that when the application was launched standalone it would work,
when it was launched from the plugin in would b0rk.</p>
<p>I also had to add some properties and methods to the IPlugin
interface and the AppContext class in order for IPlugin to be even remotely
useful to me. I found out rather quickly that I was going to need some way to
configure each IPlugin implementation individually, so I &quot;borrowed&quot; that part of
the contract from IBlogExtension. A couple of properties were required in my
case in AppContext -</p>
<pre>		<span style="COLOR: blue">protected</span> <span style="COLOR: blue">bool</span> _isCallingFromHostApplication = <span style="COLOR: maroon">true</span>;
		<span style="COLOR: blue">public</span> <span style="COLOR: blue">virtual</span> <span style="COLOR: blue">bool</span> IsCallingFromHostApplication{
			<span style="COLOR: blue">get</span>{<span style="COLOR: blue">return</span> _isCallingFromHostApplication;}
			<span style="COLOR: blue">set</span>{_isCallingFromHostApplication = value;}
		}

		<span style="COLOR: blue">protected</span> <span style="COLOR: blue">string</span> _currentEditorText = <span style="COLOR: blue">string</span>.Empty;
		<span style="COLOR: blue">public</span> <span style="COLOR: blue">virtual</span> <span style="COLOR: blue">string</span> CurrentEditorText{
			<span style="COLOR: blue">get</span>{ <span style="COLOR: blue">return</span> _currentEditorText;}
			<span style="COLOR: blue">set</span>{ _currentEditorText = value;}
		}</pre>
<p>CurrentEditorText shows up in some of Roy's articles, but not the EAP
itself. I'm interested in the text, but I can see that CurrentEditorText is not
generic enough to be included by default. This kind of makes me think that the
EAP is mis-named: it's really a foundation, or building block, whereas the <a href="http://www.microsoft.com/resources/practices/">Patterns &amp;
Practices</a> Application Blocks come kind of ready-to-go OOB. That doesn't
detract from its validity and usefulness - I've just become accustomed to not
having to modify an &quot;Application Block&quot; to get it working right away.</p>
<p><em>Anyways,</em> semantics aside, I needed these properties for
dealing with the IPlugin correctly. The override of CurrentEditorText in my
app-specific AppContext (called PostXINGAppContext, natch) raises an event
saying that it was modified on set, and the consuming event loads the text back
into the editor only if the CurrentEditorText was not set by the calling
application - I thought that might end up in endless loads of text into the
editor which would get rid of the usefulness of a plugin. I could be wrong, but
that's what I went with, okay?😃</p>
<p>I found it useful to inherit my IPlugin implementation from the
GenericDockablePlugin, even tho there is no UI except for the NetSpell-supplied
dialogs. This way, I was able to set an icon thru the designer and have it
embedded as a resource instead of including it with the install of the dll. It
was just the easiest way to get from idea to implementation for me.</p>
<p>In summary, the EAP is great as a building block for getting plugin
functionality into your windows forms app. With some minor modifications, I was
able to pull functionality that was originally going to be part of the host
application out into a plugin in a few hours.</p>
<p class="media">[ Currently Playing : Tip Your Bartender - Glassjaw - Worship 
&amp; Tribute (2:59) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE - MVP Again OR Here Come the "MeToo's"]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-05-RE-MVP-Again-OR-Here-Come-the-MeToos</link>
            <guid>https://chris.pelatari.com/posts/2005-01-05-RE-MVP-Again-OR-Here-Come-the-MeToos</guid>
            <pubDate>Wed, 05 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p><img height="128" alt="MVP Logo" hspace="0" src="http://aspsoft.blogs.com/jon/Logo_MVP_Small.jpg" width="128" align="right" border="0" />I just found out that I got the nod for Microsoft MVP again for 2005. 
  I was hoping that would be the case, because I really enjoyed going to the MVP 
  Summit last year, and was looking forward to going again in 
2005.</p></blockquote>
<p><i>[Via <a href="http://aspsoft.blogs.com/jon/2005/01/mvp_again.html">Jonathan Goodyear / 
angryCoder</a>]</i> </p>
<p>So, er, me too ;) except I hope to make this year's my first MVP 
summit.<br />Congrats, John!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[How bad do you want spellchecking?]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-05-How-bad-do-you-want-spellchecking</link>
            <guid>https://chris.pelatari.com/posts/2005-01-05-How-bad-do-you-want-spellchecking</guid>
            <pubDate>Wed, 05 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, I've implemented it. I figured out a way to have a user-defined 
dictionary location (very simple implementation), but now I'm still facing the 
dilemma of where do I point to for the dictionaries? Like I said before, the <a href="http://www.loresoft.com/Applications/NetSpell/default.aspx">NetSpell 
</a>component comes with a few dictionaries by default.</p>
<p>OpenOffice has a project called lingucomponent that has a more <a href="http://lingucomponent.openoffice.org/spell_dic.html">exhaustive listing of 
dictionaries</a>, but they are not in the same format that NetSpell uses. (I 
even tried using the en_US dictionary. Needless to say it was useless as it 
stopped on every word.) However, there is an article for NetSpell about <a href="http://www.loresoft.com/Applications/NetSpell/Articles/246.aspx">creating 
a custom dictionary</a>, although I don't know, looking at the contents of the 
files together, if that will be of much help at all.</p>
<p>Either way, it looks like it might require a download of the NetSpell 
software for the included dictionaries and the dictionary build tool. What do 
you think?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Set your FileAccess!]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-04-Set-your-FileAccess</link>
            <guid>https://chris.pelatari.com/posts/2005-01-04-Set-your-FileAccess</guid>
            <pubDate>Tue, 04 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>When I was working on the latest release of the <a href="http://PostXING.url123.com/plugin1.0.5004.1">BlogThisUsingPostXINGPlugin</a>,
I kept running into file access issues.</p>
<p>The whole thing was an excersize in refactoring - well, really, the whole
thing WAS a refactor, since the basic functionality already existed, but I was
making additions in how things were going to work.</p>
<p>First, I changed the XsltStream to return a FileStream or a
ManifestResourceStream, based on the existence of a user-specific file:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> 		Stream XsltStream
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> 		{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 			<span style="COLOR: blue">get</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 			{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 				<span style="COLOR: blue">string</span> filePath = Path.Combine(ConfigurationPath, <span style="COLOR: blue">this</span>.BlogType.ToString() + <span style="COLOR: maroon">".xslt"</span>);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 				<span style="COLOR: blue">if</span>(File.Exists(filePath)){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 					<span style="COLOR: green">//read from a file stream.
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 					FileStream fs = <span style="COLOR: blue">new</span> FileStream(filePath, FileMode.Open);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 					<span style="COLOR: blue">return</span> (Stream)fs;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 				}<span style="COLOR: blue">else</span>{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 					<span style="COLOR: blue">string</span> resourceName = <span style="COLOR: maroon">"PostXING.Rss.BlogExtensions.Resources."</span> + <span style="COLOR: blue">this</span>.BlogType.ToString() + <span style="COLOR: maroon">".xslt"</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 					<span style="COLOR: blue">return</span> Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 13</span> 				}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 14</span> 			}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 15</span> 		}</pre>
<p>Again, this part was shamelessly <strike>lifted </strike> modified from
<a href="http://haacked.com">haacked</a> who generously gave out the source
code for his BlogThisUsingWbloggarPlugin. (the configurationPath property was
changed a bit to enable more than one file to go into that particular path).</p>
<p>Then I added a button next to each option in the config dialog that says
simply &quot;Customize...&quot;. Pressing this button opens a modal form that loads up the
text from the user-defined file if it exists, else from the resource
stream.:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> 		<span style="COLOR: blue">string</span> transformPath;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 		<span style="COLOR: blue">public</span> CustomizeForm()
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 		{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 			<span style="COLOR: green">//
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 			<span style="COLOR: green">// Required for Windows Form Designer support
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 			<span style="COLOR: green">//
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 			InitializeComponent();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 		}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 		<span style="COLOR: blue">public</span> CustomizeForm(<span style="COLOR: blue">string</span> TransformToCustomize) : <span style="COLOR: blue">this</span>(){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 13</span> 			transformPath = Path.Combine(BlogThisUsingPostXINGPlugin.ConfigurationPath, <span style="COLOR: blue">string</span>.Format(<span style="COLOR: maroon">"{0}.xslt"</span>, TransformToCustomize));
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 14</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 15</span> 			<span style="COLOR: blue">this</span>.LoadTransform(TransformToCustomize);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 16</span> 		}	
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 17</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 18</span> 		<span style="COLOR: blue">private</span> <span style="COLOR: blue">void</span> LoadTransform(<span style="COLOR: blue">string</span> TransformToCustomize){			
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 19</span> 			<span style="COLOR: blue">string</span> resourceName = <span style="COLOR: blue">string</span>.Format(<span style="COLOR: maroon">"PostXING.Rss.BlogExtensions.Resources.{0}.xslt"</span>, TransformToCustomize);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 20</span> 			<span style="COLOR: green">//Stream resourceStream;
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 21</span> 			StreamReader sr;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 22</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 23</span> 			<span style="COLOR: blue">if</span>(File.Exists(transformPath)){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 24</span> 				sr = <span style="COLOR: blue">new</span> StreamReader(transformPath);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 25</span> 				<span style="COLOR: blue">this</span>.rtbTransform.Text = sr.ReadToEnd();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 26</span> 				sr.Close();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 27</span> 				
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 28</span> 			}<span style="COLOR: blue">else</span>{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 29</span> 				sr = <span style="COLOR: blue">new</span> StreamReader(ResourceStream(resourceName));
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 30</span> 				<span style="COLOR: blue">this</span>.rtbTransform.Text = sr.ReadToEnd();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 31</span> 				sr.Close();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 32</span> 				
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 33</span> 			}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 34</span> 		}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 35</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 36</span> 		Stream ResourceStream(<span style="COLOR: blue">string</span> resourceName){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 37</span> 			<span style="COLOR: blue">return</span> Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 38</span> 		}</pre>
<p>3 buttons were added to the form: Revert to Original, Apply, and Cancel. I
didn't really think that I needed DialogResults, since you have to invoke the
plugin via its menu every time you want to use it. Revert to Original just
deletes the user-defined file. Cancel simply closes the form and does nothing.
Apply does this:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> 		<span style="COLOR: blue">private</span> <span style="COLOR: blue">void</span> btnApply_Click(<span style="COLOR: blue">object</span> sender, System.EventArgs e) {
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> 			<span style="COLOR: blue">if</span>(File.Exists(transformPath)){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 				File.Delete(transformPath);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 			}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 			StreamWriter sw = <span style="COLOR: blue">new</span> StreamWriter(transformPath, <span style="COLOR: maroon">false</span>); <span style="COLOR: green">//doesn't release file handle?
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 			sw.Write(<span style="COLOR: blue">this</span>.rtbTransform.Text);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 			sw.Flush();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 			sw.Close();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 			<span style="COLOR: blue">this</span>.Close();
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 		}</pre>
<p>Notice my little note to myself? It turned out that I tried using the using
statement, using File.CreateText(transformPath) (which is why the pre-step
File.Delete is in there) and I kept getting &quot;Cannot access file 'blah' because
it is in use by another process.&quot; When I opened up sysinternal's process
explorer and searched for the file, it said that the file handle was opened by
RssBandit. grr.</p>
<p>All I ended up having to do was to add one argument to File.Open from the
XsltStream property getter:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> 		Stream XsltStream
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> 		{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 			<span style="COLOR: blue">get</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 			{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 				<span style="COLOR: blue">string</span> filePath = Path.Combine(ConfigurationPath, <span style="COLOR: blue">this</span>.BlogType.ToString() + <span style="COLOR: maroon">".xslt"</span>);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 				<span style="COLOR: blue">if</span>(File.Exists(filePath)){
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 					<span style="COLOR: green">//read from a file stream.
</span><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 					FileStream fs = <span style="COLOR: blue">new</span> FileStream(filePath, FileMode.Open, FileAccess.Read);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 					<span style="COLOR: blue">return</span> (Stream)fs;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 				}<span style="COLOR: blue">else</span>{
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 					<span style="COLOR: blue">string</span> resourceName = <span style="COLOR: maroon">"PostXING.Rss.BlogExtensions.Resources."</span> + <span style="COLOR: blue">this</span>.BlogType.ToString() + <span style="COLOR: maroon">".xslt"</span>;
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 					<span style="COLOR: blue">return</span> Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 13</span> 				}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 14</span> 			}
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 15</span> 		}</pre>
<p>And bam! the problem went away. It looks like the default for a new
FileStream (sans FileAccess attribute) is FileAccess.ReadWrite. Anyways, I hope
this helps someone else out there from banging their head too much.</p>
<p class="media">[ Currently Playing : Inertiatic ESP - Mars Volta - De-Loused In 
The Comatorium (4:23) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: new domain name for Aceh Aid]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-04-RE-new-domain-name-for-Aceh-Aid</link>
            <guid>https://chris.pelatari.com/posts/2005-01-04-RE-new-domain-name-for-Aceh-Aid</guid>
            <pubDate>Tue, 04 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
  <p align="center"><br /><a href="http://www.AcehAid.org"><strong><font face="Verdana" size="5">www.AcehAid.org</font></strong></a> </p>
  <p align="left">What do they need? MONEY of course to pay for the supplies going 
  into Aceh. <a href="http://spaces.msn.com/members/susijohnston/Blog/cns!1p9unOFWMVQ3UgLkL7kGIYDA!141.entry">Macs, 
  lots of macs and digital cameras and more</a>. </p>
  <p align="left">An <a href="http://spaces.msn.com/members/susijohnston/Blog/cns!1p9unOFWMVQ3UgLkL7kGIYDA!175.entry">external 
  hard drive</a> for backing up precious data. More money. Stuff. Sleep. Rest. 
  Peace. </p><br /><br /><a href="http://www.AcehAid.org">http://www.AcehAid.org</a></blockquote>
<p><i>[Via <a href="http://www.thedatafarm.com/blog/PermaLink.aspx?guid=0c690ea5-ee2c-43a3-847a-1f2bbc4ca9bc">Julia
Lerman Blog - Don't Be Iffy...</a>]</i></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New customizable version of BlogThisUsingPostXINGPlugin available]]></title>
            <link>https://chris.pelatari.com/posts/2005-01-04-New-customizable-version-of-BlogThisUsingPostXINGPlugin-available</link>
            <guid>https://chris.pelatari.com/posts/2005-01-04-New-customizable-version-of-BlogThisUsingPostXINGPlugin-available</guid>
            <pubDate>Tue, 04 Jan 2005 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This <a href="http://PostXING.url123.com/plugin1.0.5004.1">new version of the
BlogThisUsingPostXINGPlugin</a> handles customizing the transform used to output
into a new Post in <a href="http://PostXING.url123.com/main">PostXING</a>. For
example, say I want to have the title of the post referenced in the post body. I
would start off with the LinkOnly.xslt option:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> <span style="COLOR: blue">&lt;?</span><span style="COLOR: maroon">xml</span> <span style="COLOR: red">version</span>="<span style="COLOR: dodgerblue">1.0</span>" <span style="COLOR: blue">?&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:stylesheet</span> <span style="COLOR: red">version</span>="<span style="COLOR: dodgerblue">1.0</span>" <span style="COLOR: red">xmlns:xsl</span>="<span style="COLOR: dodgerblue">http://www.w3.org/1999/XSL/Transform</span>"<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:output</span> <span style="COLOR: red">method</span>="<span style="COLOR: dodgerblue">html</span>" /<span style="COLOR: blue">&gt;</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:variable</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">feed-title</span>" <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">/rss/channel/title</span>" /<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 	
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:template</span> <span style="COLOR: red">match</span>="<span style="COLOR: dodgerblue">/</span>"<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:apply-templates</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">//item</span>" /<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 	<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:template</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:template</span> <span style="COLOR: red">match</span>="<span style="COLOR: dodgerblue">/rss/channel/item</span>"<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">html</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">title</span><span style="COLOR: blue">&gt;</span>RE: <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:value-of</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">title</span>" /<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">title</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 13</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:choose</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:when</span> <span style="COLOR: red">test</span>="<span style="COLOR: dodgerblue">link</span>"<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>a <span style="COLOR: red">href</span>="<span style="COLOR: dodgerblue">{link}</span>"<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:value-of</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">$feed-title</span>" /<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">a</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:when</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:otherwise</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:value-of</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">$feed-title</span>" /<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:otherwise</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:choose</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 14</span> 		<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">html</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 15</span> 	<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:template</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 16</span> <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:stylesheet</span><span style="COLOR: blue">&gt;</span></pre>
<p>Line 13 is the key line. All I did was change the use of
xsl:variable to the actual title that is context-specific in this case. So we
now have:</p>
<pre><span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  1</span> <span style="COLOR: blue">&lt;?</span><span style="COLOR: maroon">xml</span> <span style="COLOR: red">version</span>="<span style="COLOR: dodgerblue">1.0</span>" <span style="COLOR: blue">?&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  2</span> <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:stylesheet</span> <span style="COLOR: red">version</span>="<span style="COLOR: dodgerblue">1.0</span>" <span style="COLOR: red">xmlns:xsl</span>="<span style="COLOR: dodgerblue">http://www.w3.org/1999/XSL/Transform</span>"<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  3</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:output</span> <span style="COLOR: red">method</span>="<span style="COLOR: dodgerblue">html</span>" /<span style="COLOR: blue">&gt;</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  4</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:variable</span> <span style="COLOR: red">name</span>="<span style="COLOR: dodgerblue">feed-title</span>" <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">/rss/channel/title</span>" /<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  5</span> 	
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  6</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:template</span> <span style="COLOR: red">match</span>="<span style="COLOR: dodgerblue">/</span>"<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  7</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:apply-templates</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">//item</span>" /<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  8</span> 	<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:template</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey">  9</span> 
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 10</span> 	<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:template</span> <span style="COLOR: red">match</span>="<span style="COLOR: dodgerblue">/rss/channel/item</span>"<span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 11</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">html</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 12</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">title</span><span style="COLOR: blue">&gt;</span>RE: <span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:value-of</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">title</span>" /<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">title</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 13</span> 		<span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:choose</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:when</span> <span style="COLOR: red">test</span>="<span style="COLOR: dodgerblue">link</span>"<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>a <span style="COLOR: red">href</span>="<span style="COLOR: dodgerblue">{link}</span>"<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:value-of</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">title</span>" /<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">a</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:when</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:otherwise</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span><span style="COLOR: maroon">xsl:value-of</span> <span style="COLOR: red">select</span>="<span style="COLOR: dodgerblue">title</span>" /<span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:otherwise</span><span style="COLOR: blue">&gt;</span><span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:choose</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 14</span> 		<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">html</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 15</span> 	<span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:template</span><span style="COLOR: blue">&gt;</span>
<span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"> 16</span> <span style="COLOR: blue">&lt;</span>/<span style="COLOR: maroon">xsl:stylesheet</span><span style="COLOR: blue">&gt;</span></pre>
<p>Subtle difference, but it changes a post from this:</p>
<p><a href="http://weblogs.asp.net/fbouma/archive/2005/01/03/345841.aspx">Frans
Bouma's blog</a></p>
<p>to this:</p>
<p><a href="http://weblogs.asp.net/fbouma/archive/2005/01/03/345841.aspx">Template
Studio for LLBLGen Pro released!</a></p>
<p>I only left the three default options for formatting in there
with the idea that most of the time, I would only want to use one of these
anyways. This opens up the door for this plugin to be completely customized, to
where the descriptions don't mean anything for the content of the actual
transform.</p>
<p class="media">[ Currently Playing : Killer Is Me - Alice in Chains - Unplugged 
(5:23) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[IPlugin implemented.]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-31-IPlugin-implemented</link>
            <guid>https://chris.pelatari.com/posts/2004-12-31-IPlugin-implemented</guid>
            <pubDate>Fri, 31 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I ended up working out a method to load plugins - it's a hybrid of Royo's 
<a href="http://weblogs.asp.net/rosherove/archive/2003/11/24/39484.aspx">Extensibility 
Application Block</a> and the method used by <a href="http://rssbandit.org">RssBandit</a>. Now, I do have rudimentary spell 
checking in my dogfood version of PostXING (again :), but I'm having trouble 
figuring out how to handle the dictionary files.</p>
<p>By default, <a href="http://www.loresoft.com/Applications/NetSpell/default.aspx">NetSpell</a> looks 
for a culture-sensitive .dic(tionary) file from the Application.StartupPath (I 
think - when trying to launch <a href="http://PostXING.url123.com/main">PostXING</a> from the <a href="http://PostXING.url123.com/plugin1.0.4365.1">BlogThisUsingPostXINGPlugin</a>, 
it complains that it cannot find the file...\bin\RssBandit\en-US.dic) I manually 
copied the en-US.dic file to PostXING's root folder and it works when launching 
the program by itself. </p>
<p>The thing is that you can specify which dictionary file you want to use in 
the component as well as where that file is located. This would be helpful in 
situations where your CultureInfo is set to something other than English, but 
you mainly post to your blog using the English language. I'm thinking that I 
might be able to address this using something like the IBlogExtension idea of 
HasConfiguration or HasEditingGUI or a combination of the two. This means that 
this part of PostXING is gonna take a little bit longer to finish than I 
originally thought - I want to get it right, ya know?</p>
<p>Also, I don't know how I'm going to handle the distribution of the dictionary 
files - NetSpell comes with these by default:</p>
<p>de-DE.dic<br />en-AU.dic<br />en-CA.dic<br />en-GB.dic<br />en-US.dic<br />es-ES.dic<br />es-MX.dic<br />fr-FR.dic<br />it-IT.dic</p>
<p>with a combined size of nearly 10MB. (The biggest one is de-DE at 2.1Mb). 
There's no way I could host all of these on <a href="http://projectdistributor.net">ProjectDistributor</a> - that would be 
an abuse of a great service. I am so open to ideas on how to address this one 
it's not even funny. The spell checker is pretty well useless without a good 
dictionary file to back it up. Anyways, these are the issues I'm facing while 
trying to get this <a href="http://www.loresoft.com/Applications/NetSpell/default.aspx">great spell 
checking component </a>implemented as a plugin. Happy New Year!</p>
<p class="media">[ Currently Playing : Down in a Hole - Alice in Chains - 
Unplugged (5:45) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A couple of releases]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-30-A-couple-of-releases</link>
            <guid>https://chris.pelatari.com/posts/2004-12-30-A-couple-of-releases</guid>
            <pubDate>Thu, 30 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I released a <a href="http://PostXING.url123.com/v1.1.4363.1">new version 
of PostXING</a> , adding support for the new IBlogExtension plugin I was 
talking about the other day. Oh, I <a href="http://PostXING.url123.com/plugin1.0.4365.1">released the 
BlogThisUsingPostXING plugin</a>, too. </p>
<p>I think I mentioned that I got the large part of the source code for that one 
from <a href="http://haacked.com/">haacked</a>, but if I didn't, I am now. The 
source is in no way original by me, I just hacked the solution from his <a href="http://haacked.com/archive/2004/12/04/1697.aspx">improved plugin for using 
w.bloggar with RSS Bandit</a>. </p>
<p>To use the plugin, the latest version of PostXING is required - it writes out 
the location of PostXING so everyone knows how to play nicely together and also 
takes in (kind of) an html file for adding post information to PostXING on load. 
Sorry about that - I had no idea how to get this working before I got this great 
code sample from haacked. I'm sure that neither one of you will mind that much, 
tho.</p>
<p class="media">[ Currently Playing : Alpha Centauri - At The Drive-In - In 
Casino Out (3:13) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: IBlogExtension]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-22-RE-IBlogExtension</link>
            <guid>https://chris.pelatari.com/posts/2004-12-22-RE-IBlogExtension</guid>
            <pubDate>Wed, 22 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <p xmlns="http://www.w3.org/1999/xhtml"><a href="http://yexley.net/blogs/bob/archive/2004/11/30/958.aspx">Bob wants to 
  see some integration of RssBandit and PostXING.</a> </p>
  <p xmlns="http://www.w3.org/1999/xhtml">This was an idea I had really early on 
  simply because a lot of the features in <a href="http://PostXING.url123.com/main">PostXING</a> were, <em>ahem, 
  </em>borrowed from w.bloggar, and RssBandit already supports a plugin that 
  starts w.bloggar for posting to a weblog. So, why couldn't I do something 
  similar? </p>
  <p xmlns="http://www.w3.org/1999/xhtml">Well, I thought that it had something 
  to do with implementing IBlogExtension, for which I couldn't find too much 
  documentation. Maybe it's such a simple thing to implement that only a 
  yutz like me would need documentation. I honestly don't know and haven't 
  looked into it too much simply because I didn't have an immediate need for it. 
  </p>
  <p xmlns="http://www.w3.org/1999/xhtml">Once Dare adds deleting capabilities 
  to <a href="http://rssbandit.org/">RssBandit</a>, I have a feeling that it's 
  going to become my default aggregator again. After that, look out for an 
  RssBandit plugin to post using PostXING.</p>
  <p class="media" xmlns="http://www.w3.org/1999/xhtml">[ Currently Playing : Love 
  Life - Fatboy Slim - Halfway Between the Gutter and Stars(6:58) 
  ]</p></blockquote>
<p><i>[Via <a href="http://www.chrisfrazier.net/blog/posts/638.aspx">Blue
Phoenix</a>]</i></p>
<p>I got a rudimentary version of this working. I couldn't figure out how to
download the original post into RssBandit, so I'm just using my original reply
to the post.</p>
<p>I'd like to thank <a href="http://haacked.com/">Haacked</a> for
providing a <a href="http://haacked.com/archive/2004/06/19/651.aspx">series
</a>of <a href="http://www.rssbandit.org/docs/html/advanced/building_and_using_bandit_plugins.htm">walkthrus
</a>as well as a <a href="http://haacked.com/archive/2004/12/04/1697.aspx">code
download </a>for an improved version of &quot;Blog This with w.bloggar...&quot; which I
basically hacked to work with PostXING. I'll probably release this closer to the
new year or after the first so I can make sure that everything is working okay
- the only version that is working correctly for me so far is the full
version. A new version of PostXING will be necessary to make this work as well -
I never thought to make sure that any application that knew or cared could find
out where PostXING lived...so I made this happen with a simple text file and a
call to</p>
<pre>System.Reflection.Assembly.GetEntryAssembly().Location;</pre>
<p>Also, I found the need to close off the StreamWriter that was
being used to write the temp file using XslTransform b/c I was getting access is
denied errors, so the code that did that now looks like so:</p>
<pre>	XslTransform transform = <span style="COLOR: blue">new</span> XslTransform();
	transform.Load(<span style="COLOR: blue">new</span> XmlTextReader(XsltStream), <span style="COLOR: blue">null</span>, <span style="COLOR: blue">null</span>);


	<span style="COLOR: blue">string</span> tempfile = Path.GetTempFileName();<span style="COLOR: green">//@"c:\tmp\plugin\" + this.BlogType.ToString() + ".html";  
</span>	StreamWriter sw = <span style="COLOR: blue">new</span> StreamWriter(tempfile);
	transform.Transform(rssFragment, <span style="COLOR: blue">null</span>, sw, <span style="COLOR: blue">null</span>);

	sw.Close();</pre>
<p>So with that and a little bit of <a href="http://blogs.msdn.com/smourier/archive/2003/06/04/8265.aspx">Agility</a>,
this was about a two-hour enhancement. Next I'm going to look into creating
(well, probably &quot;borrowing&quot;) a plugin architecture so that I can create a spell
checking plugin for <a href="http://PostXING.url123.com/main">PostXING</a> without bloating the
main download too much.</p>
<p class="media">[ Currently Playing : Burn Away - Foo Fighters - One by One 
(4:57) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RE: Cross-posting - A new trend?]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-20-RE-Cross-posting-A-new-trend</link>
            <guid>https://chris.pelatari.com/posts/2004-12-20-RE-Cross-posting-A-new-trend</guid>
            <pubDate>Mon, 20 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I started to make this a reply in <a href="http://weblogs.asp.net/shawnmor/archive/2004/12/17/323770.aspx#Feedback">Shawn's 
comments</a>, but decided it was getting too long-winded to be a comment. You 
get a post, Shawn. In his comments, someone suggested that he try out <a href="http://PostXING.url123.com/main">PostXING</a>, which is cool (!) but, he 
seems to have the wrong impression of PostXING's erm...limitations.</p>
<p>&gt;I did try PostXing, and it's another tool that assumes that cross-posting 
is against only one server.</p>
<p>It does? That's news to me! :)</p>
<p>The real limitation of the current PostXING drop is that it only expects to 
work with the metablog API. MT has its own API that is very similar, but not 
exactly the same which is bad news for an xml-rpc client. I guess I could add 
support for other authoring apis (ATOM is what I really have in mind - just for 
fun), but this is something that I do in my free time.</p>
<p>Add that to the fact that adding different authoring APIs would mean handling 
the configuration etc. differently within the app - I only ever intended to use 
this as a personal tool. My ideas are limited, but I'm always willing to at 
least consider (and usually try) feature requests, so if you use PostXING or 
would like to, let me know what you'd like to see or what you don't want to see 
anymore. I'm pretty open to suggestions, and I've come to the realization that 
most of the users of PostXING are way smarter than me anyways.</p>
<p>One idea that came up while all the hubbub was going on concerning the 
Provider Model was to use just that to make posting to different apis more 
transparent, but I'm usually against doing something just because it's the 
current "fad". The fact of the matter is that I've never needed the 
functionality to post to different types of api's than the metablog api, so I 
never put in the facility to do so. I would not, however, be against adding 
support for this particular feature if there is really a need (okay, come on - 
want) for it and I had some solid implementation suggestions for doing so.</p>
<p class="media">[ Currently Playing : Sunset (Bird of Prey) - Fatboy Slim - 
Halfway Between the Gutter and the Stars(6:49) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Paul D. Murphy's Google Juice research]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-16-Paul-D-Murphys-Google-Juice-research</link>
            <guid>https://chris.pelatari.com/posts/2004-12-16-Paul-D-Murphys-Google-Juice-research</guid>
            <pubDate>Thu, 16 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Paul is trying to find out what effect blogs have on google juice. He's 
decided to coin the term 'consummate asshole' "because it has very little 
competition on the google world (and it's funny)."</p>
<p>So, being the helpful person that I am, I decided to give him a (very!) 
little boost by adding the following phrase and link to a couple of my 
blogs:</p>
<p> Paul D Murphy is the <a href="http://www.blogsburg.com/consummate.asshole/">consummate asshole</a> </p>
<p>Good Luck, Paul, you consummate asshole, you.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Southpark Me.]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-13-Southpark-Me</link>
            <guid>https://chris.pelatari.com/posts/2004-12-13-Southpark-Me</guid>
            <pubDate>Mon, 13 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://southparkstudios.com/games/create.html">South Park 
Me</a>:</p>
<p><img src="/assets/images/south_park_me.jpg" /></p>
<p>(which is not too far away from) Real Me:</p>
<p><img src="/assets/images/12-13-04_1432.jpg" /></p>
<p>No, I don't work for Microsoft, but I am wearing this shirt today. I need a 
shave, don't I? (this picture was taken from my Motorola V400.)</p>
<p><font color="red">update</font>: Just to be fair, here's another shirt that I 
wear sometimes:</p>
<p><img src="/assets/images/south_park_me_openbsd.jpg" /></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Project Distributor: the chicken AND the egg!]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-07-ProjectDistributor-the-chicken-AND-the-egg</link>
            <guid>https://chris.pelatari.com/posts/2004-12-07-ProjectDistributor-the-chicken-AND-the-egg</guid>
            <pubDate>Tue, 07 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, it looks like <a href="http://weblogs.asp.net/dneimke">Darren</a> decided to confuse the 
hell out of me and make his <a href="http://projectdistributor.net">Project 
Distributor</a> available for <a href="http://url123.com/zyz7y">download</a> at guess where? <a href="http://url123.com/zyz7y">Project Distributor</a>! Okay, maybe it's not 
that confusing (or maybe I just confuse too easily :)</p>
<p>This is great news - ever since I've made <a href="http://PostXING.url123.com/main">PostXING</a> available for download at <a href="http://PostXING.url123.com/v1.0.4335.1">Project Distributor</a> I've 
had nothing but great things to say about the service...and now I can have it on 
a server all my own! Cheers, Darren, for coming up with a great idea and making 
it available to everyone. You rock.</p>
<p class="media">[ Currently Playing : Two Tabs of Mescaline - Glassjaw - Worship 
&amp; Tribute (8:18) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Wooohooo!]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-03-Wooohooo</link>
            <guid>https://chris.pelatari.com/posts/2004-12-03-Wooohooo</guid>
            <pubDate>Fri, 03 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/dneimke">Darren </a>went and fixed my <a href="http://projectdistributor.net">Project Distributor </a>blunder...now you 
can get the latest version of <a href="http://PostXING.url123.com/v1.0.4335.1">PostXING</a> from the place 
it was originally released. </p>
<p>Thanks, Darren.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Wes, you Rock.]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-03-Wes-you-Rock</link>
            <guid>https://chris.pelatari.com/posts/2004-12-03-Wes-you-Rock</guid>
            <pubDate>Fri, 03 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Forreal. </p>
<p>I had been using a different, "static" library to do syntax highlighting 
before...Now, if you don't like how a certain language is configured, change it! 
<a href="http://puzzleware.net/codehtmler">CodeHtmler</a> is great. It 
gives me the option to add or modify language definitions (Generics, anyone?) IF 
I so desire, and it just dropped right into my app with an interface to edit the 
definitions already there. That's HOTT. But (in my best Lavar Burton voice) <a href="http://weblogs.asp.net/whaggard/archive/2004/12/02/274133.aspx">Don't take 
<em>my </em>word for it.</a></p>
<p>I changed two lines of code (well, <a href="http://weblogs.asp.net/whaggard/archive/2004/12/02/274133.aspx">Wes 
</a>did :) in PostXING and it was up and running. I'm not quite ready to release 
the next version of <a href="http://PostXING.url123.com/main">PostXING</a> yet - I've still got a 
little bit of smoke testing to do on the spellchecker, and I just want to make 
sure all the new goodies work before getting angry feature requests on <a href="http://projectdistributor.net">Project Distributor</a>!</p>
<p>So, thanks, <a href="http://weblogs.asp.net/whaggard">Wes</a>. You have made 
PostXING a better program.</p>
<p class="media">[ Currently Playing : Ape Dos Mil - Glassjaw - Worship &amp; 
Tribute (5:03) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Prince of Persia 2: the Warrior Within]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-02-Prince-of-Persia-2-the-Warrior-Within</link>
            <guid>https://chris.pelatari.com/posts/2004-12-02-Prince-of-Persia-2-the-Warrior-Within</guid>
            <pubDate>Thu, 02 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Damn.</p>
<p>That's right, I said Damn.</p>
<p>It looks and feels so much like the first one (which I beat about 6 or 7
times without getting tired of it) but UbiSoft did a good job of extending the
story; even making the Prince look and even move like he's older. It's the
little details that I'm talking about - the fact that it takes him a little more
effort to swing on poles and things of that nature.</p>
<p>I didn't seem to get very far in the game; since you go back and forth thru
time you're really in the same area just in two different time frames. It did
land me in the doghouse, tho, since I was only going to play for an hour or so
and ended up playing like 4. Who needs sleep anyways, right? 😃</p>
<p>[ Currently Playing : Forty Six &amp; 2 - Tool - Aenima (6:03) ]</p>
<p>P.S. I intentionally misspelled a lot of words in this post to test out the
spell checker of <a href="http://PostXING.url123.com/main">PostXING</a>...works
pretty well, that is, if you don't mind seeing markup when you spell check 😃
I've still gotta test it some more, but it should be ready pretty soon I
hope.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Does this mean I've made it?]]></title>
            <link>https://chris.pelatari.com/posts/2004-12-01-Does-this-mean-Ive-made-it</link>
            <guid>https://chris.pelatari.com/posts/2004-12-01-Does-this-mean-Ive-made-it</guid>
            <pubDate>Wed, 01 Dec 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It took nearly two years, but it looks like I've posted something interesting 
enough to show up on the <a href="http://www.larkware.com/dg2/TheDailyGrind512.html">Daily Grind</a>. </p>
<p>It's linked over <a href="http://weblogs.asp.net/cfrazier">there</a> as 
opposed to <a href="http://www.chrisfrazier.net/blog">here</a>, tho, which makes 
me that much happier that I can syndicate identical content to more than one 
place, one of said places getting a tremendously larger amount of traffic than 
the others.</p>
<p class="media">[ Currently Playing : Sideways - Citizen Cope - Shaman (4:41) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Posted too soon?]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-30-Posted-too-soon</link>
            <guid>https://chris.pelatari.com/posts/2004-11-30-Posted-too-soon</guid>
            <pubDate>Tue, 30 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It looks like I created (or rather raised an awareness to) a little
snafu on <a href="http://projectdistributor.net">ProjectDistributor</a> 😕</p>
<p>The <a href="http://PostXING.url123.com/v1.0.4335.1">latest release </a>of <a href="http://PostXING.url123.com/main">PostXING</a> didn't upload properly,
so I'm putting a temporary download on my server:
PostXINGv1.0.4335.1.zip</p>
<p><font color="red">update</font> - it's fixed!</p>
<p>I also rolled back the release to the last one that worked as a download over
at <a href="http://projectdistributor.net">ProjectDistributor.net</a>.</p>
<p>I'll be taking both down as soon as Darren lets me know things are well
again. Sorry to both of you that care.</p>
<p class="media">[ Currently Playing : Star 69 - Fatboy Slim - Halfway Between the 
Gutter and the Stars(5:42) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[LoreSoft.com]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-30-LoreSoft</link>
            <guid>https://chris.pelatari.com/posts/2004-11-30-LoreSoft</guid>
            <pubDate>Tue, 30 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I feel like I've hit .net developer's gold.</p>
<p>I was searching for a spell checking component and came across <a href="http://www.loresoft.com/default.aspx">this site </a>(with the help of <a href="http://dev4net.com/Blog/Default.aspx">Don Smith</a>). Not only is there a 
spell checker component there (which looks pretty good at first glance) but 
there are a bunch of other useful tools ranging from a Windows API file search 
wrapper to web access for Visual SourceSafe and Draco.NET.</p>
<p>Good stuff.</p>
<p>P.S. I'm hoping to add spell checking and a couple of other items to <a href="http://PostXING.url123.com/main">PostXING</a>. If you'd like to snag a 
copy, you can find the latest release <a href="http://PostXING.url123.com/v1.0.4335.1">here</a>.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[IBlogExtension]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-30-IBlogExtension</link>
            <guid>https://chris.pelatari.com/posts/2004-11-30-IBlogExtension</guid>
            <pubDate>Tue, 30 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://yexley.net/blogs/bob/archive/2004/11/30/958.aspx">Bob wants
to see some integration of RssBandit and PostXING.</a>
This was an idea I had really early on simply because a lot of the features
in <a href="http://PostXING.url123.com/main">PostXING</a> were, <em>ahem,</em> borrowed from w.bloggar, and RssBandit already supports a plugin that
starts w.bloggar for posting to a weblog. So, why couldn't I do something
similar?</p>
<p>Well, I thought that it had something to do with implementing IBlogExtension,
for which I couldn't find too much documentation. Maybe it's such a simple thing
to implement that only a yutz like me would need documentation. I honestly
don't know and haven't looked into it too much simply because I didn't have an
immediate need for it.</p>
<p>Once Dare adds deleting capabilities to <a href="http://rssbandit.org/">RssBandit</a>, I have a feeling that it's going to
become my default aggregator again. After that, look out for an RssBandit plugin
to post using PostXING.</p>
<p class="media">[ Currently Playing : Love Life - Fatboy Slim - Halfway Between 
the Gutter and Stars(6:58) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hey Scoble]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-26-Hey-Scoble</link>
            <guid>https://chris.pelatari.com/posts/2004-11-26-Hey-Scoble</guid>
            <pubDate>Fri, 26 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>By the way, <a href="http://scoble.weblogs.com">Scoble</a>, I
<em>do</em> read your blog...I just can't remember everything that gets
posted there! Don't you remember posting 60 - 70 items in one night before?</p>
<p>Thanks btw for pointing out my misinformed previous post. Hope you enjoyed
your turkey-day 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Fact check first, Christopher]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-25-Fact-check-first-Christopher</link>
            <guid>https://chris.pelatari.com/posts/2004-11-25-Fact-check-first-Christopher</guid>
            <pubDate>Thu, 25 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Ouch. Looks like I should find out if a picture I post to my blog is
authentic or not before posting 😒</p>
<blockquote><!--StartFragment --><a id="Comments.ascx_CommentList__ctl2_NameLink" href="http://scoble.weblogs.com" target="_blank">Robert Scoble</a>
  <div>This is a well-known hoax. I guess you don't read 
  my blog. I got sucked into this one too.</div></blockquote>
<blockquote><!--StartFragment -->
  <a id="Comments.ascx_CommentList__ctl3_NameLink" target="_blank">Dean Harding</a>
  <div><a href="http://www.snopes.com/inboxer/hoaxes/computer.asp" target="_new">http://www.snopes.com/inboxer/hoaxes/computer.asp</a> 
</div></blockquote>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[We've come a long way, baby.]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-24-Weve-come-a-long-way-baby</link>
            <guid>https://chris.pelatari.com/posts/2004-11-24-Weve-come-a-long-way-baby</guid>
            <pubDate>Wed, 24 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>From 1954 Popular Mechanics:</p>
<p><img src="/assets/images/pic16512.jpg" /></p>
<p class="media">[ Currently Playing : Low - Foo Fighters - One by One (04:28) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I've got a little pirate.]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-24-Ive-got-a-little-pirate</link>
            <guid>https://chris.pelatari.com/posts/2004-11-24-Ive-got-a-little-pirate</guid>
            <pubDate>Wed, 24 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>My son, Ethan, has started pretending to be a pirate sometimes on the 
weekends that he visits me. </p>
<p>This past weekend, he got a sticker from Kroger's and proceeded to put it 
over his eye - <img src="/assets/images/11-20-04_1923.jpg" /></p>
<p>"aaah matey! wokka pank! (dat means tro u ovabord)" </p>
<p>Ethan sure knows how to make his Daddy proud! (I think it's hilarious)</p>
<p>[ Currently Playing : Have It All - Foo Fighters - One by One (04:58) 
]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Free Icons at EggHeadCafe]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-19-Free-Icons-at-EggHeadCafe</link>
            <guid>https://chris.pelatari.com/posts/2004-11-19-Free-Icons-at-EggHeadCafe</guid>
            <pubDate>Fri, 19 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I was doing my early morning googling and came across <a href="http://url123.com/ykxzh">this</a> - a set of free icons in the WinXP 
custom format. Really nice if you want to add that touch of candy to your apps, 
be they windows or webforms. There are also a set of spheres there that have a 
slew of different colors...That along with the FireFox extension <a href="http://url123.com/yk7qs">downTHEMall</a> made for a great 5 minutes 
of getting some nice starter icon sets.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[CODESNIP - Creating C# like indexers in VB.NET]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-19-CODESNIP-Creating-C-like-indexers-in-VBNET</link>
            <guid>https://chris.pelatari.com/posts/2004-11-19-CODESNIP-Creating-C-like-indexers-in-VBNET</guid>
            <pubDate>Fri, 19 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, kind of 😃 I have a collection that I want to access in C# with an
indexer, the only problem is that the collection is written in VB.NET as part of
a library which I need to consume and would be foolhardy to try and rewrite in
C#.</p>
<p>It's just a mixture of attributes and keywords - but gets me from having
to call</p>
<pre>MyCollection.get_Item(<font color="#004884">"key"</font>);</pre>
<p>to</p>
<pre>MyCollection[<font color="#004884">"key"</font>];</pre>
<p>Just a stylistic approach on my end to keep the readability of my C# consumer
as high as possible. This is basically what I used:</p>
<pre><font color="#0000ff">Imports</font> System.Reflection
...
&lt;DefaultMember(<font color="#004884">"Item"</font>)&gt; _ 
<font color="#0000ff">Public</font> <font color="#0000ff">Class</font> MyCollection
	<font color="#0000ff">Inherits</font> System.Collections.CollectionBase

	<font color="#0000ff">Public</font> <font color="#0000ff">Sub</font> Add(<font color="#0000ff">ByVal</font> NewObj <font color="#0000ff">As</font> <font color="#0000ff">MyClass</font>)
		List.Add(NewObj)
	<font color="#0000ff">End</font> <font color="#0000ff">Sub</font>

	...

	<font color="#0000ff">Default</font> <font color="#0000ff">Public</font> <font color="#0000ff">Overloads</font> <font color="#0000ff">ReadOnly</font> <font color="#0000ff">Property</font> Item(<font color="#0000ff">ByVal</font> Index <font color="#0000ff">As</font> Int32) _
		<font color="#0000ff">As</font> <font color="#0000ff">MyClass</font>
		<font color="#0000ff">Get</font>
			<font color="#0000ff">Return</font>(<font color="#0000ff">CType</font>(List.Item(Index), <font color="#0000ff">MyClass</font>)
		<font color="#0000ff">End</font> <font color="#0000ff">Get</font>
	<font color="#0000ff">End</font> <font color="#0000ff">Property</font>

	<font color="#0000ff">Default</font> <font color="#0000ff">Public</font> <font color="#0000ff">Overloads</font> <font color="#0000ff">ReadOnly</font> <font color="#0000ff">Property</font> Item(<font color="#0000ff">ByVal</font> Key <font color="#0000ff">As</font> <font color="#0000ff">String</font>) _
		<font color="#0000ff">As</font> <font color="#0000ff">MyClass</font>
		<font color="#0000ff">Get</font>
			<font color="#0000ff">Return</font>(GetByKey(Key))
		<font color="#0000ff">End</font> <font color="#0000ff">Get</font>
	<font color="#0000ff">End</font> <font color="#0000ff">Property</font>
...
<font color="#0000ff">End</font> <font color="#0000ff">Class</font></pre>
<p>I don't know if the Default on the properties are required, but this worked
for me. So I'm not messing with it 😃 Hope this can help someone else out
there.</p>
<p>[ Currently Playing : High and Dry - Radiohead - The Bends
(4:05) ]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Bring Back KLOL!]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-19-Bring-Back-KLOL</link>
            <guid>https://chris.pelatari.com/posts/2004-11-19-Bring-Back-KLOL</guid>
            <pubDate>Fri, 19 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p> <a href="http://bringbackklol.com/index.php">http://bringbackklol.com/index.php</a> 
</p>
<p><!--StartFragment --> <!--StartFragment --> <a href="http://www.rock101.info/speakout/">http://www.rock101.info/speakout/</a> 
  <blockquote><strong>Did you wake up to Spanish music? Clear Channel has 
  decided to make a format change at Houston expense.</strong> Rock 101 KLOL is 
  no longer and we have another Spanish channel to go along with Houston's other 
  16 Spanish channels. We need to show Clear Channel that we will not just stand 
  by while a 32-year-old station is removed from the air. </blockquote></p>
<p>I was devistated. I was listening to <a href="http://waltonandjohnson.com/">Walton and Johnson</a> in the morning, 
and all of a sudden in the afternoon I'm hearing spanish music. If you live in 
the Houston area and give a flying flip (or hell, even if neither apply) please 
visit bringbackklol.com and <a href="http://bringbackklol.com/petition.php">sign 
the petition </a>to bring back one of the best rock stations out there. It can 
be done.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Happy Birthday to me]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-15-Happy-Birthday-to-me</link>
            <guid>https://chris.pelatari.com/posts/2004-11-15-Happy-Birthday-to-me</guid>
            <pubDate>Mon, 15 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm 24 today 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[test]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-11-test</link>
            <guid>https://chris.pelatari.com/posts/2004-11-11-test</guid>
            <pubDate>Thu, 11 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Sorry - sometimes it's necessary, tho 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Stupid error messages.]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-04-Stupid-error-messages</link>
            <guid>https://chris.pelatari.com/posts/2004-11-04-Stupid-error-messages</guid>
            <pubDate>Thu, 04 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I could have sworn I saw this on someone else's blog recently, but I just 
encountered a pretty dumb error from a hiccup on this very server.</p>
<p>I've recently added a new server to our network that will ultimately be a DC 
(did I mention I hate network administration?) so I decided to make this server 
"headless" - only admining it from VNC or RDP. Well, when a reboot was 
necessary, I found a nice little message on bootup (by plugging the KVM back 
into this server) that said "Error - Keyboard not found. Press F1 to continue or 
DEL to enter setup."</p>
<p>So...how am I supposed to do this when there is NO KEYBOARD? Heh, it was just 
mildly annoying - but since it was easily recoverable, I'm able to laugh about 
it not even 30 minutes later.</p>
<p class="media">[ Currently Playing : Guess Who's Back feat. Jay-Z and Beanie 
Sigel - Scarface - The Fix (4:15) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ProjectDistributor rox your sox.]]></title>
            <link>https://chris.pelatari.com/posts/2004-11-04-ProjectDistributor-rox-your-sox</link>
            <guid>https://chris.pelatari.com/posts/2004-11-04-ProjectDistributor-rox-your-sox</guid>
            <pubDate>Thu, 04 Nov 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just can't pimp <a href="http://weblogs.asp.net/dneimke/">Darren's</a> new 
<a href="http://markitup.aspxconnection.com">ProjectDistributor</a> enough. 
Look at <a href="http://weblogs.asp.net/dneimke/archive/2004/11/04/251886.aspx">the ideas 
</a>this guy comes up with. Every time I chat with him, something new is coming 
down the pike. Let me say, not just new, but innovative, fresh...sometimes so 
beautifully simple that I have to think "why didn't I think of that?". You know 
you're onto something when you make others say that.</p>
<p>Anyways, Thanks Darren for giving me a little space to place my snippets and 
for coming up with a great idea that keeps getting better.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[How I use the new "preview template" in PostXING]]></title>
            <link>https://chris.pelatari.com/posts/2004-10-28-How-I-use-the-new-preview-template-in-PostXING</link>
            <guid>https://chris.pelatari.com/posts/2004-10-28-How-I-use-the-new-preview-template-in-PostXING</guid>
            <pubDate>Thu, 28 Oct 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It starts off (defaults) using something like the following (newlines added 
for readability):</p>
<p>&lt;html&gt;<br />&lt;head&gt;&lt;link rel='stylesheet' 
href='style.css'&gt;&lt;/link&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div 
id='main'&gt;&lt;div class='post'&gt;<br />&lt;h2&gt;&lt;a href='[Post 
Url]'&gt;[Post Title]&lt;/a&gt;&lt;/h2&gt;<br />[Post 
Body]<br />&lt;/div&gt;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</p>
<p>Basically, I just go to the actual blog (using the 'view blog' button) and 
view source. The one <a href="http://www.chrisfrazier.net/blog">here</a> is 
currently using something that I hacked together pretty quickly from a layout 
that I, ahem, 'borrowed' from <a href="http://www.aylarsolutions.com">Thomas 
Johansen</a>. It looks like so (again, newlines added):</p>
<p>&lt;HTML&gt; <br />&lt;HEAD&gt;  <br />&lt;link type='text/css' 
rel='stylesheet' 
href='http://www.chrisfrazier.net/blog/skins/nGalleryBlue/style.css'&gt;&lt;/link&gt; 
<br />&lt;link rel="stylesheet" href="<a href="http://www.chrisfrazier.net/blog/customcss.aspx">http://www.chrisfrazier.net/blog/customcss.aspx</a>" 
type="text/css" &gt;&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;table border="0" 
cellpadding="0" cellspacing="0" class="mainTable"&gt;<br />&lt;tr&gt;&lt;td 
class='contentCell'&gt;<br />&lt;div id='main'&gt; <br />&lt;div 
class='post'&gt;<br />&lt;div class='news'&gt;<br />&lt;div 
class='posttitle'&gt;<br />&lt;a href='[Post Url]'&gt;[Post 
Title]&lt;/a&gt;<br />&lt;/div&gt;<br />&lt;div class='postcontent'&gt;[Post 
Body]&lt;/div&gt;<br />&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;<br />&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;<br /></p>
<p>This changes the both the Preview Page and the History Explorer from looking 
like this: </p>
<p><img src="/assets/images/fromthis.gif" /></p>
<p>to looking like this:</p>
<p><img src="/assets/images/tothis.gif" /></p>
<p class="media">[ Currently Playing : Myxomatosis. (Judge, Jury &amp; Ex - 
Radiohead - Hail To The Thief (3:52) ]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostXING Released.]]></title>
            <link>https://chris.pelatari.com/posts/2004-10-22-PostXING-Released</link>
            <guid>https://chris.pelatari.com/posts/2004-10-22-PostXING-Released</guid>
            <pubDate>Fri, 22 Oct 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I finally released my <a href="http://PostXING.url123.com/v1.0.4294.1">little 
home-hacked tool </a>to the wild, Thanks to <a href="http://weblogs.asp.net/dneimke">Darren </a>and his awesome <a href="http://markitup.aspxconnection.com/">Project Distributor</a>.</p>
<p><a href="http://PostXING.url123.com/v1.0.4294.1">PostXING </a>was originally 
just something that I wanted to use to see what I could successfully do in the 
world of <a href="http://windowsforms.net">WindowsForms</a>. I never intended to 
release it forreal because who needs another desktop blog editor, right? Well, 
I've been successfully using it for months now, so I figured, why not share the 
love?</p>
<p>A lot of people helped me along the way, and they're indicated in the about 
dialog. Big shout out goes to <a href="http://scottwater.com/">ScottWater</a> for showing the way initially 
- a lot of the codebase was inspired by a similar tool that he wrote. Another 
shout out to <a href="http://weblogs.asp.net/whaggard">Wes Haggard</a> for 
helping me get the latest feature in - I extended his idea a little bit as I 
tend to do.</p>
<p>So if you still don't have a WYSIWYG desktop blog publishing tool, and 
you have .NET 1.1 on your machine, or you wanna just check it out - find it <a href="http://PostXING.url123.com/v1.0.4294.1">here</a>.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I see ya...]]></title>
            <link>https://chris.pelatari.com/posts/2004-10-12-I-see-ya</link>
            <guid>https://chris.pelatari.com/posts/2004-10-12-I-see-ya</guid>
            <pubDate>Tue, 12 Oct 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><img src="/assets/images/throwin-up-the-3rd.jpg" /></p>
<p>whut?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[How Jedi Are you?]]></title>
            <link>https://chris.pelatari.com/posts/2004-10-06-How-Jedi-Are-you</link>
            <guid>https://chris.pelatari.com/posts/2004-10-06-How-Jedi-Are-you</guid>
            <pubDate>Wed, 06 Oct 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.gaijindesign.com/lawriemalen/jedi" target="_blank"><img height="123" src="http://www.gaijindesign.com/lawriemalen/jedi/anakin.jpg" width="285" border="0" /><br />:: how jedi are you? ::</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Happy Birthday, G!]]></title>
            <link>https://chris.pelatari.com/posts/2004-09-28-Happy-Birthday-G</link>
            <guid>https://chris.pelatari.com/posts/2004-09-28-Happy-Birthday-G</guid>
            <pubDate>Tue, 28 Sep 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Well, it looks like <a href="http://www.xanga.com/gino_in_a_word_ghetto">Gino'</a>s <a title="Site: gino_in_a_word_ghetto's Xanga Site" href="http://www.xanga.com/item.aspx?tab=weblogs&amp;user=gino_in_a_word_ghetto&amp;uid=138312522" target="_blank">enjoying his day...</a> </p>
<p>Glad to hear that - you deserve it you old bastard ;) Oh, and btw, I found 
this out b/c <a href="http://bloglines.com">bloglines </a>has a subscribe to 
xanga member's weblog feature...that's awesome!</p>
<p class="media">(( What I'm listening to: No Woman, No Cry - The Fugees - The 
Score (4:33) ))</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[CodeSnip: Getting Currently Playing info from Windows Media Player using the blogging power toy.]]></title>
            <link>https://chris.pelatari.com/posts/2004-09-23-CodeSnip-Getting-Currently-Playing-info-from-Windows-Media-Player-using-the-blogging-power-toy</link>
            <guid>https://chris.pelatari.com/posts/2004-09-23-CodeSnip-Getting-Currently-Playing-info-from-Windows-Media-Player-using-the-blogging-power-toy</guid>
            <pubDate>Thu, 23 Sep 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I don't know whom this would benefit but someone building a blog posting tool
for the desktop, but anyway here's the code that I converted from the jscript
example that comes with the Windows Media Player <a href="http://download.microsoft.com/download/A/D/A/ADA9E33F-2EB2-412A-A378-38C22C89055D/creativity_wmpblogging.exe" target="_blank" rel="noreferrer">blogging</a>
<a href="http://www.microsoft.com/windowsxp/downloads/powertoys/wm_create.mspx" target="_blank" rel="noreferrer">powertoy</a> :</p>
<pre><font color="#0000ff">using</font> System;
<font color="#0000ff">using</font> Microsoft.Win32;

<font color="#0000ff">public</font> <font color="#0000ff">class</font> MediaPlayerInfo
	{

		<font color="#0000ff">public</font> <font color="#0000ff">static</font> <font color="#0000ff">string</font> GetCurrentlyPlayingMedia(){
			RegistryKey regKey = Registry.CurrentUser;
			regKey = regKey.OpenSubKey(<font color="#004884">"Software\\Microsoft\\MediaPlayer\\CurrentMetadata"</font>);

			<font color="#0000ff">string</font> displayString = <font color="#004884">"&lt;div class='media'&gt;[ Currently Listening to: "</font>;

			<font color="#0000ff">bool</font> hasMetadata = <font color="#0000ff">false</font>;

			<font color="#0000ff">string</font> trackInfo = <font color="#004884">""</font>;

			<font color="#0000ff">try</font>{
				trackInfo = regKey.GetValue(<font color="#004884">"Title"</font>).ToString();

				<font color="#0000ff">if</font>(trackInfo.Length != 0){
					hasMetadata = <font color="#0000ff">true</font>;

					displayString += trackInfo + <font color="#004884">" "</font>;
				}
			}<font color="#0000ff">catch</font>{
				<font color="#0000ff">try</font>{
					trackInfo = <font color="#004884">""</font>;
					trackInfo = regKey.GetValue(<font color="#004884">"Name"</font>).ToString();

					<font color="#0000ff">if</font>(trackInfo.Length != 0){
						hasMetadata = <font color="#0000ff">true</font>;

						displayString += trackInfo + <font color="#004884">" "</font>;
					}
				}<font color="#0000ff">catch</font>{}
			}

			<font color="#0000ff">try</font>{
				trackInfo = <font color="#004884">""</font>;
				trackInfo = regKey.GetValue(<font color="#004884">"DurationString"</font>).ToString();

				<font color="#0000ff">if</font>(trackInfo.Length != 0){
					hasMetadata = <font color="#0000ff">true</font>;

					displayString += <font color="#004884">"("</font> + trackInfo + <font color="#004884">")"</font>;
				}
			}<font color="#0000ff">catch</font>{}

			<font color="#0000ff">try</font>{
				trackInfo = <font color="#004884">""</font>;
				trackInfo = regKey.GetValue(<font color="#004884">"Author"</font>).ToString();

				<font color="#0000ff">if</font>(trackInfo.Length != 0){
					hasMetadata = <font color="#0000ff">true</font>;

					displayString += <font color="#004884">" by "</font> + trackInfo;
				}
			}<font color="#0000ff">catch</font> {}

			<font color="#0000ff">try</font>{
				trackInfo = <font color="#004884">""</font>;
				trackInfo = regKey.GetValue(<font color="#004884">"Album"</font>).ToString();

				<font color="#0000ff">if</font>(trackInfo.Length != 0){
					hasMetadata = <font color="#0000ff">true</font>;

					displayString += <font color="#004884">" on the album "</font> + trackInfo;
				}
			}<font color="#0000ff">catch</font>{}


			<font color="#0000ff">if</font>(!hasMetadata){
				displayString += <font color="#004884">"Nothing."</font>;
			}

			displayString += <font color="#004884">" ]&lt;/div&gt;"</font>;

			<font color="#0000ff">return</font> displayString;
		}
	}</pre>
<p>It could probably stand to be a bit more flexible - ie user-defined by a
template like w.bloggar, but for the basics it works great! Oh yeah, and let's
not forget the output:</p>
<div class="media">[ Currently Listening to: Rage Against The Machine - Pocket 
Full of Shells (03:52) ]</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Embrace and Extend: MikeDub's IUI article]]></title>
            <link>https://chris.pelatari.com/posts/2004-09-11-Embrace-and-Extend-MikeDubs-IUI-article</link>
            <guid>https://chris.pelatari.com/posts/2004-09-11-Embrace-and-Extend-MikeDubs-IUI-article</guid>
            <pubDate>Sat, 11 Sep 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been doing a lot of that lately (embracing and
extending). So I'm reading thru <a href="http://www.mikedub.net/windowsformsredux/">Mike</a>'s <a href="http://url123.com/a2nq7">latest article</a>, thinking how can I apply this
to an application I'm currently developing?</p>
<p>In the article, he mentions that Office 2003 uses both a deductive and
inductive UI for various parts of the interface (see his article for a much
better explanation than I could give you.) So I tried it out. I downloaded the
code and applied something very similar to the Office example shown in the
article using <a href="http://divil.co.uk/net/">Tim Dawson's </a>awesome <a href="http://divil.co.uk/net/controls/sandbar/">Sandbar </a> library.</p>
<p>There was a problem, though. By virtue of a vertical scrollbar, enabled,
disabled, visible, or invisible, it always showed up in a space where I need
those 23 pixels. It's important. I wanted to take the code that was in the
example download and make sure I could remove the scrollbar without breaking
things. Well, the way that the code is set up now, you've got to have a Frame
class to associate with each Page class. Period.</p>
<p>At first I tried subclassing the Frame class, but the VS.NET designer did not
like that too much. We want to play nice with the designer always, right? Sure
we do. (If you don't think so about asp.net, you will soon I'm sure:) What was
missing from this puzzle? Looking at the Frame class a little bit further, it
became obvious: this code is begging for an interface implementation. Just
taking the public methods that were exposed in the Frame class, I came up with
the IFrame interface:</p>
<pre><font color="#0000ff">public</font> <font color="#0000ff">interface</font> IFrame	{
	
	<font color="#0000ff">void</font> Go(Page page);

	<font color="#0000ff">void</font> Go(Type pageType);

	<font color="#0000ff">void</font> GoBack();

	<font color="#0000ff">void</font> GoBack(<font color="#0000ff">int</font> n);

	<font color="#0000ff">void</font> GoForward();

	<font color="#0000ff">void</font> GoForward(<font color="#0000ff">int</font> n);

	<font color="#0000ff">void</font> GoHome();

	<font color="#0000ff">void</font> PageDown();

	<font color="#0000ff">void</font> PageEnd();

	<font color="#0000ff">void</font> PageHome();

	<font color="#0000ff">void</font> PageUp();
}</pre>
<p>Then I changed the Page class's reference to its parent frame to hold an
IFrame reference:</p>
<pre><font color="#0000ff">public</font> IFrame Frame{
		get{ <font color="#0000ff">return</font> frame;}<font color="#008200">//of course, the private reference is also IFrame
</font>		set{ frame = value;}
}</pre>
<p>Bam. That's it. I then created a class that I called StaticFrame and removed
the horizontal and vertical scrollbars from it, implementing only those methods
defined in the interface and those required to maintain NavigationContext. Now
I've got a great navigation story for a sidebar/taskpane type interface in my
applications.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Added New Articles]]></title>
            <link>https://chris.pelatari.com/posts/2004-09-01-Added-New-Articles</link>
            <guid>https://chris.pelatari.com/posts/2004-09-01-Added-New-Articles</guid>
            <pubDate>Wed, 01 Sep 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>You can find them <a href="http://www.chrisfrazier.net/blog/posts/575.aspx">here</a> or <a href="http://weblogs.asp.net/cfrazier/articles/6143.aspx">there</a>. </p>
<p>One of them was really just a VB.NET version of another article that I wrote 
a while back that was left in the comments by Robert Sindall.</p>
<p>Hope someone finds them useful.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[url123.com]]></title>
            <link>https://chris.pelatari.com/posts/2004-08-17-url123com</link>
            <guid>https://chris.pelatari.com/posts/2004-08-17-url123com</guid>
            <pubDate>Tue, 17 Aug 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Okay, so I haven't posted for a while and you don't care. Established. </p>
<p>But you've gotta check this out, for real. <a href="http://blackcoil.com/">Francesco Sanfilippo</a> has been putting in 
work on <a href="http://www.url123.com">www.url123.com</a> , an asp.net link 
shortening solution.</p>
<p>Right, there are a lot of them out there, but this makes it so easy for me to 
shorten a url...I don't have to have the site open or even remember the name. 
How do I do this? Easy - bookmarklets.</p>
<p>A bookmarklet is one of those things that is so simple, it's beautiful. 
Scenario: I'm chatting with someone on msn messenger, talking about <a href="http://nunit.org">NUnit</a>. The nunit-gui comes up in the conversation, 
and I want to point them to <a href="http://weblogs.asp.net/jsgreenwood/archive/2004/08/16/214901.aspx">this 
post</a> but decide that the url is too long for the messenger output. 
Since I've <a href="http://www.url123.com/Tools.aspx">already added the 
bookmarklet</a>, instead of this person seeing this [ <a href="http://weblogs.asp.net/jsgreenwood/archive/2004/08/16/214901.aspx">http://weblogs.asp.net/jsgreenwood/archive/2004/08/16/214901.aspx</a> ] 
they see this [ <!--StartFragment --> <a href="http://url123.com/hsz4u">http://url123.com/hsz4u</a> ]. </p>
<p>All I did was hit a button on my browser! That's it! 
nice...</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[In case you didn't know,]]></title>
            <link>https://chris.pelatari.com/posts/2004-08-10-In-case-you-didnt-know</link>
            <guid>https://chris.pelatari.com/posts/2004-08-10-In-case-you-didnt-know</guid>
            <pubDate>Tue, 10 Aug 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.ericjsmith.net/codesmith/">CodeSmith </a>r00l3z. </p>
<p>I recently did my semi-annual "house cleaning", where instead of just getting 
rid of all the accumulated crap I've got on my dev box, I repave and start over. 
I did this with the idea that I wouldn't install anything without needing it 
first. Heh, maybe I can keep my start menu down to one column this time ;).</p>
<p>So the need arises for <a href="http://www.ericjsmith.net/codesmith/">CodeSmith</a> - I need a custom 
collection, and I want to do it from VS.NET. Well, I head over to my \bin 
folder, and there's codesmith, waiting with a .bat file to re-register itself in 
VS.NET (vsnet2003_register.bat). I didn't have to reinstall, I just ran the 
batch file and I've got a custom collection. Thanks, codesmith 
:)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Where in the hell have you been?]]></title>
            <link>https://chris.pelatari.com/posts/2004-07-27-Where-in-the-hell-have-you-been</link>
            <guid>https://chris.pelatari.com/posts/2004-07-27-Where-in-the-hell-have-you-been</guid>
            <pubDate>Tue, 27 Jul 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Short answer: working.</p>
<p>Longer answer: I've been learning so much lately that my brain hasn't had the 
rest period required to post faithfully to this here blog. Sorry about that. So 
what have I been learning? I've been learning about lerp (linear interpolation) 
bilerp(bilinear interpolation) and slerp (shperical interpolation).</p>
<p>I'm dipping my foot into the waters of 3d imaging, and it's not an easy thing 
to learn. Not always, anyways. I've also picked up a (gasp) BSD firewall project 
(using <a href="http://openbsd.org">OpenBSD</a>) that has me learning not 
only <a href="http://openbsd.org/faq/pf/index.html">pf rules</a>, but also the 
*nix environment. Working without a gui is very Tao. Thanks cd and ls. </p>
<p>One thing that I've noticed about this whole posting often thing is this: 
when I'm working with <a href="http://asp.net">asp.net</a>, I tend to post more 
often. I guess this is because I'm pretty comfortable in this area and it gives 
me more time to reflect on what I've been doing. When I'm learning something 
new, forget about it. Working on <a href="http://windowsforms.net">WinForms</a>, 
forget about it. So, hopefully I can get back into the swing of things and post 
more than once a month...:) Thanks for being patient, I appreciate 
that.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[THINGS YOU WISH YOU COULD SAY AT WORK]]></title>
            <link>https://chris.pelatari.com/posts/2004-07-01-THINGS-YOU-WISH-YOU-COULD-SAY-AT-WORK</link>
            <guid>https://chris.pelatari.com/posts/2004-07-01-THINGS-YOU-WISH-YOU-COULD-SAY-AT-WORK</guid>
            <pubDate>Thu, 01 Jul 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<pre>Another one of those funny emails that should be shared....<br /><br />1. Ahhh...I see the fuck-up fairy has visited us again... <br /><br />2. I don't know what your problem is, but I'll bet it's hard to pronounce. <br /><br />3. How about never? Is never good for you? <br /><br />4. I see you've set aside this special time to humiliate yourself in public. <br /><br />5. I'm really easy to get along with once you people learn to worship me. <br /><br />6. I'll try being nicer if you'll try being smarter. <br /><br />7. I'm out of my mind, but feel free to leave a message... <br /><br />8. I don't work here. I'm a consultant. <br /><br />9. It sounds like English, but I can't understand a word you're saying. <br /><br />10. I can see your point, but I still think you're full of shit. <br /><br />11. I like you. You remind me of when I was young and stupid. <br /><br />12. You are validating my inherent mistrust of strangers. <br /><br />13. I have plenty of talent and vision. I just don't give a damn. <br /><br />14. I'm already visualizing the duct tape over your mouth. <br /><br />15. I will always cherish the initial misconceptions I had about you. <br /><br />16. Thank you. We're all refreshed and challenged by your unique point of view. <br /><br />17. The fact that no one understands you doesn't mean you're an artist. <br /><br />18. Any connection between your reality and mine is purely coincidental. <br /><br />19. What am I? Flypaper for freaks! <br /><br />20. I'm not being rude. You're just insignificant. <br /><br />21. It's a thankless job, but I've got a lot of Karma to burn off. <br /><br />22. Yes, I am an agent of Satan, but my duties are largely ceremonial. <br /><br />23. No, my powers can only be used for good. <br /><br />24. You sound reasonable... Time to up the medication. <br /><br />25. Who me? I just wander from room to room. <br /><br />26. And your crybaby whiny-butt opinion would be...? <br /><br />27. Do I look like a people person? <br /><br />28. This isn't an office. It's Hell with fluorescent lighting. <br /><br />29. I started out with nothing &amp; still have most of it left. <br /><br />31. You!... Off my planet! <br /><br />32. Does your train of thought have a caboose? <br /><br />33. Errors have been made. Others will be blamed. <br /><br />34. A PBS mind in an MTV world. <br /><br />35. Allow me to introduce my selves. <br /><br />36. Whatever kind of look you were going for, you missed. <br /><br />37. Well, this day was a total waste of makeup. <br /><br />38. Not all men are annoying. Some are dead. <br /><br />39. I'm trying to imagine you with a personality. <br /><br />40. A cubicle is just a padded cell without a door. <br /><br />41. Stress is when you wake up screaming &amp; you realize you haven't fallen asleep yet. <br />42. Can I trade this job for what's behind door #1? <br /><br />43. Too many freaks, not enough circuses. <br /><br />44. Nice perfume. Must you marinate in it? <br /><br />45. Chaos, panic, &amp; disorder - my work here is done. <br /><br />46. How do I set a laser printer to stun? <br /><br />47. I thought I wanted a career, turns out I just wanted the paychecks. <br /><br />48. If I throw a stick, will you leave? <br /><br />49. Sarcasm is just one more service we offer. </pre>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The road to enlightenment]]></title>
            <link>https://chris.pelatari.com/posts/2004-06-24-The-road-to-enlightenment</link>
            <guid>https://chris.pelatari.com/posts/2004-06-24-The-road-to-enlightenment</guid>
            <pubDate>Thu, 24 Jun 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Earlier this year I started using NUnit to see what all the fuss was about. I 
started on a subset of an application that I'm working on, using it for the 
database interaction code. I figured that would be a good place to start, since 
I'm not sure how to test UI stuff, and these were the parts handed to me when 
the application was in spec stage.</p>
<p>I took a pretty simplistic (and probably wrong by some accounts) approach - 
set up a database with the same structure as what would be used in the end 
(appended with NUnit to separate the DBs) and make my assertions on the objects 
returned or modified there.</p>
<p>So, at the suggestion of <a href="http://weblogs.asp.net/DatagridGirl">someone who digs DataGrids</a>, I 
picked up the TDD in MSFT.NET book by Newkirk &amp;Vorontsov. I just barely 
cracked chapter 2 and came across something that I did not know and did not 
occur to me thru running my tests (with my apologies):</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p>The function <em>Init</em> is marked with an attribute called 
  [<em>SetUp</em>]. NUnit uses this attribute to ensure that this method is 
  called prior to each test being run, which means that each test method gets a 
  newly created <em>Stack</em>, instead of one modified from a previous 
test.</p></blockquote>
<p dir="ltr">Seriously? I just figured that [<em>SetUp</em>] ran once, so all I 
did was initialize my connection string there. This book is already pretty good, 
if I'm able to learn something by chapter 2...I'm looking forward to finishing 
it :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Another personal post]]></title>
            <link>https://chris.pelatari.com/posts/2004-06-22-Another-personal-post</link>
            <guid>https://chris.pelatari.com/posts/2004-06-22-Another-personal-post</guid>
            <pubDate>Tue, 22 Jun 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I had the first weekend alone with my son, Ethan, this past weekend. It
was awesome! What a perfect father's day gift - being able to actually spend (at
least) some of it with my son. He even &quot;got me a card&quot;. See, he's 2 1/2 so it
was my mom that really got the card, but she helped him sign it and he drew some
circles in it for me. 😃</p>
<p>There were a couple of times that he cried for his mother, but we got thru
those and it was only when he was expecting something out of his normal routine.
All in all, I would say that he did an excellent job considering this was the
first time that he ever spent the night with me, away from his mother.</p>
<p>I could sit here and go on and on about the details of our weekend, but let's
just leave this at it was one of the greatest experiences I've had with him
ever. I am so happy that it's finally happening!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[All quiet...]]></title>
            <link>https://chris.pelatari.com/posts/2004-06-11-All-quiet</link>
            <guid>https://chris.pelatari.com/posts/2004-06-11-All-quiet</guid>
            <pubDate>Fri, 11 Jun 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I haven't posted in a while. See, on Monday, my life changes. Exactly 
how, I'm not sure yet.</p>
<p>I'm going to family court to get joint custody of my son, Ethan. I haven't 
seen him in a few months, and I miss him terribly. Hopefully I will no longer 
have to wait and wonder if he's thinking about me, wondering how I am, if he 
misses me at all.</p>
<p>My son is almost three years old, and I finally get to be his 
Daddy. Pray for me. </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Searching for Adam Sills]]></title>
            <link>https://chris.pelatari.com/posts/2004-06-04-Searching-for-Adam-Sills</link>
            <guid>https://chris.pelatari.com/posts/2004-06-04-Searching-for-Adam-Sills</guid>
            <pubDate>Fri, 04 Jun 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hey, Adam, if you're reading this, <a href="http://www.chrisfrazier.net/blog/contact.aspx">drop me a line</a>. I can't
find a way to contact you, so I guess this is the next best thing.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Starting a conversation - I want to hear your opinion.]]></title>
            <link>https://chris.pelatari.com/posts/2004-06-03-Starting-a-conversation-I-want-to-hear-your-opinion</link>
            <guid>https://chris.pelatari.com/posts/2004-06-03-Starting-a-conversation-I-want-to-hear-your-opinion</guid>
            <pubDate>Thu, 03 Jun 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I wanted to ask for your opinion. I've been building this little wysiwyg 
blog-posting tool for a little bit. I call it PostXING, and I'm using it right 
now to post this very message. It is inspired by a tool that <a href="http://scottwater.com">ScottW</a> wrote called Blogert. For the 
wysiwyg abilities, it uses an interface to mshtml. </p>
<p>Where I could, I tried to keep the default dialogs (like hyperlink, image, 
etc) for use in the app. So, when adding an image using the default dialog, if 
you're adding it from your machine you get a path like "C:\myimages\img.gif" 
when you really want something like " http: / /mysite.com/img.gif " (sans 
spaces, of course). This app has an idea of "FTP sites" for each blog you 
might have configured. So I was thinking that, provided the "FTP site" was 
configured for your blog, it would just try to upload each image found. 
</p>
<p>So far I'm just thinking out loud, setting this up for you to give me your 
opinion if you so choose. I'm trying to figure out if there are any 
gotchas I'm not thinking of. For example, I would only want this to happen when 
a post is first added to begin with - this presumes that if you're updating a 
post, the images are already there. Fair enough, right? Also, I never plan to 
port this thing to Mono/Gtk# or whatever, so I could pretty much rely on 
finding " :\ " or simply <br />" \ " , right? And when cross-posting 
comes into play, how should I control things then? I mean, I have two blogs, but 
it makes sense to upload the images to only one of them, then replicate the new 
and improved html over to the cross-posted blog. Is there anything I'm not 
thinking of here?</p>
<p>If you've read this far, thanks. I'm not gonna get all "political" with this 
tool. It's not trying to be "better" than anybody else's tool. If I ever 
"release" it, it'll be totally free (BSD-style). I started building this tool 
because I had an immediate need to be able to cross-post the same content to 
different blogs selectively. I wanted to see what I could do with windows forms 
by making something practical to use that didn't cost me anything but a little 
free time. Thanks again for reading this, and your constructive opinions are 
welcome.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The Tao of Programming]]></title>
            <link>https://chris.pelatari.com/posts/2004-05-27-The-Tao-of-Programming</link>
            <guid>https://chris.pelatari.com/posts/2004-05-27-The-Tao-of-Programming</guid>
            <pubDate>Thu, 27 May 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <h3 align="center">1.2</h3>
  <p>The Tao gave birth to machine language. Machine language gave birth to the 
  assembler. 
  </p><p>The assembler gave birth to the compiler. Now there are ten thousand 
  languages. 
  </p><p>Each language has its purpose, however humble. Each language expresses the 
  Yin and Yang of software. Each language has its place within the Tao. 
  </p><p>But do not program in <tt>COBOL</tt> if you can avoid it. 
</p></blockquote>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[What's the point of comment spam?]]></title>
            <link>https://chris.pelatari.com/posts/2004-05-22-Whats-the-point-of-comment-spam</link>
            <guid>https://chris.pelatari.com/posts/2004-05-22-Whats-the-point-of-comment-spam</guid>
            <pubDate>Sat, 22 May 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><!--StartFragment --> Especially when the links don't point anywhere? 
I'm finding this mildly annoying, and I'm sure there's some of you out there who 
are getting bombarded with stupid comments that have nothing to do with the 
post. This one was one of my favorites - I wonder which part was technically 
innacurate?
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <div class="post">
  <div class="postcontent">I just made it to Redmond. Big thanks to Jim Ross, MVP 
  for giving me a ride to my hotel. gotta go! </div>
  <div class="itemdesc">posted on Monday, July 14, 2003 6:28 PM </div></div>
  <div class="seperator"> </div><!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://weblogs.asp.net/cfrazier/archive/2003/07/14/10066.aspx"
dc:identifier="http://weblogs.asp.net/cfrazier/archive/2003/07/14/10066.aspx"
dc:title=""
trackback:ping="http://weblogs.asp.net/cfrazier/services/trackbacks/10066.aspx" />
</rdf:RDF>
-->
  <div class="post"><a name="feedback"></a>
  <div class="moreinfo"><a name="feedback"></a>
  <div class="moreinfotitle"><a name="feedback">Comments </a></div><a name="feedback"></a>
  <div class="comments"><a name="feedback"></a>
  <div class="comment"><a name="feedback"></a>
  <div class="comment_title"><a name="feedback"></a># <a name="137974"></a>re: 
  </div>
  <div class="comment_author">Danny Dunne (unlinked - no more google juice for 
  you!)</div>
  <div class="comment_content">My mate saw this and I found some technical 
  innacuracies with the subect 
matter</div></div></div></div></div></blockquote></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Office 2003 Faces]]></title>
            <link>https://chris.pelatari.com/posts/2004-05-13-Office-2003-Faces</link>
            <guid>https://chris.pelatari.com/posts/2004-05-13-Office-2003-Faces</guid>
            <pubDate>Thu, 13 May 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I thought I linked to this before, but I guess I was wrong.</p>
<p>Here's some google juice for those <a href="http://members.chello.nl/keepitcool/Faces.html">Office 2003 
Faces</a>.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Okay, That was pretty cool.]]></title>
            <link>https://chris.pelatari.com/posts/2004-05-11-Okay-That-was-pretty-cool</link>
            <guid>https://chris.pelatari.com/posts/2004-05-11-Okay-That-was-pretty-cool</guid>
            <pubDate>Tue, 11 May 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p><a href="http://www.aisto.com/Roeder/Frontier/Default.aspx?PermaLink=23">.NET 
  Reflector 4.0.1.0</a></p>
  <p>Click: Help | Check for Updates | Yes. </p></blockquote>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[er...maybe I DO need to get out more often.]]></title>
            <link>https://chris.pelatari.com/posts/2004-05-01-er-maybe-I-DO-need-to-get-out-more-often</link>
            <guid>https://chris.pelatari.com/posts/2004-05-01-er-maybe-I-DO-need-to-get-out-more-often</guid>
            <pubDate>Sat, 01 May 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Am I the last one to notice a <a href="http://radio.weblogs.com/0001011/">certain Microsoft Blogger's</a> mug at 
the top of <a href="http://www.weblogs.com">www.weblogs.com</a> 
?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I can ping everything now.]]></title>
            <link>https://chris.pelatari.com/posts/2004-05-01-I-can-ping-everything-now</link>
            <guid>https://chris.pelatari.com/posts/2004-05-01-I-can-ping-everything-now</guid>
            <pubDate>Sat, 01 May 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Okay, not everything, but at least <a href="http://www.weblogs.com">www.weblogs.com</a> and <a href="http://blo.gs">blo.gs</a>.</p>
<p>I already had some of the code in place, but then I came across <a href="http://www.cookcomputing.com/blog/archives/000223.html">an example by 
Charles Cook</a>, mr. <a href="http://xml-rpc.net/">xml-rpc.net </a>hisself, and 
decided to hack it a little bit. Pretty simple stuff, but this post will tell me 
if it works :) </p>
<p>/me:crosses fingers</p>
<p><font color="red">update:</font></p>
<p>So it looks like it "kinda" worked for weblogs.com - since 
my blog engine, .Text pings weblogs.com itself, I got a nice little message from 
weblogs.com saying I should get out more and enjoy life for pinging twice in a 
row. Well, my friends, it's raining today. blo.gs came back saying that the 
server returned invalid xml.</p>
<p>Oh well, guess I'll try again on Monday :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Links for Monte Carlo Simulations]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-30-Links-for-Monte-Carlo-Simulations</link>
            <guid>https://chris.pelatari.com/posts/2004-04-30-Links-for-Monte-Carlo-Simulations</guid>
            <pubDate>Fri, 30 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><!--StartFragment --> <a href="http://polymer.bu.edu/java/java/montepi/MontePi.html">http://polymer.bu.edu/java/java/montepi/MontePi.html</a> </p>
<p><a href="http://csep1.phy.ornl.gov/CSEP/MC/MC.html">Introduction to Monte 
Carlo Methods <i>(online textbook)</i></a> </p>
<p><!--StartFragment --> <a href="http://www.cooper.edu/engineering/chemechem/monte.html">Molecular Monte 
Carlo HomePage</a> </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Achooo!]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-30-Achooo</link>
            <guid>https://chris.pelatari.com/posts/2004-04-30-Achooo</guid>
            <pubDate>Fri, 30 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><!--StartFragment --> <em>&lt;mumble&gt;</em>viral 
marketing...<em>&lt;/mumble&gt; </em>:)
<blockquote><strong>FREE <a href="http://blogs.xtras.net/mikes/ct.ashx?id=2650d93d-0994-4f74-ae52-900173d03ebd&amp;url=http%3a%2f%2fwww.xtras.net%2fxdn">XDN</a> 
  Professional for .NET Bloggers during May 2004</strong><br /><em><a href="http://blogs.xtras.net/mikes/">Mike Schinkel</a>, president of <a href="http://blogs.xtras.net/mikes/ct.ashx?id=2650d93d-0994-4f74-ae52-900173d03ebd&amp;url=http%3a%2f%2fwww.xtras.net%2f">Xtras.Net</a>, 
  made <a href="http://blogs.xtras.net/mikes/PermaLink,guid,2650d93d-0994-4f74-ae52-900173d03ebd.aspx">an 
  offer</a> on his <a href="http://blogs.xtras.net/mikes/">personal blog</a> of 
  a free <a href="http://blogs.xtras.net/mikes/ct.ashx?id=2650d93d-0994-4f74-ae52-900173d03ebd&amp;url=http%3a%2f%2fwww.xtras.net%2fxdn">XDN</a> 
  Professional membership (</em><a href="http://blogs.xtras.net/mikes/ct.ashx?id=2650d93d-0994-4f74-ae52-900173d03ebd&amp;url=http%3a%2f%2fwww.xtras.net%2fxdn"><em>http://www.xtras.net/xdn</em></a><em>) 
  during the month of May 2004 for anyone that blogs about .NET frequently. If 
  you are a .NET blogger, see <a href="http://blogs.xtras.net/mikes/PermaLink,guid,2650d93d-0994-4f74-ae52-900173d03ebd.aspx">Mike's 
  post</a> for how to get your free <a href="http://blogs.xtras.net/mikes/ct.ashx?id=2650d93d-0994-4f74-ae52-900173d03ebd&amp;url=http%3a%2f%2fwww.xtras.net%2fxdn">XDN</a> 
  membership.</em></blockquote></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[holla!]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-27-holla</link>
            <guid>https://chris.pelatari.com/posts/2004-04-27-holla</guid>
            <pubDate>Tue, 27 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<img alt="Holla!" hspace="0" src="/assets/images/holla_geek_pr.jpg" align="baseline" border="0" />]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[HtmlComponent]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-21-HtmlComponent</link>
            <guid>https://chris.pelatari.com/posts/2004-04-21-HtmlComponent</guid>
            <pubDate>Wed, 21 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've needed this link (<!--StartFragment --> <a href="http://www.nikhilk.net/Entry.aspx?id=11">http://www.nikhilk.net/Entry.aspx?id=11</a> 
) a few times, so I thought I'd give it a little google juice so I could find it 
easier next time.</p>
<p>The link is to a widget written by Nikhil Kothari, I'm using it in one of my 
apps currently, and it's really great. Included with a little agility (<!--StartFragment --> <a href="http://blogs.msdn.com/smourier/archive/2003/06/04/8265.aspx">.NET Html 
Agility Pack: How to use malformed HTML just like it was well-formed XML...</a> 
), this is a tight little package for editing html in 
Windows Forms.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Freakin a(tof)!]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-09-Freakin-atof</link>
            <guid>https://chris.pelatari.com/posts/2004-04-09-Freakin-atof</guid>
            <pubDate>Fri, 09 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I had some very humble console app beginnings in C++. Ya know, "cash 
register" dos-like programs, completely keyboard driven.</p>
<p>However, my beginnings had nothing to do with converting strings to and from 
floats. I spent a better part of today wondering why atof would not return 
anything but a 0.000000 from a floating-point string. My platform is Windows XP 
- is it clear yet? If nothing else than for my own personal reference, in MFC it 
could possibly be better to use _wtof().</p>
<p>Goodbye first half of Friday.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Imitation vs. Innovation]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-08-Imitation-vs-Innovation</link>
            <guid>https://chris.pelatari.com/posts/2004-04-08-Imitation-vs-Innovation</guid>
            <pubDate>Thu, 08 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm ashamed of myself. </p>
<p>I finished my first windows forms project a few months ago - it's an internal 
project that will never be released to the public...but that doesn't give me the 
right to let it suck.</p>
<p>It's the interface. I wasn't sure what the correct way to do things was, even 
going so far as to send a note <a href="http://www.chrisfrazier.net/blog/posts/184.aspx">to the windows forms 
team</a>. The program is useable, but only just. There are a number of user 
interface inconsistencies that just should not show up in a program, in-house or 
commercial.</p>
<p>But last night I had an epiphany. I said to myself, "Self, what is so 
different about this search program than some other, more useable interfaces?" 
For that matter, why should I even have to look to windows forms for 
inspiration? See where I'm going? </p>
<p>It hit me like a ton of bricks. <a href="http://www.google.com">google</a>. 
The interface on their first page is so dirt simple, anyone can use it. If you 
need to get more options, you click on "Advanced Search Options" and you're 
cooking with gasoline. See, this UI needs to be simple to be effective. I was so 
busy trying to find out what I "can" and "cannot" do in the windows forms area, 
that I didn't stop to think what I "should" do. My bad :).</p>
<p>I'm pumped. How often is it that you get to redeem yourself on a past - let's 
face it - failure? What would you suggest? What search interfaces seem the most 
useful and intuitive to you?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hell freezes over]]></title>
            <link>https://chris.pelatari.com/posts/2004-04-03-Hell-freezes-over</link>
            <guid>https://chris.pelatari.com/posts/2004-04-03-Hell-freezes-over</guid>
            <pubDate>Sat, 03 Apr 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I thought this may be useful in the future... :) </p>
<p><img src="/assets/images/hellfreezesover.jpg" /></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Madrid]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-29-Madrid</link>
            <guid>https://chris.pelatari.com/posts/2004-03-29-Madrid</guid>
            <pubDate>Mon, 29 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>My High School friend Aleida has been living in Spain for a while now. She 
sends emails every now and then just to say how things are going - I hope she 
doesn't mind, I found these words...well, you'll see.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p>The bombings in Madrid were the first to put a face on my "false sense of 
  security." I still have no words to put to this tragedy. Painfull just doesn't 
  reach deep enough. March 11th unfolded much like my September 11th. Instantly 
  I felt a painful aching that this world is turning into a sega game. It's so 
  easy to destroy and move on. This doesn't exclude any country or state I have 
  lived in. More and more I've seen just how fragile and precious life is, or at 
  least should be.</p>
  <p>The demonstrations following the bombings were by far the most charging, 
  inspiring, and chilling I have ever cooperated in. 1.5 million people were 
  marching in Barcelona. It was the biggest demonstration in Catalunya ever. 
  Never before has the saying, "silence is deafening," been so true. At a time 
  when most people would sit at home and think of trying to be safe, trying to 
  collect their thoughts and things, when in the end, being at home, saying 
  nothing...living life unmotivated to change our future.....has no effect. 
  Instead we marched the next day. We collected ourselves in masses, a prime 
  opportunity for another attack is what most people would think. But instead of 
  letting that terror hold us back we raised our hands to stop the war. We 
  chanted. We were silent. And if anything it changed me. I am so glad my friend 
  Jamie was with me during that time. I can't imagine experiencing that 
  alone.</p></blockquote>
<p>My thoughts and prayers are with you Aleida. </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[How did I format that code?]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-24-How-did-I-format-that-code</link>
            <guid>https://chris.pelatari.com/posts/2004-03-24-How-did-I-format-that-code</guid>
            <pubDate>Wed, 24 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://blog.zigamorph.com">Nick Berardi</a> asks:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p><font size="2">How did you format this code, I really like that.</font></p></blockquote>
<p>It was pretty easy, I used some code that I modified from the original 
<a href="http://squishyweb.com/ware/products.asp?q=squishysyntax">SquishySyntaxHighlighter 
</a>component written by <a href="http://www.surrealization.com/">Adam 
Sills</a>. The original code uses lots of [span style=] tags, and even uses 
javascript to collapse/expand #regions if you're using code written from Visual 
Studio.NET. I modified it to use mostly [font] tags and 86'ed the javascript, so 
it would show up in an aggregator better.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Drag and Drop Urls in Windows Forms]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-24-Drag-and-Drop-Urls-in-Windows-Forms</link>
            <guid>https://chris.pelatari.com/posts/2004-03-24-Drag-and-Drop-Urls-in-Windows-Forms</guid>
            <pubDate>Wed, 24 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I wanted to allow for this, right? What if I find something on the net 
that just begs me to post it, and I want to use the url as the source for my 
post? Well, it's insanely easy...but you still have to wire it up a little bit. 
From the article I found (using google, of course), I changed the source code to 
this:</p>
<p><pre style="COLOR: #000000"><br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">1</span>		<font color="#0000ff">private</font> <font color="#0000ff">void</font> txtUrl_DragEnter(<font color="#0000ff">object</font> sender, System.Windows.Forms.DragEventArgs e) {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">2</span>			<font color="#0000ff">if</font>(e.Data.GetDataPresent(DataFormats.Text)){
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">3</span>				e.Effect = DragDropEffects.All;
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">4</span>			}
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">5</span>		}
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">6</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">7</span>		<font color="#0000ff">private</font> <font color="#0000ff">void</font> txtUrl_DragDrop(<font color="#0000ff">object</font> sender, System.Windows.Forms.DragEventArgs e) {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">8</span>			<font color="#0000ff">this</font>.txtUrl.Text = e.Data.GetData(DataFormats.Text).ToString();
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">9</span>		}</pre></p>
<p>where txtUrl is the url I want to use as a source for my post. Set AllowDrop 
= true in the designer, and you're good to go.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[This sucks.]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-22-This-sucks</link>
            <guid>https://chris.pelatari.com/posts/2004-03-22-This-sucks</guid>
            <pubDate>Mon, 22 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.xanga.com/item.aspx?user=Gino_in_a_word_GHETTO&amp;tab=weblogs&amp;uid=73175147">My 
cousin finally got a weblog</a> but I can't subsribe to it! </p>
<p>I sent these people an email asking them to at least include permalinks and a 
<em>public</em> rss feed. You have to join the site to do anything, even sign a 
<strong>guest</strong>book. </p>
<p>I wasted a good part of an hour trying to find somewhere on the site that I 
didn't have to sign in to, and ended up sending the email to <em>abuse.</em> 
oops. </p>
<p>So am I wrong to want permalinks and an rss feed? Or should I tell my cousin 
to choose another provider?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[my first desktop cross-post]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-20-my-first-desktop-cross-post</link>
            <guid>https://chris.pelatari.com/posts/2004-03-20-my-first-desktop-cross-post</guid>
            <pubDate>Sat, 20 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>that's a little upsetting 😦</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[last try I promise.]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-20-last-try-I-promise</link>
            <guid>https://chris.pelatari.com/posts/2004-03-20-last-try-I-promise</guid>
            <pubDate>Sat, 20 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Sorry ScottW.</p>
<p>Let's hope the third time is the charm.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I feel ya.]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-19-I-feel-ya</link>
            <guid>https://chris.pelatari.com/posts/2004-03-19-I-feel-ya</guid>
            <pubDate>Fri, 19 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.hanselman.com/blog/PermaLink.aspx?guid=5db4a0c3-4cb8-4bfa-be33-0da2dbe09d41">Big 
Time</a>. I've even talked about it before.</p>
<p>I'm really thankful that Tina listens to the boring .NET stuff I talk about - 
she even listens to me talk about the domain (O&amp;G Exploration) which is 
decidedly boring-er than software, even to a layman.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[What do you want from WinForms?]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-17-What-do-you-want-from-WinForms</link>
            <guid>https://chris.pelatari.com/posts/2004-03-17-What-do-you-want-from-WinForms</guid>
            <pubDate>Wed, 17 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.3deurope.com/Blog/Permalink.aspx?bid=bbce4047-e8f8-468b-b8db-1256869be087" target="_blank">Like to hear my feedback</a>? I'd like a file dialog that lets me 
select more than 200 files at a time. With the people and companies I work with, 
it is a necessity. We deal with lots of files.</p>
<p>Thanks!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[That's what I'm talkin bout!]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-17-Thats-what-Im-talkin-bout</link>
            <guid>https://chris.pelatari.com/posts/2004-03-17-Thats-what-Im-talkin-bout</guid>
            <pubDate>Wed, 17 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.3deurope.com/Blog/default.aspx" target="_blank">Julien 
Ellie</a>, you rock. In response to all the WinForms hubub yesterday, I asked 
for a higher limit on the file selection dialog (you can only select about 200 
ATM). Julien said in my comments:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
  <p>Well, I see that a KB article (820631) says this behavior is by design so I 
  don't know how much freedom we have here. You'll understand that I can't 
  promise anything, I am just a dev, but I'll make sure to look into it and ask 
  questions about this. Thanks!</p></blockquote>
<p dir="ltr">That is so slick. Julien, you may be just a dev, but that my friend 
is the correct attitude to have about it. </p>
<p dir="ltr">In the meantime, the only workaround I've found is enabling drag n 
drop onto a listbox for file selection from explorer. [edit]</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I had to blog this.]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-16-I-had-to-blog-this</link>
            <guid>https://chris.pelatari.com/posts/2004-03-16-I-had-to-blog-this</guid>
            <pubDate>Tue, 16 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been using <a href="http://www.mozilla.org/products/firefox">Mozilla FireFox </a>as my default browser for a couple of weeks. I love it - for the most part. A lot of people don't design for standards, though. They design for what is <em>the</em>  standard, ie IE. Therefore, a lot of sites that I may browse from time to time really look horrible in mozilla, and I find myself opening IE and dragging a link there just to make sure my eyes haven't permanently squinted.</p>
<p><a href="http://ieview.mozdev.org/">Those Days Are Over</a>. Meet IEView, a “brain-dead simple” plugin for FireFox, but so effective I just know I'll use this every day. From the site:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><!--StartFragment --> The ieview plugin is a simple Mozilla and <a href="http://www.mozilla.org/products/firefox/">Mozilla Firefox</a> extension (for Microsoft Windows systems), which allows the current page or a selected link to be opened in Internet Explorer. I use Mozilla 99.99% of the time, but there are those moments -- particularly when testing new pages, or when viewing that rare IE-only page that's actually interesting -- when I need to see what things look like in IE. </p></blockquote>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Movin on up...]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-14-Movin-on-up</link>
            <guid>https://chris.pelatari.com/posts/2004-03-14-Movin-on-up</guid>
            <pubDate>Sun, 14 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Tina and I just finished moving the last of our stuff from the old apartment 
to the new one.</p>
<p>We've almost got everything unpacked - I like it here. Thankfully we got most 
everything moved last night, so today was just a few things we carried by hand. 
</p>
<p>Yeah, we moved about 50 yards. The people in the apartment above the last 
place had a washer leak, and we bore most of the consequenses. Half of the walls 
in our bedroom (the washer &amp; dryer connections are in the closet) were brown 
from the leak. So, rather than force us to live in a mold museum, the apartment 
management moved us to a different apartment in the same complex. As if you 
cared. :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Public Apology]]></title>
            <link>https://chris.pelatari.com/posts/2004-03-11-Public-Apology</link>
            <guid>https://chris.pelatari.com/posts/2004-03-11-Public-Apology</guid>
            <pubDate>Thu, 11 Mar 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm sorry, reader. </p>
<p>I haven't posted to this thing in almost 2 months, and I'm sure that both of you are quite upset at me. So what's been going on with me lately? Let's see...</p>
<p>I started a little side project for posting to my blog from my desktop with a wysiwyg editor. I decided to stop working on it a week or two ago. Why? Well, there are a few tools out there already that let you do this very well, so I pulled resources on it for unoriginality reasons. You still want a wysiwyg editor? Try <a href="http://www.blogjet.com">BlogJet</a>. This is the one that made me say “it's been done”. There is no way that I could dedicate the time to make my little tool do anything super-cool that would make it a viable alternative, and it looks like no one but me wants to post to more than one blog at a time. Shame.</p>
<p>Other than that, I've been working hard at the day job. “Smart Clients”. That's taken a lot of my time - I ain't no WinForms programmer :).</p>
<p>So, thank both of you for staying subscribed to me. I appreciate it, and I'll do my best to keep the content coming to you, desktop publishing tool or not. </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The internet is shit.]]></title>
            <link>https://chris.pelatari.com/posts/2004-01-23-The-internet-is-shit</link>
            <guid>https://chris.pelatari.com/posts/2004-01-23-The-internet-is-shit</guid>
            <pubDate>Fri, 23 Jan 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>&quot;<a href="http://www.internetisshit.org" target="_blank">4 of 11....Fiction
is self-perpetuating</a>.&quot;</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[It's coming...]]></title>
            <link>https://chris.pelatari.com/posts/2004-01-23-Its-coming</link>
            <guid>https://chris.pelatari.com/posts/2004-01-23-Its-coming</guid>
            <pubDate>Fri, 23 Jan 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><img src="/assets/images/SyntaxHighlighting1.gif" width="285" height="256" alt="" border="0" /></p>
<p>BTW, this <b>is</b> <a href="http://blogjet.com/faq/#3">yet another <i>code-when-I-have-a-free-time</i> program</a> :P </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Guess who's also an MVP?]]></title>
            <link>https://chris.pelatari.com/posts/2004-01-21-Guess-whos-also-an-MVP</link>
            <guid>https://chris.pelatari.com/posts/2004-01-21-Guess-whos-also-an-MVP</guid>
            <pubDate>Wed, 21 Jan 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Yours truly! (that would be me) 😃</p>
<p>Congratulations to everyone else who earned this honor.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Come back to ASP.NET for the first time.]]></title>
            <link>https://chris.pelatari.com/posts/2004-01-15-Come-back-to-ASPNET-for-the-first-time</link>
            <guid>https://chris.pelatari.com/posts/2004-01-15-Come-back-to-ASPNET-for-the-first-time</guid>
            <pubDate>Thu, 15 Jan 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Today I had to bring up a previous project that I had done in asp.net and 
make sure that it would work well if installed to an end-user's machine for beta 
testing.</p>
<p>For the past several months, I've been doing development for in-house 
applications using WinForms, so it took an hour or two to get back into the 
asp.net groove. Once I said "oh yeah" a few times tho, I've got to say - I miss 
it. I even dusted off some old javascript skills (thanks to a <a href="http://www.julialermaninc.com/blog/PermaLink.aspx?guid=8299c061-1b16-4d1d-820a-40011c5e6c3b" target="_blank">little help from Julie</a>) and after updating one stored 
procedure to work with some new functionality, I've got a completely working 
test deployment in as close as an environment to the target as I could 
muster.</p>
<p>On that note - be careful using .msi technology and then trying to xcopy an 
updated .dll to the \bin of your web app in XP. Apparently, it won't let asp.net 
create an appdomain and you'll get the dreaded "Server Application Unavailable" 
error. Heh. Didn't see that one coming - when I test deployed to a Win2k 
workstation, I did not get the same error, it just worked. Weird. 
</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[HtmlComponent.Document.Selection]]></title>
            <link>https://chris.pelatari.com/posts/2004-01-06-HtmlComponent-Document-Selection</link>
            <guid>https://chris.pelatari.com/posts/2004-01-06-HtmlComponent-Document-Selection</guid>
            <pubDate>Tue, 06 Jan 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I finally figured out how to use the Document.Selection of Nikhil's HTML Component. I was looking for Document.InsertHtml which eluded me until today. This is really great - one of those hidden gems that wasn't so hidden once you saw it.</p>
<p>So anyway, I'm making headway on this project, little by little (work and all). Here's what I got from a simple dialog and syntax highlighting:</p>
<p><img height="239" alt="" src="/assets/images/SyntaxHighlighting.gif" width="199" border="0" /></p>
<p>Hopefully before too long we'll have a maiden post.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Blatant "Me Too" Post]]></title>
            <link>https://chris.pelatari.com/posts/2004-01-03-Blatant-Me-Too-Post</link>
            <guid>https://chris.pelatari.com/posts/2004-01-03-Blatant-Me-Too-Post</guid>
            <pubDate>Sat, 03 Jan 2004 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/jalexander">Jason Alexander</a> <a href="http://weblogs.asp.net/jalexander/archive/2003/12/16/43894.aspx">posted recently </a>about moving <a href="http://www.ngallery.org">nGallery </a>to <a href="http://vaultpub.sourcegear.com">VaultPub</a>.</p>
<p>I'm hosting my little slow-going side project there too (hence the title:) It's going to be a WYSIWYG desktop blog editor that will allow posting to many different blogs - if they support the MetaWeblog API. I had originally called it PostModern, at the suggestions of <strike>one of my readers</strike> a passer-by, but I'm changing the name to Post XING, since the main point of this little app was to allow me to post to different blogs if I wanted to.</p>
<p>Anyways, I've got to say that Vault / Vaultpub is really awesome. It's been quite some time since I've used source control, and the last solution I used (VSS) taught me how to cope with loss. I'm even testing it over a dial-up connection (I know, that's SO 1994) and it still works great. Sweet.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <link>https://chris.pelatari.com/posts/2003-12-31-2004</link>
            <guid>https://chris.pelatari.com/posts/2003-12-31-2004</guid>
            <pubDate>Wed, 31 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Happy New Year everybody. 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[PostModern Crossroads]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-24-PostModern-Crossroads</link>
            <guid>https://chris.pelatari.com/posts/2003-12-24-PostModern-Crossroads</guid>
            <pubDate>Wed, 24 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Okay, I'm pretty solid on the <a href="http://www.windowsforms.com/ControlGallery/ControlDetail.aspx?Control=290&amp;tabindex=9" target="_blank">HtmlEditor</a> that I'm going to use for my little side 
project. It's a sweet editor. Honestly, it has more features than I think are 
necessary in this case, but that's okay with me.</p>
<p>On to the topic at hand. Originally, I spec'ed the <a href="http://www.squishyweb.com/ware/products.asp?q=squishysyntax" target="_blank">Codify</a> option to be in a dialog because that seemed like 
a nice tradeoff. I also tried a method that would allow you to either type code 
into the design surface or copy/paste it from <a href="http://www.sliver.com/dotnet/SnippetCompiler/" target="_blank">your favorite 
editor</a>, click a button, and bam! it's formatted. Seems like a winner, 
but the problem is that when you copy/paste into the editor, you lose 
tabs/spaces.</p>
<p>So how would you like it to work?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[sorry to my 2 readers]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-17-sorry-to-my-2-readers</link>
            <guid>https://chris.pelatari.com/posts/2003-12-17-sorry-to-my-2-readers</guid>
            <pubDate>Wed, 17 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>But I need to test out how my new syntax highlighting code is going to look in an aggregator. No offense, I hope.</p>
<p><pre><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">1</span><font color="#0000ff">using</font> System;
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">2</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">3</span><font color="#0000ff">namespace</font> HighlightTest
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">4</span>{
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">5</span> <font color="#848284">///</font><font color="#008200"> </font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">6</span> <font color="#848284">///</font><font color="#008200"> Summary description for SampleCs.</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">7</span> <font color="#848284">///</font><font color="#008200"> </font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">8</span> <font color="#0000ff">public</font> <font color="#0000ff">class</font> SampleCs
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">9</span> {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">10</span>  <font color="#0000ff">public</font> SampleCs()
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">11</span>  {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">12</span>   <font color="#008200">//</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">13</span>   <font color="#008200">// TODO: Add constructor logic here</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">14</span>   <font color="#008200">//</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">15</span>  }
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">16</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">17</span>  <font color="#0000ff">public</font> <font color="#0000ff">void</font> DoSomething( <font color="#0000ff">string</font> s ) {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">18</span>   <font color="#0000ff">if</font>( s == <font color="#004884">"string literal"</font> ) {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">19</span>    <font color="#0000ff">return</font>;
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">20</span>   }
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">21</span>  }
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">22</span><font color="#0069cc">
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">23</span>  #region This is a Region</font><span id="region1" style="DISPLAY: inline">
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">24</span>  
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">25</span>  <font color="#0000ff">private</font> <font color="#0000ff">void</font> DoSomethingElse( <font color="#0000ff">int</font> i ) {
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">26</span>   <font color="#0000ff">int</font> x = i;
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">27</span>  }
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">28</span></span><font color="#0069cc">  #endregion</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">29</span> }
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">30</span>}
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">31</span></pre></p>
<p><pre><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">1</span><font color="#0000ff">Imports</font> System.Collections
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">2</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">3</span><font color="#0000ff">Public</font> <font color="#0000ff">Class</font> MyVbClass
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">4</span>    <font color="#0000ff">Private</font> m_MyString <font color="#0000ff">As</font> <font color="#0000ff">String</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">5</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">6</span>    <font color="#0000ff">Public</font> <font color="#0000ff">Sub</font> <font color="#0000ff">New</font>()
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">7</span>        myString = <font color="#004884">"Hello there"</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">8</span>    <font color="#0000ff">End</font> <font color="#0000ff">Sub</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">9</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">10</span>    <font color="#0000ff">Public</font> <font color="#0000ff">Property</font> MyString() <font color="#0000ff">As</font> <font color="#0000ff">String</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">11</span>        <font color="#0000ff">Get</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">12</span>            <font color="#0000ff">Return</font> m_MyString
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">13</span>        <font color="#0000ff">End</font> <font color="#0000ff">Get</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">14</span>        <font color="#0000ff">Set</font>(<font color="#0000ff">ByVal</font> Value <font color="#0000ff">As</font> <font color="#0000ff">String</font>)
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">15</span>            m_MyString = Value
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">16</span>        <font color="#0000ff">End</font> <font color="#0000ff">Set</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">17</span>    <font color="#0000ff">End</font> <font color="#0000ff">Property</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">18</span><font color="#0069cc">
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">19</span>#Region <font color="#004884">"This is my region"</font></font><span id="region1" style="DISPLAY: inline">
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">20</span>    <span style="COLOR: #008200">' This is a comment</span>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">21</span>    <font color="#0000ff">Public</font> <font color="#0000ff">Function</font> MyFunction( <font color="#0000ff">ByVal</font> i as <font color="#0000ff">Integer</font> ) <font color="#0000ff">As</font> <font color="#0000ff">Double</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">22</span>        MyFunction = 123.456
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">23</span>    <font color="#0000ff">End</font> <font color="#0000ff">Function</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">24</span><font color="#0069cc">#End Region</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">25</span><font color="#0000ff">End</font> <font color="#0000ff">Class</font>
<br /><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">26</span></span></pre></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Local DasBlog]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-12-Local-DasBlog</link>
            <guid>https://chris.pelatari.com/posts/2003-12-12-Local-DasBlog</guid>
            <pubDate>Fri, 12 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Wow. I realized that I needed some guidance on how to implement the MetaWeblog API and thought, hmm, doesn't that dasBlog jobby do cross-posting with that (api)? Ah, so it does. Ah, and there is some source code to go along with that, thank you.</p>
<p>It doesn't look like I'll be doing anything really “ground-breaking” or “innovative” with my new side project...I'll really just be hacking a few disparate parts together to achieve a goal that I have - and learn more about what I can do with Windows Forms while I'm at it. That's okay with me. </p>
<p>In other news, I finally made use of those commented out settings in my local blog.config for .Text, [host] and [application]. The comment preceding that says, “It is possible to mirror a blog and hard code a specific Host and Application”. Right. I first read this and said, okay, that sounds great. But, what would I use it for? </p>
<p>I've found that setting these two elements lets me run .Text locally, but using the values that the server in question has for its application and host values. So, while I see “http:localhost/dottextweb” the .Text engine sees “http:myinternalserver/thatblog”. Sweet.<img width="0" height="0" src="http://localhost/DasBlog/cptrk.ashx?id=7b6c8700-a11f-400b-84d8-b6b62f302d47" /></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[\[deactivatedstyle\]]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-10-deactivatedstyle</link>
            <guid>https://chris.pelatari.com/posts/2003-12-10-deactivatedstyle</guid>
            <pubDate>Wed, 10 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>ugh. looks like the best way to do this is with [font] tags. eeww.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[It has begun or Does size really matter?]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-10-It-has-begun-or-Does-size-really-matter</link>
            <guid>https://chris.pelatari.com/posts/2003-12-10-It-has-begun-or-Does-size-really-matter</guid>
            <pubDate>Wed, 10 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I finally decided on a name for my project - PostModern. I had already gotten 
syntax highlighting worked out, but I ended up using a different component than 
I had originally planned. I'm using a component from <a href="http://www.squishyweb.com" target="_blank">SquishyWare</a> called <a href="http://www.squishyweb.com/ware/products.asp?q=squishysyntax" target="_blank">squishySyntaxHighlighter</a>. It's really nice...simple, easy to 
modify, and it looks pretty spiffy too.</p>
<p>So here's the thing. It creates a little bit of markup by using [span style=] 
tags where you would expect coloration, so if you're posting any sizeable amount 
of code, it can get bloated. (<em>That's</em> why I put the second part of the 
title in there, you nasty nelly you!)</p>
<p>I've found that it's a little bit difficult, if possible at all, to grab the 
selected text in the HtmlComponent that I'll probably be using, so a 
drawback of syntax highlighting is that you'll more than likely have to do it 
from the [html] tab that we're all so familiar with. Also, I've found that the 
HtmlComponent (and others too, so it must be a mshtml thing) will colorize text 
pasted from Visual Studio. Here's the difference:</p>
<p>[pasted directly into the design surface]<br /><font color="#0000ff">using</font> 
System;</p>
<p><font color="#0000ff">namespace</font> HighlightTest</p>
<p>{</p>
<p><font color="#808080">///</font><font color="#008000"> </font><font color="#808080"><summary></summary></font></p>
<p><font color="#808080">///</font><font color="#008000"> Summary description for 
SampleCs.</font></p>
<p><font color="#808080">///</font><font color="#008000"> </font><font color="#808080"></font></p>
<p><font color="#0000ff">public</font> <font color="#0000ff">class</font> 
SampleCs</p>
<p>{</p>
<p><font color="#0000ff">public</font> SampleCs()</p>
<p>{</p>
<p><font color="#008000">//</font></p>
<p><font color="#008000">// TODO: Add constructor logic here</font></p>
<p><font color="#008000">//</font></p>
<p>}</p>
<p><font color="#0000ff">public</font> <font color="#0000ff">void</font> 
DoSomething( <font color="#0000ff">string</font> s ) {</p>
<p><font color="#0000ff">if</font>( s == "string literal" ) {</p>
<p><font color="#0000ff">return</font>;</p>
<p>}</p>
<p>}</p>
<p><font color="#0000ff">#region</font> This is a Region</p>
<p><font color="#0000ff">private</font> <font color="#0000ff">void</font> 
DoSomethingElse( <font color="#0000ff">int</font> i ) {</p>
<p><font color="#0000ff">int</font> x = i;</p>
<p>}</p>
<p><font color="#0000ff">#endregion</font></p>
<p>}</p>
<p>}</p>
<p> [using the SyntaxHighlighter]<br /></p>
<pre><span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">1</span><span style="COLOR: #0000ff">using</span> System;
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">2</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">3</span><span style="COLOR: #0000ff">namespace</span> HighlightTest
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">4</span>{
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">5</span>	<span style="COLOR: #848284">///</span><span style="COLOR: #008200"> <span style="COLOR: #848284"><summary></summary></span></span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">6</span>	<span style="COLOR: #848284">///</span><span style="COLOR: #008200"> Summary description for SampleCs.</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">7</span>	<span style="COLOR: #848284">///</span><span style="COLOR: #008200"> <span style="COLOR: #848284"></span></span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">8</span>	<span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">class</span> SampleCs
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">9</span>	{
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">10</span>		<span style="COLOR: #0000ff">public</span> SampleCs()
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">11</span>		{
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">12</span>			<span style="COLOR: #008200">//</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">13</span>			<span style="COLOR: #008200">// TODO: Add constructor logic here</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">14</span>			<span style="COLOR: #008200">//</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">15</span>		}
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">16</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">17</span>		<span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">void</span> DoSomething( <span style="COLOR: #0000ff">string</span> s ) {
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">18</span>			<span style="COLOR: #0000ff">if</span>( s == <span style="COLOR: #848284">"string literal"</span> ) {
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">19</span>				<span style="COLOR: #0000ff">return</span>;
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">20</span>			}
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">21</span>		}
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">22</span><span style="COLOR: #6699cc">
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">23</span>		#region This is a Region</span><span id="region1" style="DISPLAY: inline">
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">24</span>		
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">25</span>		<span style="COLOR: #0000ff">private</span> <span style="COLOR: #0000ff">void</span> DoSomethingElse( <span style="COLOR: #0000ff">int</span> i ) {
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">26</span>			<span style="COLOR: #0000ff">int</span> x = i;
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">27</span>		}
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">28</span></span><span style="COLOR: #6699cc">		#endregion</span>
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">29</span>	}
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">30</span>}
<span style="BORDER-RIGHT: #999999 1px solid; WIDTH: 40px; COLOR: #008284; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: #e5e5e5; TEXT-ALIGN: right">31</span></pre>
<p>So there's a little bit more work to go thru, but the end result is that it's 
already formatted the way I like. What do you think about 
that?</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[posting from the desktop...]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-04-posting-from-the-desktop</link>
            <guid>https://chris.pelatari.com/posts/2003-12-04-posting-from-the-desktop</guid>
            <pubDate>Thu, 04 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.byte.org/blog/_archives/2003/11/28/7591.html" target="_blank" rel="noreferrer">See?</a> I'm not the only one.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Posting code snippets from the desktop...]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-04-Posting-code-snippets-from-the-desktop</link>
            <guid>https://chris.pelatari.com/posts/2003-12-04-Posting-code-snippets-from-the-desktop</guid>
            <pubDate>Thu, 04 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.4guysfromrolla.com/ScottMitchell.shtml" target="_blank" rel="noreferrer">Scott Mitchell</a> told me:</p>
<blockquote>
<p>Feature request: you will be my hero if your blog software can display code snippets in a color coding like in VS.NET. And if it's a snap to add such code and have it formatted. (That is, I don't have to do more than just add, [code language=&quot;C#&quot;] ... code ... [/code].)</p>
</blockquote>
<p>Thanks to <a href="http://weblogs.asp.net/tjohansen" target="_blank" rel="noreferrer">Thomas Johansen's</a> <a href="http://aspalliance.com/aylar/highlight/" target="_blank" rel="noreferrer">AylarSolutions.Highlight</a>, you're gonna get exactly that!</p>
<p>This was one of the requests that more than one person told me would be nice, so I decided to go ahead and add syntax highlighting to the app b/c yeah it would be nice. Tom's component makes it sickeningly easy to highlight C#, VB.NET, J#, and I believe recently he even added ASPX support.</p>
<p>Initially I was thinking that a 'snippet dialog' would be the easiest way to accomplish this, just insert where the cursor is on the editing surface. Then I thought, well, if I can wrap a font tag around some words that I highlighted, then I should be able to do the same with the syntax highlighting markup, just add a button with a language dropdown to the <a href="http://www.divil.co.uk/net/controls/sandbar/" target="_blank" rel="noreferrer">toolbar</a>, highlight the code you want to show the syntax for, click 'codify' and go!</p>
<p>Now, ScottM is mentioning some custom markup syntax, familiar to anyone who has posted on an online forum. So, you would have a region that you know <em>will</em> look like VS.NET's scheme when it's posted to the blog, but the only visual clue you'll have is the custom markup around the code - it won't be syntax highlighted until you hit the Post &amp; Publish button.</p>
<p>So which would you prefer - from an end user's standpoint? What would make you say, “Yo, that's super easy to add code to my posts“?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[What's in a name?]]></title>
            <link>https://chris.pelatari.com/posts/2003-12-03-Whats-in-a-name</link>
            <guid>https://chris.pelatari.com/posts/2003-12-03-Whats-in-a-name</guid>
            <pubDate>Wed, 03 Dec 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>In my comments <a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a>, <a href="http://karavshin.org/blogs/black-coffee/archive/000474.html">Michael Slater</a> says I should try out zempt for my blog-editing pleasure...well, I went to the site and thanks for the suggestion, Mikey, but I think that zempt only targets MT, which this blog is not (thank you Jesus...and ScottW:)</p>
<p>So, I've been thinking of what I should name my little side project, and I thought you could help me. I've asked this same question elsewhere, and here's a little list of what has been suggested so far:</p>
<ul>
<li>BlogPost</li>
<li>BlogPoster</li>
<li>Blogster</li>
<li>Hi-Lited-Blog-Poster</li>
<li>Poster Face (like poker face:)</li>
<li>POSTERIOR</li>
<li>Sharlene</li>
<li>Sally</li>
<li>PostThoughts</li>
<li>PostBloggem</li>
<li>POST-it (can I get sued for that?)</li>
<li>POST-Code</li>
<li>POSTAL (as in I'm going)</li></ul>
<p>I was thinking something that included a play on the word post somehow, since that's what I'm calling entries to my blog. Of course, I'm witholding the names of the suggestors to protect my a$. But here's the thing - I just want a fun name for my project, and I think you can help. The above are okay, but fun? I'm not really feelin it. If I can't come up with anything within a day or two, I'm going to cave in and call the finished product <strike><a href="http://www.nmr.ru/dasha.html">Dasha</a> </strike> Post-it. Thanks!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Blogert]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-26-Blogert</link>
            <guid>https://chris.pelatari.com/posts/2003-11-26-Blogert</guid>
            <pubDate>Wed, 26 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Thanks to comments from my previous post, I did snag a copy of Blogert.</p>
<p>Just like I thought, it's almost everything that I wanted, but I want a 
couple of more features -  like the ability to post to many blogs at once 
(this is my main want) and it seems from initial reaction that it would be 
cool to be able to post snippets of code into the entry that you're writing. 
</p>
<p>So I've got the behaviors that I want, but spread across two different apps. 
Looks like I've found myself a pet project. :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I want a new...]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-25-I-want-a-new</link>
            <guid>https://chris.pelatari.com/posts/2003-11-25-I-want-a-new</guid>
            <pubDate>Tue, 25 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...way to post to my weblogs. Maybe you can help me out.</p>
<p><u>Objective:</u> Create a desktop application that will enable posting entries to a weblog.</p>
<p><u>Technology:</u> Windows Forms, C#</p>
<p><u>Needs:</u> </p>
<ul>
<li>A simple, familiar, WYSIWYG interface for creating content.</li>
<li>Use the MetaBlog API for posting and retrieving content.</li>
<li>Ability to post to many blogs at once.</li>
<li>Ability to save posts locally at the user's discretion and/or in a disconnected scenario.</li></ul>
<p><u>Wants:</u></p>
<ul>
<li>That's where you come in! </li></ul>
<p>I've seen the <a href="http://scottwater.com/blog/Gallery/1062.aspx">images of Blogert</a>, but I can't find where to download it :(. It looks like it does almost everything that I need it to do, and it would be real nice to build on top of it to add cross/multi-blog posting. That would be ideal and preferable to starting from scratch. If I can't have my cake and eat it too, I'll just start with what's available.</p>
<p>This isn't really something I <em>need</em>, however it would be really nice to have it, since I'm not completely satisfied with the experience in w.bloggar...I want wysiwyg, just as if I'm posting from my blog itself. So what would be really nice to have on this? I need to sharpen my Windows Forms skills (or lack thereof) - what would be something that would set a tool like this apart a little bit from other software? Or, am I barking up the wrong tree and really need to sharpen my google skills? Thanks for taking the time to read this; I'm off to let this idea stew for a little bit.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hannah Henson]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-19-Hannah-Henson</link>
            <guid>https://chris.pelatari.com/posts/2003-11-19-Hannah-Henson</guid>
            <pubDate>Wed, 19 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Our friend Hannah passed away yesterday. </p>
<p>Vanessa: thank you for your comment, indeed Hannah was an inspiration to us all. She had courage and faith until the very end, and my condolences go out to her family and everyone whose life she touched.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ever heard of role-based security?]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-18-Ever-heard-of-role-based-security</link>
            <guid>https://chris.pelatari.com/posts/2003-11-18-Ever-heard-of-role-based-security</guid>
            <pubDate>Tue, 18 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm sorry, Frans - this did make me chuckle a little bit, tho:</p>
<p><a href="http://weblogs.asp.net/fbouma/posts/38178.aspx">Well... ever heard of role-based security? Rob Howard hasn't obviously.</a></p>
<p><a href="http://longhornblogs.com/bevjen/posts/930.aspx">Rob Howard – Membership, Role Management and Security in ASP.NET Whidbey</a></p>
<p>hehe</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Tomorrow's my birthday.]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-14-Tomorrows-my-birthday</link>
            <guid>https://chris.pelatari.com/posts/2003-11-14-Tomorrows-my-birthday</guid>
            <pubDate>Fri, 14 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'll be 23. 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Exception Management]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-14-Exception-Management</link>
            <guid>https://chris.pelatari.com/posts/2003-11-14-Exception-Management</guid>
            <pubDate>Fri, 14 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've been using the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp">Exception Management Application Block</a> for quite some time now, and for general purpose it's great. Especially when I need some detailed information about exceptions generated from an asp.net application, EMAB's got my back.</p>
<p>The only problem that I've had so far (barring non-perfectly formed configSections) I ran into today, and it had to do with Registry Access. I'm in the midst of deploying a windows forms application that uses the EMAB, but the user I wanted to deploy to was not an administrator (and <u>really</u> shouldn't be.) So, I had to :</p>
<ul>
<li>rebuild my installer, removing the custom action to install EMAB</li>
<li>log the user out</li>
<li>log in as administrator</li>
<li>run cmd: cd C:\%windir%\microsoft.net\framework\v1.1.4322\</li>
<li>installutil "Path to EMAB"</li>
<li>let the user log back in before we could test things.</li>
</ul>
<p>What a pain in the ass! Maybe I'm just spoiled from all of this xcopy <strike>sh</strike> deployment bru-haha.;) Anyways, I hope that .NET becomes easier for non-administrators to use...okay, maybe that's a gross generalization, but the point is that <i>Registry Access</i> never crossed my mind as an issue to resolve, because I'm always running in "God Mode" and therefore never really worry about these things.</p>
<p>Funny thing is that I created a fake User in the same group as the target user and deployed the application to a test machine before I ever put the app on the target machine - the installer and everything worked like a charm, but shouldn't have (unless EMAB was already installed:)...Okay, I need to blog more b/c this is turning into a rant. All I really wanted to do was outline what I needed to do to get EMAB installed for a non-administrator. Shh! If you're still reading, don't tell, aiight?</p>
<div class="media">-= Currently Jammin: Psycho - System Of A Down - toxicity :=-</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Seeing the Matrix Manana]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-04-Seeing-the-Matrix-Manana</link>
            <guid>https://chris.pelatari.com/posts/2003-11-04-Seeing-the-Matrix-Manana</guid>
            <pubDate>Tue, 04 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just got my tickets to see The Matrix : Revolutions online...I'm one of the fortunate few that get to see this on the BIG screen: IMAX baby! 😛</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[May be changing servers soon...]]></title>
            <link>https://chris.pelatari.com/posts/2003-11-01-May-be-changing-servers-soon</link>
            <guid>https://chris.pelatari.com/posts/2003-11-01-May-be-changing-servers-soon</guid>
            <pubDate>Sat, 01 Nov 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I may have to change servers...it looks like another app that lives <a title="My Blog" href="/blog" target="_blank">here</a> is timing out a lot and I want to be able to make sure it's not my blog's fault.</p>
<p><font color="#ff0000">UPDATE</font>: It's not my blog's fault, thank you very much. It turns out to be some over-sorting in one of the libraries the other app is using. Time to refactor, baby.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Singing the praises of the ASP.NET Version Switcher.]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-31-Singing-the-praises-of-the-ASPNET-Version-Switcher</link>
            <guid>https://chris.pelatari.com/posts/2003-10-31-Singing-the-praises-of-the-ASPNET-Version-Switcher</guid>
            <pubDate>Fri, 31 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm putting some of the finishing touches on my first winforms project, so I decided to try out some code on an <a href="http://www.velocitydatabank.com">app </a>that I wrote over a year ago today - I wanted it to run on .netfx 1.1 instead of 1.0, because it's the central login point for 2 different apps. After looking around at things and jogging that old memory, I got it working again, in both 1.0 and 1.1 using <a href="http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx">Denis Bauer's ASP.NET version switcher</a>. Very nice. I know it's been said before, but this is an indespensible tool for anyone running side by side asp.net apps.</p>
<p>My problem was this (if you're still reading): Since I have two different apps accessing the login page of this site from different hosts, the machineKey element of the *.config files need to be synched up for each site - either in web. or machine. - much like a server farm scenario. Apparently, tho, the newer fx and the older fx don't play nicely together when it comes to communication. Even tho the two apps had identical machineKey elements, authorization failed from site B to site A every time. All I had to do was change the versions that the apps were running on to be synched, and voila! Single Sign On is back. Whew</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I don't speak German, but...]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-28-I-dont-speak-German-but</link>
            <guid>https://chris.pelatari.com/posts/2003-10-28-I-dont-speak-German-but</guid>
            <pubDate>Tue, 28 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/ralfw/posts/34099.aspx" target="_blank" rel="noreferrer">This post</a> reinforces that a picture is worth 10,000 words.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[This *is* a cross-post from .Text.]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-27-This-is-a-cross-post-from-Text</link>
            <guid>https://chris.pelatari.com/posts/2003-10-27-This-is-a-cross-post-from-Text</guid>
            <pubDate>Mon, 27 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>It seems that cross-posting has become a <a href="http://weblogs.asp.net/javery/posts/33357.aspx">cool feature </a>since other, more respected <a href="http://staff.newtelligence.net/clemensv/">developers </a>have released <a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=ca70e481-9fbe-4d84-b936-e9db6d84965c">new versions </a>of their prospective blogging engines. </p>
<p>This is a cross-post. You can view this post <a title="My Blog" href="http://weblogs.asp.net/blog" target="_blank">here</a> and <a title="My other blog" href="http://weblogs.asp.net/CFrazier" target="_blank">there</a>. I've been doing it for a while - ever since I got my grubby little hands on someone's blog engine code and was able to play with the source code / webservice combinations that <a href="http://weblogs.asp.net/">http://weblogs.asp.net</a> exposes. I'm doing it. I know of one other person who's doing it as well. </p>
<p>Anyways, it required a minimal amount of code to achieve - although I'm guessing there is probably a better way to do it, like w/ the MetablogAPI implementation. It's just a webservice call, and I'm able to post technical stuff right up next to <a href="http://www.chrisfrazier.net/blog/posts/208.aspx">non-technical </a>stuff.</p>
<p>Okay, I'll be quiet now.</p>
<p>P.S. One more thing - Thanks to everybody who's blogging the PDC. It's neat to read about what's going on in real-time.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[My Thursday Night]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-24-My-Thursday-Night</link>
            <guid>https://chris.pelatari.com/posts/2003-10-24-My-Thursday-Night</guid>
            <pubDate>Fri, 24 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<ul>
<li>Papa John's pepperoni and ham (with the special garlic sauce)</li>
<li>cold beer</li>
<li>working software</li></ul>
<p>now if only the Yankees can pull off 3 more points...this is about as close to heaven as I'm gonna get for a long time :D </p>
<p>P.S. They didn't do it - the Marlins just got out Matsui.:'(</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[For anybody who's running .Text...]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-23-For-anybody-whos-running-Text</link>
            <guid>https://chris.pelatari.com/posts/2003-10-23-For-anybody-whos-running-Text</guid>
            <pubDate>Thu, 23 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://jjulian.geekswithblogs.com">Jeff Julian </a> has put up a couple of skins at <a href="http://www.geekswithblogs.com/TextSkins">http://www.geekswithblogs.com/TextSkins</a> .</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Somebody likes the blue Lighty.]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-21-Somebody-likes-the-blue-Lighty</link>
            <guid>https://chris.pelatari.com/posts/2003-10-21-Somebody-likes-the-blue-Lighty</guid>
            <pubDate>Tue, 21 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://jjulian.geekswithblogs.com" target="_blank" rel="noreferrer">Jeff Julian</a> pinged me this morning and asked if he could use the version of Lighty that I hacked up after Julien Cheyssial (that's weird :)released his 'original orange' version, now up on
<a href="http://weblogs.asp.net" target="_blank" rel="noreferrer">http://weblogs.asp.net</a>. So it looks like the <a href="http://www.geekswithblogs.net" target="_blank" rel="noreferrer">GeeksWithBlogs</a> will be enjoying a little different taste of a nifty skin.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[For anyone who wants the Lighty skin to look a little better in Mozilla...]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-21-For-anyone-who-wants-the-Lighty-skin-to-look-a-little-better-in-Mozilla</link>
            <guid>https://chris.pelatari.com/posts/2003-10-21-For-anyone-who-wants-the-Lighty-skin-to-look-a-little-better-in-Mozilla</guid>
            <pubDate>Tue, 21 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Go to the Admin section of your blog, and in the “Custom CSS Selectors” textbox add:</p>
<pre>main {
margin-left:200px;
padding:0px 20px 0px 0px;
width: 580px;
}
</pre>
<p></p>
<p>It still has a bit of gap-osis, but at least your main content will end up where it does for IE. I haven't tried this out on Opera yet, but I've implemented it <a title="My Blog" href="/blog" target="_blank">here</a> and <a title="My other blog" href="http://weblogs.asp.net/CFrazier" target="_blank">there</a>.</p>
<p><font face="Courier New" size="2">HAND</font></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[sigh of relief]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-20-sigh-of-relief</link>
            <guid>https://chris.pelatari.com/posts/2003-10-20-sigh-of-relief</guid>
            <pubDate>Mon, 20 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Thanks, Scott. 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Test from MetaBlog/w.bloggar]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-16-Test-from-MetaBlog-wbloggar</link>
            <guid>https://chris.pelatari.com/posts/2003-10-16-Test-from-MetaBlog-wbloggar</guid>
            <pubDate>Thu, 16 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is just a little test ping.</p>
<div class="media">-= Currently Jammin: Chop Suey - System Of A Down -  (03:17) :=-</div>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Simple Scrolling added to my blog]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-14-Simple-Scrolling-added-to-my-blog</link>
            <guid>https://chris.pelatari.com/posts/2003-10-14-Simple-Scrolling-added-to-my-blog</guid>
            <pubDate>Tue, 14 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I added a scroller over <a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a> - just some custom javascript. I wanted to get it working - it looks great on IE, I can't say the exact same for mozilla or opera, tho. I'm working on it 😃. I'm also working on giving it a cleaner UI w/ images instead of text - this is just the 'prototype' to see if I can get this scroller working.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hannah Henson]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-11-Hannah-Henson</link>
            <guid>https://chris.pelatari.com/posts/2003-10-11-Hannah-Henson</guid>
            <pubDate>Sat, 11 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>My girlfriend Tina just pointed me to a site that a friend of hers has put up - <a href="http://www.caringbridge.org/tx/hannahgrace/index.htm">Hannah Henson</a> is a young lady who was diagnosed with osteosarcoma earlier this year after she broke her hip.</p>
<br />
<p>If you could, would you both go and <a href="http://www.caringbridge.org/tx/hannahgrace/guestbook.html">sign her guestbook</a>? She's still reading this site while she's with us. Thanks.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[New Skin, new Gallery!]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-10-New-Skin-new-Gallery</link>
            <guid>https://chris.pelatari.com/posts/2003-10-10-New-Skin-new-Gallery</guid>
            <pubDate>Fri, 10 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Thanks to <a href="http://dotnetjunkies.com/weblog/donnymack/">Donny Mac</a> for pointing me to a <a href="http://dotnetjunkies.com/weblog/skins/lighty.zip">new skin </a>for <a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a>. Also thanks to <a href="http://www.dotnetjunkies.com/weblog/jcheyssial/">Julien Cheyssial</a> for creating the initial one. </p>
<br />
<p>I changed the colors from orange to blue - I dig blue these days. Also, I've added <a href="http://weblogs.asp.net/jalexander/">Jason Alexander's</a> new <a href="http://www.ngallery.org">nGallery</a> to my site <a href="http://www.chrisfrazier.net/ngallery">over here</a>.</p>
<br />
<p>Looks like I won't have to write anything myself for a minute! :) I know that both of my readers get at me from <a title="My other blog" href="http://weblogs.asp.net/CFrazier" target="_blank">there</a>, so if you've got a minute please check out my new skin over <a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a>. Thanks!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A different OS this time...]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-09-A-different-OS-this-time</link>
            <guid>https://chris.pelatari.com/posts/2003-10-09-A-different-OS-this-time</guid>
            <pubDate>Thu, 09 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This time I'm like the PalmOS. I hope that's not bad 😃</p>
<p>At any rate, I love my Palm Handheld.
<a href="http://bbspot.com/News/2003/01/os_quiz.php"><img height="90" alt="You are Palm OS. Punctual, straightforward and very useful.  Your mother wants you to do more with your life like your cousin Wince, but you're happy with who you are." src="http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/palm.jpg" width="300" border="0" />Which OS are You?</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ATM - Galaga]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-06-ATM-Galaga</link>
            <guid>https://chris.pelatari.com/posts/2003-10-06-ATM-Galaga</guid>
            <pubDate>Mon, 06 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I had a dream last nite that I was going to an ATM to get some cash. When I was at the terminal, on the opposite side of the English/Espanol options there was a third option - Internet. What? so, of course I chose Internet - this could be fun, right?</p>
<p>The screen pops up with a clone of Galaga - you used the keypad to move and one of the option buttons to shoot. I was just about to reach my high score when I noticed the long line of people behind me. Whoops 😃 I guess I can beat my high score anytime - preferrably around 1 AM.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Thanks Darren...Show us your-Regex!]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-01-Thanks-Darren-Show-us-your-Regex</link>
            <guid>https://chris.pelatari.com/posts/2003-10-01-Thanks-Darren-Show-us-your-Regex</guid>
            <pubDate>Wed, 01 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.velocitydatabank.com">The place that I work </a>uses what we call index numbers (they're not really numbers per se...) that are based on API numbers (which are usually numbers) for check shot velocity surveys. I'm working on a project that will validate these and I thought that it would be well suited for Regex since it's going to be text validation and there are rules in place for these Index “numbers”. </p>
<br />
<p>So first I go to <a href="http://www.regexlib.com">www.regexlib.com</a> and see what that might have to get those Regex juices flowin. Then I thought about the Regex that I need to write and wrote it out as the rules should apply:</p>
<br />
<ol>
<br />
<li>Start at the beginning of a string.</li>
<br />
<li>Match exactly 2 digits.</li>
<br />
<li>Match exactly 1 letter (uppercase).</li>
<br />
<li>Match no less than 3 but no more than 4 digits.</li>
<br />
<li>Optionally match 1 or 2 letters (uppercase).</li>
<br />
<li>End of string.</li></ol>
<br />
<p>So, I fired up <a href="http://weblogs.asp.net/DNeimke">Darren Neimke's</a> <a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=43D952B8-AFC6-491B-8A5F-01EBD32F2A6C">RegexSnippets</a> which I have sitting in my C:\Tools folder for just such an occasion, and this is what I came up with:</p>
<br />
<p>^\d{2}[A-Z]{1}\d{3,4}([A-Z]{1,2})?$</p>
<br />
<p>And much to my surprise it worked the first time running! Very nice. Plus, I was able to save the regex for later using Darren's cool little utility. Added bonus: there was already one expression (8PointFloat) that I needed for a different area. Thanks Darren!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[More cross-posting shennanigans.]]></title>
            <link>https://chris.pelatari.com/posts/2003-10-01-More-cross-posting-shennanigans</link>
            <guid>https://chris.pelatari.com/posts/2003-10-01-More-cross-posting-shennanigans</guid>
            <pubDate>Wed, 01 Oct 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I think I'm going to play with .Text a little bit to allow cross-posting from <a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a> to <a title="My other blog" href="http://weblogs.asp.net/CFrazier" target="_blank">there</a> using w.Bloggar and the MetaBlog API.</p>
<p>Perhaps there are some hidden jewels in <a href="http://www.dasblog.net/">dasBlog </a>that I could borrow the idea from...just thinking out loud.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Archives]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-26-Archives</link>
            <guid>https://chris.pelatari.com/posts/2003-09-26-Archives</guid>
            <pubDate>Fri, 26 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a> September, 2003(16)</p>
<p><a title="My other blog" href="http://weblogs.asp.net/CFrazier" target="_blank">there</a> September, 2003(14)</p>
<p>and the internal one, September, 2003(34) </p>
<p>hehe, you can't see how big of a dope I am on the internal one :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Note to the Windows Forms team]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-24-Note-to-the-Windows-Forms-team</link>
            <guid>https://chris.pelatari.com/posts/2003-09-24-Note-to-the-Windows-Forms-team</guid>
            <pubDate>Wed, 24 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Working with windows forms sucks. </p>
<p>Especially if you're coming from the much more approachable asp.net side. I have state, but simple things like pre-selecting an item in a datagrid are not easy - and they should be. You should make me feel comfortable in your environment. Give me a reason to use Windows Forms other than 'it runs on Windows'. </p>
<p>I'm about halfway thru my first Windows Forms project. If I were doing this in asp.net, I would be done by now.</p>
<p>That is all.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Intellisense problem solved.]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-23-Intellisense-problem-solved</link>
            <guid>https://chris.pelatari.com/posts/2003-09-23-Intellisense-problem-solved</guid>
            <pubDate>Tue, 23 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>For anyone else who might have run into Intellisense weirdness, I found that just 'touching' the file that was generated by vs.net for the dataset and recompiling gave intellisense its needed kick in the rear. </p>
<p>All I did was go to the file, hit enter, hit backspace, shift+ctrl+b, and intellisense was ready again to do my bidding. Weird, but it worked for me :)</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[technology is like]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-19-technology-is-like</link>
            <guid>https://chris.pelatari.com/posts/2003-09-19-technology-is-like</guid>
            <pubDate>Fri, 19 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I'm doing some work with typed datasets right now that is really souring my experience with VS.NET 2003.</p>
<p>I'm using the same technique that I used months ago with VS.NET 2002 that worked pretty smoothly - wait, first let me say that it is working, it's the Intellisense that's jacked up. Unfortunately, it looks like it doesn't pick up everything that is included within the generated DataSet, including the <em>public</em> DataTable and DataRow classes generated. So, the code compiles and works fine during runtime, but intellisense is shot down at the first level. Is this what it was like before intellisense? So maybe the problem is that I'm spoiled now thanks to the technology - then it craps out on me after working before.</p>
<p>Technology is like crack. First you get a taste of the good stuff, then you really pay.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Paying it forward]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-12-Paying-it-forward</link>
            <guid>https://chris.pelatari.com/posts/2003-09-12-Paying-it-forward</guid>
            <pubDate>Fri, 12 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>In <a href="http://weblogs.asp.net/cfrazier/posts/8771.aspx#27259">response to a post </a>I made about VS.NET 2002 failing to open connections with Sql Server, Roman says:</p>
<br />
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<br />
<p>I have just found solvation. Installing MDAC 2.8 helps</p></blockquote>
<br />
<p dir="ltr">Tony, who had been having a similar problem, found the post and thanks Roman. So, if you're having problems connecting to Sql Server, try installing MDAC 2.8.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Wow. It's a website. (part deux)]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-11-Wow-Its-a-website-part-deux</link>
            <guid>https://chris.pelatari.com/posts/2003-09-11-Wow-Its-a-website-part-deux</guid>
            <pubDate>Thu, 11 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Me: Hey, Tina - you wanna see what I did today?</p>
<p>Tina: No, I looked at a computer screen for too long today. It was 4 hours.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I remember.]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-11-I-remember</link>
            <guid>https://chris.pelatari.com/posts/2003-09-11-I-remember</guid>
            <pubDate>Thu, 11 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>9/11. I was at home that day, my son wasn't born yet, and I saw the whole thing televised after my (ex) girlfriend's crazy best friend told us that America was under attack over the phone.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[test]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-10-test</link>
            <guid>https://chris.pelatari.com/posts/2003-09-10-test</guid>
            <pubDate>Wed, 10 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>blah!! 😄</p>
<br />
<p>edit more<img src="http://www.chrisfrazier.net/blog/images/emotions/emotion-12.gif" border="0" alt="Mad" /></p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[oops.]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-10-oops</link>
            <guid>https://chris.pelatari.com/posts/2003-09-10-oops</guid>
            <pubDate>Wed, 10 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>perhaps I <em>should</em> take a little more time to fix the emoticons<img src="http://www.chrisfrazier.net/blog/images/emotions/red_smile.gif" border="0" alt="Embarassed" /></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[geourl]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-10-geourl</link>
            <guid>https://chris.pelatari.com/posts/2003-09-10-geourl</guid>
            <pubDate>Wed, 10 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just added <a href="http://geourl.org">geoUrl </a>to my blog. I don't know why I didn't thing to do this before! I just have it pointing to my personal blog that has the correct tags, so when you click on the link it queries the database based on the url <a title="My Blog" href="http://www.chrisfrazier.net/blog" target="_blank">here</a> not <a title="My other blog" href="http://weblogs.asp.net/CFrazier" target="_blank">there</a>. </p>
<p>Nice. There's also this <a href="http://www.brainoff.com/geoblog">site which has a world map </a>on it and shows up where you are if you make a post. </p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[added emoticons :)]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-10-added-emoticons</link>
            <guid>https://chris.pelatari.com/posts/2003-09-10-added-emoticons</guid>
            <pubDate>Wed, 10 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've recently added emoticons 😘 to my .Text blog. If you could see the code, it <a href="http://www.asp.net/Forums/Download/Default.aspx?tabindex=0&tabid=1" target="_new">might look familiar</a>. Heh, that was pretty easy. I did make a change or two to the source of .Text and also added a key to the web.config's appsettings node.</p>
<p>The magic happens in a method called StripFTB (for free textbox, the editor used for this app) All I did was add a call to the new Transform class, added the appropriate text file, and we're in business.</p>
<p>If you haven't checked it out yet, .<a href="http://scottwater.com/dottext" target="_new">Text</a> is a real good app - it's been real easy to make changes to it to 'fit my needs'.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ImageLists]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-10-ImageLists</link>
            <guid>https://chris.pelatari.com/posts/2003-09-10-ImageLists</guid>
            <pubDate>Wed, 10 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Looks like <a href="http://weblogs.asp.net/mlafleur/">Marc </a>is <a href="http://weblogs.asp.net/mlafleur/posts/27017.aspx">having trouble with sealed ImageLists</a>.</p>
<p>I've been working on my first Windows Forms project and I'm using the same ImageList throughout the application, even tho there are yet only a few forms in it. I adapted an example by Lutz Roeder that uses a static class (well, ya know static members, whatever) to load a bitmapstrip into an internal ImageList. The class has a bunch of static properties that return the correct index of the image based on the loaded ImageList. (Like Images.Forward or Images.Undo)</p>
<p>I also added a static property to return the internal ImageList incase I want to use it in one of my Forms without calling the individual properties.</p>
<p>The trick is to load the bitmap strip in a static constructor - it's <em>always</em>  called first. If I want to add an individual image to a form, I can either create a local ImageList and set it to Images.ImageList or simply set the image of the control I'm targeting to say Images.Back. I have to admit, I usually add the image in (gasp) the InitializeComponent() call - but here's the nice part: since I'm calling a completely static class, the designer can get to the images and loads it not only to the designer surface but also (usually) replaces my Images.Back call with an appropriate call to the ResourceManager to grab the image from its new home - my Form's .resx file. </p>
<p>Good luck, Marc.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[thanks.]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-09-thanks</link>
            <guid>https://chris.pelatari.com/posts/2003-09-09-thanks</guid>
            <pubDate>Tue, 09 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I want to say thanks to those who have given me feedback on a <a href="http://weblogs.asp.net/cfrazier/posts/26789.aspx#FeedBack">previous post</a>. It's given me a little bit more insight into this beast called SqlServer. Anyways, I think perhaps I should ask this particular question on a listeserv of some sort, or maybe stick with just dynamically creating the sql text - given the fact that this particular endeavor is a windows forms project that shouldn't go outside of my company...</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[System.Net.WebProxy.GetDefaultProxy()]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-09-System-Net-WebProxy-GetDefaultProxy</link>
            <guid>https://chris.pelatari.com/posts/2003-09-09-System-Net-WebProxy-GetDefaultProxy</guid>
            <pubDate>Tue, 09 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I couldn't figure out why the remote posting thing wasn't working like I wanted it to. Well, the examples that I looked at last nite failed to outline the need to generate a proxy to use a webservice with the soap protocol. I had to dig up some old code and inevitably smak myself on the head. But here goes...</p>
<p><font color="#ff0000">Update</font>: I think I got it to work.</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[No command-line proxy for you, buddy.]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-09-No-command-line-proxy-for-you-buddy</link>
            <guid>https://chris.pelatari.com/posts/2003-09-09-No-command-line-proxy-for-you-buddy</guid>
            <pubDate>Tue, 09 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Oh boy. Another “Object Reference” exception. I tried to create a proxy to this here webservice and insert an entry from a simple command line program. No dice. Thing is, tomorrow I'm going to try it from asp.net and it's gonna work. eh, I hope 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Coming real soon...]]></title>
            <link>https://chris.pelatari.com/posts/2003-09-06-Coming-real-soon</link>
            <guid>https://chris.pelatari.com/posts/2003-09-06-Coming-real-soon</guid>
            <pubDate>Sat, 06 Sep 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I intend to use this blog engine more and more, but I've run into a snag that has held me back a bit - I don't know what the ParentID is supposed to be used for, and I don't want to go forward until I do.</p>
<p>I'm working on cross-posting right now so that I can use this blog full-time. I'm pretty sure I have 0 subscribers on /phoenix, but I'll make sure to include the proper redirects if I get an aggregator for the user-agent. Should be fun!</p>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[flat -> normal shudder]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-25-flat-normal-shudder</link>
            <guid>https://chris.pelatari.com/posts/2003-08-25-flat-normal-shudder</guid>
            <pubDate>Mon, 25 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Still posting from infiniblog...</p>
<p>I've been sick for the past few days. I hate being sick, it makes me delerious (sp?). Even worse, I'm currently working on a 'rad' project that is making the developer in me cringe. It's really bad.</p>
<p>I'm having to convert a flat table into a 'normal' database, which would be okay but there are a number of fields for each row that require a one to many relationship. So what I've decided to do in the interest of the 'r' part is just throw the logic into a class that loops thru the records to fill the new structure with data.</p>
<p>The data in the original table has some fields with names like A_this and A_that thru M_this and M_that, much like a spreadsheet. This is the part that is making the developer scream &quot;you shouldn't be doing that!!&quot; It's really hard for me to go against my gut feelings, but I suppose that just shows my lack of experience. Not only do I have a cold, but this code is really making me sick.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Got an importer.]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-23-Got-an-importer</link>
            <guid>https://chris.pelatari.com/posts/2003-08-23-Got-an-importer</guid>
            <pubDate>Sat, 23 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I have a project that requires that I convert a flat FoxPro Database to a 'normalized' Sql Server database. So far, I've gotten the foxpro data into SqlServer.</p>
<p>Today I created an Importer utility class to generate the proper data from flat-&gt; normal database. Now I just need to create the logic that will migrate the data from one to the other... I've gotten as far as creating the datacontainers and filling the initial data from the original flat database into memory.</p>
<p>Also, I learned that you can have two different Main() methods in a solution, which one gets used depends on which one is selected as the startup project.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Testing geourl]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-21-Testing-geourl</link>
            <guid>https://chris.pelatari.com/posts/2003-08-21-Testing-geourl</guid>
            <pubDate>Thu, 21 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>just a lil ping!ping!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[moving to .Text]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-21-moving-to-.Text</link>
            <guid>https://chris.pelatari.com/posts/2003-08-21-moving-to-.Text</guid>
            <pubDate>Thu, 21 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I decided to move the location of my blog, using <a href="http://scottwater.com/dottext">dotText</a>. I was going to wait for a while, but the Image gallery feature has me sold. Sorry, Chris, it's been a while since I've heard from ya and well, I want comments, dammit! That's partly my fault, as I haven't had the time or the knowledge to figure out how to make that particular feature work. So, no bad karma thrown that way:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Mono]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-06-Mono</link>
            <guid>https://chris.pelatari.com/posts/2003-08-06-Mono</guid>
            <pubDate>Wed, 06 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Wow. This is something I could have sworn Scoble would post. Are ya fallin off, buddy? Anyways, from Microsoft-Watch:</p>
<p>Microsoft Watch: What's the future of Mono, Ximian's implementation of .Net on Linux?</p>
<p>Stone: We are going to continue to push it. .Net on Linux is a great idea. We just hope Microsoft isn't against the idea.</p>
<p>Yes, .Net on Linux is a good idea, and I doubt Microsoft will have a problem with it. I mean, have they yet? Read the Article.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hits from a survival guide.]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-05-Hits-from-a-survival-guide</link>
            <guid>https://chris.pelatari.com/posts/2003-08-05-Hits-from-a-survival-guide</guid>
            <pubDate>Tue, 05 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Too funny. I try to post mainly .net related findings, and enjoy relatively low traffic here other than the occasional google or yahoo search on &quot;object reference...&quot;.</p>
<p>All it takes is a nearby Texan to post about one thing non-dotnet...and I've gotten a bunch of hits about my potty humor. I'm not that good a programmer, anyway:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[From the Trenches...]]></title>
            <link>https://chris.pelatari.com/posts/2003-08-01-From-the-Trenches</link>
            <guid>https://chris.pelatari.com/posts/2003-08-01-From-the-Trenches</guid>
            <pubDate>Fri, 01 Aug 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Alex Lowe says:</p>
<blockquote>
<p>?My motto: You've got to know someone's pain to make it go away.</p>
</blockquote>
<p>Adding to <a href="http://scottwater.com/blog/posts/9207.aspx" target="_blank" rel="noreferrer">others who have stated it</a>, I'd like to congratulate <a href="http://weblogs.asp.net/alowe" target="_blank" rel="noreferrer">Alex Lowe</a> on his new position at Microsoft. I spoke with him directly about this, and got the above quote in response to a discussion about some Evangelists that I've met (not <a href="http://radio.weblogs.com/0001011/" target="_blank" rel="noreferrer">that one</a>, he's actually pretty cool in person) getting out of touch with what's going on &quot;In the trenches&quot;.</p>
<p>The quote alone makes me confident that Microsoft has made a wise decision. Good luck, Alex!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Mission Possible]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-30-Mission-Possible</link>
            <guid>https://chris.pelatari.com/posts/2003-07-30-Mission-Possible</guid>
            <pubDate>Wed, 30 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So how's about a project I haven't goofed up yet?</p>
<p>I started to make a little headway on the UI of Miny, my first WinForms project. Miny is the name given to the project because a change in the data structure requires a &quot;one to miny&quot; relationship, whatever that is&lt;G&gt;.</p>
<p>All I really have to say at this point is wow - the <a href="http://www.dotnetmagic.com/" target="_blank" rel="noreferrer">MagicLibrary</a> is a must-have if you're developing WinForms. It comes with sample source code, and thanks to that and a helpful <a href="http://www.aisto.com/roeder" target="_blank" rel="noreferrer">Example by Lutz Roeder</a> (sp?) with a similar library, I hit the ground running with some VS.NET - style menus including images.</p>
<p>nice.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[AcceptChanges()]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-30-AcceptChanges</link>
            <guid>https://chris.pelatari.com/posts/2003-07-30-AcceptChanges</guid>
            <pubDate>Wed, 30 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Okay, I'm about to show a little of my ignorance here, but that's okay - at least I'm blogging again.</p>
<p>I just tracked down a bug in some software I wrote that was actually my fault (this time). It had to do with DataSets, their disconnected behavior, and a corresponding method &quot;.AcceptChanges()&quot;. When I had originally added this cute little method to my app, I figured that it would fire off a message to the underlying database telling it the changes I've made are accepted.</p>
<p>Wrong. According to MSDN:</p>
<p>When AcceptChanges is called, any DataRow object still in edit mode successfully ends its edits. The DataRowState also changes: all Added and Modified rows become Unchanged; Deleted rows are removed.</p>
<p>and it goes on to say:</p>
<p>The AcceptChanges method is generally called on a DataTable after you attempt to update the DataSet using the DbDataAdapter.Update method.</p>
<p>which, of course, I didn't bother to read the first time 'round. Basically, I was &quot;accepting changes&quot; before the update/insert was made - the bug was not discovered, however, until I tried to put in a new record into the database...I was testing on records which were already entered, and the last method with a straggling .AcceptChanges() method was never called, hence the call was never removed.</p>
<p>The worst part is that I recognized the rush of adrenaline as someone told me something live is &quot;broken&quot; - heh, that could mean just about anything. Thankfully, I knew where the problem child of this beast was - in a monolithic page with too many controls for its own good. Bug found, targeted, searched, destroyed.</p>
<p>HAND.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[WhoIs, and my first WinForms Project]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-23-WhoIs-and-my-first-WinForms-Project</link>
            <guid>https://chris.pelatari.com/posts/2003-07-23-WhoIs-and-my-first-WinForms-Project</guid>
            <pubDate>Wed, 23 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Yesterday I picked up my first Windows Forms project.</p>
<p>I think it should be pretty lightweight -&gt; it's going to be a data entry app for &quot;API Headers&quot;, which is descriptive information about Oil/Gas Well logs. The hardest part I think will be converting the FoxPro Database over to Sql Server - not the data itself, but figuring out where to change what is basically a monolithic table (in spreadsheet fashion) to more normal data. Who knows? Maybe it'll be fun. heh.</p>
<p>In the meantime, I decided to write a front-end to a nice little gem embedded into <a href="http://www.aspnetdns.com/" target="_blank" rel="noreferrer">aspNetDns</a>, WhoIs. I found myself wanting to do whois queries, and sometimes if you use an online search too often, the server will get bogged down - not a fun chore, for me or the server admin. The component makes it extremely easy to do a whois query - it took me 2 lines of code to accomplish it. If you want some more information on that and other utilities like it, ping <a href="http://weblogs.asp.net/DWanta" target="_blank" rel="noreferrer">Dave Wanta</a>.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Finally, my upgrade!]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-23-Finally-my-upgrade</link>
            <guid>https://chris.pelatari.com/posts/2003-07-23-Finally-my-upgrade</guid>
            <pubDate>Wed, 23 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I haven't blogged for a while, I'm on an extended Monday &lt;g&gt;...but anyhoo I just ordered by upgrade to VS.NET Ent. Architect 2003. It sucks that they're sending it thru USmail only, but for $29, I'm really not complaining that much.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I just made it to Redmond.]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-14-made-it</link>
            <guid>https://chris.pelatari.com/posts/2003-07-14-made-it</guid>
            <pubDate>Mon, 14 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just made it to Redmond. Big thanks to Jim Ross, MVP for giving me a ride to my hotel. gotta go!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[nyt hackers]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-11-nyt</link>
            <guid>https://chris.pelatari.com/posts/2003-07-11-nyt</guid>
            <pubDate>Fri, 11 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>NYT: <a href="http://www.nytimes.com/2003/07/11/technology/11HACK.html?ex=1373256000&amp;en=28f47c8f075d4117&amp;ei=5007&amp;partner=USERLAND" target="_blank" rel="noreferrer">Hackers Hijack PC's for Sex Sites</a></p>
</blockquote>
<p>...since the hijacked machines download the pornographic ads from a single Web server. According to the computer investigators, that machine apparently is owned by Everyones Internet, a large independent Internet service company in Houston that also offers Web hosting services to a large number of companies.</p>
<p>Wow, close to home, even.  In ev1's defense, they also own RackShack (for servers) and their <em>very</em> competitive priced package includes ~300Mb of free-for-all web space. They have disclaimers and such, but if a handful of their ~100,000 users (of which I am one) uses their space for less than honorable content, how would you track that down?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Yeah, it's swell...]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-11-Yeah-its-swell</link>
            <guid>https://chris.pelatari.com/posts/2003-07-11-Yeah-its-swell</guid>
            <pubDate>Fri, 11 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p><a href="http://weblogs.asp.net/gad/" target="_blank" rel="noreferrer">Andrew</a> : Ya just had to post that, didn't ya!</p>
</blockquote>
<p>Of course I did! First, Quake II is one of my favorite games (right up there with Duke Nukem:)...I haven't caught up with the times yet&lt;G&gt;</p>
<p>More importantly, I'm going to be working with some C/C++ code in the very near future, and the example shows both the old and new (I think) source as a means to show how &quot;easy&quot; it is to port from unmanaged to managed code (in C++); there4 I'm very interested in it.</p>
<p>Now, if you'll excuse me, I have some monsters to kill.😉</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Managed Quake II? swell.]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-11-Managed-Quake-II-swell</link>
            <guid>https://chris.pelatari.com/posts/2003-07-11-Managed-Quake-II-swell</guid>
            <pubDate>Fri, 11 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Nice. ...Must...focus...on work...</p>
<blockquote>
<p>From Brad. Interesting…</p>
</blockquote>
<blockquote>
<p>The thing that sold Windows as a viable gaming platform for most people was the appearance of <a href="http://www.bluesnews.com/guide/winquake.htm" target="_blank" rel="noreferrer">WinQuake</a> (and then later GLQuake and QuakeWorld). Taking a cue from past days, Vertigo Software has ported the now GPL'd <a href="http://www.vertigosoftware.com/Quake2.htm" target="_blank" rel="noreferrer">Quake II engine to .NET</a> (using Managed C++, of course).</p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetguy.techieswithcats.com/archives/003587.shtml" target="_blank" rel="noreferrer">The .NET Guy</a>]</p>
</blockquote>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Comment Reply]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-09-Comment-Reply</link>
            <guid>https://chris.pelatari.com/posts/2003-07-09-Comment-Reply</guid>
            <pubDate>Wed, 09 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Frans Says, in comments:</p>
<blockquote>
<p>You can buy the upgrade for vs.net 2003 for 29$ even if you have a vs.net 2002 you got with an MSDN subscription that is no longer valid. The license of that vs.net 2002 is still valid thus you are entitled to buy the upgrade.</p>
</blockquote>
<p>Thanks Frans. This would seem like a good idea, except that I'm in the middle of a couple of projects being built w/ VS.NET 2002. Would an upgrade mean that I will now have only 2003? I'm not sure, so I'm not going to upgrade just yet.</p>
<p>Thanks for the tip, tho!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[v1.1.4322 w/o VS.NET 2003]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-08-v114322-wo-VSNET-2003</link>
            <guid>https://chris.pelatari.com/posts/2003-07-08-v114322-wo-VSNET-2003</guid>
            <pubDate>Tue, 08 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just installed v1.1.4322 of the dotnetfx today, bacause it's looking like the nifty tools that I'm starting to see are all being built with this version of the framework. Thanks to <a href="http://www.larkware.com/" target="_blank" rel="noreferrer">Larkware News</a> for providing links to a couple of the tools that I've been using since the install - <a href="http://jsp.mobikom.com/stoyan/vspc/vspc.html" target="_blank" rel="noreferrer">2002 to 2003 (and back) Project converter</a>   and <a href="http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx" target="_blank" rel="noreferrer">ASPNETVersion Switcher</a>.</p>
<p>The former is pretty neat in the fact that I no longer have an MSDN subscription 😢 so I can effectively use and view Examples written with the newer, bluer(?) VS.NET 2003. The only problem(s) was (were)</p>
<ul>
<li>written w/ v1.1 dotnetfx, so I had to install that.</li>
<li>source code provided, but also written (um,) at v1.1, so I couldn't use the proggie on isself</li>
<li>rar'ed. I had to download winrar to extract the files.</li>
</ul>
<p>wah-wah.😢</p>
<p>The latter, well, that's just cool. Quite useful little utility, kudos <a href="http://www.denisbauer.com/" target="_blank" rel="noreferrer">Denis</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Robert Sindall]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-06-robert-sindall</link>
            <guid>https://chris.pelatari.com/posts/2003-07-06-robert-sindall</guid>
            <pubDate>Sun, 06 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Robert Sindall has posted a <a href="http://weblogs.asp.net/cfrazier/story/5794.aspx" target="_blank" rel="noreferrer">VB.NET Version of my Story on Interactive About Pages using Reflection</a> in ASP.NET.</p>
<p>Thanks, Robert! For the VB.NET version, check out the comments of the story.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Comment Reply]]></title>
            <link>https://chris.pelatari.com/posts/2003-07-01-Comment-Reply</link>
            <guid>https://chris.pelatari.com/posts/2003-07-01-Comment-Reply</guid>
            <pubDate>Tue, 01 Jul 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Helena asks:</p>
<blockquote>
<p>Helena
Posted @ 7/1/2003 3:39 AM
Hello!</p>
</blockquote>
<blockquote>
<p>I'm experiencing the same problem!
Have you been able to solve it??</p>
</blockquote>
<p>I sure did solve it! Thanks to FreeDOS and fdisk, I wiped my entire machine while I had the time to do so, and reinstalled WinXP, VS.NET, and a very few other proggies I use daily. Unfortunate I had to go that route, but I figured a clean slate was much preferred over wasting hours/days/weeks trying to diagnose a problem that I just couldn't figure out.</p>
<p>Everything works great now. /me knocks wood</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[So VB.NET just ain't that bad after all.]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-30-So-VBNET-just-aint-that-bad-after-all</link>
            <guid>https://chris.pelatari.com/posts/2003-06-30-So-VBNET-just-aint-that-bad-after-all</guid>
            <pubDate>Mon, 30 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hit a new &quot;milestone&quot; in my current project today, at the same time really starting to understand where the term &quot;over-engineering&quot; is founded - of course, from engineers.</p>
<p>Background: I'm adding features that were requested by engineers onto the <a href="http://geoweb.velocitydatabank.com/Risk" target="_blank" rel="noreferrer">Risk Analysis</a> project. Basically, there are 4 components that help clearly define what is known in the Oil&amp;Gas Exploration industry as Recovery Factor - How much oil or gas do we think we're gonna get?</p>
<p>They're bullISH. From an end-user (who may be an engineer) perspective, tho - these things are important. So I get to learn VB.NET.</p>
<p>The original component used to make the calculations and the associated graphs was written about a year and a half ago in VB6. Since the move to .NET, we decided that it would be a good idea to upgrade the VB6 code to VB.NET. So far so good, but guess what? I'm a C# programmer :S</p>
<p>So I'm not finding VB.NET that difficult to work with, as a matter of fact, I'm kinda digging the compatibility namespace since it's letting me leave a goodly amount of the code alone. Actually, if I stick with the fx to do my bidding, the code is looking structurally identical to the code that I write in C# (not aesthetically or syntacticly) heh! go figure.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[WORA...log4net]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-26-WORA-log4net</link>
            <guid>https://chris.pelatari.com/posts/2003-06-26-WORA-log4net</guid>
            <pubDate>Thu, 26 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.hutteman.com/weblog/2003/06/25-102.html" target="_blank" rel="noreferrer">Luke Blogs</a> of the dream of WORA.</p>
<p>Slightly more interesting to me at this point, tho, is his experiences with <a href="http://log4net.sourceforge.net/" target="_blank" rel="noreferrer">log4net</a>, the popular .NET alternative to log4j...This is the kind of stuff I've been looking for, and would have if I had more than 2.5 readers. (That third one is on and off 😉</p>
<p>See, I have a current incarnation of an application that uses the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp" target="_blank" rel="noreferrer">Exception Management Application Block</a> from M$, plus some custom schtuff I put in so I could have notification via email. I got very little feedback on which was the best to use, and the general concensus was that log4net has a broader range of purpose.</p>
<p>That's cool, but added to this, I doubt I would run into Luke's problem simply because I've yet to write a downloadable windows forms application, so my apps sit on a server which I have a lot of control over.</p>
<p>Eh.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Object ref....]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-23-Object-ref</link>
            <guid>https://chris.pelatari.com/posts/2003-06-23-Object-ref</guid>
            <pubDate>Mon, 23 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Heh - I get more traffic <a href="http://www.chrisfrazier.net/phoenix" target="_blank" rel="noreferrer">here</a> and <a href="http://weblogs.asp.net/CFrazier" target="_blank" rel="noreferrer">there</a>  from a post I made a while back that had the words &quot;Object reference not set....&quot; you know, you've seen it.</p>
<p>I guess this is a really common problem. There's got to be a way to give developers, novice and seasoned, more information about this exception than is currently given. I'm sure there's someone in M$Land who can shed some light on this.</p>
<p>Any takers?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Corporate Blogs Catching on]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-23-Corporate-Blogs-Catching-on</link>
            <guid>https://chris.pelatari.com/posts/2003-06-23-Corporate-Blogs-Catching-on</guid>
            <pubDate>Mon, 23 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://www.nytimes.com/2003/06/22/business/yourmoney/22EXLI.html?ex=1371614400&amp;en=aa6f8754247627bf&amp;ei=5007&amp;partner=USERLAND" target="_blank" rel="noreferrer">Corporate Blogs Catching on</a></p>
<p>It's like a plague. I have some unmanned Tripod sites that sent the &quot;webmaster&quot; (yours truly) an email detailing how someone should have a Blog for the summer.</p>
<p>Am I just late in seeing this stuff?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[WinXP wipe]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-17-WinXP-wipe</link>
            <guid>https://chris.pelatari.com/posts/2003-06-17-WinXP-wipe</guid>
            <pubDate>Tue, 17 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So, after my wah-wah yesterday about Visual Studio, I was looking thru my hotmail account and realized that they offer mobile services. Hey! I've got a cell phone now, let's try it out!</p>
<p>After the confirmation message, I got a horoscope:</p>
<p><em>Scorpio: Today someone is being unreasonable. That someone could be you.</em></p>
<p>As I'm reinstalling windows just because one or two programs aren't doing what they should be doing; as I am cursing Windows set up for not letting me delete C: as a partition; as I'm trying to figure out why everything is blowing up on me after so long having no problems.</p>
<p>Oh well, 29 minutes and a few key programs left.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Things that make you go...]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-16-Things-that-make-you-go</link>
            <guid>https://chris.pelatari.com/posts/2003-06-16-Things-that-make-you-go</guid>
            <pubDate>Mon, 16 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Visual Studio .NET has not been my friend lately.</p>
<p>Last week, ASPNET was having issues - taking up to 4 minutes to compile a (relatively) small project. Now, I can't get to any SQL Server instance on my network - When I attempt to connect thru the server explorer, I get the nice friendly message &quot;The specified procedure could not be found.&quot;</p>
<p>Thanks, Visual Studio.</p>
<p>I can't help but wonder if this may be intentional...VS.NET 2003 just came out, and now I'm having problems w/ 2002 after over a year of no problems...things that make you go hmm.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Added a snippet  DHTML ImageButton server control]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-16-Added-a-snippet-DHTML-ImageButton-server-control</link>
            <guid>https://chris.pelatari.com/posts/2003-06-16-Added-a-snippet-DHTML-ImageButton-server-control</guid>
            <pubDate>Mon, 16 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Thanks to a recent upgrade(?) to this here blog engine, I was able to recover a story I wrote a while back that I never set to &quot;active&quot;. It's called <a href="http://weblogs.asp.net/cfrazier/story/6725.aspx" target="_blank" rel="noreferrer">Enter the QuickButton</a> and it deals with adding DHTML rollover behaviors to the ImageButton control that ships with asp.net.</p>
<p>Enjoy!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Member cap]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-14-Member-cap</link>
            <guid>https://chris.pelatari.com/posts/2003-06-14-Member-cap</guid>
            <pubDate>Sat, 14 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>Each Workspace has a maximum limit of 500 members.</p>
</blockquote>
<blockquote>
<p>[<a href="http://www.gotdotnet.com/" target="_blank" rel="noreferrer">gotdotnet workspaces</a>]</p>
</blockquote>
<p>Wha? I thought it was only 20. Very interesting....</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ypXmlTree]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-08-ypXmlTree</link>
            <guid>https://chris.pelatari.com/posts/2003-06-08-ypXmlTree</guid>
            <pubDate>Sun, 08 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm still kicking around some ideas for an online aggregator, so I can maybe look over some of the blogs I frequent over my loverly dial-up connextion at home. I wanted to use a tree structure like the left pane of <a href="http://www.sharpreader.net/" target="_blank" rel="noreferrer">SharpReader</a> (and others, but sharpreader's what I use a lot:).</p>
<p>In my searching, I found a great xml tree component from <a href="http://www.youngpup.net/" target="_blank" rel="noreferrer">youngpup</a>. Well, I've had my hands on it for a while, but I'm just now getting to the meat of it. This component uses xslt to convert an xml file to html, then uses javascript to toggle expanded state. Good component, but there's a little snafu.</p>
<p>I want to take an opml file (generated from sharpreader) and use it to populate my tree. This means I can either a) apply xslt to the opml file so it will retain the structure needed for the javascript component or b) write a custom server control that will take opml and generate the necessary html for the javascript.</p>
<p>Not sure which way I'm gonna go at this point, but I'm leaning toward b as I have experience with server control authoring and zilch with xslt. Might be fun to learn xslt, but I think that I may leave that route to a later date and a more seasoned developer.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[That's great. It's a website.]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-08-Thats-great-Its-a-website</link>
            <guid>https://chris.pelatari.com/posts/2003-06-08-Thats-great-Its-a-website</guid>
            <pubDate>Sun, 08 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Earlier tonight, I showed my girlfriend Tina some of the work I've done, namely <a href="http://www.velocitydatabank.com/" target="_blank" rel="noreferrer">www.velocitydatabank.com</a> and my most recent endeavor, <a href="http://geoweb.velocitydatabank.com/Risk" target="_blank" rel="noreferrer">Risk Analysis</a>. Like whoa.</p>
<p>It's different showing this stuff to those who are not primarily technically oriented, to say the least. She was slightly impressed, but I think she just said that to make me feel good about myself. That was nice of her.</p>
<p>Has anyone else had experiences like this? I remember showing my mom my company's website when I first rolled it out, and she kind of got this glazed look over her eyes like, wha? Anyways, just thought I'd share.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The .NET pledge]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-07-The-NET-pledge</link>
            <guid>https://chris.pelatari.com/posts/2003-06-07-The-NET-pledge</guid>
            <pubDate>Sat, 07 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://samgentile.com/blog/posts/7794.aspx" target="_blank" rel="noreferrer">I took the pledge</a>. You should, too.</p>
<p>Good stuff, Sam.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[xsd2db and Me]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-06-xsd2db-and-Me</link>
            <guid>https://chris.pelatari.com/posts/2003-06-06-xsd2db-and-Me</guid>
            <pubDate>Fri, 06 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>I have been looking for <a href="http://sourceforge.net/projects/xsd2db/" target="_blank" rel="noreferrer">xsd2db</a>, a tool for generating a database schema from an XML schema, ever since I read <a href="http://radio.weblogs.com/0112946/stories/2003/04/29/unifyingObjectAndRelationalDataStructures.html" target="_blank" rel="noreferrer">this article</a>.  Unfortunately, when it came time for me to recall the location of the tool I had forgotten where I found it in the first place (I'm sometimes lazy on my bookmarks).  Thanks to <a href="http://www.larkware.com/index.html" target="_blank" rel="noreferrer">Mike Gunderloy's</a> most recent <a href="http://www.larkware.com/Articles/TheDailyGrind85.html" target="_blank" rel="noreferrer">Daily Grind</a>, I was able to locate the tool.</p>
</blockquote>
<blockquote>
<p>It works as promised, and I was able to create a database with the appropriate entities for a few complex types defined in my XSD for a SQL Server database and an Access database.</p>
</blockquote>
<blockquote>
<p>[<a href="http://weblogs.asp.net/cosgood/posts/7660.aspx" target="_blank" rel="noreferrer">Chad Osgood's Blog</a>]</p>
</blockquote>
<p>Schweet! I've been thinking about changing over the backend for my blog engine to use sql server since it's available to me, and it looks like I will now have the chance. Nice.</p>
<p>I used this tool to generate a SQL Server DB using the xsd that is currently in place. I'm still not sure if it will handle annotated datasets, but that's just a few keystrokes away I think. Cool deal - tools like this make things so much easier to deal with...for me anyway:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Must...resist...]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-04-must-resist</link>
            <guid>https://chris.pelatari.com/posts/2003-06-04-must-resist</guid>
            <pubDate>Wed, 04 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Must...resist...giving...Dvorak google juuce!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Log this!]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-04-Log-this</link>
            <guid>https://chris.pelatari.com/posts/2003-06-04-Log-this</guid>
            <pubDate>Wed, 04 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>What's your poison? <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp" target="_blank" rel="noreferrer">Exception Management Application Block</a> or <a href="http://log4net.sourceforge.net/release/1.2.0.30507/doc/manual/introduction.html" target="_blank" rel="noreferrer">log4net</a> ?</p>
<p>Why?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Srinath says]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-03-Srinath-says</link>
            <guid>https://chris.pelatari.com/posts/2003-06-03-Srinath-says</guid>
            <pubDate>Tue, 03 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Srinath says regarding my previous post:</p>
<p>Please check our secure guide, section &quot;Accessing System Resources &gt; Accessing Event Log&quot; at <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetch08.asp?frame=true#accessingsystemresources" target="_blank" rel="noreferrer">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetch08.asp?frame=true#accessingsystemresources</a></p>
<p>Good stuff. Wish I had thought to look here before I commenced head-throttling this morning;)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Exception Management Block]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-03-Exception-Management-Block</link>
            <guid>https://chris.pelatari.com/posts/2003-06-03-Exception-Management-Block</guid>
            <pubDate>Tue, 03 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Okay, so I dove into the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp" target="_blank" rel="noreferrer">Exception Management Application Block today</a>.</p>
<p>I've been using it on a current application, but I wanted an email to be sent to me on an exception, so I had to subclass. So far, the EventLog has been enough.</p>
<p>I found a little quirk that I suppose I should have realized before - the default ASPNET user does not have rights to create an EventLog section for custom viewing of application exceptions, so the section I was trying to create just wasn't kickin it. This was a bit tough to find, as the QuickStart that comes with the application block creates the section no problem (if you have admin rights like me;)</p>
<p>Basically, all I had to do to get the custom &quot;Publisher&quot; to work was to remove the logName=&quot;&quot; and applicationName=&quot;&quot; elements from the configuration section of web.config. Now I get the EventLog and Email notification - and only one half of my head retains the dent from this morning's banging.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[+1 reader]]></title>
            <link>https://chris.pelatari.com/posts/2003-06-01-1-reader</link>
            <guid>https://chris.pelatari.com/posts/2003-06-01-1-reader</guid>
            <pubDate>Sun, 01 Jun 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Heh, I've got 3 readers now.</p>
<p>Someone pinged me and said the link in my previous post doesn't work. Sorry bout that, it won't be &quot;live&quot; until Monday at the earliest. Also, it requires login/registration with <a href="http://www.velocitydatabank.com/" target="_blank" rel="noreferrer">Velocity Databank</a> reason being it is targeted at a very precise audience - namely Geologists/Geophysicists and soon Oil &amp; Gas Engineers.</p>
<p>We have some other <a href="http://quicklook.velocitydatabank.com" target="_blank" rel="noreferrer">Exploration Tools</a> that don't require login as well. I guess it wouldn't seem that exciting if you weren't some sort of GeoTech, tho.</p>
<p>cya.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[VS.NET being difficult...]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-31-VS.NET-being-difficult</link>
            <guid>https://chris.pelatari.com/posts/2003-05-31-VS.NET-being-difficult</guid>
            <pubDate>Sat, 31 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Uh-oh. I did a little finishing touches to my latest application, <a href="http://geoweb.velocitydatabank.com/Risk" target="_blank" rel="noreferrer">Risk Analysis</a>  and it looks like Visual Studio doesn't like something I've done lately.</p>
<p>It took about 3.5 minutes to build/compile a 6 page ASP.NET project. That ain't good. So it looks like I'll be spending Monday doing some spring cleaning on the Punisher. Oh boy.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[You're a nerd.]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-30-Youre-a-nerd</link>
            <guid>https://chris.pelatari.com/posts/2003-05-30-Youre-a-nerd</guid>
            <pubDate>Fri, 30 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Last night I couldn't go to sleep, so I hopped on my laptop @ 1:00am.</p>
<p>The funny part is,  when my modem stopped hand-shaking, one of my favorite <a href="http://objective.mine.nu/" target="_blank" rel="noreferrer">'softies</a> popped up on Windows Messenger.</p>
<p>I won't go into a lot of the exact things we discussed as I don't know how this person feels about personal disclosure, but I can tell you my initial thought and thus my initial message to him:</p>
<p>&quot;You're a nerd.&quot;</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Pattern Primate...]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-30-Pattern-Primate</link>
            <guid>https://chris.pelatari.com/posts/2003-05-30-Pattern-Primate</guid>
            <pubDate>Fri, 30 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>...from code monkey:P. Rollin right along, I'm getting more used to using patterns in my regular speech (as a developer, anyway:)</p>
<p>Trouble is, as I've said before, that I'm a sloooooooow reader. I guess I need to work on that a bit. Disregarding some of the more obvious design pattern speech impediments I'm experiencing, here's a few things I'm trying to work out for InfiniBlogWeb:</p>
<ul>
<li>&quot;pluggable&quot; data storage. Meaning filesystem/db. I'll see what I come up with on that one:)</li>
<li>Comments. Yeah. Comments would be good.</li>
<li>Pingback/Trackback/Per-post referrals</li>
<li>These won't mean a lot to my blog perse, but I think in general are good things to have in a blog engine, no?</li>
<li>Rotate Brain. eek. Mini-Gallery, personalization type stuff that really serves no visible purpose besides posterity.</li>
<li>Refactor based on some of the design patterns I'm learning. I've gotten some suggestions, but honestly don't have a grasp for what they mean yet. I need to read more, I guess.</li>
<li>External interface for what I wanna do here. I don't want to ever have to see my blog or IE to make these posts, tho they do have thier place IMHO.</li>
<li>That's the best I can come up with for the moment. We'll see what shakes up in the near future...cya.</li>
</ul>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Cross-posting revisited]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-30-Cross-posting-revisited</link>
            <guid>https://chris.pelatari.com/posts/2003-05-30-Cross-posting-revisited</guid>
            <pubDate>Fri, 30 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>One more thing - ScottW, you're the dude. man. whateva.</p>
<p>All I had to do this morning to enable cross-posting from my non-read space was change the url in web.config to point @ weblogs.asp.net . Nice:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Unwittingly giving Google Juice...]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-28-Unwittingly-giving-Google-Juice</link>
            <guid>https://chris.pelatari.com/posts/2003-05-28-Unwittingly-giving-Google-Juice</guid>
            <pubDate>Wed, 28 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip&gt;</p>
</blockquote>
<blockquote>
<p>Well, I'm sure that lots of webloggers will fall into that trap.</p>
</blockquote>
<blockquote>
<p>Not me.</p>
</blockquote>
<blockquote>
<p>&lt;/snip&gt;</p>
</blockquote>
<blockquote>
<p>[<a href="http://radio.weblogs.com/0001011/2003/05/28.html#a3123" target="_blank" rel="noreferrer">The Scobleizer Weblog</a>]</p>
</blockquote>
<p>D'oh!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[HashConfigCs]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-23-HashConfigCs</link>
            <guid>https://chris.pelatari.com/posts/2003-05-23-HashConfigCs</guid>
            <pubDate>Fri, 23 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just made a change to some code I wrote a while back that generates a text file with strong encryption/decryption keys for use in a machine.config or web.config.</p>
<p>The change was minor, but when I first used it I didn't intend to tell anyone about it, but nor did I have a blog. Basically, all I did was add a little code to the MSDN example that walks you thru the process of defining strong &lt;machineKey/&gt; elements for inter-host forms authentication (among other things).</p>
<p>It's a command-line exe that takes 3 arguments:</p>
<ol>
<li>number of bytes to make the decryption key</li>
<li>number of bytes to make the validation key</li>
<li>output file name.</li>
</ol>
<p>The example given by MSDN is great, and there aren't any code changes as far as the logic for creating the keys go. I wanted to be able to copy/paste the results tho, so I added some pretty trivial filestream code to it. If one of you two is interested, ping me. Oh yeah, the code is in C#.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[RegExValidator Tester]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-21-RegExValidator-Tester</link>
            <guid>https://chris.pelatari.com/posts/2003-05-21-RegExValidator-Tester</guid>
            <pubDate>Wed, 21 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just had to do a test for a RegExValidator.</p>
<p>Wow! Interesting, no? Keep reading.</p>
<p>A while back, I had to do a few tests to check if certain regEx's would work in a regex validator. Since said validator uses JavaScript RegExp's, I couldn't test for validation on <a href="http://www.regexlib.com/" target="_blank" rel="noreferrer">Steve Smith's RegexLib.com</a>. Great resource there, Steve - but I'm a web developer primarily. So I rolled my own.</p>
<p>You can find it on my little aspalliance web space <a href="http://www.aspalliance.com/christopher/experiments/RegExValidator.aspx" target="_blank" rel="noreferrer">here</a>. I've used it quite a few times, but it's been a private deal - so there's no UI, no design went into it, it's simply a utility that works much like the tester on RegexLib; I simply made it work with a regexValidator so it requires one more postback. If any of my 2 readers enjoys this or finds it useful, please let me know. As always, feedback is appreciated - I'm still learning, here folks.</p>
<p>HAND.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[dmrader]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-20-dmrader</link>
            <guid>https://chris.pelatari.com/posts/2003-05-20-dmrader</guid>
            <pubDate>Tue, 20 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Welcome to my pal Devin Rader who has just started a blog on dotnetweblogs.</p>
<p>&lt;snip/&gt;</p>
<p>[Julia Lerman Blog]</p>
<p>Subscribed.</p>
<p>[Listening to: Two Tabs Of Mescaline - Glassjaw - Worship And Tribute  (06:12)]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The Bridge Whatsis?]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-20-The-Bridge-Whatsis</link>
            <guid>https://chris.pelatari.com/posts/2003-05-20-The-Bridge-Whatsis</guid>
            <pubDate>Tue, 20 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>The Bridge pattern. All I have to say is...&quot;huh?&quot;. Is it me or does this pattern seem like more of an abstract idea than the others I've seen so far? I think I'm going to have to read this chapter again. I don't mind, I'll come back to it.</p>
<p>So why am I reading DPE? Well, it occurs to me that a lot of developers I respect and think of as well-refined in their skills use these terms to not only communicate but also think about development in a higher order. I want that. I'm hungry. I want to collaborate with developers who are much better versed than I am and not just think, &quot;huh?&quot;. I've got a lot of work to do.😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[WYSIWYG 4 Opera]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-15-WYSIWYG-4-Opera</link>
            <guid>https://chris.pelatari.com/posts/2003-05-15-WYSIWYG-4-Opera</guid>
            <pubDate>Thu, 15 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>Just wondering;  has anyone figured out how to do rich text editing in other browsers, i.e. Opera?[<a href="http://objective.mine.nu/archive/2003/5/14.aspx#when:15:02:52.9048272" target="_blank" rel="noreferrer">Objective</a>]</p>
</blockquote>
<p><a href="http://www.google.com/search?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=Opera+rich+text+edit+&amp;btnG=Google+Search" target="_blank" rel="noreferrer">http://www.google.com/search?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=Opera+rich+text+edit+&amp;btnG=Google+Search</a></p>
<p>returned a couple of java applets that claim to do this.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[developerLabs]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-13-developerLabs</link>
            <guid>https://chris.pelatari.com/posts/2003-05-13-developerLabs</guid>
            <pubDate>Tue, 13 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>By far, the most interesting aspect of the windows 2003 launch event came from someone who is NOT employed by m$...Stephen &quot;7 of 9&quot; Fulcher.</p>
<p>Why &quot;7 of 9&quot;? Well, I often see some of the &quot;<a href="http://objective.mine.nu/" target="_blank" rel="noreferrer">'softies</a>&quot; refer to <a href="http://www.gotdotnet.com/team/dbox" target="_blank" rel="noreferrer">themselves</a> as &quot;the b0rg&quot; or &quot;assimilated&quot;. Following that scheme, Stephen used to work for m$, but now holds the title &quot;Principal&quot; for a company he started called <a href="http://www.developerlabs.net/" target="_blank" rel="noreferrer">developerLabs</a>.</p>
<p>I saw Stephen there at the Reliant Center, and said hey to him. He shook my hand and pretended to know me. Or rather, he treated me with the respect of someone he knew. That was cool. Believe me, I'm a nobody - so when someone treats me like that, I remember. It's important.</p>
<p>So of course, I'll definitely be looking into taking a course or two at <a href="http://www.developerlabs.com/" target="_blank" rel="noreferrer">developerLabs</a>, and if I can't benefit from taking the courses there, I'll do whatever I can to give Mr. Fulcher a hand over there. Yep. It's that important.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Lessons learned.]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-13-Lessons-learned</link>
            <guid>https://chris.pelatari.com/posts/2003-05-13-Lessons-learned</guid>
            <pubDate>Tue, 13 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Just got back from the windows server 2003 launch event. Got some cool toys to play with, but I learned some interesting things...here's the gist.</p>
<p>First, the Reliant Stadium...the event was held at the Reliant Center, about 100 ft from Reliant Stadium, and all I have to say is Geez, that thing is huge. It stands next to the 'Dome, and believe me when I say that it literally dwarfs the '8th wonder of the world'. Oh yeah, thanks Uncle Billy for making me pay $7 to attend your 'free' event.😛</p>
<p>I only stayed for the first half, b/c this is pretty much all I could handle, but here are a few things that I gleaned from this morning:</p>
<ul>
<li>[insert technology here] Evangelist ~ high-falutin' sales person. (No offense I hope, Scoble;) Don't get me wrong, they know their stuff...but perhaps 'evangelist' is the correct title for these folks (in the Gulf Coast area, anyway.)</li>
<li>Why were almost all of the benchmark tests done against NT4.0 as opposed to win2k? In their defense, there were also graphs shown where they went against RH linux/Apache v. IIS6. That was interesting.</li>
<li>I didn't really see anyone 'new', barring the VP of M$. That was cool.</li>
<li>The 'sessions' covered the same topics that I'd been seeing at developercare , which is okay despite the fact that some of this stuff I do know, so let's not go over basics for a bunch of people who came to see a new technology launch, okay? Thanks.</li>
</ul>
<p>more to come...</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Delimma]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-13-</link>
            <guid>https://chris.pelatari.com/posts/2003-05-13-</guid>
            <pubDate>Tue, 13 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>
Delimma: What the heck am I? I get to the launch event and there are three 'tracks' you can take:
</p>
1. Developer
2. Architect
3. IT Pro.
<p>Obviously, IT Pro is out the window for me. That's fine, I can handle that (for now:P)...the problem? I consider myself neither a developer nor an architect; I'm kind of 1.5 in that respect. Let's say I'm a code munkey aspiring to be a simian architect.</p>
<p>So, I decide to go the Architect route as this is the area I need direction in...the developer track was all about the goodies that you'll find in VS.NET 2003, which I'd honestly like to get my hands dirty with to learn about, thanks.</p>
<p>Topic: SOA, and the platform to deliver it. I took a few notes, but the first thing on the first page says:</p>
<p>&quot;Patterns and Practices&quot;.</p>
<p>Can anyone else see where this is going? This was the first time I had seen this particular 'evangelist' (Architect Evangelist TBE...explain THAT one:) speak, so I figured what the hey, I'll check him out.</p>
<p>The speaker's name was John Opalko, and AFAIK, he's the lead for the developercare guys out here in Houston. Interesting topic, interesting points, unfortunately about 89% of the speech seemed stripped from the pages of [insert design pattern book here]. There was plenty of DP jargon flying around this conference room. Wow.</p>
<p>A couple of the key concepts that I heard in this session:</p>
<ul>
<li>&quot;Just because you're using Web Services doesn't mean you've got Service Oriented Architecture.&quot;</li>
<li>Each service handles its own state information, usually persisted to a Database.</li>
<li>SOA is Message centric, wherein the message contains context you wouldn't expect to have from a simple method call.</li>
<li>Msg != function call.</li>
<li>Service Arch. is similar to component arch, the main difference being how state info is handled.</li>
<li>He pronounced WSDL &quot;Whiz-duhl&quot;...does everybody do this?</li>
<li>Each step in SOA is a transaction.</li>
<li>Services should practice &quot;Healthy Distrust&quot;...neat buzzword, makes sense.</li>
</ul>
<p>Okay, more than a couple.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Functional Decomposition]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-12-Functional-Decomposition</link>
            <guid>https://chris.pelatari.com/posts/2003-05-12-Functional-Decomposition</guid>
            <pubDate>Mon, 12 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Functional Decomposition: A method of breaking down a problem into smaller and smaller functions. Each function is subdivided until it is manageable.</p>
<p>So does anybody recognize the above? Yeah, I'm finally reading this book - <a href="http://www.amazon.com/exec/obidos/ASIN/0201715945/qid=1052765647/sr=2-3/ref=sr_2_3/103-2227132-1011001" target="_blank" rel="noreferrer">Design Patterns Explained</a> - in an effort to design better applications.  Honestly, I'm tired of hearing about patterns spouted here and there between various lists that I frequent and not knowing what it means. Couldn't be a bad thing, could it? Hopefully, reading this book will take me one step closer from being a general asp.net code munkey to earn some wings as a code-warrior. Who knows? It is not poorly written so far, so I suppose I have nothing to lose.</p>
<p>Pointless post, I guess - but I wanted to catalog that I've finished chapter one of this book, so in the coming weeks if I start sounding real heavy on the pattern jargon, ping me and tell me to pimpslap myself. Thanks.</p>
<p>BTW - I'm a slow reader. Expect a chapter 2 reference in about 6 weeks 😛</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[From one of the funniest blog titles department...]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-06-From-one-of-the-funniest-blog-titles-department</link>
            <guid>https://chris.pelatari.com/posts/2003-05-06-From-one-of-the-funniest-blog-titles-department</guid>
            <pubDate>Tue, 06 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>How <a href="http://dotnetweblogs.com/danac/" target="_blank" rel="noreferrer">ubiquitous</a>...😛</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Effective Linking]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-05-Effective-Linking</link>
            <guid>https://chris.pelatari.com/posts/2003-05-05-Effective-Linking</guid>
            <pubDate>Mon, 05 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip&gt;
If I'm referring to a person, I'll link directly to the home page of that persons blog, preferably identifying them however they choose to identify themselves on their blog.  This way, people who look for them using search engines find them the way they want to be found.  For example, If you search for Chris Hollander or ScottGu, we respectively show up the way we want to, without revealing extra information.
&lt;/snip&gt;</p>
</blockquote>
<p>Consequently, I gave my own name a shot (egotistical megalomaniac) with darn fine results I think - <a href="http://www.google.com/search?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=Chris+Frazier" target="_blank" rel="noreferrer">Chris Frazier</a>. Cool. Thanks, dotnetweblogs.com!</p>
<p>[Listening to: Over The Hills And Far Away - Led Zeppelin - Houses Of The Holy (04:52)]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[My favorite Exception.]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-04-My-favorite-Exception</link>
            <guid>https://chris.pelatari.com/posts/2003-05-04-My-favorite-Exception</guid>
            <pubDate>Sun, 04 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>&quot;Object reference not set to an instance of an object&quot;</p>
<p>I'm not usually one to make my ignorance publicly known.</p>
<p>Okay, if you've seen any amount of my posts <a href="http://www.chrisfrazier.net/phoenix" target="_blank" rel="noreferrer">here</a> or <a href="http://www.dotnetweblogs.com/CFrazier" target="_blank" rel="noreferrer">there</a> then you know that's pretty much a lie. I'm learning, right? Well, this is a learning experience for me, and the lesson for today is that the error message at the top of this post is probably one of the few things I hate about .NET.</p>
<p>Sure, it's my code. I've got an error somewhere, and the runtime is telling me &quot;Yo, instantiate the object over here, you moron!&quot; But sometimes I want to pack 5 or 6 objects into a method call because it's easier and I've made something similar work before. &quot;Object reference not set to an instance of an object&quot;. Which one, dammit?!?</p>
<p>I would really like it if comments could be posted on my little spin of InfiniBlog(web). But I can't. Why? &quot;Object reference not set to an instance of an object&quot;. What a putz I am. <em>grumble</em></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[To CommentAPI, or not to CommentAPI?]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-02-To-CommentAPI-or-not-to-CommentAPI</link>
            <guid>https://chris.pelatari.com/posts/2003-05-02-To-CommentAPI-or-not-to-CommentAPI</guid>
            <pubDate>Fri, 02 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've decided to take an approach based very loosely on the <a href="http://wellformedweb.org/story/9" target="_blank" rel="noreferrer">CommentAPI</a>. I'm not adding the ability to post from outside of the base site yet, but I'm trying to factor this to be as extensible as possible while remaining within the bounds of the original code drop I have.</p>
<p>We'll just have to see how this one goes.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Hyperlink This!]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-02-Hyperlink-This</link>
            <guid>https://chris.pelatari.com/posts/2003-05-02-Hyperlink-This</guid>
            <pubDate>Fri, 02 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip/&gt;
Most developers do not put much thought into hyperlinks.  Most of what I've covered today is common sense, but it does pay to look back at your sites and see how you've structured your links.  I've done this and been confused myself at times.  Here is my best tactic:  Although I design from a persona and goal oriented perspective, with hyperlinks I generally try to create links that my mother would understand.  This keeps me safe 90% of the time 😃</p>
</blockquote>
<blockquote>
<p>[Dana Tries Blogging (non) Blonde Style]</p>
</blockquote>
<p>Great stuff, Dana. I'm finding that even tho visitors usually won't read descriptions of links/navigation, I usually come up with some inane blurb as a sort of 'c.y.a.' measure...I want my web apps to be intuitive, true, but at the same time I tend to believe that the intelligent user will at least skim thru the instructions on the first pass thru.</p>
<p>Well, I hope, anyway!😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Comments...help?]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-02-Comments-help</link>
            <guid>https://chris.pelatari.com/posts/2003-05-02-Comments-help</guid>
            <pubDate>Fri, 02 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Does anyone have any pointers / links / resources I could look at for supporting comments in a blog system? I think I'm ready to implement this over @ the infiniblog space.</p>
<p>I think the general way to go about this in asp.net is to use a web service? I'm trying to keep this as extensible as possible...just a nudge in the right direction should suffice. Thanks in advance to my 2 readers.</p>
<p>[Listening to: Behind The Wheel - Depeche Mode - Disconet Mix (06:57)]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Comment Storage]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-02-Comment-Storage</link>
            <guid>https://chris.pelatari.com/posts/2003-05-02-Comment-Storage</guid>
            <pubDate>Fri, 02 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This comment stuff is proving to be harder than I thought.</p>
<p>The problem is not the API, which seems pretty straightforward. It's in the way that I will store the comment data on the server. I think that I will follow the model that I have, but it's still proving a bit more involved than I was ready for today on this Friday.</p>
<p>This is going to be one of those things I think that I will end up figuring out in my sleep, waking up and saying &quot;Ah, ha!&quot;. Don't lie, you've done it before.😃</p>
<p>[Listening to: Gimme Some more - Busta Rhymes -  (04:06)]</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Win2k Terminal Services.]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-01-Win2k-Terminal-Services</link>
            <guid>https://chris.pelatari.com/posts/2003-05-01-Win2k-Terminal-Services</guid>
            <pubDate>Thu, 01 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm pretty sure no one was paying attention  (even me:), but I made a post a while back about using Terminal Services as a sort of Software KVM.</p>
<p>Well, I've been using it to administer webservers at work and it works great. Getting it to work over the internet is a different topic -&gt; I haven't even scratched the surface of using the Advanced Client, but I may have to look into that option.</p>
<p>At any rate, I found this great document on &quot;<a href="http://nsa1.www.conxion.com/win2k/guides/w2k-19.pdf" target="_blank" rel="noreferrer">Securing Microsoft Windows 2000 Terminal Services</a>&quot;...if you're using termServ. at all, it's at least worth a quick run-thru. Plus all the pages that say 'Unclassified' make it kind of interesting.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Last ping w/o post...]]></title>
            <link>https://chris.pelatari.com/posts/2003-05-01-Last-ping-w-o-post</link>
            <guid>https://chris.pelatari.com/posts/2003-05-01-Last-ping-w-o-post</guid>
            <pubDate>Thu, 01 May 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Okay, the last one didn't go thru - still trying to sort the logic. <em>sorry again, Scott</em>.</p>
<p>This is great stuff, tho. I've learned more about xml-rpc/webservices (and the difference b/t them)/rss in the past couple of weeks than I've learned over the past year or two in dealing with all things .NET. And it's not someone just telling me how great it is (read: marketing)...if I can see it, rather or do it myself, then I can make the decision of whether or not I like it.</p>
<p>Verdict? Cool beans.😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Success.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-30-Success</link>
            <guid>https://chris.pelatari.com/posts/2003-04-30-Success</guid>
            <pubDate>Wed, 30 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Why didn't I see these 'ping' posts earlier? Looks to me like I've got some integration to clean up! HA!</p>
<p>So the posts below that say something like 'ping' were made from checking off a checkbox at <a href="http://www.chrisfrazier.net/phoenix" target="_blank" rel="noreferrer">my other blog</a>, which means this stuff worked. 😄 Good. Now this also means that I have to figure out which one works...I tried quite a few different iterations (got up to 15 before I stepped away from it:S). So this is something you can do with webservices, eh? Spiffy.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Almost.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-30-Almost</link>
            <guid>https://chris.pelatari.com/posts/2003-04-30-Almost</guid>
            <pubDate>Wed, 30 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm getting close...Trying to figure out what's going wrong here....must ping more.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The new Look, feel, and function of dotnetweblogs.com]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-28-The-new-Look-feel-and-function-of-dotnetweblogs-com</link>
            <guid>https://chris.pelatari.com/posts/2003-04-28-The-new-Look-feel-and-function-of-dotnetweblogs-com</guid>
            <pubDate>Mon, 28 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Great job, Scott. I've decided to clean up my dotnetblogspace a little bit, so I've moved my story links <a href="http://dotnetweblogs.com/cfrazier/story/6143.aspx" target="_blank" rel="noreferrer">here</a>. Mucho cleaner, IMHO.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[More Integration.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-28-More-Integration</link>
            <guid>https://chris.pelatari.com/posts/2003-04-28-More-Integration</guid>
            <pubDate>Mon, 28 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Also, thanks <a href="http://www.aspnetweblog.com/" target="_blank" rel="noreferrer">Scott</a> for the simpleblogservice...I think this will be the way to go, of course using post to put new entries in based on an infiniblog bit. I've got to check with <a href="http://objective.mine.nu/" target="_blank" rel="noreferrer">Chris</a>, but I think I will make the code available for download on my site...once I get more than just a blog working there, of course:P!</p>
<p>The modifications I've made are simple yet important [to this geek anyway] and include identifying a blog by virtual directory (which is what must be happening in this here blogspace) and geoUrl service via geo.blah meta tags - it works, it's cool, and I saw my personal blog show up on the map over there. Too cool. I have other plans here, too - I just got this damn day job thing that makes me put on my thinking cap sometimes. Maybe it's time to get into the zone.😉</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[The logic (or lack thereof) behind xhtml:body]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-25-The-logic-or-lack-thereof-behind-xhtml-body</link>
            <guid>https://chris.pelatari.com/posts/2003-04-25-The-logic-or-lack-thereof-behind-xhtml-body</guid>
            <pubDate>Fri, 25 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>When Sam started a small revolution last month by using <a href="http://www.intertwingly.net/blog/1299.html" target="_blank" rel="noreferrer">&lt;xhtml:body&gt; </a> in his rss-feed, &lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>On top of that, it seems like every rss feed that uses xhtml:body, uses tags like &lt;body xmlns=&quot;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="noreferrer">http://www.w3.org/1999/xhtml</a>&quot;&gt; for every item ,</p>
</blockquote>
<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>[<a href="http://www.hutteman.com/weblog/2003/04/23.html#000074" target="_blank" rel="noreferrer">Luke Hutteman's Weblog</a>]</p>
</blockquote>
<p>So am I missing something, or would an RSS feed be considered valid xhtml if using the &lt;body&gt; element in its items collection? As I'm typing this I'm thinking no - no &lt;html&gt; element, yadda yadda...</p>
<p>Okay, then - some more research is in order then. Two items - a filter for xhtml, and a way for extensible comments to bake in to the infiniblog. I've been looking thru some other's ideas on a <a href="http://wellformedweb.org/story/9" target="_blank" rel="noreferrer">CommentAPI</a>, but I'm not sure how I should implement it - if what I'm thinking is true, an aspx page which uses a server-side form won't accept a POST from an outside script. I could use a webservice, but what about an .ashx?</p>
<p>The xhtml filter will require a bit more insight as to how HttpHandlers/HttpModules are handled in the runtime. We are implementing the rss feed thru an HttpHandler that accepts requests for .rss files. (We, well - <a href="http://objective.mine.nu/" target="_blank" rel="noreferrer">Chris Hollander</a> and my hi-jacking of his code:) So I need to find out if the HttpModules are still called when a Handler is implemented. Haven't really checked out the TraceLog yet.</p>
<p>Okay, enough blabbing - time to find out. cya!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[GeoBlog.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-25-GeoBlog</link>
            <guid>https://chris.pelatari.com/posts/2003-04-25-GeoBlog</guid>
            <pubDate>Fri, 25 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>I really, really like various tools that mix blogspace with meatspace.  GeoBlog is frickin cool. real time map of blog postings, as they happen. In theory, I should see myself popup on a map, a few minutes after posting this.  Very, very cool.[Objective]</p>
</blockquote>
<p>I wonder if it will really work? we're about to see....</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A sexy UI]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-25-A-sexy-UI</link>
            <guid>https://chris.pelatari.com/posts/2003-04-25-A-sexy-UI</guid>
            <pubDate>Fri, 25 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>The world must be about to end. <a href="http://www.zeldman.com/daily/0403a.shtml#fed" target="_blank" rel="noreferrer">Jeffrey Zeldman has an RSS feed</a> and <a href="http://chris.pirillo.com/secret/" target="_blank" rel="noreferrer">Chris Pirillo has a weblog format without a stupid font.</a> Now if we could only get Chris to do a weblog without a stupid font and without a totally sexy photo as the background. I find the photo more distracting than the font. Just don't tell my wife, OK? Oh, hi Maryam! 😃</p>
</blockquote>
<blockquote>
<p>[<a href="http://radio.weblogs.com/0001011/2003/04/24.html#a2858" target="_blank" rel="noreferrer">The Scobleizer Weblog</a>]</p>
</blockquote>
<p>Chris, I've got to hand it to you for creating a <a href="http://chris.pirillo.com/secret/" target="_blank" rel="noreferrer">UI that will keep users interested</a>.</p>
<p>Oops, was that supposed to be secret?😉</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Pingbacks/trackbacks]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-23-Pingbacks-trackbacks</link>
            <guid>https://chris.pelatari.com/posts/2003-04-23-Pingbacks-trackbacks</guid>
            <pubDate>Wed, 23 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>Just 'fixed' the incoming links control over to your right there--&gt;</p>
</blockquote>
<blockquote>
<p>This is great stuff - I was going to roll my own type of deal here, but decided against it based on someone's advice. Thanks.</p>
</blockquote>
<blockquote>
<p>[phoenix]</p>
</blockquote>
<p>Whew! I've been uploading files for a minute over on the gotdotnet workspaces! It's kind of cool, tho - this is the first project that I've worked on with other .NET developers. It's cool to see others' code and see how they approach problems and attempt to solve them.</p>
<p>I'm enjoying it a lot, and I've even had a couple of things to contribute, believe it or not. This is also a good way to integrate my dotnetweblogs blog [this] with a different, personal blog that I can just blab on.</p>
<p>I'm guessing that most of the posts I make will be on both, seeing as I don't have a lot of interesting things to say that don't have to do with .NET -&gt; I'm still building the other one for those few cases 😃 I just hope that ScottW doesn't change what a 'BlogPost' is too much - I'm stoked to get this stuff integrated. My other blog will be located above - just thought I'd share even tho you probably don't care. Whateva;)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Need Logo]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-18-Need-Logo</link>
            <guid>https://chris.pelatari.com/posts/2003-04-18-Need-Logo</guid>
            <pubDate>Fri, 18 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>I am getting pretty close to having a downloadable version ready for public consumption.</p>
</blockquote>
<blockquote>
<p>One thing I am still lacking is a nice &quot;powered by ASPNetWebLog&quot; image/button. Without help, this is what I came up with :ASPNetWeblog Logo</p>
</blockquote>
<blockquote>
<p>Anyone skilled with Fireworks/Photoshop hanging around here? Want to whip something up real quick?</p>
</blockquote>
<blockquote>
<p>[<a href="http://aspnetweblog.com/posts/5834.aspx" target="_blank" rel="noreferrer">ScottW's ASP.NET WebLog</a>]</p>
</blockquote>
<p>If you have PSD files, send them to me and I'll give it a whirl. If not, let me know and I'll start from scratch. While I wouldn't call myself 'skilled' at photoshop, I know my way around it.</p>
<p>Can you give me a clear concept of what you want (like, do you want the current color scheme, only flashy, um, er? do you want the words 'Powered By: ASPNetWeblLog' to remain exactly as they are - considering CaPs and all? do you want to keep the gecko in the image?) Let me know.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[BlogThis - Thanks Simon]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-17-BlogThis-Thanks-Simon</link>
            <guid>https://chris.pelatari.com/posts/2003-04-17-BlogThis-Thanks-Simon</guid>
            <pubDate>Thu, 17 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<BLOCKQUOTE>
<P>I forgot to mention that while many people posted their thoughts about BlogThis (XML, Interface, etc), it was <STRONG><A href="http://pocketsoap.com/weblog">Simon Fell</A></STRONG> who brought it too life. <FONT color="red"><STRONG>Thanks Simon!</STRONG></FONT></P></BLOCKQUOTE>
  <P>[<a href="http://aspnetweblog.com/posts/5770.aspx">ScottW's ASP.NET WebLog</a>]</P>
  <P>Here's a try w/ SharpReader 0.9.0.1 &amp; the Blog this beta...looks pretty 
  good, Scott!</P>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Added new Story on using Reflection to make dynamic about pages.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-17-Added-new-Story-on-using-Reflection-to-make-dynamic-about-pages</link>
            <guid>https://chris.pelatari.com/posts/2003-04-17-Added-new-Story-on-using-Reflection-to-make-dynamic-about-pages</guid>
            <pubDate>Thu, 17 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Check it out <a href="http://dotnetweblogs.com/Cfrazier/Story/5794.aspx" target="_blank" rel="noreferrer">here</a>.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[xhtml.xsd?]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-15-xhtml-xsd</link>
            <guid>https://chris.pelatari.com/posts/2003-04-15-xhtml-xsd</guid>
            <pubDate>Tue, 15 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Where the heck do I get my grubby developer hands on
this little beast if I can't browse, save in IE? My other browsers (Opera
6.04/Mozilla 1.0) can't really handle it - opera just chokes and mozilla
gives me a lot of text...maybe I could still save it as an xsd...I'll be
back!</p>
<p><strong>UPDATE:</strong> You betcha. I browsed to <a href="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" target="_blank" rel="noreferrer">XHTML-STRICT</a> and
selected 'save page as' in Mozilla - bam! I've got it on the Punisher(my dev
box:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[dotnetweblogs integration.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-14-dotnetweblogs-integration</link>
            <guid>https://chris.pelatari.com/posts/2003-04-14-dotnetweblogs-integration</guid>
            <pubDate>Mon, 14 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I already have this blog on <a href="http://www.dotnetweblogs.com/CFrazier" target="_blank" rel="noreferrer">dotnetweblogs.com</a>, but I feel kind of bad using someone else's server to post random crap on the web. Therefore, I was going to build my own blog system...that is until I spoke with ScottW about it.</p>
<p>He convinced me that instead of 'reinventing the wheel', as we like to say, I should focus on doing something new. Herein lies the delimma. I want to keep my blog at dotnetweblogs.com, because I believe I'll be able to help more people there with .NET centric content. Maybe not help a lot, but pay it forward as much as I can. I also want to be able to post random thoughts that come to me at 3 am when I can't go to sleep. What to do, what to do?</p>
<p>Start a new blog. My goal is to use the webservice that comes with my dotnetweblogs.com web space and post from what will be my new blog optionally to dotnetweblogs.com, because a lot of my thoughts have to do with .NET anyway:) So, instead of writing my own from scratch (which I wouldn't do anyway), I'm going to use ChrisAn's blogx software for the time being, because I can integrate and upgrade it as I see fit...win/win situation.</p>
<p>I'm still going to build a web-based aggregator, because I do want to learn more about these &quot;cool xml technologies, but I'm already comfortable with web applications - and I was kind of looking forward to throwing my hand into windows forms. One thought I did have tho was to use ChrisAn's blogx software as an href exe, b/c that's a neat stuff IMHO. I don't know where else I should go from here...upgrading or extending well-written code shouldn't be that difficult, but difficulty is not my desire. I just wanted to do a side project that would give me a chance to learn some of the other cool technologies .NET has to offer.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[asp.net user control to display scrollable rss2.0 feeds]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-12-aspnet-user-control-to-display-scrollable-rss20-feeds</link>
            <guid>https://chris.pelatari.com/posts/2003-04-12-aspnet-user-control-to-display-scrollable-rss20-feeds</guid>
            <pubDate>Sat, 12 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>Whad'ya all think?</p>
</blockquote>
<blockquote>
<p>&lt;/snip&gt;</p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/JLerman/posts/5526.aspx" target="_blank" rel="noreferrer">Julia Lerman Blog</a></p>
</blockquote>
<p>Sweet! I like the inter face, looks very similar to <a href="http://dotnetweblogs.com/Cfrazier/posts/5495.aspx" target="_blank" rel="noreferrer">something I have in mind</a>. I'm going to probably use <a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=0dc6fa70-7f22-4c19-9b77-cf8774dc2f17" target="_blank" rel="noreferrer">some other people's controls</a>, and use xslt on the feed items because it just makes sense to me. I mean, this stuff is all xml, right? I'm not sure if this particular control will accomodate rss2.0 or not, but it should not be that hard to modify the xslt if not.</p>
<p>I don't really know a lot about these cool xml technologies, but that's the main reason to do it, innit? I'm also going to put together not an aggregator, but a blog-postin windows form, ala ASPNetWebLog - but to post to a different blog. Just have to wait till ScottW gets the bits worked out for the latest, greatest version of <a href="http://www.aspnetweblog.com/" target="_blank" rel="noreferrer">ASPNetWebLog</a> and the accompanying webservice...can't hardly wait!</p>
<p>BTW, I've got to say another big ole thank ya to Scott for giving me the means as well as the base to learn this stuff from - what a cool cat!😉</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Where is everybody?]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-12-Where-is-everybody</link>
            <guid>https://chris.pelatari.com/posts/2003-04-12-Where-is-everybody</guid>
            <pubDate>Sat, 12 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>Where is everybody? You can't all leave me here alone...it's not fair! So if you are actually sharing my boredom here, tell me what you're doing. I am chatting with Cory, posting this, and wondering what I'm going to do next.</p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/Dstone/posts/5489.aspx" target="_blank" rel="noreferrer">David Stone's Blog</a></p>
</blockquote>
<p>Don't know what time you posted this, but I'm just bloggin, chattin w/ Paul, and trying to think of a way to make a thin client aggregator for home and the dial up. BTW - 2:30 here.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Scobleizer vs Dvorak]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-12-Scobleizer-vs-Dvorak</link>
            <guid>https://chris.pelatari.com/posts/2003-04-12-Scobleizer-vs-Dvorak</guid>
            <pubDate>Sat, 12 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>Who are most people in the industry going to believe? Dvorak or Scoble?</p>
</blockquote>
<blockquote>
<p>[<a href="http://radio.weblogs.com/0001011/2003/04/11.html#a2757" target="_blank" rel="noreferrer">The Scobleizer Weblog</a></p>
</blockquote>
<p>One hardcore .net developer for Scoble, right here!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[More on aggregators...]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-12-More-on-aggregators</link>
            <guid>https://chris.pelatari.com/posts/2003-04-12-More-on-aggregators</guid>
            <pubDate>Sat, 12 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Added Dare's RssBandit 1.0d, 1.1beta to the home machine...couldn't get it to work right away 😦</p>
<p>Added Chris's Harvester to the home machine...couldn't get it to work (as expected) right away. 😦</p>
<p>Have had SharpReader on the home machine for a few days now. Has anyone tried to use this one over a dial-up connection? Don't.</p>
<p>Also added dotnetfxv1.1.4322RTM/SDK to the home machine tonite, along with RssBanit and Harvester's accompanying .exe.config files for SxS execution via the &lt;startup/&gt; attribute. No dice.</p>
<p>Conclusion: Synderella works, I just wish she wouldn't arbitrarily update - takes up a lot of resources. Possible solution: web-based aggregator that will behave as I expect it to b/c I'm building it. If nothing else, it should be a good learning experience, right?</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Clippy]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-11-Clippy</link>
            <guid>https://chris.pelatari.com/posts/2003-04-11-Clippy</guid>
            <pubDate>Fri, 11 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>By the way, I know some of you folks played around with this a little... any stories?
[<a href="http://dotnetweblogs.com/rreese/posts/5339.aspx" target="_blank" rel="noreferrer">Rachel Reese's Blog</a>]</p>
</blockquote>
<p>I showed it to the bossman...he loved it! We used it to play a joke on a coworker. Funny stuff. Too bad I shouldn't post it here:)</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[the Scoble says...]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-09-the-Scoble-says</link>
            <guid>https://chris.pelatari.com/posts/2003-04-09-the-Scoble-says</guid>
            <pubDate>Wed, 09 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="http://radio.weblogs.com/0001011/2003/04/08.html#a2728" target="_blank" rel="noreferrer">If the FrontPage team wants some consulting, you know where to find me.</a></p>
<p>Will you be charging your normal dollar rate?😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[MBSA]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-09-MBSA</link>
            <guid>https://chris.pelatari.com/posts/2003-04-09-MBSA</guid>
            <pubDate>Wed, 09 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Yes I have heard of it, and yes I do use it - although probably not as often as I should :S. I personally prefer the GUI, but that's just me. I like to click. I've been using this tool for a little while - there isn't some new version/update I should know about, is there?</p>
<p>-Christopher</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[devenv.exe /setup]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-08-devenv-exe-setup</link>
            <guid>https://chris.pelatari.com/posts/2003-04-08-devenv-exe-setup</guid>
            <pubDate>Tue, 08 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This was a switch I didn't even know existed from the command line. I was having some issues with VS.NET 2002 and custom Add in tools. I couldn't figure out why I could see the name of the tool in the Add in manager list, but I couldn't see the tool in the Tools menu.</p>
<p>Enter Dave Wanta, one of the coolest developers I know. I asked him, &quot;What's the deal?&quot; and without even missing a beat, he gave me the suggestion that is the title for this entry, and WOOT! There it is! If you haven't seen <a href="http://www.123aspx.com/" target="_blank" rel="noreferrer">Dave's Site</a> you're either living under a rock, or you could care less about .NET and aren't reading this anyway. Dave is also responsible for such components as <a href="http://www.aspnetemail.com/" target="_blank" rel="noreferrer">aspNetEmail</a>, <a href="http://www.aspnetdns.com/" target="_blank" rel="noreferrer">aspNetDns</a>, among other really useful tools for .NET.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Ok, I'll try one more time...]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-08-Ok-Ill-try-one-more-time</link>
            <guid>https://chris.pelatari.com/posts/2003-04-08-Ok-Ill-try-one-more-time</guid>
            <pubDate>Tue, 08 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Chris wrote a <a href="http://objective.mine.nu/archive/2003/3/2.aspx" target="_blank" rel="noreferrer">while back</a> about the source/binaries for his blog engine that his site uses. Count me way in! I'm looking to do something similar to use as a go-by, now that I have a server for my site which will still remain unlinked 😛 content. I need it.😉</p>
<p>-Chris</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I love this stuff.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-08-I-love-this-stuff</link>
            <guid>https://chris.pelatari.com/posts/2003-04-08-I-love-this-stuff</guid>
            <pubDate>Tue, 08 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>As a developer, I consider myself more of a problem solver. One of my least favorite problems: Com Interop. I can't shake it. It seems that no matter how hard I try, all of my apps to date have included interop.</p>
<p>That said, it's kind of fun revisiting one of my first asp.net endeavors and trying to remember why I architected it so poorly. Oh yeah, I'm a programmer - and at the time it was written, I remember having to make a few changes from .net beta 2 to RTM. Added to the fact that the only readily available examples that I had were in asp.old, looking back at the code has made me realize just how much I've grown over this time.</p>
<p>I was trouble shooting a new application that someone else is writing based on my previous code and com interop. Probably not the best idea, but the point is gotten across. I think. The developer in question just asked me &quot;Where do you get the knowledge of how to deal with the worker process?&quot;. Well, the short answer is messing with it. Sometimes the resources that you need when debugging are locked up by a worker process that still thinks it's debugging - so Kill it! I'm not up to date on the niceties of IIS 6 and the refinements of the worker process there, but the one that ships with v1.0.3705 is just well built. I can kill it in task manager and a new one pops right up!</p>
<p>&lt;/rant&gt;</p>
<p>red or green pill, you live and you learn.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[SharpReader]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-07-SharpReader</link>
            <guid>https://chris.pelatari.com/posts/2003-04-07-SharpReader</guid>
            <pubDate>Mon, 07 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>UPDATE: I am having problems add more than one feed to a category (which kind of defeats the purpose). Anyone else notice this behavior?</p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/TMarman/posts/4952.aspx" target="_blank" rel="noreferrer">Loosely Coupled</a>]</p>
</blockquote>
<p>Yep. Got the same deal. Of course, I'm going back and forth b/t SharpReader and Synderella, cuz I can post thru Synderella! (thanks, Scott!😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Aggrrregator Overload! ---- SharpReader.]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-07-Aggrrregator-Overload-SharpReader</link>
            <guid>https://chris.pelatari.com/posts/2003-04-07-Aggrrregator-Overload-SharpReader</guid>
            <pubDate>Mon, 07 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>ok.  Harvester is fun.  RssBandit is better.  SharpReader Owns.  Its just really, really slick;  the threaded posts functionality is killer;  the ability to see all of the posts under a given folder is awesome, the handling of OPML is great. The aggregation engine itself seems blazing.</p>
</blockquote>
<blockquote>
<p>I would strongly suggest the author download the Magic UI library, and get some VS.NET UI goodness going on.</p>
</blockquote>
<blockquote>
<p>[<a href="http://objective.mine.nu/archive/2003/4/6.aspx#when:14:04:24.9511568" target="_blank" rel="noreferrer">Objective</a>]</p>
</blockquote>
<p>Okay, I now have 3 winform aggregators on my desktop at work. Boo!!!! Talk about a productivity killer! My short and sweet reviews:</p>
<p>Synderella: 3 panes. Easy to operate. I like seeing a different color for a feed that has been updated. Plus, I can blog from this one!</p>
<p>SharpReader: 3 panes. I like the way I can define an arbitrary amount of folders, and I can browse pingbacks/trackbacks/referrals with ease in a tree-like format. Now only if I could blog from it!</p>
<p>Harvester: UI gone nuts! I really like the tabbed interface/magic components w/ IDE look and feel. I cannot figure out how to import settings from OPML (on my box) but that just means I'm a moron.</p>
<p>I haven't gotten around to RSSBandit yet, tho I've seen it for download...I just loaded 2 more aggregators on my box - give me some breathing space! For now, it looks like SharpReader is the winner, but I'll have to keep going back and forth b/t that and Synderella, unless of course I just blog from the web...nah! I like doing it from this winform...That's got to be my favorite feature, read a feed, respond in my blog.😛</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Aggregator integration]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-07-Aggregator-integration</link>
            <guid>https://chris.pelatari.com/posts/2003-04-07-Aggregator-integration</guid>
            <pubDate>Mon, 07 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>What do you all think? Is aggregator integration into Outlook a good thing? Is it a &quot;must have&quot; feature for you? Comment or blog and let me know.</p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/GAD/posts/4956.aspx" target="_blank" rel="noreferrer">A Blog for Graymad</a>]</p>
</blockquote>
<p>A big, fat, hairy, resounding NEGATIVE! I'm all for connectivity and all, but as Andrew points out, what a productivity killer! My day usually starts out going thru a bunch of emails, writing some code, opening my aggregator, writing some code, repeat. No way. VS.NET would never get opened if I had a single spot for information transaction.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[In need of direction...(was:Don...you're doing it again :|)]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-06-In-need-of-direction-was-Don-youre-doing-it-again</link>
            <guid>https://chris.pelatari.com/posts/2003-04-06-In-need-of-direction-was-Don-youre-doing-it-again</guid>
            <pubDate>Sun, 06 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>P.S. - Chris, if you're reading this...I sent you an e-mail. 😃
[<a href="http://dotnetweblogs.com/Dstone/posts/4904.aspx" target="_blank" rel="noreferrer">David Stone's Blog</a>]</p>
</blockquote>
<p>I sent over a similar email...I guess I should have blogged about it, but I'd be surprised if there was anybody subscribed to my blog.😛 Very surprized. I wanted to see what I could do to implement a blog on my site which I probably should link to but won't b/c it has a cheezy &quot;coming soon...&quot; default page up now and is begging for me to add content. How 'bout it, Chris? I need direction....😃</p>
<p>Update - You're 100% right, Andrew. My bad - consider it snipped.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Starter Kits Rule!]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-03-Starter-Kits-Rule</link>
            <guid>https://chris.pelatari.com/posts/2003-04-03-Starter-Kits-Rule</guid>
            <pubDate>Thu, 03 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>If you're looking to get a site up in a hurry, with a minimum of fuss, then you owe it to yourself to check out the ASP.NET Starter Kits, downloadable from where else but <a href="http://www.asp.net/" target="_blank" rel="noreferrer">http://www.asp.net/</a>. These kits, which are currently in beta, are offered in the following flavors:</p>
</blockquote>
<blockquote>
<p>&lt;snip/&gt;</p>
</blockquote>
<blockquote>
<p>They're also a very good way to see what other developers have done with ASP.NET, and perhaps come up with a few ideas of your own.</p>
</blockquote>
<blockquote>
<p>I had delayed playing with the starter kits out of beta overload. Now, I'm just sorry that I didn't look sooner. It's cool stuff!</p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/GAD/posts/4731.aspx" target="_blank" rel="noreferrer">A Blog for Graymad</a>]</p>
</blockquote>
<p>I've got to agree, these kits have given some pretty good refrence points that work. I've gotten plenty of ideas from looking thru the starter kits and asking myself, &quot;Self, how can you improve this or make it fit the current solution?&quot;</p>
<p>Good stuff, those starter kits.😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[More! More! More! - It's Coming - Woohoo!]]></title>
            <link>https://chris.pelatari.com/posts/2003-04-01-More-More-More-It's-Coming-Woohoo</link>
            <guid>https://chris.pelatari.com/posts/2003-04-01-More-More-More-It's-Coming-Woohoo</guid>
            <pubDate>Tue, 01 Apr 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>In the coming week(s) the webservice(s) will be much improved. The current webservice is just a quick wrapper around my display objects (hence there is a lot data/members returned that are not necessary). This is very high on my to do list.  The internals of the app are really starting to improve. This should lead of a much cleaner and robost set of services.</p>
</blockquote>
<blockquote>
<p>As far as them showing up in the aggregator.. well that is a different story. I do have plans for my own aggregator/admin application so day (although <a href="http://objective.mine.nu/" target="_blank" rel="noreferrer">Chris</a> seems to be on the same track I was thinking about), but it won't be Syndirella. Syndirella is a nice tool, but I have some of my own ideas (and I am not a big fan of Syndirella's licence). I have been chatting with a few people recently about this, and I would really like to see what the &quot;community&quot; can come up with. I have also implemented the metablog/blogger api's. Not sure what to do with them...but I guess they will go live with the next build as well (don't hold me to this. They seem to work, but I don't think they are something I really want to support)</p>
</blockquote>
<blockquote>
<p>[<a href="http://aspnetweblog.com/posts/4583.aspx" target="_blank" rel="noreferrer">ScottW's ASP.NET WebLog</a>]</p>
</blockquote>
<p>Even Better! Thanks, Scott!</p>
<p>-C</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[More! More! More!!]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-31-More-More-More</link>
            <guid>https://chris.pelatari.com/posts/2003-03-31-More-More-More</guid>
            <pubDate>Mon, 31 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Ya know, the site that's set up for us dotnetwebloggers is real cool. You can do everything there.</p>
<p>I'd like to see similar functionality added to my aggregator - I want to post stories, admin my blog, add links that will show up on the site, etc in AspNetWebLog. Is that asking too much? If it is, how about more methods that I could use from the webservice that would let me build my own 'smart client' (is that what this thing is called?) to go on top of AspNetWebLog - I want full control from my desktop. Plus, it would give me a chance to play with WinForms, which I have only dabbled a little bit in.</p>
<p>Maybe we'll see some of this in the next version. I'm holding my breath!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Boy, am I glad to see you!]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-31-Boy-am-I-glad-to-see-you</link>
            <guid>https://chris.pelatari.com/posts/2003-03-31-Boy-am-I-glad-to-see-you</guid>
            <pubDate>Mon, 31 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>Make that, girl am I glad to see you. ...</p>
</blockquote>
<blockquote>
<p>Which brings me to my next question, why aren't there more female Bloggers here?  If there are of you out there thinking about it, please sign up!  I'd love to see more feminine faces around here, and we won't even make you blog in pink...</p>
</blockquote>
<blockquote>
<p>Datagrid Girl</p>
</blockquote>
<p><a href="http://weblogs.asp.net/DatagridGirl/posts/4555.aspx" target="_blank" rel="noreferrer">Datagrid Girl</a></p>
<p>Amen! More smart females, please! Blonde or not...whateva.</p>
<p>Great to see you, D.</p>
<p>-Christopher</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[10 hrs on the road and over 600 miles covered...and worth every second.]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-31-10-hrs-on-the-road-and-over-600-miles-covered-and-worth-every-second</link>
            <guid>https://chris.pelatari.com/posts/2003-03-31-10-hrs-on-the-road-and-over-600-miles-covered-and-worth-every-second</guid>
            <pubDate>Mon, 31 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I got back from seeing Ethan monster late Sunday afternoon...I'm just too proud. My boy is walking like a champ! Talking, too. I was holding him, and he reached out, grabbed my nose, and said &quot;noshe&quot;.</p>
<p>I've got to say, tho - the best part of the weekend was when I was taking him inside and he laid his head on my shoulder, gave me a squeeze and said, &quot;Daddy&quot;. That says it all.</p>
<p>-C</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Have YOU ever heard of Detroit....TX? No one else has, either]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-28-Have-YOU-ever-heard-of-Detroit-TX-No-one-else-has-either</link>
            <guid>https://chris.pelatari.com/posts/2003-03-28-Have-YOU-ever-heard-of-Detroit-TX-No-one-else-has-either</guid>
            <pubDate>Fri, 28 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>but, that's where I'm going tomorrow. My son lives there with his brother, their mom (baby's momma:), and Nana and Papa (the Grandparents). It's going to be a 5 hour drive, but I'm more concerned about the lack of sleep I think I'm gonna get tonight - I haven't seen Ethan or any of them for 2 months now.</p>
<p>Wish me luck.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[A Blessing in disguise? (follow-up to 'Boo! on Validators')]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-28-A-Blessing-in-disguise-follow-up-to-Boo-on-Validators</link>
            <guid>https://chris.pelatari.com/posts/2003-03-28-A-Blessing-in-disguise-follow-up-to-Boo-on-Validators</guid>
            <pubDate>Fri, 28 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is what I love about blogging here. I not only got to work out the problem in a different way than I would have alone, but I also got some great perspective from others before I go and make a decision. After I got to step away from the problem, I decided that my initial gripe may have a silver lining. Here's what I mean:</p>
<p>First, let's put ourselves in the user's position. The user in this case will most likely be a Geophysicist that could talk you into a hole about Checkshot velocities, wavelets, etc, but has limited useage of the internet or web applications. I want the user to feel like she has complete control over the data that they can manipulate, but at the same time, I want that data to be valid. Personally, I think it would be counter intuitive to have a 'delete value' button by every textbox (and there are a lot of them), so if I were the user and I wanted to get rid of a previous value, would I automatically think, &quot;Oh, gee, this started off as N/A - I better change it back.&quot;? No. No I'm not. I'm gonna highlight whatever I typed in before, hit backspace, and click the update button. That's what I'm used to, and I fear change.:S</p>
<p>I guess my initial gripe was simply the fact that the Regular Expression Validator does not validate the Regex strictly. It validates the Regex and an empty string. Does this make sense to anyone else? If I want to validate something as (\d{1}), I'm looking for something b/t 0 and 9, not something b/t 0 and 9 OR oh yeah, an empty string will work, too. Thanks to everyone who helped me think this problem thru - I'm sure we all know what the real answer is, don't we? IT'S CLIPPY!!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Boo! on ASP.NET Validators!]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-27-Boo-on-ASP-NET-Validators</link>
            <guid>https://chris.pelatari.com/posts/2003-03-27-Boo-on-ASP-NET-Validators</guid>
            <pubDate>Thu, 27 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>So I'm trying to get a regular expression validator to
work - ya know, validate my data. I'm a reeeeal novice when it comes to regex,
so with a little help and tweaking, this is what I come up with:</p>
<p><code>ValidationExpression = &quot;(\d{1,8}(\.\d{1,2})?)|(\d{0,8}(\.\d{1,2}))|(N\/A)&quot;</code></p>
<p>Because I want a decimal number OR N/A, which is the default value that each of my textboxes (in this case) are populated with. This regular expression works. Almost. I could <em>not</em> figure out why I could add an empty string or a bunch of spaces and it validates as true. So I took a look at the WebUIValidation.js that the validators use.</p>
<p><code>function RegularExpressionValidatorEvaluateIsValid(val) {   var value = ValidatorGetValue(val.controltovalidate);     if (ValidatorTrim(value).length == 0)         return true;        var rx = new RegExp(val.validationexpression);       var matches = rx.exec(value);       return (matches != null &amp;&amp; value == matches[0]);   }</code></p>
<p>The important bit is the if(ValidatorTrim) part. It's valid if there is nothing there! Maybe I'm just dense...wait...it's <em>probably</em> because I'm dense, but I want my regular expression validator to match my regular expression <em>only</em>. I know I could add a required field validator, but that is not correct. It's <em>not</em> a required field - that's why N/A is a valid value. But a space/no entry is not. I want the value in my field to be :</p>
<p>a decimal number OR &quot;N/A&quot; ONLY!</p>
<p>grrrrrrr...I don't know if I should modify the WebUIValidation.js or write my own control that will strictly match a Regular Expression. Sucks on empty strings.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Happiness is getting...]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-18-Happiness-is-getting</link>
            <guid>https://chris.pelatari.com/posts/2003-03-18-Happiness-is-getting</guid>
            <pubDate>Tue, 18 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>...the first issue of <A href="http://www.ingorammer.com/Contact/Newsletter.aspx">Ingo's Distributed .NET Newsletter</A>. If you are doing <U><EM>anything</EM></U> distributed in 
.NET, you need to be subscribed. Heck, you need to be subscribed anyhow because 
almost anything Ingo says is brilliant. [<a target = "_blank" href="http://dotnetweblogs.com/sgentile/posts/3966.aspx">Sam Gentile's Blog</a>]</P>
<P>Agreed. I was very happy to see it waiting in my inbox. Thanks 
Ingo!</P>
<P>[<a target = "_blank" href="http://aspnetweblog.com/posts/3977.aspx">ScottW's ASP.NET WebLog</a>]</P>
<P>I hate to be all me too and whatnot, but I must chime in concurrance. (just 
to spice up me too). I like the layout, it fits with <A 
href="http://www.ingorammer.com/">Ingo's site</A>&nbsp;in layout / color scheme, 
and the content - of course! But the layout is what first grabbed my 
attention&nbsp; - not just another 'oh here's a bunch of hyperlinks in text' 
newsletters. Sweeet. :)</P> ]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[added custom config section handler story.]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-17-added-custom-config-section-handler-story</link>
            <guid>https://chris.pelatari.com/posts/2003-03-17-added-custom-config-section-handler-story</guid>
            <pubDate>Mon, 17 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I just added a story describing how I've made my ImageLink control jump thru some more hoops for an application-specific purpose. If anyone is interested, you can find it <a href="http://weblogs.asp.net/Cfrazier/Story/3912.aspx" target="_blank" rel="noreferrer">here</a>.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Remote Desktop]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-16-Remote-Desktop</link>
            <guid>https://chris.pelatari.com/posts/2003-03-16-Remote-Desktop</guid>
            <pubDate>Sun, 16 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Just a quick post - I've been toying w/ the idea of a software KVM - using terminal services. Keith gave me a link for the client which he says works great. I'll have to check it out tomorrow.</p>
<p>Link - <a href="http://www.microsoft.com/windowsxp/pro/downloads/rdclientdl.asp" target="_blank" rel="noreferrer">http://www.microsoft.com/windowsxp/pro/downloads/rdclientdl.asp</a></p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I've taken the plunge...]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-16-Ive-taken-the-plunge</link>
            <guid>https://chris.pelatari.com/posts/2003-03-16-Ive-taken-the-plunge</guid>
            <pubDate>Sun, 16 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I finally did it. I 'upgraded' my home pc to XP. It took forever, probably b/c I have a pretty slow processor - 400mhz, but it's up, it's running, and I didn't lose any of the file structure.</p>
<p>I did have to start over 1 time, b/c I ran into a registry problem on setup, but barring that and how long it took, it was pretty painless! Now, all I have to do is convince the higher ups at work that I should do the same on my dev boxes there - and Bob's your uncle, Chris is finally a part of the 21st century!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Stupid [fill in the blank]]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-14-Stupid-fill-in-the-blank</link>
            <guid>https://chris.pelatari.com/posts/2003-03-14-Stupid-fill-in-the-blank</guid>
            <pubDate>Fri, 14 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>I've been working today with <A 
href="http://www.fpoint.com">farpoint's spread for webforms control</A>, trying 
to make it act like you would want a spreadsheet to work. I've been focusing on 
the copy/paste functionality at a user's request...it's more difficult than I 
wanted it to be, but maybe I'm just being lazy, thanks to <A 
href="http://dotnetweblogs.com/ERobilliard">Eli </A>and his <A 
href="http://dotnetweblogs.com/ERobillard/Story/3801.aspx">convincing rhetoric 
</A>:).</P>
<P>I know there's a better way to do what I'm doing, but I've almost got 
it...that makes this one of those days that I kind of wish it wasn't Friday - 
this thing is biting me, even tho I got it working under most circumstances.</P>
<P>I want to blame it on the control, but I'm not 100% sure I can do that since 
it's obfuscated and I can't just look at its properties and see what I'm doing 
wrong. Stupid obfuscators. Oh well, I'll get it done to how I like it later.</P>
<P>The control is great, don't get me wrong - it just doesn't work exactly as I 
would expect a robust control to work. Not that it's built incorrectly, I'm just 
expecting different behavior than it's giving me.</P>
<P>Enough whining. I'm going home. :P</P>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Taking Custom Configuration Sections A Step Further]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-12-Taking-Custom-Configuration-Sections-A-Step-Further</link>
            <guid>https://chris.pelatari.com/posts/2003-03-12-Taking-Custom-Configuration-Sections-A-Step-Further</guid>
            <pubDate>Wed, 12 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p><em>Yup, it's cool, but it gets <strong>even cooler</strong> when you start writing your own configuration section handler implementations. The beauty of the configuration architecture is that it's completely extensible.</em></p>
</blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/dmarsh/" target="_blank" rel="noreferrer">From Drew's Blog</a>]</p>
</blockquote>
<blockquote>
<blockquote>
<p>Thanks Drew.&nbsp; I kinda figured I'd only scratched the surface with this stuff.&nbsp; Thanks, I'm gonna check out IConfigurationSectionHandler stuff</p>
</blockquote>
</blockquote>
<blockquote>
<blockquote>
<p>[Currently Playing: Rancid - Life Won't Wait]</p>
</blockquote>
</blockquote>
<blockquote>
<blockquote>
<p>[<a href="http://dotnetweblogs.com/DBrowning/posts/3708.aspx" target="_blank" rel="noreferrer">.NET Brain Droppings</a>]</p>
</blockquote>
</blockquote>
<p>BAM! I did it - I knew it could be done, but I had no idea how simple the
framework makes it. I'm talking about hydrating a list of the hyperlink controls
I recently created from a config file using a custom config section handler -
I'll write a story on how I got it done here shortly. Well, tonight anyway.</p>
<p>Basically, I used a method near what Drew described, but I took an
attribute-based approach - so the web.config has a section that looks like a
list of server controls without the &lt;asp: at the beginning.</p>
<EM><FONT color="royalblue">\[Hearing : System Of a Down : Jet 
Pilot\]</FONT></EM>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Custom configuration sections]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-11-Custom-configuration-sections</link>
            <guid>https://chris.pelatari.com/posts/2003-03-11-Custom-configuration-sections</guid>
            <pubDate>Tue, 11 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>Something I've found infinitely useful is custom configuration sections.  By using custom configuration sections, you are allowed to store a richer amount of information in the application config file, than when you simply add values to the &lt;appSettings&gt; section.
To add a custom config section, you must do 2 things: 1) declare the section group and section in the &lt;configSections&gt; portion of the app.config file, and 2) add the new sections to the config file.
...
[Currently Playing: Rage Against the Machine - Self-titled]
[.NET Brain Droppings]</p>
</blockquote>
<p>Too cool Don! Honestly, something like this is going to be my <em>very</em> next endeavor - I'm adding a 'list' type container for my 'QuickLink'/'ImageLink' control. My plan isn't to use a NVC, but rather to hydrate a set amount of controls in an application/page using a custom config handler...this will have to wait a couple of days tho, since I've got to get my Risk app going into an installer by tomorrow 😦</p>
<p>Oh well, keep 'em coming, bloggers!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Added 'Extending the MetaBuilder's RollOverLink' Story]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-11-Added-Extending-the-MetaBuilders-RollOverLink-Story</link>
            <guid>https://chris.pelatari.com/posts/2003-03-11-Added-Extending-the-MetaBuilders-RollOverLink-Story</guid>
            <pubDate>Tue, 11 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>I just added a little explanation of how I extended the <A href="http://www.metabuilders.com/Tools/RollOverLink.aspx">RollOverLink</A>&nbsp;found on <A href="http://www.metabuilders.com/">MetaBuilders.com</A>. All I did really was add a statusbar message and change the way the DOM accesses the images. Big thanks to <A href="http://www.dotnetweblogs.com/asmith">Andy Smith</A>&nbsp;for helping me out with some of the ideas presented in his example, <A href="http://www.markitup.com/">markitup.com</A>&nbsp;for having a&nbsp;cool component that made it [pretty] easy to mark up my code(I only had to add my own &lt;pre&gt;&lt;/pre&gt; tags to make it show up correctly), and <A href="http://dotnetweblogs.com/DBrowning/">Don Browning</A>&nbsp;for giving me the extra push by example. </P>
<P>My snippet isn't quite as low-level I guess as <A href="http://dotnetweblogs.com/DBrowning/Story/3605.aspx">Don's snippit</A>, but maybe that just means I'm not as big of a nerd...NAH!! I think blogging past my bedtime about .NET pretty much puts me on a pretty high geek eschelon. </P>
<P>Anyways, if you're interested, my snippet can be found <A href="http://dotnetweblogs.com/Cfrazier/Story/3649.aspx">here</A>.</P>
<P>l8r,</P>
<P>-Christopher</P> ]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Added Editing a custom icon to a web server control story]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-11-Added-Editing-a-custom-icon-to-a-web-server-control-story</link>
            <guid>https://chris.pelatari.com/posts/2003-03-11-Added-Editing-a-custom-icon-to-a-web-server-control-story</guid>
            <pubDate>Tue, 11 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>Man, <A 
href="http://dotnetweblogs.com/DBrowning/">Don</A>, you've got me going nutz 
with your <A 
href="http://dotnetweblogs.com/DBrowning/posts/3612.aspx">code-postin 
shennanigans</A>. I've just added a new <A 
href="http://dotnetweblogs.com/Cfrazier/Story/3676.aspx">story</A>, explaining 
how I used Photoshop 7 and Imageready 7 to create a bitmap to embed into a 
component.</P>
<P>Anyway, <A href="http://dotnetweblogs.com/Cfrazier/Story/3676.aspx">here 
</A>it is.</P>
<P>holla!</P>
<P>-Christopher</P>
<P><EM><FONT color="royalblue">[hearin some old-skool RATM right now - just 
victims of the in-house drive-by?]</FONT></EM></P>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Added HTTP Request code snippit]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-10-Added-HTTP-Request-code-snippit</link>
            <guid>https://chris.pelatari.com/posts/2003-03-10-Added-HTTP-Request-code-snippit</guid>
            <pubDate>Mon, 10 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p>I'm adding a new category of posts to my blog; <em>code snippits</em>.  I was looking for a tool to manage code snippits when it hit me, why not post them to my blog.  I hope you find them useful.  I'll just randomly post stuff up there as I work on it.</p>
</blockquote>
<blockquote>
<p>There are a couple problems with this.  One - the editor forces each line of code to have a <p/> break, so the code looks unweildy.  Two - Some of the code spans methods within a class, and I'm not quite sure how to post that yet.  I'll give this stuff some thought and hopefully have a fix soon.</p>
</blockquote>
<blockquote>
<p>For now, the first one is self-contained and was easy to post, it's an example of how to do a HTTP request and you can find it here.</p>
</blockquote>
<blockquote>
<p>[Currently Playing: Ministry - Animositisomina]</p>
</blockquote>
<blockquote>
<p>[.NET Brain Droppings]</p>
</blockquote>
<p>Good idea, Don. I recently asked <a href="http://www.aspnetweblogs.com/" target="_blank" rel="noreferrer">ScottW</a> if I could post kind of psuedo-articles to the story section of my blog, and his response was, &quot;Yes. Definitely&quot;. I haven't gotten around to it yet, but only b/c of my hoakie dial-up connection (28.8 kbps) I have at the heezie [trans.:house, residence] So, hopefully if things go my way today, I'll have a little sumthin-sumthin to post up in my story section later today. If not, I'll just haveta settle for tomorrow.</p>
<p>Procrastination? Na, I'll procrastinate later.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Stupid Cookie.Domain]]></title>
            <link>https://chris.pelatari.com/posts/2003-03-05-Stupid-Cookie-Domain</link>
            <guid>https://chris.pelatari.com/posts/2003-03-05-Stupid-Cookie-Domain</guid>
            <pubDate>Wed, 05 Mar 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've spent about 1 1/2 hours trying to figure out why I couldn't get a persistent cookie set from codebehind in ASP.NET...I tried a lot of different things but of course not the correct solution. The domain. rrrrrrgh!</p>
<p>The worst part is that I sorted this out a few weeks ago, but since then it hasn't been a big issue, I've been letting the framework of each application handle the details of www.mydomain.net communicating with demo.mydomain.net.</p>
<p>Today I've been back on the originating app's side, making sure things are ready to get set, then I got all sweaty and whatnot about the 'cookie not being set properly', which was kind of true - my browser didn't think the code was coming from the same host. localhost != www.mydomain.com. There's my 'D'oh!' for the day.</p>
<p>btw, it works still (whew!😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[I am the Framework.  I run managed code.  I am without flaw.]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-28-I-am-the-Framework-I-run-managed-code-I-am-without-flaw</link>
            <guid>https://chris.pelatari.com/posts/2003-02-28-I-am-the-Framework-I-run-managed-code-I-am-without-flaw</guid>
            <pubDate>Fri, 28 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Get a heads up on running multiple versions of the Framework. <a href="http://dotnetweblogs.com/DNeimke/posts/3204.aspx" target="_blank" rel="noreferrer">ShowUsYour-Blog!</a></p>
<p>I read Darren's post, and subsequently the referenced <a href="http://www.3leaf.com/default/articles/ea/SBS.aspx" target="_blank" rel="noreferrer">article by Early &amp;
Adopter</a>, and I must say that both were extremely helpful.</p>
<p>I haven't yet applied v1.1 of the Framework at the office, but I am using SxS
execution at home, and I have run into a similar problem the Darren outlined - I
just kind of moved on to the next thing I could try out - didn't really think it
over too much.</p>
<p>So does this mean that you're kind of bound to the version of VS.NET that you
have loaded? Not according to the article. I wonder if the hard-coded framework
issue applies also to <a href="http://www.icsharpcode.com" target="_blank" rel="noreferrer">SharpDevelop</a> and <a href="http://www.asp.net/webmatrix/default.aspx?tabindex=4&amp;tabid=46" target="_blank" rel="noreferrer">WebMatrix</a>,
which are the tools I use at home. It would be interesting to find
out!</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Cool uses for DHTML]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-26-Cool-uses-for-DHTML</link>
            <guid>https://chris.pelatari.com/posts/2003-02-26-Cool-uses-for-DHTML</guid>
            <pubDate>Wed, 26 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<blockquote>
<p><a href="http://mph.homeip.net/journal/" target="_blank" rel="noreferrer">Mark</a> forwarded me a link today of a <a href="http://youngpup.net/" target="_blank" rel="noreferrer">site</a> that pushes DHMTL to the max. I've gone on record before about my loathing for web development, but I know a lot of you out there are web dev's so maybe you can pick up a trick or two from <a href="http://youngpup.net/" target="_blank" rel="noreferrer">youngpup.net</a>.</p>
</blockquote>
<blockquote>
<p>Wha'ts great is he has open sourced the entire site, and it has lots of cool goodies...
[Currently Playing: Schreeching Weasel - My Brain Hurts]</p>
</blockquote>
<blockquote>
<ul>
<li>Disclaimer:
Nothing aginst web developers, actually the opposite. I have an enormous amount of respect for you guys. I spent a few years in asp hell, and I'm so done with cross browser incompatibilities, weak UI support and scripting languages. ugghhh... kudos to ya'll</li>
</ul>
</blockquote>
<blockquote>
<p>[.NET Brain Droppings]</p>
</blockquote>
<P>I've used some of <A href="http://www.youngpup.net">youngpup's stuff</A>, and 
I must agree with Darren. If you haven't tried it, and you've got a couple of 
different browsers like me, try browsing the site with <A 
href="http://www.opera.com/">Opera</A>&nbsp;and then <A 
href="http://www.microsoft.com/windows/ie/default.asp">IE</A>&nbsp;- pretty 
nifty if you ask me. </P>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Getting Started on some Controls Issues]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-22-Getting-Started-on-some-Controls-Issues</link>
            <guid>https://chris.pelatari.com/posts/2003-02-22-Getting-Started-on-some-Controls-Issues</guid>
            <pubDate>Sat, 22 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>I decided to go ahead and try to start building something in the control arena - something I haven't visited for some months now. </P>
<P>I figured it would be a good idea to start with a pretty solid idea - the rollover image link. I'm using <A href="http://metabuilders.com/Tools/RollOverLink.aspx">Andy Smith's RollOverLink</A>&nbsp;as kind of a starting point - see one of our normal requirements at work is to display a statusbar message when an image link is 'moused over', so I figured I'd add this as another property of Andy's great control. Thanks for the kick start, Andy! </P>
<P>next, I think I'm going to add a configurationSectionHandler, based very loosely on the config handler of the ExceptionManagement ApplicationBlock - meaning I want to take an attribute oriented approach to populating the various properties of my control. </P>
<P>I guess I should mention that I got this idea for a particular splash page that govern a lot of the web apps that I put together, so the config section will probably be specific to that app, while the control I might just start using all over the place. </P> ]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Jump into VB.NET - feet furst]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-21-Jump-into-VBNET-feet-furst</link>
            <guid>https://chris.pelatari.com/posts/2003-02-21-Jump-into-VBNET-feet-furst</guid>
            <pubDate>Fri, 21 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>Today I'm applying OOP changes to a VB.NET dll that was upgraded from VB6 - so that means I'm taking out all of the On Error GoTo fnName_Error and Replacing them with Try..catch...end Try's.</P>
<P>This is taking some getting useed to. I'm so accustomed to adding the semicolon; at the end of a line that my pinky pushes that key just by habit...rrrgh.</P>
<P>I've also decided to add <A href="http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/MSDN-FILES/027/001/943/msdncompositedoc.xml">Microsoft's Exception Management Application Block</A>&nbsp;whil doing this little upgrade, because what better place to start, eh? A big help when starting out with this particular AppBlock was a quick read of <A href="http://www.devx.com/codemag/Article/10296/0/page/1">this article</A>, which not only explains how to get the default Exception publisher working, but also how to define your own simple custom publishers.</P>
<P>Bleh - I hate coding with VB, but I guess it's good to expand one's horizons. </P>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[.NET Brain Farts]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-18-NET-Brain-Farts</link>
            <guid>https://chris.pelatari.com/posts/2003-02-18-NET-Brain-Farts</guid>
            <pubDate>Tue, 18 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>Today Seems like an extended Moday as far as my development goes. I've tried about 3 or 4 different tings on my current project that just don't seem to be working as I would expect them to. Of course, that's the point, isn't it? I've had a few brain farts in my past development cycle, all of which ended up being just oversights on my end - you know, the type of thing that really bites you, and then when you figure it out, you let out a resounding &quot;d'oh!&quot;.</p>
<p>Well, I guess the only thing I can really do is keep plugging away at it, maybe a solution will surface. Till next time - blog ya later.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[ReporT!!]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-13-ReporT</link>
            <guid>https://chris.pelatari.com/posts/2003-02-13-ReporT</guid>
            <pubDate>Thu, 13 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>Okay, it's not as if anyone is reading this - but for those of you who are (hey, Chris!) - here is why I didn't post yesterday. </P>
<P>I've been working with <A href="http://www.datadynamics.com/ARNET/default.htm">DataDynamic's ActiveReports for .NET</A> on my current project. It's a pretty cool report engine, and I was able to set up an export in PDF format with a lot of ease. I prefer this product over others right now because it integrates well within the VS.NET IDE, which is my weapon of choice. I'm working on getting the output formatted the way I want - I'm trying to get a bunch of 'textboxes' to look like a table/datagrid - but this stuff ain't html.</P>
<P>Anyways, thanks for reading, Chris. I've got to report back to reporting. caio!</P> ]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Nearing completion...]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-11-Nearing-completion</link>
            <guid>https://chris.pelatari.com/posts/2003-02-11-Nearing-completion</guid>
            <pubDate>Tue, 11 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I'm getting to the clean-up phase of porting an asp.old project to .NET. It's about time! I finally tackled a problem I ran into with a vb6 component that was run thru VS.NET to be converted to VB.NET - I couldn't figure it out till I used a 'magik number' hard coded into part of my application. 1 based arrays. Why?! Why I say!?! I've always been accustomed to using 0-based arrays, and as I've stepped thru the code I've seen this behavior in some of the VB.NET arrays - they place an element into the element at 0 that says &lt;empty element used to adjust for 1 based array&gt;.</p>
<p>Well, in this case it didn't happen like that. Oh, well. Just one of those things I guess.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Generating Ideas...]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-11-Generating-Ideas</link>
            <guid>https://chris.pelatari.com/posts/2003-02-11-Generating-Ideas</guid>
            <pubDate>Tue, 11 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>I've decided to try and make my life a little easier. Controls. I've jumped into them a little in the past, but now I may have a little more time to put some extra thought into it. What I would like to do is encapsulate client-side behaviors like .htc's or javascript components and wrap it up in a drag-n-droppable asp.net server control. This leaves open a lot of possibilities...so I guess now is the time to generate ideas.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[Monday morning...]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-10-Monday-morning</link>
            <guid>https://chris.pelatari.com/posts/2003-02-10-Monday-morning</guid>
            <pubDate>Mon, 10 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<P>What better to do on a Monday morning than find out which type of OS your personality is matched with? Makes you look nice and busy, and from the other blogs I am reading, [<A href="http://dotnetweblogs.com/DNeimke/archive/02102003.aspx#2110">Darren</A>] , [<A href="http://dotnetweblogs.com/DBrowning/archive/02102003.aspx#2149">Don</A> ] , and [<A href="http://www.intertwingly.net/blog/index.rss">Sam</A>] have taken the quiz...so why can't I?</P>
<P>Well, I turned out to be OS2 - <A href="http://bbspot.com/News/2003/01/os_quiz.php"><IMG height="90" alt="Which OS are You?" src="http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/os2_warp.jpg" width="300" border="0"/>Which OS are You?</A> </P>
<P>Other than that, it's back to the old 'interop blues' for me. I've got to get this asp.old porting project done so I can move on to something that I can innovate with - something with style, ya know?</P>
<P>-Respect.</P>]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[HELPING C VETERANS WITH .NET]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-08-HELPING-C-VETERANS-WITH-NET</link>
            <guid>https://chris.pelatari.com/posts/2003-02-08-HELPING-C-VETERANS-WITH-NET</guid>
            <pubDate>Sat, 08 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>My boss asked me to come into work today to explain accessing a database in .NET to one of our developers who mainly codes in C. It was pretty interesting - this guy is an amazing programmer, but as I said mainly codes in C so is a .NET novice. I was able to explain dataAdapters and dataSets in a way that a C programmer would understand - pretty neat-o if you ask me.</p>
<p>I'll be the first one to tell you that I have not reached a level of programming to be able to say - &quot;I am THE programmer!&quot;, but I know .NET fairly well anyway. Today I explained one of those cool .NET aspects to someone who probably can say he is THE programmer. Has anyone else done something like this?</p>
<p>-Respect.</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
        <item>
            <title><![CDATA[WOOT! FIRST POST!]]></title>
            <link>https://chris.pelatari.com/posts/2003-02-07-WOOT-FIRST-POST</link>
            <guid>https://chris.pelatari.com/posts/2003-02-07-WOOT-FIRST-POST</guid>
            <pubDate>Fri, 07 Feb 2003 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>This is my first post on the blog...I hope that  I'll have something interesting to say. Well, I guess the first post should have a little to do with history. I work for a company that deals with the oil &amp; gas exploration industry, you know - geophysicists and stuff like that. You cna find us on the web at <a href="http://velocitydatabank.com" target="_blank" rel="noreferrer">Velocity Databank, Inc.</a>  . Of course, the site is written completely in ASP.NET, with only one little widget that I had to use interop in for the sake of brevity - you know, time constraints and such. I'm 22, live in Houston, TX, and I've been programming in C# since the public beta release of .NET. Personally, I was more than happy to pick it up - but before then I was doing C++ and using the Java SDK a little bit, but not for as long as some of these other bloggers out here. Before that, I really liked web development - but just DHTML, no fancy server-side stuff 'til ASP.NET came along. Basically, I just didn't - and still don't - like the idea of coding in VB...that's right - I said it - No VB for me! HA! Well, not if I can help it anyway. 😃</p>
]]></content:encoded>
            <author>chris@bluefenix.net (Chris Pelatari)</author>
        </item>
    </channel>
</rss>