<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>One day closer to death...</title>
  <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/" />
  <link rel="self" href="http://extremeconsulting.net/blog/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2007-10-17T14:35:55.6238540-07:00</updated>
  <author>
    <name>Vincent Tripodi</name>
  </author>
  <subtitle>go out on a limb...</subtitle>
  <id>http://extremeconsulting.net/blog/</id>
  <generator uri="http://www.dasblog.net" version="1.8.5223.1">DasBlog</generator>
  <entry>
    <title>Prague and Vienna Day 5</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,898570df-5f4b-4c9a-9c6c-2e5f64c6641b.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,898570df-5f4b-4c9a-9c6c-2e5f64c6641b.aspx</id>
    <published>2007-10-17T14:30:14.9360000-07:00</published>
    <updated>2007-10-17T14:35:55.6238540-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Wednesday - leaving Prague.  We (I)
   decided to drive from Prague to Vienna, against Matt's advice to take a train. 
   He must have been talking to Lou, and be thinking we'll either run out of gas, crash,
   or get lost.   So the Hertz lady shows up at the hotel and tells me I can't
   have GPS.  No problem, got plenty of gas and a map.  What's the worst that
   could happen  (um, Matt, did that sign say Iraq border 5 miles?).<br /><br />
   So we load up the car, hop in, put it in gear, and proceed to jump the sidewalk. 
   Been a while since I drove a stick and reverse wasn't where I thought it was.<br /><br />
   Getting out of Prague was actually easy and 3 hours later, after driving through <a href="http://images.kodakgallery.com/photos4273/2/40/28/97/26/7/726972840209_0_ALB.jpg">little
   towns in southern Czech Republic </a>we crossed the border into Austria.  I have
   to say, no offense to the Czech, Austria is incredible.  We got to Vienna within
   an hour and realized that it is HUGE and whats with the frickin street names? 
   they're like 100 letters long (Franzaklammerloosinstricken Stratta).  Try and
   look that up on a map and steer at the same time.  Thank God Matt can read a
   map.  He did a great job and got us to the hotel. 
   <br /><br />
   Staying at <a href="http://www.kkhotels.com/index.asp?ID=278">K&amp;K Maria Theresia
   Hotel</a>.  Very nice place near the Museum Quarter. We checked in, ate (vienerschnitzel),
   and ran over to the <a href="http://www.mozarthausvienna.at/cgi-bin/mozart/home.pl?lang=en;style=">Mozarthaus </a>before
   they closed.  It's a museum located in his old apartment from 1764.  Spooky. 
   The museum was great, very cool stuff.  Vienna is great, we can't wait to go
   museum hopping tomorrow.  Matt's sleeping as I type this...<br /><br />
   Some pics of the road trip here --&gt; <a href="ct.ashx?id=9324a3f5-8d5d-4f73-a5f8-809c70849e2d&amp;url=http%3a%2f%2fwww.kodakgallery.com%2fI.jsp%3fc%3dvsjvjxd.65fwlao1%26x%3d0%26y%3d-cdqmkp">Prague
   and Vienna </a>  <b>Click </b>on "View Slideshow" - no need to sign into
   Kodak Gallery<p></p><img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=898570df-5f4b-4c9a-9c6c-2e5f64c6641b" /></div>
    </content>
  </entry>
  <entry>
    <title>Prague and Vienna Day 4</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,9324a3f5-8d5d-4f73-a5f8-809c70849e2d.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,9324a3f5-8d5d-4f73-a5f8-809c70849e2d.aspx</id>
    <published>2007-10-17T14:02:30.9980000-07:00</published>
    <updated>2007-10-17T14:13:05.4051040-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Tuesday - another boring day, had to work,
   but was done at 4.  Matt and I decided to try a walking tour.  Unfortunately
   (not really) the only evening walking tours are pub crawls.  So we <a href="http://praguer.com/old-town-pub-tour.html">signed
   up</a>, and went to dinner before the crawl.  Ate outside on a patio at an Italian
   place in Old Town Square - Matt had chicken - I had fettucini.  Nothing Czech
   about the food but the view was incredible.<br /><br />
   After dinner we met our guide for the tour in front of the <a href="http://en.wikipedia.org/wiki/Image:Prag_Wenzelsplatz_Wenzelsdenkmal_Nationalmuseum_bei_Nacht.jpg">horse
   in Wenceslas Square</a>.  Turns out there's <a href="http://images.kodakgallery.com/photos4273/2/40/28/67/73/2/273672840209_0_ALB.jpg">7
   of us</a> - a couple from England (the guy was a rugby player who has had his nose
   broken so many times there is no cartilage left), a Canadian couple that now teach
   school in Dubai (pretty noble), and a mattress salesman fron Pennington, NJ. 
   No lie.  He originally said he was in "home furnishings", but when pressed for
   detail he said "specifically, I'm in mattresses".  Wow.<br /><br />
   So, Matt didn't drink, and since I paid for it already I had 2 beers for everyone
   elses 1.  I thought I handled it pretty well, think I had 9 before it was all
   over.  We ate in one bar where we descended 2 stories underground into a cellar
   that use to store potatoes 600 years ago.  Matt had fried cheese, apparently
   a staple of Czech teenagers. I had the goulash and dunplings.  And if you're
   paying attention and still reading, yes, we had already eaten dinner.<br /><br />
   Prague is beautiful at night, glad we did the walk.<br /><br />
   Many more pictures uploaded, and I added captions --&gt;  <a href="http://www.kodakgallery.com/I.jsp?c=vsjvjxd.65fwlao1&amp;x=0&amp;y=-cdqmkp">Prague
   and Vienna </a>  <b>Click </b>on "View Slideshow" - no need to sign into
   Kodak Gallery <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=9324a3f5-8d5d-4f73-a5f8-809c70849e2d" /></div>
    </content>
  </entry>
  <entry>
    <title>Prague and Vienna Day 2 and 3</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,9313dafd-0395-40b2-9bde-72524091d2cf.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,9313dafd-0395-40b2-9bde-72524091d2cf.aspx</id>
    <published>2007-10-16T05:01:01.4420000-07:00</published>
    <updated>2007-10-16T05:51:51.3491640-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <b>Sunday Day 2 </b>
        <br />
        <br />
   Matt and I slept till noon, and spent the day wandering around Prague taking pictures.
   Early afternoon we went to the <a href="http://www.bertramka.com/lang=en">Mozart Museum</a> located
   on the <a href="http://www.bertramka.com/gallery/94/cs/koncert2.jpg">grounds </a>where
   Mozart lived while in Prague.  They have the actual <a href="http://www.bertramka.com/gallery/94/cs/koncert3.jpg">harpshichord </a>that
   Mozart played.   I was able to remove it and ship it home, soon to take
   its' place next to the <a href="http://images.kodakgallery.com/photos4126/1/49/31/63/7/6/607633149109_0_ALB.jpg">Rizzuto
   mat</a>.<br /><br />
   Later that afternoon we dined at a fine Czech restaurant called TGI Fridays. 
   A fantastic little place that not many Americans are familiar with :)  
   I did manage to have an original Budweiser, called <a href="http://www.pivovary.info/prehled/budvar/l_budvar12.jpg">Budvar</a>. 
   Matt had fettucini, and I had <a href="http://gremolata.com/images/urubeef01.jpg">uruguayan
   beef.</a>  Yes, it was that nasty.<br /><br />
   In the evening Matt and I went to see the <a href="http://www.nachtigallartists.cz/files/Image/Orchestry/fok.jpg">Prague
   Symphony</a> play Mozart's Requiem at a beautiful place called the <a href="http://www.pragueexperience.com/images/photos/xlarge/municipal_house.jpg">Municipal
   House.</a> Requiem is a piece of music written for a funeral.  It was very good
   - even my pedestrian brain enjoyed it.  It's the last thing Mozart wrote before
   his death, completing only about 2/3 of it.  If you can remember the scene in
   Amadeus, <a href="http://www.mozartforum.com/images/Mozart_Sussmayr%201.jpg">he was
   writing it in bed </a>when he died.<br /><br />
   After the show Matt and I went to a casino, I wanted to play some blackjack, and Matt
   wanted to play some slots.  We went but the machines were all in Czech and I
   couldn't figure out how to use them.  We'll try again in Vienna.<br /><br /><b>Monday Day 3</b><br /><br />
   Boring day for both of us since I actually had to work.  The reason I'm here
   is to attend a meeting of a news organization called <a href="http://www.iptc.org/pages/index.php">IPTC</a>. 
   For photo buffs it may sound familiar, as one of the things IPTC maintains is the
   standards that govern photo metadata used by all camera manufacturers.  Eric
   probably has heard of this.<br /><br />
   After the meeting Matt and I walked across Prague's famous<a href="http://images.kodakgallery.com/photos4257/2/40/52/53/10/6/610535240209_0_ALB.jpg"> Charles
   Bridge </a> (Matt took that pic) into Lesser Town, and ate at an Irish pub called <a href="http://www.jjmurphys.cz/images/photos/bar-guests.jpg">J.J.
   Murphy's</a>.   MATT HAD HIS <a href="http://images.kodakgallery.com/photos4257/2/40/52/89/87/7/787895240209_0_ALB.jpg">FIRST
   BEER</a> - yes you read that correctly.   He hated it, but so did I when
   I first tasted beer, and look what's happened to me.  Somehow I think I don't
   need to worry about Matt.<br /><br />
   There seems to be no drinking age here, or limit on anything else for that matter. 
   Matt could drink, gamble, and get a lap dance.  No one would look twice. 
   Somehow European kids manage to survive the lack of government regulation.<br /><br />
   More pictures here--&gt;  <a href="http://www.kodakgallery.com/I.jsp?c=vsjvjxd.65fwlao1&amp;x=0&amp;y=-cdqmkp">Prague
   and Vienna </a>  <b>Click </b>on "View Slideshow" - no need to sign into
   Kodak Gallery<p></p><img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=9313dafd-0395-40b2-9bde-72524091d2cf" /></div>
    </content>
  </entry>
  <entry>
    <title>Prague and Vienna Day 1</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,da2b13b3-4c4a-470e-9a20-28b0c70e4d6c.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,da2b13b3-4c4a-470e-9a20-28b0c70e4d6c.aspx</id>
    <published>2007-10-13T02:20:16.4720000-07:00</published>
    <updated>2007-10-16T00:21:52.2416440-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Matt and I arrived in Prague today, after flying through Milan and catching an Alitalia
      flight.  Just flying into Milan, over the Alps and seeing the Italian countryside, hanging
      in the airport listening to the italians talk, just makes me want to visit Italy even
      more.  There's something about the language thats just so enticing.
   </p>
        <p>
      But on to Prague.  The city is very old, settled by the Celts in 300 BC. 
      The streets of the old part of the city are winding narrow cobblestone, and originally
      meant for horse/carriage.  Now cars navigate and park and squeeze thru, and somehow
      don't hit anyone.  It's very cool to walk these streets knowing Mozart once walked
      them.
   </p>
        <p>
      Matt and I ate at a place called <a href="http://pivnice.unas.cz/">Pivnice Skorepka</a>,
      and had chicken curry.  It was fantastic.  The beer wasn't bad either. 
      Most everyone in the city speaks English so it's not as difficult to communicate as
      I thought, though most people seem to routinely speak Czech, which is fine by me. 
      Who wants to hear English chatter?
   </p>
        <p>
      After dinner Matt and I had planned to see an organ concert of Bach and Mozart music,
      but we had been up for 36 hours, and decided to crash.  I went out and took some
      pictures before bed.  Tomorrow, we're planning on getting up at 10 and doing
      a walking tour.  More then...
   </p>
        <p>
      Pictures are here--&gt;  <strong><a href="http://www.kodakgallery.com/I.jsp?c=vsjvjxd.65fwlao1&amp;x=0&amp;y=-cdqmkp">Prague
      and Vienna</a></strong><br /></p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=da2b13b3-4c4a-470e-9a20-28b0c70e4d6c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Has Bruce Springsteen lost his mind?</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,79d9a32d-f62e-41af-b6ef-ba77d59b543c.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,79d9a32d-f62e-41af-b6ef-ba77d59b543c.aspx</id>
    <published>2006-03-05T08:13:58.0380000-08:00</published>
    <updated>2006-03-05T08:35:33.6792500-08:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Springsteen is about to release a <a href="http://www.backstreets.com/news.html">record
      of covers</a>; songs originally written or made famous by <a href="http://en.wikipedia.org/wiki/Pete_Seeger">Pete
      Seeger</a>.  For those that don't know who Pete Seeger is, and until recently
      I didn't, he's an old folk singer dude - one of many targeted in the mockumentary <a href="http://www.imdb.com/title/tt0310281/">A
      Mighy Wind</a>.  There is no middle ground here for Bruce.  This is either
      going to completely suck or be great, and to me the proof will be in how these songs
      come across live.  When I heard about this I wanted to hear the originals.  I've
      combed the net and managed to compile most of the songs that will appear on the record, as
      they were done by Seeger, and posted them on my site.
   </p>
        <p>
          <a href="ftp://ftp.extremeconsulting.net/extremecons/bruce/">ftp.extremeconsulting.net/extremecons/bruce/</a>
        </p>
        <p>
      userid=brucemusic<br />
      pw=brucemusic<br /></p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=79d9a32d-f62e-41af-b6ef-ba77d59b543c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Delegates in 2.0 - and a great article on building a Wait Screen in ASP.NET</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,fa524bfc-0978-406a-9111-2a4c34956620.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,fa524bfc-0978-406a-9111-2a4c34956620.aspx</id>
    <published>2006-02-24T12:37:56.8810000-08:00</published>
    <updated>2006-02-24T13:00:51.5845000-08:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <category term="General Computing" label="General Computing" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Just about everyone has had to write logic in asp or asp.net to show a page/graphic giving
      a user something to look at while a webserver is processing some long running task
      (not unlike reading this sentence).  <a href="http://www.lennybacon.com/PleaseWaitBuildingAWaitScreenControlForASPNET.aspx">Daniel
      Fisher shows how to build a control</a> that does just that.  The client side
      implementation of this control is sweet... drag it from the toolbox, set a property
      for the image location and hook up your event;  that's it.  He takes
      you step by step through the process, including implementing design time support. 
      Check it out, very cool.
   </p>
        <p>
      In Daniel's sample the delegate is hooked in the aspx declaration for the control. 
      You may want to programatically hook it.  The code for programatically hooking events
      got me thinking about the changes for delegates in 2.0... I modified the code for
      2.0 - taking advantage of anonymous delegates and the shortened syntax for delegate
      assignment.
   </p>
        <p>
      From the client you can hook the delegate like this in 2.0<br /><font color="#0000ff" size="2"><br /><font color="#0000ff">   this</font></font><font size="2"><font color="#0000ff">.WaitScreen1.Process
      += WaitScreen1_Process;</font>     
      <br /><br />
      where in 1.x you had to do:<br /></font><font size="2"><font color="#0000ff" size="2"><br /><font color="#0000ff">   this</font></font><font color="#0000ff"><font size="2">.WaitScreen1.Process
      +=</font><font size="2">new</font><font size="2"></font><font size="2">EventHandler</font><font size="2">(WaitScreen1_Process);</font></font></font></p>
        <p>
          <font size="2">
            <font size="2">In the control it gets easier also.   In
      Daniel's code he simply fires the delegate (and for good reason, his sample was a
      demonstration of control building, not delegate best practice).  The usual pattern
      for firing a delegate is to check for null beforehand.  Also, there are race
      conditions to consider because in between checking the delegate for null and firing
      it, the delegate could <em>become</em> null.  So if you want to optionally hook
      the delegate in the sample you'll need to add the null check to the code
      for the control.  Or not!  Enter anonymous delegates.  In 2.0 you can get
      away with the following.  Notice the use of an anonymous delegate (which
      does nothing) as a default assignment to the event.<br /><font color="#0000ff" size="2"><br /><font color="#0000ff">public </font></font><font color="#0000ff"><font size="2">event</font><font size="2"></font><font size="2">EventHandler</font><font size="2"> Process
      = </font><font size="2">delegate</font></font><font color="#0000ff" size="2"> { };<br /></font></font>
          </font>
          <font size="2">
            <font size="2">
              <font size="2">
                <br />
                <font color="#0000ff">public<font size="2"></font><font size="2">virtual</font><font size="2"></font><font size="2">void</font></font>
                <font color="#0000ff">
                  <font size="2"> OnProcess()
      {<br />
         P</font>
                  <font size="2">rocess(</font>
                  <font size="2">this</font>
                  <font size="2">, </font>
                  <font size="2">null</font>
                </font>
                <font color="#0000ff" size="2">);<br /></font>
                <font size="2">
                  <font color="#0000ff">}</font>
                  <br />
                </font>
                <br />
      So, Process will never be null;  worst case scenario you've got an empty method
      executing.  I did some quick Stopwatch performance analysis on this method vs.
      null checking and locking - the difference was almost nil.  25 ticks vs. 22 ticks
      on average (fractions of a millisecond).</font>
            </font>
          </font>
        </p>
        <p>
          <font size="2">
            <font size="2">
              <font size="2">I said earlier "you can get away with"
      the above code... best practice guidelines say your event declaration should be private
      with a public event handler.  Also, it's a good idea for the method
      which does the firing to get the InvocationList and iterate through each in a try-catch
      block.   You are executing untrusted code afterall, in the sense that the
      target method may throw an exception and the rest of the delegate instances will not
      execute.  One of my .Net heroes, <a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=3&amp;tabid=5">Juval
      Lowy</a>, covers this in his outstanding book <a href="http://www.amazon.com/gp/product/0596007620/104-3074667-8873546?v=glance&amp;n=283155">Programming
      .Net Components</a>.  
      <br /><br /><font color="#0000ff">private <font size="2">event</font><font size="2"></font><font size="2">EventHandler</font><font size="2"> _process
      = </font><font size="2">delegate</font><font size="2"> { };</font><br /></font></font>
            </font>
          </font>
          <font size="2">
            <font size="2">
              <font size="2">
                <font size="2">
                  <font color="#0000ff">
                    <font size="2">
                      <br />
      public</font>
                    <font size="2">
                    </font>
                    <font size="2">event</font>
                    <font size="2">
                    </font>
                    <font size="2">EventHandler</font>
                  </font>
                  <font color="#0000ff">
                    <font size="2"> Process
      {<br /></font>
                    <font size="2">   add</font>
                  </font>
                  <font color="#0000ff">
                    <font size="2"> {<br /></font>
                  </font>
                </font>
              </font>
            </font>
          </font>
          <font size="2">
            <font size="2">
              <font size="2">
                <font size="2">
                  <font color="#0000ff">
                    <font size="2">      _process
      += </font>
                    <font size="2">value</font>
                  </font>
                  <font color="#0000ff">
                    <font size="2">;<br />
         }<br />
         </font>
                    <font size="2">remove</font>
                  </font>
                  <font color="#0000ff">
                    <font size="2"> {<br /><font size="2"><font size="2"><font size="2"><font size="2"><font color="#0000ff"><font size="2">      _process
      -= </font><font size="2">value</font></font><font color="#0000ff"><font size="2">;<br /></font></font></font></font></font></font></font>
                  </font>
                </font>
              </font>
            </font>
          </font>
          <font size="2">
            <font size="2">
              <font size="2">
                <font size="2">
                  <font size="2">
                    <font color="#0000ff">   }<br />
      }</font>
                  </font>
                </font>
              </font>
            </font>
          </font>
        </p>
        <font size="2">
          <p>
            <font color="#0000ff">
              <font size="2">public</font>
              <font size="2">
              </font>
              <font size="2">virtual</font>
              <font size="2">
              </font>
              <font size="2">void</font>
            </font>
            <font color="#0000ff">
              <font size="2"> OnProcess()
      {<br /></font>
              <font size="2">   Delegate</font>
            </font>
            <font color="#0000ff">
              <font size="2">[]
      clients;<br /><br /></font>
            </font>
            <font color="#0000ff">
              <font size="2">   clients = _process.GetInvocationList();<br /><br />
         </font>
              <font size="2">foreach</font>
              <font size="2"> (</font>
              <font size="2">EventHandler</font>
              <font size="2"> client </font>
              <font size="2">in</font>
            </font>
            <font color="#0000ff">
              <font size="2"> clients)
      {<br /></font>
              <font size="2">      try</font>
            </font>
            <font color="#0000ff">
              <font size="2"> {<br />
               client(</font>
              <font size="2">this</font>
              <font size="2">, </font>
              <font size="2">EventArgs</font>
            </font>
            <font color="#0000ff">
              <font size="2">.Empty);<br />
            }<br /></font>
              <font size="2">      catch</font>
            </font>
            <font color="#0000ff" size="2"> {<br />
               </font>
            <font color="#0000ff" size="2">_process
      -= client;<br />
            }<br />
         }<br />
      }</font>
          </p>
          <p>
      Locking is recommended when publishing events in a remoting scenario, both when getting
      the Invocation List (and also in the event procedure when hooking and
      unhooking).  <a href="http://www.bearcanyon.com/dotnet/">Mike Woodring</a> explains
      this <a href="http://www.bearcanyon.com/dotnet/#fireserverevents">here</a> and
      has some other great tips on his site as well.<br /></p>
        </font>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=fa524bfc-0978-406a-9111-2a4c34956620" />
      </div>
    </content>
  </entry>
  <entry>
    <title>XSL 1.0 Split function</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,55cfafd3-fed3-4d95-9c25-60a5a011a891.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,55cfafd3-fed3-4d95-9c25-60a5a011a891.aspx</id>
    <published>2006-02-21T14:00:32.1680000-08:00</published>
    <updated>2006-02-21T14:01:14.6523750-08:00</updated>
    <category term="General Computing" label="General Computing" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Been spending a little more time than I'd like with XSLT.  I recently needed
      a split function that would recursively create elements based on a delimited string. 
      Well, although XSLT 2.0 appears to have support for split, 1.0 does not.  So
      here goes for anyone who might need it.
   </p>
        <p>
      &lt;xsl:template match="some_delimited_string"&gt;<br />
         &lt;xsl:if test="normalize-space(.)"&gt;<br />
            &lt;xsl:call-template name="split"&gt;<br />
               &lt;xsl:with-param name="text"
      select="."/&gt;<br />
               &lt;xsl:with-param name="element"&gt;YourElementName&lt;/xsl:with-param&gt;<br />
               &lt;xsl:with-param name="delim"&gt;/&lt;/xsl:with-param&gt;<br />
            &lt;/xsl:call-template&gt;<br />
         &lt;/xsl:if&gt;<br />
      &lt;/xsl:template&gt;
   </p>
        <p>
          <font color="#000000">&lt;xsl:template name="split"&gt;<br />
         &lt;xsl:param name="text" select=""/&gt;<br />
         &lt;xsl:param name="element" select=""/&gt;<br />
         &lt;xsl:param name="delim" select=""/&gt;<br />
         &lt;xsl:choose&gt;<br />
            &lt;xsl:when test="contains($text, $delim)"&gt;<br />
               &lt;xsl:element name="{$element}"&gt;<br />
                  &lt;xsl:value-of
      select="substring-before($text, $delim)"/&gt;<br />
               &lt;/xsl:element&gt;<br />
               &lt;xsl:call-template name="split"&gt;<br />
                  &lt;xsl:with-param
      name="text" select="substring-after($text, $delim)"/&gt;<br />
                  &lt;xsl:with-param
      name="element" select="$element"/&gt;<br />
                  &lt;xsl:with-param
      name="delim" select="$delim"/&gt;<br />
               &lt;/xsl:call-template&gt;<br />
            &lt;/xsl:when&gt;<br />
         &lt;xsl:otherwise&gt;<br />
            &lt;xsl:element name="{$element}"&gt;<br />
               &lt;xsl:value-of select="$text"/&gt;<br />
            &lt;/xsl:element&gt;<br />
         &lt;/xsl:otherwise&gt;<br />
         &lt;/xsl:choose&gt;<br />
      &lt;/xsl:template&gt;</font>
          <font color="#0000ff">
          </font>
        </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=55cfafd3-fed3-4d95-9c25-60a5a011a891" />
      </div>
    </content>
  </entry>
  <entry>
    <title>BizTalk first impressions - if you love to code you ain't gonna like it</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,3a438a4a-7d53-4fc1-8f83-5faaeac6fff1.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,3a438a4a-7d53-4fc1-8f83-5faaeac6fff1.aspx</id>
    <published>2006-02-03T05:59:30.8110000-08:00</published>
    <updated>2006-02-03T08:04:59.3810000-08:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      however - if you like to solve complex Enterprise Integration problems you'll love
      the design of this product.
   </p>
        <p>
      I recently switched jobs and one of the first things I'm doing in my new position
      is learning <a href="\http://msdn.microsoft.com/biztalk">BizTalk</a>.  I had
      no prior experience with it but always had a desire to dig in - I've always heard
      how it was Microsofts best kept secret.  So last week I was at the <a href="http://www.microsoft.com/mscorp/info/usaoffices/newengland/mtc_boston.mspx">Microsoft
      Technology Center</a> in Waltham for a few days and met with some excellent people
      who know Biztalk very well.  Their enthusiasm won me over and for the last
      3 days I've been reading and watching every whitepaper and <a href="http://www.microsoft.com/events/AdvSearch.mspx?EventsAndWebcastsControlName=As1%3AAdvSrc&amp;As1%3AAdvSrc%3AAudienceID=0&amp;As1%3AAdvSrc%3AProductID=a913e33b-e7d2-4eea-8556-c18f5b3670f8&amp;As1%3AAdvSrc%3AEventType=OnDemandWebcast&amp;As1%3AAdvSrc%3ACountryRegionID=en%7CUS%7CUnited+States&amp;StateProvinceID=0&amp;As1%3AAdvSrc%3ATimeframeID=-1&amp;As1%3AAdvSrc%3ASearchFilter=%C2%A0+Go+%C2%A0&amp;PageNumber=1">webcast</a> I
      can get my hands on.  I've installed BT2006 on a VPC and run through a couple <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/introduction/htm/ebiz_ref_tut_intro_tegk.asp">tutorials</a> and
      done some <a href="http://msdn.microsoft.com/virtuallabs/default.aspx">virtual labs</a>. 
      I'm starting to get a handle on where BizTalk fits into solution architecture. 
   </p>
        <p>
      So, if you love to code and you love Visual Studio you may not like what you see. 
      Bottom line,  BizTalk does not give the developer a decent environment in which
      to consume/integrate and debug <strong>processing</strong> logic.  It's
      great at forcing an SOA mindset;  creating explicit boundaries, exchanging messages/contracts
      and not type, etc. (we've all seen the <a href="http://www.pnplive.com/Slides/Patterns%20for%20Service%20Oriented%20Architecture%20v2.ppt#379,6,Four Tenets of Service Orientation">4
      Tenets of SOA slide</a>).  It is great for data transformation tasks and is designed
      for connecting disparate systems.  But if you need to do more than push and transform
      data - if you have reams of business rules you need to implement and business users
      who are not able or willing to maintain them - then you may not be happy with BizTalk's
      integration with Visual Studio.  The fact that you have to leave Visual Studio
      to debug an orchestration is not cool.  I really believe that this shortcoming
      is preventing BizTalk from exploding;  it's still a niche product and it amazes
      me that Visual Studio support was not a focus for the 2006 release.
   </p>
        <p>
      The fact is that in most shops developers run the show as far as toolset and implementation... users
      want quick turnaround and Microsoft has provided the <a href="http://msdn.microsoft.com/vstudio/">tool
      of the century</a> to faciliate that.  So until BizTalk joins the RAD party it
      will always be a struggle for architect types in any shop to get BizTalk adopted. 
      I've been reading for years that SOA will not take off until toolsets are available
      to support it.  So Microsoft will soon be shipping <a href="http://msdn.microsoft.com/webservices/indigo/default.aspx">WCF</a> and <a href="http://msdn.microsoft.com/windowsvista/building/workflow/default.aspx">WWF</a> and
      codehounds will be off to the races.  It's a shame that BizTalk, a product built to
      faciliate SOA, is not keeping up with the Joneses... whoops I mean <a href="http://pluralsight.com/blogs/dbox/">Box</a>es.
   </p>
        <p>
      I'm sure I'll be posting some more as I continue to learn, it's only been 3 days!, and
      it may be that I'm missing something... we'll see.
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=3a438a4a-7d53-4fc1-8f83-5faaeac6fff1" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Wow... a .Net User Group that's close to home?  I never thought it would happen</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,a0849d13-af3f-44af-92f4-f731d13e29bf.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,a0849d13-af3f-44af-92f4-f731d13e29bf.aspx</id>
    <published>2006-02-02T07:10:15.2860000-08:00</published>
    <updated>2006-02-02T07:28:00.8492500-08:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Finally there's a <a href="http://www.njdotnet.net/default.aspx">user group in west
      central NJ </a>and the first speaker, <a href="http://www.dotnetdude.com/Default.aspx">Miguel
      Castro</a>, knows his stuff.  Hopefully we can sustain this group... apparently
      there are some good people involved (<a href="http://scottwater.com/blog/">Scott Watermasysk</a> being
      one of them).  The first meeting is next Thursday February 9th... the topic is
      ASP.Net 2.0 features - a good place to start.
   </p>
        <p>
      As an aside I'll mention there's another group that I was involved in, <a href="http://www.njevbug.org/">NJEVBUG</a>, that
      has changed its name to NJDNADUG and has moved its attention toward architecture.  <a href="http://geekswithblogs.net/higgins/">Kent
      Brown</a> has taken the reigns and has great vision for the group.  Their next
      meeting is Monday February 13th with the topic being Generics.  Now, I'm not
      sure if there's an architectural slant to this discussion but I do know Kent is actively
      polling current members for topic ideas - Enterprise Integration, best practice discussions,
      patterns, etc... so if you're interested hit the web site and send him some ideas. 
      NJDNADUG is also an <a href="http://www.ineta.org/DesktopDefault.aspx">INETA</a> member,
      meaning they'll get <a href="http://www.ineta.org/DesktopDefault.aspx?tabindex=2&amp;tabid=14">primo
      speakers</a> a few times a year and free stuff!
   </p>
        <p>
      And one more....  along the lines of NJDNADUG there is now something called the <a href="http://www.nyccsug.org/">NYC
      Connected Systems User Group</a>.  Kent and some other .Net rock stars (Andrew
      Brust, Stephen Forte, and Bill Zack) got together and formed this group. 
      Their mission statement says "uniting individuals in the greater NYC area interested
      in design, implementation, deployment, and support of Enterprise Integration solutions
      using the Microsoft Connected Systems product stack".  The inaugural meeting
      for this group is Thursday Feb. 23rd at the NYC Microsoft offices.
   </p>
        <p>
      Note to wife - will be home late Feb 9th, Feb 13th and Feb 23rd.  Add the <a href="http://nyc.codecamp.us/">NYC
      Code Camp</a> to that list and February is a busy month!
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=a0849d13-af3f-44af-92f4-f731d13e29bf" />
      </div>
    </content>
  </entry>
  <entry>
    <title>The Red Sox jump the shark!</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,9fd97ebd-f51f-4cbc-9fae-6d5b9d94105a.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,9fd97ebd-f51f-4cbc-9fae-6d5b9d94105a.aspx</id>
    <published>2005-12-22T16:15:34.2780000-08:00</published>
    <updated>2005-12-23T06:05:04.6203113-08:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Not since the Babe have the Red Sox lost a player of this caliber to the Yankees. 
      Granted it was a trade in Ruth's case but it's close to the same thing.  The
      Sox KNEW the Yankees would sign Damon... they could have ponied up the extra
      12 million to keep him.   No other team but the Yankees was going to wind
      up with the guy so in my mind Damon was traded to the Yankees for 12 million. 
      So the Sox are 12 million richer.  They also will not win another World Series
      until I am dust.  Now all this does not mean I am happy about the TRADE
      either.  Damon drove a dagger through my heart in the ALCS in 2004.  I hated
      the guy... still do.   He's taking the place of <a href="http://sports.espn.go.com/mlb/players/profile?statsId=4695">one
      of my favorite all time Yankees</a> and is going to have to do something drastic
      to get on my good side... like return the favor this October and help knock the Sox
      out.  That would work.  But first the mfer has to shave.  Man I love
      that.  At least if he uses a <a href="http://customwire.ap.org/dynamic/stories/B/BBA_YANKEES_DAMON?SITE=WIBEV&amp;SECTION=HOME">Norelco
      shaver to cut his beard </a>he'll make some dough for a charity.
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=9fd97ebd-f51f-4cbc-9fae-6d5b9d94105a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>WinFX and VS2005 - let the games begin!</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,089973df-e602-4988-9dde-bd02f31dcc19.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,089973df-e602-4988-9dde-bd02f31dcc19.aspx</id>
    <published>2005-11-18T13:05:55.5120000-08:00</published>
    <updated>2005-11-18T13:05:55.5126390-08:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Finally we can use VS2005 to play with Indigo (<a href="http://msdn.microsoft.com/webservices/indigo/default.aspx">WCF</a>). 
      Get the bits <a href="http://msdn.microsoft.com/windowsvista/getthebeta/default.aspx">here</a>.
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=089973df-e602-4988-9dde-bd02f31dcc19" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Project Aardvark </title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,75178c54-f8a4-4b97-bdf9-264a46ef4835.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,75178c54-f8a4-4b97-bdf9-264a46ef4835.aspx</id>
    <published>2005-11-08T10:39:31.2150000-08:00</published>
    <updated>2005-11-08T10:44:03.6551470-08:00</updated>
    <category term="General Computing" label="General Computing" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Add another item to the list of "Damn, I wish I thought of that".  <a href="http://www.joelonsoftware.com/">Joel
      Spolsky</a> has created a documentary about a software development project. 
      He interviewed hundreds of interns and came up with 4, who were given 12 weeks to
      design, develop, test and ship a product.  This looks to me like a horror
      film, since after I watch it I'll realize these interns could probably kick
      my geek ass.  Hopefully I can put my ego aside;  I may just learn something.
   </p>
        <p>
      Check out the <a href="http://video.google.com/videoplay?docid=683920339919633877">trailer </a>for <a href="http://www.projectaardvark.com/movie/">Project
      Aardvark</a>.  It looks GREAT.  Something tells me this might just make
      it to <a href="http://www.ifc.com/ifc/home">IFC </a>and get some exposure;  it
      looks that good.
   </p>
        <p>
          <a href="https://www.copilot.com/">Copilot </a>is the product they built - looks similiar
      to <a href="https://www.gotomypc.com">GotoMyPC.com</a></p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=75178c54-f8a4-4b97-bdf9-264a46ef4835" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Born To Run is old and so am I</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,06b9aef8-7a65-4b5a-869e-1d10f65f6d0a.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,06b9aef8-7a65-4b5a-869e-1d10f65f6d0a.aspx</id>
    <published>2005-10-21T11:20:21.9850000-07:00</published>
    <updated>2005-10-21T12:34:18.6229391-07:00</updated>
    <content type="html">&lt;p&gt;
   Those who know me know I am a Springsteen fan(atic).&amp;nbsp; I've seen Bruce maybe 50+
   times since 1984 (as outrageous as that may sound there are people I know who can
   more than double that number;&amp;nbsp; and to those that think 50 is excessive I say
   what about season ticket holders in any sport - seeing the Giants 8-11 times a year
   every year is ok, but seeing a rock concert is not?!?!)&amp;nbsp; Anyway, hard core fans
   and some purists will say that I am not a real fan after all as I did not see the
   man before he "sold out" with Born In the USA.&amp;nbsp; Believe me, I would trade 40
   of those post '84 shows&amp;nbsp;for one Darkness show from '78 or one show in Philly
   from '75.
&lt;/p&gt;
&lt;p&gt;
   So, what's my point?&amp;nbsp; The point is Bruce will shortly be releasing a &lt;a href="http://www.brucespringsteen.net/news/index.html"&gt;30th
   anniversary (yikes!) Born To Run &lt;/a&gt;collection which includes a full show from London's
   Hammersmith Odeon in 1975, among other goodies.&amp;nbsp; Those that pre-order this thing
   get an 18 minute preview of the documentary around the making of Born To Run.&amp;nbsp;
   I have pre-ordered this set and have the link to the video - it is incredible and
   shows exactly how much I did miss out by not seeing shows in the 70's;&amp;nbsp; so, if
   there's something you need.... if there's something you want... you've got to &lt;a href="http://brucespringsteen.net/songs/RaiseYourHand.html"&gt;RAISE
   YOUR HAND!&lt;/a&gt;&amp;nbsp; or, just send me an &lt;a href='http://extremeconsulting.net/blog/&lt;A%20href="mailto:vincent.tripodi@extremeconsulting.net?Subject=Bruuuuuce"&gt;'&gt;email&lt;/a&gt;.
&lt;/p&gt;
&lt;p align=center&gt;
   &lt;img src="http://extremeconsulting.net/blog/content/binary/borntorun.jpg" border=0&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=06b9aef8-7a65-4b5a-869e-1d10f65f6d0a" /&gt;</content>
  </entry>
  <entry>
    <title>Who says you can't take it with you?</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,12138212-eb96-4b92-aff4-da47831a9822.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,12138212-eb96-4b92-aff4-da47831a9822.aspx</id>
    <published>2005-10-21T08:26:51.4020000-07:00</published>
    <updated>2005-10-21T09:51:53.1855687-07:00</updated>
    <category term="General Computing" label="General Computing" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I am an infant.  I saw some of my coworkers showing off their versions of this 21st
      century briefcase and had to have one.  My data, code, music, VS2005 vpc
      images will now travel with me.  Thanks to Kevin and <a href="http://www.donxml.com/">Don </a>for
      pointing this out and <a href="http://www.geekswithblogs.com/mcastro/archive/2005/05/23/40347.aspx">Miguel </a>for
      hints on the model to get.
   </p>
        <p>
          <a href="http://www.hitachigst.com/portal/site/en/menuitem.c8c3966a526cfb5deb4703e3aac4f0a0/">Drive</a>
          <br />
          <a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item=5209328573&amp;ssPageName=MERC_VI_RSCC_Pr4_PcY_BIN_Stores_IT">Case</a>
          <br />
          <img src="http://extremeconsulting.net/blog/content/binary/7k60.jpg" border="0" />                    <img src="http://extremeconsulting.net/blog/content/binary/case.jpg" border="0" /></p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=12138212-eb96-4b92-aff4-da47831a9822" />
      </div>
    </content>
  </entry>
  <entry>
    <title>DasBlog author name problems</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,e07c6bef-3892-4506-b14c-5418f203b365.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,e07c6bef-3892-4506-b14c-5418f203b365.aspx</id>
    <published>2005-10-19T07:29:27.1810000-07:00</published>
    <updated>2005-10-19T12:03:00.0362505-07:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      So if you subscribe to my feed it seems that old posts are losing the blog author
      and email address information.  I looked at the DasBlog code, no luck, and
      compared the RSS which gets generated for old and new posts and they look identical. 
      This is an RSS 1.0 feed so that may be a problem.  Anyway, old posts come down
      in the feed but have bad author info.  Bummer.
   </p>
        <p>
      ----------------
   </p>
        <p>
      For those unfamiliar (you know who you are), RSS is a standard format for specifying
      news that one would like published and consumed by interested parties using something
      called an RSS 'Reader'.  RSS is most commonly associated with blogs.  So
      let's say I have a blog and spew useless information.  Someone may actually
      be interested in said useless info.  So, instead of having to constantly hit
      my blog site seeing if there is new useless info, the interested party can use an
      RSS Reader, which will poll my site for new stuff and download it.  Using this
      reader one can subscribe to one or more RSS Feeds that they would like to keep
      up on.  Then, at a specified interval or at the touch of a button, the reader
      will check all subscriptions and deliver all the new stuff right to you.
   </p>
        <p>
      I use an RSS Reader called <a href="http://www.newsgator.com">NewsGator</a> (costs
      $$).  I get updates to all my RSS feeds delivered to Outlook.  I basically
      don't have to surf anymore.  I subscribe to RSS feeds at all my favorite blog
      and web sites and get notified if there is new content.  They have a free? online
      version as well (which syncs with Outlook).  There are plenty of other free RSS
      Readers out there, <a href="http://www.download.com/Tristana-Reader/3000-9227_4-10419519.html?tag=pdp_prod">like
      this one.</a></p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=e07c6bef-3892-4506-b14c-5418f203b365" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Ok, I feel naked</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,696d5818-6231-4c48-8c65-7c1de31b29e6.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,696d5818-6231-4c48-8c65-7c1de31b29e6.aspx</id>
    <published>2005-10-18T13:31:02.1100000-07:00</published>
    <updated>2005-10-18T13:33:37.2993415-07:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      So up until today my blog was hidden behind my company firewall, the echo from my
      words clearly heard above the slamming of my co-workers keys.  Today I step out
      into the light where I fully expect nothing to change.  Yesterday I had a good
      excuse for my lack of readership; now what.
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=696d5818-6231-4c48-8c65-7c1de31b29e6" />
      </div>
    </content>
  </entry>
  <entry>
    <title>ASP.Net 2.0 - this is a cool feature</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,5a88be4c-9f5c-4c6c-8e07-ecfdc76b1894.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,5a88be4c-9f5c-4c6c-8e07-ecfdc76b1894.aspx</id>
    <published>2005-10-06T12:33:53.9090000-07:00</published>
    <updated>2005-10-18T12:33:53.9092203-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">You can take an application offline by dropping
   a file into the virtual root called App_Offline.htm - aspnet will shut down the app
   and redirect all incoming requests to this page.  Nice.<img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=5a88be4c-9f5c-4c6c-8e07-ecfdc76b1894" /></div>
    </content>
  </entry>
  <entry>
    <title>Gates and Napolean Dynamite - PDC 05 Keynote Video</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,79b996a1-fd35-493b-b121-901cd896f7ab.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,79b996a1-fd35-493b-b121-901cd896f7ab.aspx</id>
    <published>2005-10-04T12:32:49.2990000-07:00</published>
    <updated>2005-10-18T12:32:49.2994318-07:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Finally a good quality version of this <a href="http://video.msn.com/v/us/v.htm?g=b1925a5f-e901-4b1b-8faf-1997dcff7444&amp;f=copy">video</a>! 
      Watch Gates get bitch-slapped!
   </p>
        <p>
          <a href="http://video.msn.com/v/us/v.htm?g=b1925a5f-e901-4b1b-8faf-1997dcff7444&amp;f=copy">http://video.msn.com/v/us/v.htm?g=b1925a5f-e901-4b1b-8faf-1997dcff7444&amp;f=copy</a>
        </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=79b996a1-fd35-493b-b121-901cd896f7ab" />
      </div>
    </content>
  </entry>
  <entry>
    <title>NJ Code Camp</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,bcc955f5-efac-4bd6-ae05-9f9540f837d2.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,bcc955f5-efac-4bd6-ae05-9f9540f837d2.aspx</id>
    <published>2005-09-27T12:32:12.5330000-07:00</published>
    <updated>2005-10-18T12:32:12.5335715-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Check it out.  Weekend coding fun.  The NYC version was cancelled but I
      will not miss this!  Register NOW if you want to go as this will fill up fast.
   </p>
        <p>
          <a href="http://www.njcodecamp.org/">http://www.njcodecamp.org/</a>
        </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=bcc955f5-efac-4bd6-ae05-9f9540f837d2" />
      </div>
    </content>
  </entry>
  <entry>
    <title>People Matter Most</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,f9249215-51c6-475e-a8a2-aa852e7fdcc4.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,f9249215-51c6-475e-a8a2-aa852e7fdcc4.aspx</id>
    <published>2005-09-27T12:31:30.1580000-07:00</published>
    <updated>2005-10-18T12:31:30.1583003-07:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Came across <a href="http://martinfowler.com/bliki/PeopleMatterMost.html">this </a>blog
      entry by Martin Fowler (of <a href="http://martinfowler.com/books.html">Patterns</a> fame). 
      In it he talks about the value of having a few great people vs. a lot of good ones. 
      I have always believed this is the best way to build a team and in my opinion it is
      what we're doing here at &lt;%MyCompany%&gt;.  It's the reason we interview so
      many people and do not settle.  We may drive HR crazy but there is a method to
      our madness.  Unfortunately in an environment like this we're going to lose good
      people occasionally because they are in such demand.   It's difficult
      to find good people and just as hard to keep them.  I brag about the people
      that I work with here at &lt;%MyCompany%&gt; all the time.  If we could
      move the office to Princeton I'd love it even more!
   </p>
        <p>
          <a href="http://martinfowler.com/bliki/PeopleMatterMost.html">http://martinfowler.com/bliki/PeopleMatterMost.html</a>
        </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=f9249215-51c6-475e-a8a2-aa852e7fdcc4" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Atlas - Microsoft's implementation of AJAX</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,7ab430d2-cb1c-47d9-9c0a-c5f6aad9871a.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,7ab430d2-cb1c-47d9-9c0a-c5f6aad9871a.aspx</id>
    <published>2005-07-06T12:29:39.4850000-07:00</published>
    <updated>2005-10-18T12:29:39.4857170-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.devx.com/webdev/Article/28530">From a DEVX article</a>:
   </p>
        <p>
      Scott Guthrie, manager of Microsoft's Web Platform and Tools Team, described Atlas'
      planned features <a href="http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx">in
      his blog</a>: 
   </p>
        <blockquote>
          <i>The Atlas Client Script Framework will work on all modern browsers,
   and with any web server. It also won’t require any client installation at all—to use
   it, you can simply include references to the right script files in your page. 
   <br /><br />
   The Atlas Client Script Framework will include the following components:<br /><ul><li>
         An extensible core framework that adds features to JavaScript such as lifetime management,
         inheritance, multicast event handlers, and interfaces 
      </li><li>
         A base class library for common features such as rich string manipulation, timers,
         and running tasks 
      </li><li>
         A UI framework for attaching dynamic behaviors to HTML in a cross-browser way 
      </li><li>
         A network stack to simplify server connectivity and access to Web services 
      </li><li>
         A set of controls for rich UI, such as auto-complete textboxes, popup panels, animation,
         and drag and drop 
      </li><li>
         A browser compatibility layer to address scripting behavior differences between browsers.</li></ul></i>
        </blockquote>
        <p>
      Guthrie also says that Microsoft will provide new ASP.NET server controls that you'll
      be able to use to bind client-side controls to server-side code, and promises simple
      and direct access to ASMX pages and Indigo services directly through the Atlas Client
      Script Framework. 
   </p>
        <p>
      While AJAX won't ship with Visual Studio 2005, Microsoft plans to provide it as an
      add-on layer to ASP.NET and will offer a preview version to developers at the <a href="http://msdn.microsoft.com/events/pdc/">PDC</a> conference
      in Los Angeles in September.
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=7ab430d2-cb1c-47d9-9c0a-c5f6aad9871a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>ASP.Net Version Switcher</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,e07a22bb-ce13-4570-9466-955cbf2b0dbd.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,e07a22bb-ce13-4570-9466-955cbf2b0dbd.aspx</id>
    <published>2005-06-20T12:28:40.5940000-07:00</published>
    <updated>2005-10-18T12:28:40.5947151-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Cool utility that shows all sites configured on a machine and allows you to point
      to the correct version of the .Net Framework.  Useful if you have the 2.0 beta
      installed alongside 1.1.  No magic, just a wrapper around aspnet_regiis, but
      still sweet.
   </p>
        <p>
          <a href="http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx">ASP.Net Version
      Switcher</a>
        </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=e07a22bb-ce13-4570-9466-955cbf2b0dbd" />
      </div>
    </content>
  </entry>
  <entry>
    <title>VB.Net has jumped the shark</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,e759842b-37ee-4a79-94db-cb2c55d9e305.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,e759842b-37ee-4a79-94db-cb2c55d9e305.aspx</id>
    <published>2005-06-16T12:27:19.5780000-07:00</published>
    <updated>2005-10-18T12:27:19.5785716-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <div class="postbody">
          <p>
         There are some components shipping with VS 2005, like the one described in <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/threadinginvb2005.asp"><strong>this
         article</strong></a>, that should raise a <strong><font color="#ff0000">BIG RED
         FLAG</font></strong> for every .Net programmer that cares about code.  Something
         like this should be in the Express edition of VB.Net, not in the Professional edition. 
         The Express edition is targeted at hobbyists;  I swear anyone that uses this
         component in an enterprise application should be ashamed of themselves.  I rank
         this right up there with the ADO data controls in VB6.
      </p>
          <p>
         As a matter of fact we're adding a new question to the technical screens we give here
         at XXX Inc.:
      </p>
          <p>
         XXX Inc.:  "So, have you ever used that cool new multithreaded worker component
         in Visual Studio 2005?"<br />
         Candidate: "Sure, it's so easy to use.  I love it."<br />
         XXX Inc.: "Goodbye."
      </p>
        </div>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=e759842b-37ee-4a79-94db-cb2c55d9e305" />
      </div>
    </content>
  </entry>
  <entry>
    <title>C# Programming Tools on MSDN</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,a51def3f-036c-40e6-860b-adb79da66f6c.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,a51def3f-036c-40e6-860b-adb79da66f6c.aspx</id>
    <published>2005-05-27T12:23:03.8110000-07:00</published>
    <updated>2005-10-18T12:24:52.4370049-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Check out this list of <a href="http://msdn.microsoft.com/vcsharp/programming/tools/">C#
      Programming Tools</a> on MSDN....  awesome list thought not necessarily
      C# specific.  Some of my favorites so far, because I've actually used them, are <a href="http://www.aisto.com/roeder/dotnet/">Reflector</a> and
      the <a href="http://www.scitech.se/memprofiler/">.Net Memory Profiler</a>... and of
      course <a href="http://sourceforge.net/projects/nunit/">NUnit</a>.
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=a51def3f-036c-40e6-860b-adb79da66f6c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>C# Game Development</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,86d2d0ea-e910-4a7d-8afc-bf44e025690e.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,86d2d0ea-e910-4a7d-8afc-bf44e025690e.aspx</id>
    <published>2005-05-27T12:22:13.0920000-07:00</published>
    <updated>2005-10-18T12:22:13.0922351-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">There is a series of <a href="http://www.microsoft.com/events/series/msdnvideodev.mspx">webcasts </a>available
   which walk through building a shooter game called Star Trooper.  My son is working
   his way through this and it's pretty cool.  They take you through the basics
   of C# while building the game.  For those needing a primer on the basics of C# <a href="http://www.digipen.edu/webcast/files/DigiPenWebcast_Session02.pdf">check
   this out.</a>  Also all the documentation for the game and the webcasts are available <a href="http://www.digipen.edu/webcast/files/">here</a>.<br /><img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=86d2d0ea-e910-4a7d-8afc-bf44e025690e" /></div>
    </content>
  </entry>
  <entry>
    <title>FollowUp URLs - This is cool</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,aa72140a-c80f-400a-94cc-261bc1c0a91c.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,aa72140a-c80f-400a-94cc-261bc1c0a91c.aspx</id>
    <published>2005-05-25T12:21:15.6540000-07:00</published>
    <updated>2005-10-18T12:21:15.6543675-07:00</updated>
    <category term="General Computing" label="General Computing" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      So lets say you're surfing and you come across a link you want to re-visit when
      you have time... so you right click on the link and there's an IE context menu option
      that allows you to create an Outlook Task so you can follow up on the link at a later
      time.   Up pops the Create New Task dialog in Outlook and you save that
      link for followup at a later time.<br /><br />
      Get it here:
   </p>
        <p>
          <a href="http://philiprieck.com/blog/archive/2004/05/11/FollowupURL.aspx">http://philiprieck.com/blog/archive/2004/05/11/FollowupURL.aspx</a>
        </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=aa72140a-c80f-400a-94cc-261bc1c0a91c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>NUnit post build script to copy config file</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,0ab6aeb8-7662-4072-ac7e-da3c3811f3aa.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,0ab6aeb8-7662-4072-ac7e-da3c3811f3aa.aspx</id>
    <published>2005-05-06T12:20:23.3410000-07:00</published>
    <updated>2005-10-18T12:20:23.3415327-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Not a big deal but every time I create a new testing assembly I have to search for
      this stuff.  Put these instructions in the post-build event in project properties
      for the NUnit assembly.  It will copy the app.config from the project directory
      into the bin and rename it correctly.   One less manual step we'll have
      to do when setting up a stream to build and run the test projects.
   </p>
        <p>
      del $(TargetDir)$(TargetFileName).config<br />
      copy ..\..\app.config $(TargetDir)<br />
      rename app.config $(TargetFileName).config
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=0ab6aeb8-7662-4072-ac7e-da3c3811f3aa" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Who says Bruce is just for dumb Jersey guys?</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,4cfeb165-353d-45a9-8174-a23406872346.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,4cfeb165-353d-45a9-8174-a23406872346.aspx</id>
    <published>2005-05-04T12:18:02.9810000-07:00</published>
    <updated>2006-03-05T08:44:31.4761250-08:00</updated>
    <category term="Important Stuff" label="Important Stuff" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      This paper contrasts popular management books/style with Springsteen's writing making
      a case that managers would be better served being honest (and trusting in people's
      desire for honesty) than preaching on some unrealistic utopia that
      could never be reached.<br /><br /><a href="http://www.mngt.waikato.ac.nz/ejrot/cmsconference/2003/abstracts/music/rhodes.pdf">The
      Springsteen Manifesto</a></p>
        <p>
      Bruuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuce
   </p>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=4cfeb165-353d-45a9-8174-a23406872346" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Threadsafe counters and lock types</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,0c07821a-3657-4c0c-b7c6-cde942b3c1a6.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,0c07821a-3657-4c0c-b7c6-cde942b3c1a6.aspx</id>
    <published>2005-05-01T12:16:24.0270000-07:00</published>
    <updated>2005-10-18T12:19:08.4973037-07:00</updated>
    <category term=".Net" label=".Net" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <div class="postbody">
          <p>
         There's an interesting article in the new <a href="http://msdn.microsoft.com/msdnmag">MSDN
         magazine </a>about hyperthreaded CPUs and optimizing code for use with them. 
         A section of the article talks about synchronization bugs and shows some different locking
         mechanisms and performance differences between them.  I started with some of
         the code they supplied, added some other locking mechanisms and hacked up some
         performance metrics.  The code is attached for those interested.  Some best
         practices mentioned in the article and things I found when playing around:
      </p>
          <p>
         1-Avoid using locking in a loop.  This seems obvious but its very easy to fall
         into this trap if updating some shared counter.  If possible try to increment
         a local variable in the loop and then lock/update the shared variable once at the
         end.
      </p>
          <p>
         2-Use the static members of the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemThreadingInterlockedClassTopic.asp">Interlocked </a>class
         instead of the C# lock statement (Monitor) when updating integer/long values. 
         Interlocked.Increment was 3 times faster than locking on an object.
      </p>
          <p>
         The code also demonstrates the use of ManualResetEvent and WaitHandle... nothing new
         to most of you.
      </p>
          <p>
         The ultimate message of the article... hyperthreaded CPUs give developers more opportunity to
         look to multithreading as a way to increase throughput and performance.  In many
         cases using multithreading with single processor machines just gives the <strong>perception</strong> of
         increased performance... the CPU can still only do one thing at a time.  Many
         times multithreading on a single processor machine actually degrades performance
         because of the context switching that occurs.  Hyperthreading goes one step further
         and creates 2 logical CPUs per physical CPU;   still not the same thing
         as a multiprocessor machine but a step that could introduce synchronization
         bugs that weren't visible before.
      </p>
          <p>
         I guess the bottom line, as always, is to code defensively.
      </p>
        </div>
        <a href="http://extremeconsulting.net/blog/content/binary/ThreadSafeCounter.zip">ThreadSafeCounter.zip
   (20.04 KB)</a>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=0c07821a-3657-4c0c-b7c6-cde942b3c1a6" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Factory Design Pattern &amp; PatternShare.org</title>
    <link rel="alternate" type="text/html" href="http://extremeconsulting.net/blog/PermaLink,guid,d14eee3e-26c5-49f2-8778-3f102048cf79.aspx" />
    <id>http://extremeconsulting.net/blog/PermaLink,guid,d14eee3e-26c5-49f2-8778-3f102048cf79.aspx</id>
    <published>2005-03-28T13:00:19.0000000-07:00</published>
    <updated>2005-10-18T12:00:35.5683060-07:00</updated>
    <category term="General Computing" label="General Computing" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <div>
          <div class="postbody">
            <p>
            As <a href="http://www.dotnetgeekette.com/blogs/default.aspx">Anna </a>correctly pointed
            out the abstract factory implementation would use an interface so that the
            client does not directly reference the concrete class.<br /></p>
            <p>
            This is a great wiki with pattern overviews:<br /><a href="http://patternshare.org/default.aspx/Home.HomePage">http://patternshare.org/default.aspx/Home.HomePage</a><br /></p>
            <p>
            This is an even better site showing UML and implementation:<br /><a href="http://www.dofactory.com/Patterns/Patterns.aspx">http://www.dofactory.com/Patterns/Patterns.aspx</a></p>
          </div>
        </div>
        <img width="0" height="0" src="http://extremeconsulting.net/blog/aggbug.ashx?id=d14eee3e-26c5-49f2-8778-3f102048cf79" />
      </div>
    </content>
  </entry>
</feed>