<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Andrew Hay - fun</title>
    <link>http://www.a7drew.com/blog/</link>
    <description>Thinking way too long about the subtitle</description>
    <language>en-us</language>
    <copyright>Andrew Hay</copyright>
    <lastBuildDate>Wed, 19 Dec 2012 19:00:00 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.12105.0</generator>
    <managingEditor>andrewcameronhay@hotmail.com</managingEditor>
    <webMaster>andrewcameronhay@hotmail.com</webMaster>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=c391ac3b-36b2-4740-ac56-590ad1fc7440</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,c391ac3b-36b2-4740-ac56-590ad1fc7440.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,c391ac3b-36b2-4740-ac56-590ad1fc7440.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c391ac3b-36b2-4740-ac56-590ad1fc7440</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img border="0" align="left" src="http://www.andrewdothay.net/blog/content/binary/winter2012.jpg" hspace="8" vspace="8" />This
has been one of the more memorable years with moving to a new house, my boy turning
four, working on awesome projects, running consistently and getting into the best
shape I've been since my twenties.
</p>
        <p>
Looking forward to 2013, even though I have this strange propensity to select even
numbers on thermostat and volume controls.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=c391ac3b-36b2-4740-ac56-590ad1fc7440" />
      </body>
      <title>First and Last Post of 2012</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,c391ac3b-36b2-4740-ac56-590ad1fc7440.aspx</guid>
      <link>http://www.a7drew.com/blog/2012/12/19/FirstAndLastPostOf2012.aspx</link>
      <pubDate>Wed, 19 Dec 2012 19:00:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img border=0 align="left" src="http://www.andrewdothay.net/blog/content/binary/winter2012.jpg" hspace="8" vspace="8" /&gt;This
has been one of the more memorable years with moving to a new house, my boy turning
four, working on awesome projects, running consistently and getting into the best
shape I've been since my twenties.
&lt;/p&gt;
&lt;p&gt;
Looking forward to 2013, even though I have this strange propensity to select even
numbers on thermostat and volume controls.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=c391ac3b-36b2-4740-ac56-590ad1fc7440" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,c391ac3b-36b2-4740-ac56-590ad1fc7440.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=c99aac3b-36b2-4740-ac56-590ad1fc7440</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,c99aac3b-36b2-4740-ac56-590ad1fc7440.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,c99aac3b-36b2-4740-ac56-590ad1fc7440.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c99aac3b-36b2-4740-ac56-590ad1fc7440</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/h1024.jpg">
            <img border="0" src="http://www.andrewdothay.net/blog/content/binary/h600.jpg" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=c99aac3b-36b2-4740-ac56-590ad1fc7440" />
      </body>
      <title>Caught an Angel</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,c99aac3b-36b2-4740-ac56-590ad1fc7440.aspx</guid>
      <link>http://www.a7drew.com/blog/2011/08/24/CaughtAnAngel.aspx</link>
      <pubDate>Wed, 24 Aug 2011 23:42:51 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/h1024.jpg"&gt;&lt;img border="0" src="http://www.andrewdothay.net/blog/content/binary/h600.jpg"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=c99aac3b-36b2-4740-ac56-590ad1fc7440" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,c99aac3b-36b2-4740-ac56-590ad1fc7440.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="I do (change your EXIF data)" border="0" alt="I do (change your EXIF data)" align="right" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowToEditJPGMetaInfo_8ABD/ring_5.jpg" width="404" height="322" />We
just got back from a great weekend at the beach; my sister-in-law got married on the
sands near Haystack Rock in Cannon Beach, OR. Really a great trip from start to finish. 
</p>
        <p>
My wife accepted the photographer duties and snapped nearly 2K photos with our Nikon
D40 and a Nikon D60 that we borrowed from a friend. She had a zoom lens on one and
a short lens on the other to avoid the need to change lenses in mid-moment. That part
worked great. 
</p>
        <p>
The part that we overlooked was the current date/time on each camera; they were not
synchronized. This will make sorting photos by time more difficult. No problem, I
say, on the drive back home. I’m a developer and JPG files have meta info that I can
manipulate, right? 
</p>
        <p>
It turns out that its not all that easy. Its actually a remarkable pain in the ass,
hence this blog post (that’s the remark-able part).
</p>
        <p>
I started with an online search and found <a href="http://www.hanselman.com/blog/AccessingEXIFPhotoDataFromJPEGsWithPowerShell.aspx" target="_blank">Hanselman’s
post</a> about combining PowerShell with Omar Shahine’s library, ImageLibrary.dll
that is evidently no longer accessible. Big phat 404 while trying to get that assembly.
</p>
        <p>
Next, I did some searches specific to StackOverflow.com and saw some posts about how
difficult reading/writing this meta data can be. At this point, I was beginning to
wonder if my wife was going to hear a broken promise or not. It wasn’t looking good.
</p>
        <p>
I found out that JPG files store meta data using EXIF, or Exchangeable Image File
Format, a standard used by the digital still camera industry. It looked like C# 4.0
could crack this open, but I might have to do get my hands dirty with some bit shuffling.
No worries, I was up for it. It didn’t look like there was a library out there that
was going to fall into my lap, so I cracked open Visual Studio 2010 and saw what kind
of trouble I could get into with Intellisense and a gin and tonic.
</p>
        <p>
          <strong>Let’s Take It Out for a Loop</strong>
        </p>
        <p>
I created a new project, loaded a Bitmap class with a sample JPG and iterated over
the properties:
</p>
        <div id="codeSnippetWrapper">
          <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum1"> 1:</span>
              <span style="color: #0000ff">using</span> System;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum2"> 2:</span>
              <span style="color: #0000ff">using</span> System.Drawing;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum3"> 3:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum4"> 4:</span>
              <span style="color: #0000ff">namespace</span> ReadExifInJPG</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum5"> 5:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum6"> 6:</span>
              <span style="color: #0000ff">class</span> Program</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum7"> 7:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum8"> 8:</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">void</span> Main()</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum9"> 9:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum10"> 10:</span> var
bitmap = <span style="color: #0000ff">new</span> Bitmap(<span style="color: #006080">"c:\\temp\\somephoto.jpg"</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum11"> 11:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum12"> 12:</span>
              <span style="color: #0000ff">foreach</span> (var
item <span style="color: #0000ff">in</span> bitmap.PropertyItems)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum13"> 13:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum14"> 14:</span> Console.WriteLine(<span style="color: #006080">"Id:
{0}, Type: {1}, Value: {2}"</span>, </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum15"> 15:</span> item.Id,
item.Type, item.Value);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum16"> 16:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum17"> 17:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum18"> 18:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum19"> 19:</span> }</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
I had lots of properties in my sample photo:
</p>
        <p>
          <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="output of simple iteration" border="0" alt="output of simple iteration" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowToEditJPGMetaInfo_8ABD/jpgexifoutput_1.png" width="421" height="927" />
        </p>
        <p>
I was thinking that this was going to be smooth sailing until I saw the values listed
as byte arrays. Ugh. Then I read a EXIF specification that said the values can be
stored in multiple formats and there are a ton of properties. I had over fifty on
a single JPG image. I needed to find the property that told me if the given photo
was taken by a Nikon D60 or a D40, and then change the date on the D60 images. Here’s
the EXIF specifications: <a href="http://www.exif.org/specifications.html">http://www.exif.org/specifications.html</a>,
and what a great document to read! Ugh.
</p>
        <p>
          <strong>I Just Want My Property</strong>
        </p>
        <p>
I found a list of property tags in numerical order on MSDN, note the id values are
listed in hex, so 0x0132 (hex) equals 306 (decimal): <a href="http://msdn.microsoft.com/en-us/library/ms534418(VS.85).aspx">http://msdn.microsoft.com/en-us/library/ms534418(VS.85).aspx</a></p>
        <p>
When you go about reading or changing a given property, there are three parts to consider: 
</p>
        <ol>
          <li>
the id number that identifies the given property 
</li>
          <li>
the type number which describes the data format 
</li>
          <li>
the actual data, encoded in the least accessible format you could want</li>
        </ol>
        <p>
Here’s a list of numeric types that identify the corresponding data format:
</p>
        <ol>
          <li>
A Byte 
</li>
          <li>
An array of Byte objects encoded as ASCII 
</li>
          <li>
A 16-bit integer 
</li>
          <li>
A 32-bit integer 
</li>
          <li>
An array of two Byte objects that represent a rational number 
</li>
          <li>
Not used 
</li>
          <li>
Undefined 
</li>
          <li>
Not used 
</li>
          <li>
SLong 
</li>
          <li>
SRational</li>
        </ol>
        <p>
Fortunately, everything I was interested in was of type 2, a byte array. This is a
great MSDN article that gave me a bunch of tips on how to manipulate the EXIF data: <a href="http://msdn.microsoft.com/en-us/library/xddt0dz7.aspx">http://msdn.microsoft.com/en-us/library/xddt0dz7.aspx</a></p>
        <p>
The property id of 306 holds the date of the photo, its a type 2 property, so the
value is stored in a byte array. Here’s how to read the string value:
</p>
        <div id="codeSnippetWrapper">
          <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum1"> 1:</span> var
property = bitmap.GetPropertyItem(306);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum2"> 2:</span> System.Text.ASCIIEncoding
encoding = <span style="color: #0000ff">new</span> System.Text.ASCIIEncoding();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum3"> 3:</span>
              <span style="color: #0000ff">string</span>
              <span style="color: #0000ff">value</span> =
encoding.GetString(property.Value);</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
          <br />
          <strong>Caution, Byte Counting Ahead</strong>
        </p>
        <p>
Note, the date properties that I’m interested in updating have values stored as byte
arrays. More specifically, they’re exactly 20 bytes long. At first I wasn’t respecting
that boundary and I just let .Net do it’s thing to convert my formatted date string
into a byte array. When I tried to read the value back, it was empty because I overflowed
the value. 
</p>
        <p>
After some noodling, I changed my code to write out exactly 20 bytes of data, starting
at precisely 23 bytes into my new byte array, as follows.
</p>
        <div id="codeSnippetWrapper">
          <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum1"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> ChangeTimeStamp(Bitmap
bitmap, <span style="color: #0000ff">int</span> minutesToAdd)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum2"> 2:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum3"> 3:</span> DateTime
originalDateTime = GetOriginalDateTime(bitmap);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum4"> 4:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum5"> 5:</span> var
newDateTime = originalDateTime.AddMinutes(minutesToAdd);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum6"> 6:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum7"> 7:</span> BinaryFormatter
bf = <span style="color: #0000ff">new</span> BinaryFormatter();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum8"> 8:</span> MemoryStream
ms = <span style="color: #0000ff">new</span> MemoryStream();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum9"> 9:</span>
              <span style="color: #0000ff">string</span> formattedNewDateTime
= newDateTime.ToString(<span style="color: #006080">"yyyy:MM:dd HH:mm:ss"</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum10"> 10:</span> bf.Serialize(ms,
formattedNewDateTime);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum11"> 11:</span> ms.Seek(0,
0);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum12"> 12:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum13"> 13:</span> var
tempArray = ms.ToArray();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum14"> 14:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum15"> 15:</span>
              <span style="color: #0000ff">byte</span>[]
byteArray = <span style="color: #0000ff">new</span><span style="color: #0000ff">byte</span>[20];</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum16"> 16:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum17"> 17:</span> var
x = 0;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum18"> 18:</span>
              <span style="color: #0000ff">for</span> (<span style="color: #0000ff">int</span> i
= 23; i &lt; (23 + 19); i++)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum19"> 19:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum20"> 20:</span> byteArray[x]
= tempArray[i];</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum21"> 21:</span> x++;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum22"> 22:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum23"> 23:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum24"> 24:</span> SetNewDateTime(bitmap,
byteArray, 306);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum25"> 25:</span> SetNewDateTime(bitmap,
byteArray, 36867);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum26"> 26:</span> SetNewDateTime(bitmap,
byteArray, 36868);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum27"> 27:</span> }</pre>
            <!--CRLF-->
          </div>
        </div>
        <div> 
</div>
        <p>
Note, the previous code shows I’m writing the same date to three different property
settings (306, 36867, and 36868). They all had the same date value, so I figured the
best thing to do was keep them all in sync. 
</p>
        <p>
          <strong>It Works on My Machine</strong>
        </p>
        <p>
So, I was finally done with the code and I tested it with a bunch of files on my machine.
Worked great. I installed VS 2010 C# Express on my netbook so I could create a console
application and run it on my wife’s laptop. I had been abusing a ASP.Net Web Forms
application with Visual Web Developer Express on my netbook. I made a quick console
app, copied it to my wife’s laptop and ka-pow! It no worky. Puzzled, I tried to think
what was wrong for about 30 minutes. After a couple of assertions inserted into my
code, I realized she had some non-JPG files in the folder and my program wasn’t filtering
for only JPG files. Doh! I did manage to get in a quick “hey, it works on my machine”
comment to my wife, but she didn’t think it was as funny as I did.
</p>
        <p>
          <strong>Nothing But The Code, The Whole Code, So Help Me .Net Runtime?</strong>
        </p>
        <p>
Here’s the final class I built, in “good enough” format. The entire coding time, not
including the installation of VS 2010 Express on my netbook, or .Net 4 on my wife’s
laptop was about 90 minutes. The console program just takes this class, passes in
the source and destination directories, along with the number of minutes to adjust
the timestamp on the photo.
</p>
        <div id="codeSnippetWrapper">
          <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum1"> 1:</span>
              <span style="color: #0000ff">using</span> System;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum2"> 2:</span>
              <span style="color: #0000ff">using</span> System.Collections.Generic;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum3"> 3:</span>
              <span style="color: #0000ff">using</span> System.Linq;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum4"> 4:</span>
              <span style="color: #0000ff">using</span> System.Text;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum5"> 5:</span>
              <span style="color: #0000ff">using</span> System.IO;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum6"> 6:</span>
              <span style="color: #0000ff">using</span> System.Drawing;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum7"> 7:</span>
              <span style="color: #0000ff">using</span> System.Runtime.Serialization.Formatters.Binary;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum8"> 8:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum9"> 9:</span>
              <span style="color: #0000ff">namespace</span> ImageMetaTool</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum10"> 10:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum11"> 11:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">class</span> TimeEditorService</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum12"> 12:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum13"> 13:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">void</span> AdjustDateTime(<span style="color: #0000ff">string</span> soureDir, <span style="color: #0000ff">string</span> destDir, <span style="color: #0000ff">int</span> minutesToAdd)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum14"> 14:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum15"> 15:</span>
              <span style="color: #0000ff">if</span> (!Directory.Exists(soureDir))</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum16"> 16:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum17"> 17:</span> Console.WriteLine(<span style="color: #006080">"Source
directory does not exist."</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum18"> 18:</span>
              <span style="color: #0000ff">return</span>;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum19"> 19:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum20"> 20:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum21"> 21:</span>
              <span style="color: #0000ff">if</span> (!Directory.Exists(destDir))</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum22"> 22:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum23"> 23:</span> Console.WriteLine(<span style="color: #006080">"Destination
directory does not exist."</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum24"> 24:</span>
              <span style="color: #0000ff">return</span>;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum25"> 25:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum26"> 26:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum27"> 27:</span>
              <span style="color: #0000ff">int</span> x
= 0;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum28"> 28:</span> var
list = Directory.GetFiles(soureDir, <span style="color: #006080">"*.jpg"</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum29"> 29:</span>
              <span style="color: #0000ff">foreach</span> (var
filename <span style="color: #0000ff">in</span> list)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum30"> 30:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum31"> 31:</span> Console.WriteLine(<span style="color: #006080">"Processing
image {0} of {1}; {2}"</span>, x, list.Length, filename);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum32"> 32:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum33"> 33:</span>
              <span style="color: #0000ff">using</span> (var
fs = File.OpenRead(filename))</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum34"> 34:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum35"> 35:</span> var
bitmap = <span style="color: #0000ff">new</span> Bitmap(fs);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum36"> 36:</span> ProcessFile(bitmap,
minutesToAdd);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum37"> 37:</span> bitmap.Save(Path.Combine(destDir,
Path.GetFileName(filename)));</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum38"> 38:</span> x++;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum39"> 39:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum40"> 40:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum41"> 41:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum42"> 42:</span> Console.WriteLine(<span style="color: #006080">"Processing
completed."</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum43"> 43:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum44"> 44:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum45"> 45:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> ProcessFile(Bitmap
bitmap, <span style="color: #0000ff">int</span> minutesToAdd)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum46"> 46:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum47"> 47:</span>
              <span style="color: #0000ff">if</span> (!IsD60(bitmap))</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum48"> 48:</span>
              <span style="color: #0000ff">return</span>;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum49"> 49:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum50"> 50:</span> ChangeTimeStamp(bitmap,
minutesToAdd);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum51"> 51:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum52"> 52:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum53"> 53:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> ChangeTimeStamp(Bitmap
bitmap, <span style="color: #0000ff">int</span> minutesToAdd)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum54"> 54:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum55"> 55:</span> DateTime
originalDateTime = GetOriginalDateTime(bitmap);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum56"> 56:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum57"> 57:</span> var
newDateTime = originalDateTime.AddMinutes(minutesToAdd);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum58"> 58:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum59"> 59:</span> BinaryFormatter
bf = <span style="color: #0000ff">new</span> BinaryFormatter();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum60"> 60:</span> MemoryStream
ms = <span style="color: #0000ff">new</span> MemoryStream();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum61"> 61:</span>
              <span style="color: #0000ff">string</span> formattedNewDateTime
= newDateTime.ToString(<span style="color: #006080">"yyyy:MM:dd HH:mm:ss"</span>);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum62"> 62:</span> bf.Serialize(ms,
formattedNewDateTime);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum63"> 63:</span> ms.Seek(0,
0);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum64"> 64:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum65"> 65:</span> var
tempArray = ms.ToArray();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum66"> 66:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum67"> 67:</span>
              <span style="color: #0000ff">byte</span>[]
byteArray = <span style="color: #0000ff">new</span><span style="color: #0000ff">byte</span>[20];</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum68"> 68:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum69"> 69:</span> var
x = 0;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum70"> 70:</span>
              <span style="color: #0000ff">for</span> (<span style="color: #0000ff">int</span> i
= 23; i &lt; (23 + 19); i++)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum71"> 71:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum72"> 72:</span> byteArray[x]
= tempArray[i];</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum73"> 73:</span> x++;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum74"> 74:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum75"> 75:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum76"> 76:</span> SetNewDateTime(bitmap,
byteArray, 306);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum77"> 77:</span> SetNewDateTime(bitmap,
byteArray, 36867);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum78"> 78:</span> SetNewDateTime(bitmap,
byteArray, 36868);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum79"> 79:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum80"> 80:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum81"> 81:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> SetNewDateTime(Bitmap
bitmap, <span style="color: #0000ff">byte</span>[] newDateTime, <span style="color: #0000ff">int</span> propertyNumber)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum82"> 82:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum83"> 83:</span> var
property = bitmap.GetPropertyItem(propertyNumber);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum84"> 84:</span> property.Value
= newDateTime;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum85"> 85:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum86"> 86:</span> bitmap.SetPropertyItem(property);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum87"> 87:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum88"> 88:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum89"> 89:</span>
              <span style="color: #0000ff">private</span> DateTime
GetOriginalDateTime(Bitmap bitmap)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum90"> 90:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum91"> 91:</span> var
property = bitmap.GetPropertyItem(306);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum92"> 92:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum93"> 93:</span> System.Text.ASCIIEncoding
encoding = <span style="color: #0000ff">new</span> System.Text.ASCIIEncoding();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum94"> 94:</span>
              <span style="color: #0000ff">string</span>
              <span style="color: #0000ff">value</span> =
encoding.GetString(property.Value);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum95"> 95:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum96"> 96:</span>
              <span style="color: #0000ff">string</span> value2
= <span style="color: #0000ff">value</span>.Split(<span style="color: #006080">' '</span>)[0].Replace(<span style="color: #006080">":"</span>, <span style="color: #006080">"/"</span>)
+ <span style="color: #006080">" "</span> + <span style="color: #0000ff">value</span>.Split(<span style="color: #006080">'
'</span>)[1];</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum97"> 97:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum98"> 98:</span>
              <span style="color: #0000ff">return</span> DateTime.Parse(value2); <span style="color: #008000">//2010:08:14
14:23:14</span></pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum99"> 99:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum100"> 100:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum101"> 101:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">bool</span> IsD60(Bitmap
bitmap)</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum102"> 102:</span> {</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum103"> 103:</span> var
modelProperty = bitmap.GetPropertyItem(272);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum104"> 104:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum105"> 105:</span> System.Text.ASCIIEncoding
encoding = <span style="color: #0000ff">new</span> System.Text.ASCIIEncoding();</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum106"> 106:</span>
              <span style="color: #0000ff">string</span> modelName
= encoding.GetString(modelProperty.Value);</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum107"> 107:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum108"> 108:</span>
              <span style="color: #0000ff">if</span> (modelName.Contains(<span style="color: #006080">"D60"</span>)) <span style="color: #008000">//
NIKON D60</span></pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum109"> 109:</span>
              <span style="color: #0000ff">return</span>
              <span style="color: #0000ff">true</span>;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum110"> 110:</span>  </pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum111"> 111:</span>
              <span style="color: #0000ff">return</span>
              <span style="color: #0000ff">false</span>;</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum112"> 112:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum113"> 113:</span> }</pre>
            <!--CRLF-->
            <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
              <span style="color: #606060" id="lnum114"> 114:</span> }</pre>
            <!--CRLF-->
          </div>
        </div>
        <p>
 
</p>
        <p>
I hope you have a good time futzing with your EXIF data!
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d" />
      </body>
      <title>How to Edit Meta Data Inside JPG Files with C#</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d.aspx</guid>
      <link>http://www.a7drew.com/blog/2010/08/16/HowToEditMetaDataInsideJPGFilesWithC.aspx</link>
      <pubDate>Mon, 16 Aug 2010 18:36:13 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="I do (change your EXIF data)" border="0" alt="I do (change your EXIF data)" align="right" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowToEditJPGMetaInfo_8ABD/ring_5.jpg" width="404" height="322"&gt;We
just got back from a great weekend at the beach; my sister-in-law got married on the
sands near Haystack Rock in Cannon Beach, OR. Really a great trip from start to finish. 
&lt;/p&gt;
&lt;p&gt;
My wife accepted the photographer duties and snapped nearly 2K photos with our Nikon
D40 and a Nikon D60 that we borrowed from a friend. She had a zoom lens on one and
a short lens on the other to avoid the need to change lenses in mid-moment. That part
worked great. 
&lt;/p&gt;
&lt;p&gt;
The part that we overlooked was the current date/time on each camera; they were not
synchronized. This will make sorting photos by time more difficult. No problem, I
say, on the drive back home. I’m a developer and JPG files have meta info that I can
manipulate, right? 
&lt;/p&gt;
&lt;p&gt;
It turns out that its not all that easy. Its actually a remarkable pain in the ass,
hence this blog post (that’s the remark-able part).
&lt;/p&gt;
&lt;p&gt;
I started with an online search and found &lt;a href="http://www.hanselman.com/blog/AccessingEXIFPhotoDataFromJPEGsWithPowerShell.aspx" target="_blank"&gt;Hanselman’s
post&lt;/a&gt; about combining PowerShell with Omar Shahine’s library, ImageLibrary.dll
that is evidently no longer accessible. Big phat 404 while trying to get that assembly.
&lt;/p&gt;
&lt;p&gt;
Next, I did some searches specific to StackOverflow.com and saw some posts about how
difficult reading/writing this meta data can be. At this point, I was beginning to
wonder if my wife was going to hear a broken promise or not. It wasn’t looking good.
&lt;/p&gt;
&lt;p&gt;
I found out that JPG files store meta data using EXIF, or Exchangeable Image File
Format, a standard used by the digital still camera industry. It looked like C# 4.0
could crack this open, but I might have to do get my hands dirty with some bit shuffling.
No worries, I was up for it. It didn’t look like there was a library out there that
was going to fall into my lap, so I cracked open Visual Studio 2010 and saw what kind
of trouble I could get into with Intellisense and a gin and tonic.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Let’s Take It Out for a Loop&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I created a new project, loaded a Bitmap class with a sample JPG and iterated over
the properties:
&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt; 2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Drawing;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt; 3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt; 4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ReadExifInJPG&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt; 5:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt; 7:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt; 8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main()&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt; 9:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt; 10:&lt;/span&gt; var
bitmap = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Bitmap(&lt;span style="color: #006080"&gt;"c:\\temp\\somephoto.jpg"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt; 11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt; 12:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var
item &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; bitmap.PropertyItems)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt; 13:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt; 14:&lt;/span&gt; Console.WriteLine(&lt;span style="color: #006080"&gt;"Id:
{0}, Type: {1}, Value: {2}"&lt;/span&gt;, &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt; 15:&lt;/span&gt; item.Id,
item.Type, item.Value);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt; 16:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt; 17:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt; 18:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt; 19:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
I had lots of properties in my sample photo:
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="output of simple iteration" border="0" alt="output of simple iteration" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowToEditJPGMetaInfo_8ABD/jpgexifoutput_1.png" width="421" height="927"&gt; 
&lt;/p&gt;
&lt;p&gt;
I was thinking that this was going to be smooth sailing until I saw the values listed
as byte arrays. Ugh. Then I read a EXIF specification that said the values can be
stored in multiple formats and there are a ton of properties. I had over fifty on
a single JPG image. I needed to find the property that told me if the given photo
was taken by a Nikon D60 or a D40, and then change the date on the D60 images. Here’s
the EXIF specifications: &lt;a href="http://www.exif.org/specifications.html"&gt;http://www.exif.org/specifications.html&lt;/a&gt;,
and what a great document to read! Ugh.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;I Just Want My Property&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I found a list of property tags in numerical order on MSDN, note the id values are
listed in hex, so 0x0132 (hex) equals 306 (decimal): &lt;a href="http://msdn.microsoft.com/en-us/library/ms534418(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms534418(VS.85).aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
When you go about reading or changing a given property, there are three parts to consider: 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
the id number that identifies the given property 
&lt;li&gt;
the type number which describes the data format 
&lt;li&gt;
the actual data, encoded in the least accessible format you could want&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Here’s a list of numeric types that identify the corresponding data format:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
A Byte 
&lt;li&gt;
An array of Byte objects encoded as ASCII 
&lt;li&gt;
A 16-bit integer 
&lt;li&gt;
A 32-bit integer 
&lt;li&gt;
An array of two Byte objects that represent a rational number 
&lt;li&gt;
Not used 
&lt;li&gt;
Undefined 
&lt;li&gt;
Not used 
&lt;li&gt;
SLong 
&lt;li&gt;
SRational&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Fortunately, everything I was interested in was of type 2, a byte array. This is a
great MSDN article that gave me a bunch of tips on how to manipulate the EXIF data: &lt;a href="http://msdn.microsoft.com/en-us/library/xddt0dz7.aspx"&gt;http://msdn.microsoft.com/en-us/library/xddt0dz7.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The property id of 306 holds the date of the photo, its a type 2 property, so the
value is stored in a byte array. Here’s how to read the string value:
&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt; 1:&lt;/span&gt; var
property = bitmap.GetPropertyItem(306);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt; 2:&lt;/span&gt; System.Text.ASCIIEncoding
encoding = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; System.Text.ASCIIEncoding();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt; =
encoding.GetString(property.Value);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;br&gt;
&lt;strong&gt;Caution, Byte Counting Ahead&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Note, the date properties that I’m interested in updating have values stored as byte
arrays. More specifically, they’re exactly 20 bytes long. At first I wasn’t respecting
that boundary and I just let .Net do it’s thing to convert my formatted date string
into a byte array. When I tried to read the value back, it was empty because I overflowed
the value. 
&lt;/p&gt;
&lt;p&gt;
After some noodling, I changed my code to write out exactly 20 bytes of data, starting
at precisely 23 bytes into my new byte array, as follows.
&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ChangeTimeStamp(Bitmap
bitmap, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; minutesToAdd)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt; 3:&lt;/span&gt; DateTime
originalDateTime = GetOriginalDateTime(bitmap);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt; 4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt; 5:&lt;/span&gt; var
newDateTime = originalDateTime.AddMinutes(minutesToAdd);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt; 6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt; 7:&lt;/span&gt; BinaryFormatter
bf = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BinaryFormatter();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt; 8:&lt;/span&gt; MemoryStream
ms = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt; 9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; formattedNewDateTime
= newDateTime.ToString(&lt;span style="color: #006080"&gt;"yyyy:MM:dd HH:mm:ss"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt; 10:&lt;/span&gt; bf.Serialize(ms,
formattedNewDateTime);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt; 11:&lt;/span&gt; ms.Seek(0,
0);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt; 12:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt; 13:&lt;/span&gt; var
tempArray = ms.ToArray();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt; 14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt; 15:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[]
byteArray = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[20];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt; 16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt; 17:&lt;/span&gt; var
x = 0;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt; 18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i
= 23; i &amp;lt; (23 + 19); i++)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt; 19:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt; 20:&lt;/span&gt; byteArray[x]
= tempArray[i];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt; 21:&lt;/span&gt; x++;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt; 22:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt; 23:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt; 24:&lt;/span&gt; SetNewDateTime(bitmap,
byteArray, 306);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt; 25:&lt;/span&gt; SetNewDateTime(bitmap,
byteArray, 36867);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt; 26:&lt;/span&gt; SetNewDateTime(bitmap,
byteArray, 36868);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt; 27:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;p&gt;
Note, the previous code shows I’m writing the same date to three different property
settings (306, 36867, and 36868). They all had the same date value, so I figured the
best thing to do was keep them all in sync. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;It Works on My Machine&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So, I was finally done with the code and I tested it with a bunch of files on my machine.
Worked great. I installed VS 2010 C# Express on my netbook so I could create a console
application and run it on my wife’s laptop. I had been abusing a ASP.Net Web Forms
application with Visual Web Developer Express on my netbook. I made a quick console
app, copied it to my wife’s laptop and ka-pow! It no worky. Puzzled, I tried to think
what was wrong for about 30 minutes. After a couple of assertions inserted into my
code, I realized she had some non-JPG files in the folder and my program wasn’t filtering
for only JPG files. Doh! I did manage to get in a quick “hey, it works on my machine”
comment to my wife, but she didn’t think it was as funny as I did.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Nothing But The Code, The Whole Code, So Help Me .Net Runtime?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Here’s the final class I built, in “good enough” format. The entire coding time, not
including the installation of VS 2010 Express on my netbook, or .Net 4 on my wife’s
laptop was about 90 minutes. The console program just takes this class, passes in
the source and destination directories, along with the number of minutes to adjust
the timestamp on the photo.
&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt; 2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt; 4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.IO;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Drawing;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Runtime.Serialization.Formatters.Binary;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt; 8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt; 9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ImageMetaTool&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt; 10:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt; 11:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TimeEditorService&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt; 12:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt; 13:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; AdjustDateTime(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; soureDir, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; destDir, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; minutesToAdd)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt; 14:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt; 15:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!Directory.Exists(soureDir))&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt; 16:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt; 17:&lt;/span&gt; Console.WriteLine(&lt;span style="color: #006080"&gt;"Source
directory does not exist."&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt; 18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt; 19:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt; 20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt; 21:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!Directory.Exists(destDir))&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt; 22:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt; 23:&lt;/span&gt; Console.WriteLine(&lt;span style="color: #006080"&gt;"Destination
directory does not exist."&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt; 24:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt; 25:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt; 26:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt; 27:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; x
= 0;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt; 28:&lt;/span&gt; var
list = Directory.GetFiles(soureDir, &lt;span style="color: #006080"&gt;"*.jpg"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt; 29:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var
filename &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; list)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt; 30:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt; 31:&lt;/span&gt; Console.WriteLine(&lt;span style="color: #006080"&gt;"Processing
image {0} of {1}; {2}"&lt;/span&gt;, x, list.Length, filename);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt; 32:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt; 33:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (var
fs = File.OpenRead(filename))&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt; 34:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt; 35:&lt;/span&gt; var
bitmap = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Bitmap(fs);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt; 36:&lt;/span&gt; ProcessFile(bitmap,
minutesToAdd);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum37"&gt; 37:&lt;/span&gt; bitmap.Save(Path.Combine(destDir,
Path.GetFileName(filename)));&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum38"&gt; 38:&lt;/span&gt; x++;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum39"&gt; 39:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum40"&gt; 40:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum41"&gt; 41:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum42"&gt; 42:&lt;/span&gt; Console.WriteLine(&lt;span style="color: #006080"&gt;"Processing
completed."&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum43"&gt; 43:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum44"&gt; 44:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum45"&gt; 45:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ProcessFile(Bitmap
bitmap, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; minutesToAdd)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum46"&gt; 46:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum47"&gt; 47:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!IsD60(bitmap))&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum48"&gt; 48:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum49"&gt; 49:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum50"&gt; 50:&lt;/span&gt; ChangeTimeStamp(bitmap,
minutesToAdd);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum51"&gt; 51:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum52"&gt; 52:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum53"&gt; 53:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ChangeTimeStamp(Bitmap
bitmap, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; minutesToAdd)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum54"&gt; 54:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum55"&gt; 55:&lt;/span&gt; DateTime
originalDateTime = GetOriginalDateTime(bitmap);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum56"&gt; 56:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum57"&gt; 57:&lt;/span&gt; var
newDateTime = originalDateTime.AddMinutes(minutesToAdd);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum58"&gt; 58:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum59"&gt; 59:&lt;/span&gt; BinaryFormatter
bf = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BinaryFormatter();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum60"&gt; 60:&lt;/span&gt; MemoryStream
ms = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum61"&gt; 61:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; formattedNewDateTime
= newDateTime.ToString(&lt;span style="color: #006080"&gt;"yyyy:MM:dd HH:mm:ss"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum62"&gt; 62:&lt;/span&gt; bf.Serialize(ms,
formattedNewDateTime);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum63"&gt; 63:&lt;/span&gt; ms.Seek(0,
0);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum64"&gt; 64:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum65"&gt; 65:&lt;/span&gt; var
tempArray = ms.ToArray();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum66"&gt; 66:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum67"&gt; 67:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[]
byteArray = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[20];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum68"&gt; 68:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum69"&gt; 69:&lt;/span&gt; var
x = 0;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum70"&gt; 70:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i
= 23; i &amp;lt; (23 + 19); i++)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum71"&gt; 71:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum72"&gt; 72:&lt;/span&gt; byteArray[x]
= tempArray[i];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum73"&gt; 73:&lt;/span&gt; x++;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum74"&gt; 74:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum75"&gt; 75:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum76"&gt; 76:&lt;/span&gt; SetNewDateTime(bitmap,
byteArray, 306);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum77"&gt; 77:&lt;/span&gt; SetNewDateTime(bitmap,
byteArray, 36867);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum78"&gt; 78:&lt;/span&gt; SetNewDateTime(bitmap,
byteArray, 36868);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum79"&gt; 79:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum80"&gt; 80:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum81"&gt; 81:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; SetNewDateTime(Bitmap
bitmap, &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[] newDateTime, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; propertyNumber)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum82"&gt; 82:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum83"&gt; 83:&lt;/span&gt; var
property = bitmap.GetPropertyItem(propertyNumber);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum84"&gt; 84:&lt;/span&gt; property.Value
= newDateTime;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum85"&gt; 85:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum86"&gt; 86:&lt;/span&gt; bitmap.SetPropertyItem(property);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum87"&gt; 87:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum88"&gt; 88:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum89"&gt; 89:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; DateTime
GetOriginalDateTime(Bitmap bitmap)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum90"&gt; 90:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum91"&gt; 91:&lt;/span&gt; var
property = bitmap.GetPropertyItem(306);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum92"&gt; 92:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum93"&gt; 93:&lt;/span&gt; System.Text.ASCIIEncoding
encoding = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; System.Text.ASCIIEncoding();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum94"&gt; 94:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt; =
encoding.GetString(property.Value);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum95"&gt; 95:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum96"&gt; 96:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; value2
= &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;.Split(&lt;span style="color: #006080"&gt;' '&lt;/span&gt;)[0].Replace(&lt;span style="color: #006080"&gt;":"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"/"&lt;/span&gt;)
+ &lt;span style="color: #006080"&gt;" "&lt;/span&gt; + &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;.Split(&lt;span style="color: #006080"&gt;'
'&lt;/span&gt;)[1];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum97"&gt; 97:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum98"&gt; 98:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; DateTime.Parse(value2); &lt;span style="color: #008000"&gt;//2010:08:14
14:23:14&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum99"&gt; 99:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum100"&gt; 100:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum101"&gt; 101:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; IsD60(Bitmap
bitmap)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum102"&gt; 102:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum103"&gt; 103:&lt;/span&gt; var
modelProperty = bitmap.GetPropertyItem(272);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum104"&gt; 104:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum105"&gt; 105:&lt;/span&gt; System.Text.ASCIIEncoding
encoding = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; System.Text.ASCIIEncoding();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum106"&gt; 106:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; modelName
= encoding.GetString(modelProperty.Value);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum107"&gt; 107:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum108"&gt; 108:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (modelName.Contains(&lt;span style="color: #006080"&gt;"D60"&lt;/span&gt;)) &lt;span style="color: #008000"&gt;//
NIKON D60&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum109"&gt; 109:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum110"&gt; 110:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum111"&gt; 111:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum112"&gt; 112:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum113"&gt; 113:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum114"&gt; 114:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I hope you have a good time futzing with your EXIF data!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,3cc2c51a-a0e8-4c1e-9228-cc27ae6ffc7d.aspx</comments>
      <category>fun</category>
      <category>software</category>
      <category>utilities</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=28ebd461-5445-4d7e-bf9c-31b33e0d8b52</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,28ebd461-5445-4d7e-bf9c-31b33e0d8b52.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,28ebd461-5445-4d7e-bf9c-31b33e0d8b52.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=28ebd461-5445-4d7e-bf9c-31b33e0d8b52</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was crawling around the CodePlex site and discovered <a href="http://www.codeplex.com/GoogleBookDownloader">a
cool utility</a>:
</p>
        <p>
"Google Book Downloader is small utility which allows you to save book as PDF
from google to your local filesystem."
</p>
        <p>
Google has made public domain books accessible online and this .Net app can make them
accessible on a plane. What will they think of next?
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=28ebd461-5445-4d7e-bf9c-31b33e0d8b52" />
      </body>
      <title>Google Book Downloader</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,28ebd461-5445-4d7e-bf9c-31b33e0d8b52.aspx</guid>
      <link>http://www.a7drew.com/blog/2009/02/18/GoogleBookDownloader.aspx</link>
      <pubDate>Wed, 18 Feb 2009 05:30:52 GMT</pubDate>
      <description>&lt;p&gt;
I was crawling around the CodePlex site and discovered &lt;a href="http://www.codeplex.com/GoogleBookDownloader"&gt;a
cool utility&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&amp;quot;Google Book Downloader is small utility which allows you to save book as PDF
from google to your local filesystem.&amp;quot;
&lt;/p&gt;
&lt;p&gt;
Google has made public domain books accessible online and this .Net app can make them
accessible on a plane. What will they think of next?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=28ebd461-5445-4d7e-bf9c-31b33e0d8b52" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,28ebd461-5445-4d7e-bf9c-31b33e0d8b52.aspx</comments>
      <category>books</category>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=fe47c6b1-1036-4423-b7d2-8da317685798</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,fe47c6b1-1036-4423-b7d2-8da317685798.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,fe47c6b1-1036-4423-b7d2-8da317685798.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fe47c6b1-1036-4423-b7d2-8da317685798</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="247" alt="steve-wof" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/WheelofFortune_75C2/steve-wof_3.jpg" width="385" align="left" border="0" /> My
buddy Steve was on Wheel of Fortune last night. The actual taping of the show was
a few weeks ago and he was pretty tight lipped about it. 
</p>
        <p>
He said he won enough money to pay for the flight out there, so he was happy, err...
I mean Happy! He did outstanding on the show and his wife came up afterwards to give
him a hug. He won over $80K and a trip to Thailand! Congrats!
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=fe47c6b1-1036-4423-b7d2-8da317685798" />
      </body>
      <title>Wheel of Fortune</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,fe47c6b1-1036-4423-b7d2-8da317685798.aspx</guid>
      <link>http://www.a7drew.com/blog/2008/04/03/WheelOfFortune.aspx</link>
      <pubDate>Thu, 03 Apr 2008 15:22:27 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="247" alt="steve-wof" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/WheelofFortune_75C2/steve-wof_3.jpg" width="385" align="left" border="0" /&gt; My
buddy Steve was on Wheel of Fortune last night. The actual taping of the show was
a few weeks ago and he was pretty tight lipped about it. 
&lt;/p&gt;
&lt;p&gt;
He said he won enough money to pay for the flight out there, so he was happy, err...
I mean Happy! He did outstanding on the show and his wife came up afterwards to give
him a hug. He won over $80K and a trip to Thailand! Congrats!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=fe47c6b1-1036-4423-b7d2-8da317685798" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,fe47c6b1-1036-4423-b7d2-8da317685798.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=51e7edca-36a4-47c0-b2a3-63e6d02aefbe</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,51e7edca-36a4-47c0-b2a3-63e6d02aefbe.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,51e7edca-36a4-47c0-b2a3-63e6d02aefbe.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=51e7edca-36a4-47c0-b2a3-63e6d02aefbe</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Blazers 10 Game Win Streak</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,51e7edca-36a4-47c0-b2a3-63e6d02aefbe.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/12/22/Blazers10GameWinStreak.aspx</link>
      <pubDate>Sat, 22 Dec 2007 22:17:40 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 5px 10px; border-right-width: 0px" height="324" alt="Portland Trail Blazers" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/Blazers10GameWinStreak_C903/blazers10GameWinStreak_3.jpg" width="404" align="right" border="0" /&gt; Le
Wife and I have tickets to some Portland Trail Blazer games this year. Last night
was the first one we attended this season. It just so happened to be an opportunity
to keep the streak going and make it ten wins in a row.
&lt;/p&gt;
&lt;p&gt;
As a gesture of respect, I dropped Le Wife (who is now 21 &lt;strike&gt;months&lt;/strike&gt; weeks
pregnant) off right in front of the stadium and I parked the car. That was harder
than I anticipated. I guess thousands of people congregating on a single place do
tend to make traffic and parking more difficult. 
&lt;/p&gt;
&lt;p&gt;
Word to the wise &amp;#8212; parking in the &lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=45.528088,-122.664521&amp;amp;ie=UTF8&amp;amp;z=17&amp;amp;iwloc=addr&amp;amp;om=1" target="_blank"&gt;under
the Oregon Convention Center&lt;/a&gt; for $6 and walking 200 yards north is very handy.
Its deceptively close; walking under I&amp;ndash;5 makes it seem farther than it really
is. Plus, this lot wasn't crowded 20 minutes before tip off. I might think twice about
parking there in a pouring rain, but it was a pleasant walk for me; a nice brisk evening.
&lt;/p&gt;
&lt;p&gt;
The game went right down to the wire with neither team making it farther than 8 points
ahead (if they did, it wasn't for very long). In the end, our guys managed to hold
off Allen Iverson and Carmelo Anthony to make it ten wins in a row. The packed stadium
was booming, I'm looking forward to the next game!
&lt;/p&gt;
&lt;p&gt;
At one point the crowd started cheering really loud &amp;#8212; just before the end of
half time. Up on the big screen above center court was a live shot of Greg Oden sitting
behind the Blazers' bench in a sport jacket and white button up shirt. He didn't see
the camera and looked around quickly to see the cause of the cheers. Then he looked
up at the screen above center court and realized what was going on. He grinned wide
and looked down at the ground in the biggest &amp;quot;aw-shucks&amp;quot; moment I've seen
in quite a while. Portland is going to love seeing this guy on the court next year!
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="204" alt="sergio-rodriguez" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/Blazers10GameWinStreak_C903/sergio-rodriguez_3.jpg" width="254" align="left" border="0" /&gt;And
perhaps the biggest boon of the game &amp;#8212; bobble-head night! I am now the proud
owner of a Sergio Rodriguez bobble-head doll. There's a bright warning on the side
of the packaging:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;WARNING: Contents in box may make a no-look, behind-the-back pass without warning.&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=51e7edca-36a4-47c0-b2a3-63e6d02aefbe" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,51e7edca-36a4-47c0-b2a3-63e6d02aefbe.aspx</comments>
      <category>events</category>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=3f35f73e-400d-467a-b766-d9675af24121</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,3f35f73e-400d-467a-b766-d9675af24121.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,3f35f73e-400d-467a-b766-d9675af24121.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3f35f73e-400d-467a-b766-d9675af24121</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="139" alt="mocha master" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/mochamaster_3.png" width="167" align="left" border="0" /> I
think you're a good person, but I can't be with you. I have to break up. Sure 2007
was a fun year, galloping around the estate with that thick scent of delicious coffee
in our hair and eager for the new dawn of a dark roast. We had some good times. The
Techni Vorm label made me feel European too and I tried to embrace it, I really did.
Its not you, its me.
</p>
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="virtuoso" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/virtuoso_3.png" width="191" align="right" border="0" /> It
wasn't easy with your friend, Virtuoso, the coffee grinder. He never made it simple
for us. I don't think he ever really accepted me. What was up with that static electricity?
It let forth a brilliant shower of charged coffee grounds after each use. I'm mean
really, how can he expect to keep someone around? Sure his sleek exterior and large
bean reservoir would make anyone grin, but I've got to think of myself sometimes,
I have to ask, what's in this for me? It was just too much of a mess to clean up after
every grinding session.
</p>
        <p>
Mocha Master, why did you start spilling over? At first, I was willing to blame it
on the other people you saw. There were several accounts sent around on how to properly
make coffee. But time and time again, you spilled when no one was looking. The final
straw was when you spilled yesterday for me. It was me Mocha Master! I was here all
alone with you and yet you forsake me. How could you do it? You know the level of
coffee grounds in there was well within the accepted norms. Somehow you clogged up
and spilled over the counter just like all of the times before. I have to give you
up.
</p>
        <hr />
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="151" alt="mr coffee" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/mrcoffee_3.png" width="185" align="left" border="0" /> Hello
Mr. Coffee, its been a while. I know I've been a bad friend and traipsing all over
the coffee producing regions of the globe with my European friend, but its over, I
swear. 
</p>
        <p>
I see you've gotten some new buttons and they look great, all shiny and in different
colors. I've even started using a carafe so you don't need to worry about burning
the coffee and ruining the flavor.
</p>
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="171" alt="starbucks grinder" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/starbucksgrinder_3.png" width="164" align="right" border="0" /> Oh,
and hello little grinder! How have you been? I sure do miss you. Sure, you're from
Starbucks, but that's ok. You're a good little guy and you don't have any static electricity.
We love large machines and small machines alike. Sometimes you're abused and blamed
for a mess, but its far and few between and I know you mean well. You can't fight
gravity! Plus, you can grind your beans in 10 seconds flat. I'm going to enjoy seeing
you around.
</p>
        <p>
Mr. Coffee, I want you to know that I'm ready to get down to work and you won't have
to worry about any more whimsical adventures from me. We have a simple agreement in
place; you make coffee and I'll drink it. We don't need any drama in our lives around
this matter and neither of us wants a high maintenance relationship. I'm glad you
were willing to come back. I love you Mr. Coffee.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=3f35f73e-400d-467a-b766-d9675af24121" />
      </body>
      <title>Dear ClementDesign Mocha Master Coffee Maker</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,3f35f73e-400d-467a-b766-d9675af24121.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/12/16/DearClementDesignMochaMasterCoffeeMaker.aspx</link>
      <pubDate>Sun, 16 Dec 2007 22:15:49 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="139" alt="mocha master" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/mochamaster_3.png" width="167" align="left" border="0" /&gt; I
think you're a good person, but I can't be with you. I have to break up. Sure 2007
was a fun year, galloping around the estate with that thick scent of delicious coffee
in our hair and eager for the new dawn of a dark roast. We had some good times. The
Techni Vorm label made me feel European too and I tried to embrace it, I really did.
Its not you, its me.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="virtuoso" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/virtuoso_3.png" width="191" align="right" border="0" /&gt; It
wasn't easy with your friend, Virtuoso, the coffee grinder. He never made it simple
for us. I don't think he ever really accepted me. What was up with that static electricity?
It let forth a brilliant shower of charged coffee grounds after each use. I'm mean
really, how can he expect to keep someone around? Sure his sleek exterior and large
bean reservoir would make anyone grin, but I've got to think of myself sometimes,
I have to ask, what's in this for me? It was just too much of a mess to clean up after
every grinding session.
&lt;/p&gt;
&lt;p&gt;
Mocha Master, why did you start spilling over? At first, I was willing to blame it
on the other people you saw. There were several accounts sent around on how to properly
make coffee. But time and time again, you spilled when no one was looking. The final
straw was when you spilled yesterday for me. It was me Mocha Master! I was here all
alone with you and yet you forsake me. How could you do it? You know the level of
coffee grounds in there was well within the accepted norms. Somehow you clogged up
and spilled over the counter just like all of the times before. I have to give you
up.
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="151" alt="mr coffee" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/mrcoffee_3.png" width="185" align="left" border="0" /&gt; Hello
Mr. Coffee, its been a while. I know I've been a bad friend and traipsing all over
the coffee producing regions of the globe with my European friend, but its over, I
swear. 
&lt;/p&gt;
&lt;p&gt;
I see you've gotten some new buttons and they look great, all shiny and in different
colors. I've even started using a carafe so you don't need to worry about burning
the coffee and ruining the flavor.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="171" alt="starbucks grinder" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/DearClementDesignMochaMasterCoffeeMaker_C892/starbucksgrinder_3.png" width="164" align="right" border="0" /&gt; Oh,
and hello little grinder! How have you been? I sure do miss you. Sure, you're from
Starbucks, but that's ok. You're a good little guy and you don't have any static electricity.
We love large machines and small machines alike. Sometimes you're abused and blamed
for a mess, but its far and few between and I know you mean well. You can't fight
gravity! Plus, you can grind your beans in 10 seconds flat. I'm going to enjoy seeing
you around.
&lt;/p&gt;
&lt;p&gt;
Mr. Coffee, I want you to know that I'm ready to get down to work and you won't have
to worry about any more whimsical adventures from me. We have a simple agreement in
place; you make coffee and I'll drink it. We don't need any drama in our lives around
this matter and neither of us wants a high maintenance relationship. I'm glad you
were willing to come back. I love you Mr. Coffee.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=3f35f73e-400d-467a-b766-d9675af24121" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,3f35f73e-400d-467a-b766-d9675af24121.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=236233ba-04dc-4467-935e-a8def4ff8af0</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,236233ba-04dc-4467-935e-a8def4ff8af0.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,236233ba-04dc-4467-935e-a8def4ff8af0.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=236233ba-04dc-4467-935e-a8def4ff8af0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.justsayhi.com/bb/html_quiz" href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowManyHTMLElementsCanYouNamein5Minutes_AE2B/i-named-46-html-elements_2.png">http://www.justsayhi.com/bb/html_quiz</a>
        </p>
        <p>
I forgot some easy ones like &lt;div&gt; and I thought I typed &lt;fieldset&gt; because
I also got &lt;legend&gt;, but a respectable score; maybe? ScottV got a couple more
than me.
</p>
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowManyHTMLElementsCanYouNamein5Minutes_AE2B/i-named-46-html-elements_3.png" width="348" border="0" />
        </p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=236233ba-04dc-4467-935e-a8def4ff8af0" />
      </body>
      <title>How Many HTML Elements Can You Name in 5 Minutes?</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,236233ba-04dc-4467-935e-a8def4ff8af0.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/11/28/HowManyHTMLElementsCanYouNameIn5Minutes.aspx</link>
      <pubDate>Wed, 28 Nov 2007 20:23:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.justsayhi.com/bb/html_quiz" href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowManyHTMLElementsCanYouNamein5Minutes_AE2B/i-named-46-html-elements_2.png"&gt;http://www.justsayhi.com/bb/html_quiz&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I forgot some easy ones like &amp;lt;div&amp;gt; and I thought I typed &amp;lt;fieldset&amp;gt; because
I also got &amp;lt;legend&amp;gt;, but a respectable score; maybe? ScottV got a couple more
than me.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/HowManyHTMLElementsCanYouNamein5Minutes_AE2B/i-named-46-html-elements_3.png" width="348" border="0" /&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=236233ba-04dc-4467-935e-a8def4ff8af0" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,236233ba-04dc-4467-935e-a8def4ff8af0.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=ec0fcce3-e34d-4f3d-a409-b9704e2b683c</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,ec0fcce3-e34d-4f3d-a409-b9704e2b683c.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,ec0fcce3-e34d-4f3d-a409-b9704e2b683c.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ec0fcce3-e34d-4f3d-a409-b9704e2b683c</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Under ordinary circumstances, all three of my blog readers know that I don't like
playing blue. Yet sometimes, it is the only possible response.
</p>
        <p>
This is to the 1998 Honda Civic Headlight Replacement Technical Writer:
</p>
        <h2>You Suck.
</h2>
        <p>
I'm no mechanic, but I have <a href="http://www.andrewdothay.net/blog/2006/12/09/DansAutomotive.aspx" target="_blank">replaced
my car battery</a>, and I'm generally aware of what goes on under the hood. Plus,
I'm a good reader. I can follow directions. In my older cars, the bulb was encased
in the complete housing. A few screws and a plug-and-play later was all it took. Not
so today. All you get at the store is the actual bulb. Much smaller and easier to
ship.
</p>
        <p>
The following images show the 1.5 page description of how to replace a light bulb
in a 1998 Honda Civic.
</p>
        <p>
The instructions for headlight replacement begin on the right side of the following
page. The author notes some good points to understand before tackling the job.
</p>
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/civic-headlight-p185_5.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="384" alt="civic-headlight-p185" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/civic-headlight-p185_thumb_1.png" width="564" border="0" />
          </a>
        </p>
        <p>
Then, it gets into the meat of the job with a full page shown in the following image.
</p>
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="363" alt="civic-headlight-p186" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/civic-headlight-p186_3.png" width="560" border="0" />
        </p>
        <p>
As you can plainly see, at no point does the author state the following truth:
</p>
        <blockquote>
          <p>
            <font color="#0080c0">If you are reading this manual, then your best course of action
is to return it to the glove box and drive to your nearest </font>
            <a href="http://www.oilcanhenry.com/" target="_blank">
              <font color="#0080c0">Oil
Can Henry's</font>
            </a>
            <font color="#0080c0"> location. Request a bulb replacement
and happily pay the fee knowing that (a) you didn't have to do it (2) you didn't break
anything; aka, less swearing and (iii) the delta between the cost of the bulb at the
NAPA auto part store and what you paid at the shop are negligible.</font>
          </p>
        </blockquote>
        <p>
And for that malfeasance, this technical writer sucks. It is my opinion that anyone
replacing the driver's side headlight in a competent manner would not need to resort
to the manual. For if they did, it would be a clear indication of the pain to come.
</p>
        <p>
For starters, a light source for working under the hood is a good idea. I used one
of these pod lights. Press the light to turn it on and off. They're small and nimble.
</p>
        <p>
 <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img825_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Light Source" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img825_thumb.jpg" width="520" border="0" /></a></p>
        <p>
So here's what we're dealing with. The drivers side headlight sits squarely in front
of the power steering reservoir. The following image shows my finger on the reservoir.
Its connected by one hose on each side and is seated on a small cradle. You can already
begin to see the terribly small spaces we're about to engage.
</p>
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img829_2.jpg">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Power steering reservoir" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img829_thumb.jpg" width="520" border="0" />
          </a>
        </p>
        <p>
Just from the previous photo alone, you can see how the designers failed with this
bulb location on the 1998 Honda Civic. Per the instructions, I am to lift the power
steering reservoir out of the cradle and push it aside so I can gain access to the
bulb housing. Those two hoses that attach to the reservoir aren't too keen on movement.
I finally ended up disconnecting one of the hoses and stuffing it with a rag to stop
the flow of power steering fluid to my garage floor. There was quite a bit of cussing
to just reach this state.
</p>
        <p>
Now that I had the reservoir propped up and out of the way and the power steering
spill slowed to a slow dribble, I could being the real work. The following photo shows
an overhead view of the bulb housing and my light source nestled into a good crevice. 
</p>
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img824_2.jpg">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Driver side headlight" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img824_thumb.jpg" width="520" border="0" />
          </a>
        </p>
        <p>
Next, I need to pinch the tabs of the bulb housing to release it. This is very important,
so you would think that the book would do a good job of describing where they are
and what they look like. Not so. The tabs are nearly invisible, even with great lighting.
They're about the size of a small pea on each side as indicated in the following photo.
Before learning this, I cracked the plastic housing on the bulb housing with the pliers.
Go me!
</p>
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img823_2.jpg">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Bulb Housing and Tabs" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img823_thumb.jpg" width="520" border="0" />
          </a>
        </p>
        <p>
After the bulb housing is removed, the rubber seal and wire latch can be removed to
produce the following item of grief - a blown out halogen bulb. I bought a new one
at NAPA for $8.00
</p>
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img821_2.jpg">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Expired Halogen Bulb" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img821_thumb.jpg" width="520" border="0" />
          </a>
        </p>
        <p>
When you're wrestling with the wire that provides a constant pressure on the bulb
housing and keeps it in place, be careful not to snap off the little plastic tab that
hooks onto the wire; that's bad. Grrrrrr.....
</p>
        <p>
          <a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img826_2.jpg">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Headlight Stabilization Wire" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img826_thumb.jpg" width="520" border="0" />
          </a>
        </p>
        <p>
Finally, I drove (the other car) to the NAPA auto parts store (again) and purchased
a small amount of power steering fluid. When I arrived, the very nice man behind the
counter saw the section I was looking and advised me on a good brand of leak sealant.
I explained that I actually wanted power steering fluid. Sizing me up accurately,
the man tilted his head and asked why I wanted power steering fluid. Evidently, I
didn't pass muster. I explained that I had spilled some quantity onto my garage floor
when I was replacing a headlight. At that point I must have passed some threshold
of the "i-know-what-i'm-doing" home mechanic or the "complete-idiot"
home mechanic. He was nice enough to stop the inquiry there and saved me a little
face. So for $3.75 I left the store with a some power steering fluid and a small funnel
to refill the reservoir.
</p>
        <p>
So, in summary, this experience was an absolute unnecessary pain in the ass. I realized
the folly of my plan about one-third into the debacle and kept thinking of reasons
that I should just fold up now and waltz in to the nearest Oil Can Henry's to stop
the suffering. Yet, I persisted and now I have two functional headlights in my car,
and one extra piece of wire in my garage.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=ec0fcce3-e34d-4f3d-a409-b9704e2b683c" />
      </body>
      <title>1998 Honda Civic Headlight Replacement</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,ec0fcce3-e34d-4f3d-a409-b9704e2b683c.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/11/24/1998HondaCivicHeadlightReplacement.aspx</link>
      <pubDate>Sat, 24 Nov 2007 18:10:42 GMT</pubDate>
      <description>&lt;p&gt;
Under ordinary circumstances, all three of my blog readers know that I don't like
playing blue. Yet sometimes, it is the only possible response.
&lt;/p&gt;
&lt;p&gt;
This is to the 1998 Honda Civic Headlight Replacement Technical Writer:
&lt;/p&gt;
&lt;h2&gt;You Suck.
&lt;/h2&gt;
&lt;p&gt;
I'm no mechanic, but I have &lt;a href="http://www.andrewdothay.net/blog/2006/12/09/DansAutomotive.aspx" target="_blank"&gt;replaced
my car battery&lt;/a&gt;, and I'm generally aware of what goes on under the hood. Plus,
I'm a good reader. I can follow directions. In my older cars, the bulb was encased
in the complete housing. A few screws and a plug-and-play later was all it took. Not
so today. All you get at the store is the actual bulb. Much smaller and easier to
ship.
&lt;/p&gt;
&lt;p&gt;
The following images show the 1.5 page description of how to replace a light bulb
in a 1998 Honda Civic.
&lt;/p&gt;
&lt;p&gt;
The instructions for headlight replacement begin on the right side of the following
page. The author notes some good points to understand before tackling the job.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/civic-headlight-p185_5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="384" alt="civic-headlight-p185" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/civic-headlight-p185_thumb_1.png" width="564" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Then, it gets into the meat of the job with a full page shown in the following image.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="363" alt="civic-headlight-p186" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/civic-headlight-p186_3.png" width="560" border="0" /&gt; 
&lt;/p&gt;
&lt;p&gt;
As you can plainly see, at no point does the author state the following truth:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font color="#0080c0"&gt;If you are reading this manual, then your best course of action
is to return it to the glove box and drive to your nearest &lt;/font&gt;&lt;a href="http://www.oilcanhenry.com/" target="_blank"&gt;&lt;font color="#0080c0"&gt;Oil
Can Henry's&lt;/font&gt;&lt;/a&gt;&lt;font color="#0080c0"&gt; location. Request a bulb replacement
and happily pay the fee knowing that (a) you didn't have to do it (2) you didn't break
anything; aka, less swearing and (iii) the delta between the cost of the bulb at the
NAPA auto part store and what you paid at the shop are negligible.&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
And for that malfeasance, this technical writer sucks. It is my opinion that anyone
replacing the driver's side headlight in a competent manner would not need to resort
to the manual. For if they did, it would be a clear indication of the pain to come.
&lt;/p&gt;
&lt;p&gt;
For starters, a light source for working under the hood is a good idea. I used one
of these pod lights. Press the light to turn it on and off. They're small and nimble.
&lt;/p&gt;
&lt;p&gt;
&amp;#xA0;&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img825_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Light Source" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img825_thumb.jpg" width="520" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So here's what we're dealing with. The drivers side headlight sits squarely in front
of the power steering reservoir. The following image shows my finger on the reservoir.
Its connected by one hose on each side and is seated on a small cradle. You can already
begin to see the terribly small spaces we're about to engage.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img829_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Power steering reservoir" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img829_thumb.jpg" width="520" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Just from the previous photo alone, you can see how the designers failed with this
bulb location on the 1998 Honda Civic. Per the instructions, I am to lift the power
steering reservoir out of the cradle and push it aside so I can gain access to the
bulb housing. Those two hoses that attach to the reservoir aren't too keen on movement.
I finally ended up disconnecting one of the hoses and stuffing it with a rag to stop
the flow of power steering fluid to my garage floor. There was quite a bit of cussing
to just reach this state.
&lt;/p&gt;
&lt;p&gt;
Now that I had the reservoir propped up and out of the way and the power steering
spill slowed to a slow dribble, I could being the real work. The following photo shows
an overhead view of the bulb housing and my light source nestled into a good crevice. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img824_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Driver side headlight" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img824_thumb.jpg" width="520" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Next, I need to pinch the tabs of the bulb housing to release it. This is very important,
so you would think that the book would do a good job of describing where they are
and what they look like. Not so. The tabs are nearly invisible, even with great lighting.
They're about the size of a small pea on each side as indicated in the following photo.
Before learning this, I cracked the plastic housing on the bulb housing with the pliers.
Go me!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img823_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Bulb Housing and Tabs" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img823_thumb.jpg" width="520" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
After the bulb housing is removed, the rubber seal and wire latch can be removed to
produce the following item of grief - a blown out halogen bulb. I bought a new one
at NAPA for $8.00
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img821_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Expired Halogen Bulb" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img821_thumb.jpg" width="520" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
When you're wrestling with the wire that provides a constant pressure on the bulb
housing and keeps it in place, be careful not to snap off the little plastic tab that
hooks onto the wire; that's bad. Grrrrrr.....
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img826_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="420" alt="Headlight Stabilization Wire" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/1998CivicHeadlightReplacement_EE87/img826_thumb.jpg" width="520" border="0" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Finally, I drove (the other car) to the NAPA auto parts store (again) and purchased
a small amount of power steering fluid. When I arrived, the very nice man behind the
counter saw the section I was looking and advised me on a good brand of leak sealant.
I explained that I actually wanted power steering fluid. Sizing me up accurately,
the man tilted his head and asked why I wanted power steering fluid. Evidently, I
didn't pass muster. I explained that I had spilled some quantity onto my garage floor
when I was replacing a headlight. At that point I must have passed some threshold
of the &amp;quot;i-know-what-i'm-doing&amp;quot; home mechanic or the &amp;quot;complete-idiot&amp;quot;
home mechanic. He was nice enough to stop the inquiry there and saved me a little
face. So for $3.75 I left the store with a some power steering fluid and a small funnel
to refill the reservoir.
&lt;/p&gt;
&lt;p&gt;
So, in summary, this experience was an absolute unnecessary pain in the ass. I realized
the folly of my plan about one-third into the debacle and kept thinking of reasons
that I should just fold up now and waltz in to the nearest Oil Can Henry's to stop
the suffering. Yet, I persisted and now I have two functional headlights in my car,
and one extra piece of wire in my garage.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=ec0fcce3-e34d-4f3d-a409-b9704e2b683c" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,ec0fcce3-e34d-4f3d-a409-b9704e2b683c.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=f6970854-78f6-49a1-b542-f9ad473828c2</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,f6970854-78f6-49a1-b542-f9ad473828c2.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,f6970854-78f6-49a1-b542-f9ad473828c2.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f6970854-78f6-49a1-b542-f9ad473828c2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">My buddy Steve is precariously close to
being <a href="http://happysteve.livejournal.com/262086.html">selected for Wheel of
Fortune</a>. He made it to local stage and hopefully caught the eye of the staff.
Good luck Steve!!<br /><p></p><img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=f6970854-78f6-49a1-b542-f9ad473828c2" /></body>
      <title>Wheel of Fortune</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,f6970854-78f6-49a1-b542-f9ad473828c2.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/10/29/WheelOfFortune.aspx</link>
      <pubDate>Mon, 29 Oct 2007 16:15:18 GMT</pubDate>
      <description>My buddy Steve is precariously close to being &lt;a href="http://happysteve.livejournal.com/262086.html"&gt;selected
for Wheel of Fortune&lt;/a&gt;. He made it to local stage and hopefully caught the eye of
the staff. Good luck Steve!!&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=f6970854-78f6-49a1-b542-f9ad473828c2" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,f6970854-78f6-49a1-b542-f9ad473828c2.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=f2eb0642-dddc-463c-9ffd-07873b3f55f5</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,f2eb0642-dddc-463c-9ffd-07873b3f55f5.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,f2eb0642-dddc-463c-9ffd-07873b3f55f5.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f2eb0642-dddc-463c-9ffd-07873b3f55f5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
.. and you can pick your nose, but you can't pick your in-laws. By sheer luck and
$299.95 for a charm school summer camp a few years back, I have some awesome in-laws.
</p>
        <p>
As I understand it, Jay worked on <a href="http://www.youtube.com/watch?v=LFqWV3f7GAM" target="_blank">this
web commercial</a>. Anyone wanna take a break and go get some Herbal Mist with me?
</p>
        <embed src="http://www.youtube.com/v/LFqWV3f7GAM" width="425" height="350" type="application/x-shockwave-flash" wmode="transparent">
        </embed>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=f2eb0642-dddc-463c-9ffd-07873b3f55f5" />
      </body>
      <title>You can pick your friends</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,f2eb0642-dddc-463c-9ffd-07873b3f55f5.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/08/16/YouCanPickYourFriends.aspx</link>
      <pubDate>Thu, 16 Aug 2007 16:16:17 GMT</pubDate>
      <description>&lt;p&gt;
.. and you can pick your nose, but you can't pick your in-laws. By sheer luck and
$299.95 for a charm school summer camp a few years back, I have some awesome in-laws.
&lt;/p&gt;
&lt;p&gt;
As I understand it, Jay&amp;nbsp;worked on &lt;a href="http://www.youtube.com/watch?v=LFqWV3f7GAM" target="_blank"&gt;this
web commercial&lt;/a&gt;. Anyone wanna take a break and go get some Herbal Mist with me?
&lt;/p&gt;
&lt;embed src="http://www.youtube.com/v/LFqWV3f7GAM" width="425" height="350" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=f2eb0642-dddc-463c-9ffd-07873b3f55f5" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,f2eb0642-dddc-463c-9ffd-07873b3f55f5.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=5a70aec4-041c-4432-8494-64cb7b7d49a0</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,5a70aec4-041c-4432-8494-64cb7b7d49a0.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,5a70aec4-041c-4432-8494-64cb7b7d49a0.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5a70aec4-041c-4432-8494-64cb7b7d49a0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I bought a carafe for the office a little bit ago. At first, I kept it on my desk. Arguably,
I drink more coffee than anyone here. I offered warm ups, but I didn't get a
lot of takers. 
</p>
        <p>
After a few days, I got a couple of questions about the strange device too. Some thought
it had a little pick-me-up, like Baileys. In an effort to spread some knowledge, I
used a little bit of my new found free time and <a href="http://candyland.staging.popart.com/andrew/coffeetalk/" target="_blank">found
a way to explain it</a>.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=5a70aec4-041c-4432-8494-64cb7b7d49a0" />
      </body>
      <title>Coffee Talk</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,5a70aec4-041c-4432-8494-64cb7b7d49a0.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/08/10/CoffeeTalk.aspx</link>
      <pubDate>Fri, 10 Aug 2007 17:02:54 GMT</pubDate>
      <description>&lt;p&gt;
I bought a carafe for the office a little bit ago. At first, I kept it on my desk.&amp;nbsp;Arguably,
I&amp;nbsp;drink more coffee than anyone here. I offered warm ups, but I didn't get a
lot of takers. 
&lt;/p&gt;
&lt;p&gt;
After a few days, I got a couple of questions about the strange device too. Some thought
it had a little pick-me-up, like Baileys. In an effort to spread some knowledge, I
used a little bit of my new found free time and &lt;a href="http://candyland.staging.popart.com/andrew/coffeetalk/" target="_blank"&gt;found
a way to explain it&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=5a70aec4-041c-4432-8494-64cb7b7d49a0" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,5a70aec4-041c-4432-8494-64cb7b7d49a0.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=c40536e8-ff44-499e-8554-771896542bf0</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,c40536e8-ff44-499e-8554-771896542bf0.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,c40536e8-ff44-499e-8554-771896542bf0.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c40536e8-ff44-499e-8554-771896542bf0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
On Friday, our CFA (Chief Front-end Architect), Ryan Parr, received his brand new
chair. Unfortunately, he wasn't here to sign for it. Thus, the stray mischievous folk
who were in the office on Friday of last week took the following actions.
</p>
        <ol>
          <li>
Remove new chair from box</li>
          <li>
Disassemble old chair</li>
          <li>
Placed stained and hairy old chair in the plastic from new chair</li>
          <li>
Shove old chair in box</li>
          <li>
Re-tape box shut</li>
        </ol>
        <p>
The box waited all weekend for his arrival. This morning, I shot <a href="http://www.andrewdothay.net/silverlight/ryan/" target="_blank">this
video on my Treo 700w</a>. <font size="1">(Quicktime version </font><a href="http://www.andrewdothay.net/silverlight/ryan/quicktime.aspx" target="_blank"><font size="1">is
over here</font></a><font size="1">.)</font></p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=c40536e8-ff44-499e-8554-771896542bf0" />
      </body>
      <title>Chair Prank</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,c40536e8-ff44-499e-8554-771896542bf0.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/08/06/ChairPrank.aspx</link>
      <pubDate>Mon, 06 Aug 2007 17:02:15 GMT</pubDate>
      <description>&lt;p&gt;
On Friday, our CFA (Chief Front-end Architect), Ryan Parr, received his brand new
chair. Unfortunately, he wasn't here to sign for it. Thus, the stray mischievous folk
who were in the office&amp;nbsp;on Friday of last week&amp;nbsp;took the following actions.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Remove new&amp;nbsp;chair&amp;nbsp;from box&lt;/li&gt;
&lt;li&gt;
Disassemble&amp;nbsp;old chair&lt;/li&gt;
&lt;li&gt;
Placed&amp;nbsp;stained and hairy old chair in the plastic from new&amp;nbsp;chair&lt;/li&gt;
&lt;li&gt;
Shove old&amp;nbsp;chair in&amp;nbsp;box&lt;/li&gt;
&lt;li&gt;
Re-tape box shut&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The box waited all weekend for his arrival. This morning, I shot &lt;a href="http://www.andrewdothay.net/silverlight/ryan/" target="_blank"&gt;this
video on my Treo 700w&lt;/a&gt;. &lt;font size="1"&gt;(Quicktime version &lt;/font&gt;&lt;a href="http://www.andrewdothay.net/silverlight/ryan/quicktime.aspx" target="_blank"&gt;&lt;font size="1"&gt;is
over here&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;.)&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=c40536e8-ff44-499e-8554-771896542bf0" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,c40536e8-ff44-499e-8554-771896542bf0.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=1af80c66-5283-4877-a467-2f840b30a15e</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,1af80c66-5283-4877-a467-2f840b30a15e.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,1af80c66-5283-4877-a467-2f840b30a15e.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1af80c66-5283-4877-a467-2f840b30a15e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 25px 0px 10px; border-right-width: 0px" alt="simpsonizer" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/Simpsonizeme.com_924E/simpsonizer_97e2c1e1-7e64-45a5-8a68-6a773b568405.png" align="left" border="0" />
        </p>
        <p>
Bahahahahaa!
</p>
        <p>
This site is an great buzz generator for the upcoming Simpson's film. It built by
the charming folks who took over the online advertising for Burger King.
</p>
        <p>
          <a title="http://www.simpsonizeme.com/" href="http://www.simpsonizeme.com/">http://www.simpsonizeme.com/</a>
        </p>
        <p>
This Flash app takes a photo you submit and turns you into a Simpson character.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=1af80c66-5283-4877-a467-2f840b30a15e" />
      </body>
      <title>Simpsonizeme.com</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,1af80c66-5283-4877-a467-2f840b30a15e.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/07/21/Simpsonizemecom.aspx</link>
      <pubDate>Sat, 21 Jul 2007 17:37:38 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 25px 0px 10px; border-right-width: 0px" alt="simpsonizer" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/Simpsonizeme.com_924E/simpsonizer_97e2c1e1-7e64-45a5-8a68-6a773b568405.png" align="left" border="0"&gt; 
&lt;p&gt;
Bahahahahaa!
&lt;/p&gt;
&lt;p&gt;
This site is an great buzz generator for the upcoming Simpson's film. It built&amp;nbsp;by
the charming folks who took over the online advertising for Burger King.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.simpsonizeme.com/" href="http://www.simpsonizeme.com/"&gt;http://www.simpsonizeme.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This&amp;nbsp;Flash app takes a photo you submit and turns you into a Simpson character.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=1af80c66-5283-4877-a467-2f840b30a15e" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,1af80c66-5283-4877-a467-2f840b30a15e.aspx</comments>
      <category>fun</category>
      <category>movies</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=2b5c0650-ee3c-438b-889b-d438c9a9f846</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,2b5c0650-ee3c-438b-889b-d438c9a9f846.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,2b5c0650-ee3c-438b-889b-d438c9a9f846.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2b5c0650-ee3c-438b-889b-d438c9a9f846</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The man has cleaned up, packed up and gone. Now, I have a brand spanking new
60 amp sub-panel in my basement. My basement was woefully lacking in power outlets.
It's a 1925 house and the current panel has a sticker from 1962. I don't know if that's
the date the panel was installed or when some dude came out in April of '62 to service
it. Since I know precious little about things like amps, watts, hertz, ohms, and kelvins,
I apologize for not being able to elaborate. So, enter photo montage!
</p>
        <p>
I needed some power to run a few toys for "a few days":
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="workstation" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/workstation_cb46e040-12bf-448b-8d1d-619dd17ab838.png" width="200" border="0" />
        </p>
        <p>
Workstation, obviously
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog2" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog2_fb2822e5-4094-4e8e-b8ed-302f22ca7cfe.png" width="200" border="0" />
        </p>
        <p>
The wall mounted media center
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog4" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog4_ed941dd1-afb2-4480-a1bc-f413e63f89fc.png" width="200" border="0" />  
</p>
        <p>
Subwoofer - the point one of a 5.1 surround sound system
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog3" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog3_d3d2a6a5-80f9-45f5-b5ca-f5ee653badfb.png" width="200" border="0" />
        </p>
        <p>
InFocus ceiling mounted projector
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog6" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog6_db0bb696-0b09-42ca-8d3f-ffdad57d458e.png" width="200" border="0" />
        </p>
        <p>
And dual tower speakers with a magnets big enough to make your tooth fillings ache -
occupying slots #2 and #3 of a 5.1 surround sound system.
</p>
        <p>
How could this be powered, you ask? Well, for a very short term...
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="walloutlet" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/walloutlet_22d362b6-c0af-46f8-8558-f1449587651f.png" width="200" border="0" />
        </p>
        <p>
The source of all pleasure...
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="firsthop" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/firsthop_441b2659-4c5c-4ab7-bb03-4a666a3dba2b.png" width="200" border="0" />
        </p>
        <p>
leads to a ceiling mounted power strip,
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="nexthop" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/nexthop_ddcc4fec-b842-4786-ab29-7462551040a9.png" width="200" border="0" />
        </p>
        <p>
which traverses to the next hop,
</p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="randomuseofceilinghook" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/randomuseofceilinghook_4b2ca862-75be-4590-a5e5-690fcef3c9a0.png" width="200" border="0" />
        </p>
        <p>
and makes an indiscriminate use of a rogue ceiling hook that finally leads up
to the media center on the other side of the basement.
</p>
        <p>
I'm really happy with the new power outlets that were ran every couple of feet with
sturdy conduit. The guys from Coho Electric did a great job again on my humble abode.
It was about $1,500 to drop in a new sub-panel and run the outlets to all corners
of the basement. We pinched some pennies and made room in the budget to do this project. A
worthwhile investment indeed!
</p>
        <p>
Time to get back to work!
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=2b5c0650-ee3c-438b-889b-d438c9a9f846" />
      </body>
      <title>The Juice Is On</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,2b5c0650-ee3c-438b-889b-d438c9a9f846.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/07/12/TheJuiceIsOn.aspx</link>
      <pubDate>Thu, 12 Jul 2007 17:51:54 GMT</pubDate>
      <description>&lt;p&gt;
The man has cleaned up, packed up and gone.&amp;nbsp;Now, I have a brand spanking new
60 amp sub-panel in my basement. My basement was woefully lacking in power outlets.
It's a 1925 house and the current panel has a sticker from 1962. I don't know if that's
the date the panel was installed or when some dude came out in April of '62 to service
it. Since I know precious little about things like amps, watts, hertz, ohms, and kelvins,
I apologize for not being able to elaborate. So, enter photo montage!
&lt;/p&gt;
&lt;p&gt;
I needed some power to run a few toys for "a few days":
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="workstation" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/workstation_cb46e040-12bf-448b-8d1d-619dd17ab838.png" width="200" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
Workstation, obviously
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog2" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog2_fb2822e5-4094-4e8e-b8ed-302f22ca7cfe.png" width="200" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
The wall mounted&amp;nbsp;media center
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog4" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog4_ed941dd1-afb2-4480-a1bc-f413e63f89fc.png" width="200" border="0"&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Subwoofer -&amp;nbsp;the point one of a 5.1 surround sound system
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog3" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog3_d3d2a6a5-80f9-45f5-b5ca-f5ee653badfb.png" width="200" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
InFocus ceiling mounted projector
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="powerhog6" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/powerhog6_db0bb696-0b09-42ca-8d3f-ffdad57d458e.png" width="200" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
And dual tower speakers with a magnets big enough to make your tooth fillings ache&amp;nbsp;-
occupying slots #2 and #3 of a 5.1 surround sound system.
&lt;/p&gt;
&lt;p&gt;
How could this be powered, you ask? Well, for a very short term...
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="walloutlet" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/walloutlet_22d362b6-c0af-46f8-8558-f1449587651f.png" width="200" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
The source of all pleasure...
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="firsthop" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/firsthop_441b2659-4c5c-4ab7-bb03-4a666a3dba2b.png" width="200" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
leads to a ceiling mounted power strip,
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="nexthop" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/nexthop_ddcc4fec-b842-4786-ab29-7462551040a9.png" width="200" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
which traverses to the next hop,
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="randomuseofceilinghook" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/TheJuiceIsOn_98B1/randomuseofceilinghook_4b2ca862-75be-4590-a5e5-690fcef3c9a0.png" width="200" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
and&amp;nbsp;makes an indiscriminate use of a rogue ceiling hook that finally leads up
to the media center on the other side of the basement.
&lt;/p&gt;
&lt;p&gt;
I'm really happy with the new power outlets that were ran every couple of feet with
sturdy conduit. The guys from Coho Electric did a great job again on my humble abode.
It was about $1,500 to drop in a new sub-panel and run the outlets to all corners
of the basement. We pinched some pennies and made room in the budget to do this project.&amp;nbsp;A
worthwhile investment indeed!
&lt;/p&gt;
&lt;p&gt;
Time to get back to work!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=2b5c0650-ee3c-438b-889b-d438c9a9f846" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,2b5c0650-ee3c-438b-889b-d438c9a9f846.aspx</comments>
      <category>fun</category>
      <category>hardware</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=af425961-a631-4ff9-8786-5dd6f425764b</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,af425961-a631-4ff9-8786-5dd6f425764b.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,af425961-a631-4ff9-8786-5dd6f425764b.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=af425961-a631-4ff9-8786-5dd6f425764b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After reading <a href="http://richhubbins.theclaussens.com/PermaLink,guid,bdff0e4e-dae7-46a1-ad99-5b56dd62a98a.aspx" target="_blank">Rich
Claussen's post</a>, I submitted my responses to the online personality profiler and
got the following results. Its a little like reading the Sunday morning horoscopes
— easy to apply to wide variety of situations. This so good, it might even be a <em>vertoscope</em>!
</p>
        <p>
My programmer personality type is: <strong>PLTB</strong></p>
        <h3>I am a <u>P</u>lanner.
</h3>
        <p>
I may be slow, but I'll usually find the best solution. If something's worth doing,
it's worth doing right.
</p>
        <h3>I like coding at a <u>L</u>ow level.
</h3>
        <p>
I'm from the old school of programming and believe that I should have an intimate
relationship with the computer. I don't mind juggling registers around and spending
hours getting a 5% performance increase in an algorithm.
</p>
        <h3>I work best in a <u>T</u>eam.
</h3>
        <p>
A good group is better than the sum of it's parts. The only thing better than a genius
programmer is a cohesive group of genius programmers.
</p>
        <h3>I am a li<u>B</u>eral programmer.
</h3>
        <p>
Programming is a complex task and I should use white space and comments as freely
as possible to help simplify the task. We're not writing on paper anymore so we can
take up as much room as we need.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=af425961-a631-4ff9-8786-5dd6f425764b" />
      </body>
      <title>typeof(MyProgrammerPersonality)</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,af425961-a631-4ff9-8786-5dd6f425764b.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/06/10/typeofMyProgrammerPersonality.aspx</link>
      <pubDate>Sun, 10 Jun 2007 17:38:28 GMT</pubDate>
      <description>&lt;p&gt;
After reading &lt;a href="http://richhubbins.theclaussens.com/PermaLink,guid,bdff0e4e-dae7-46a1-ad99-5b56dd62a98a.aspx" target="_blank"&gt;Rich
Claussen's post&lt;/a&gt;, I submitted my responses to the online personality profiler and
got the following results. Its a little like reading the Sunday morning horoscopes
— easy to apply to wide variety of situations. This so good, it might even be a &lt;em&gt;vertoscope&lt;/em&gt;!
&lt;/p&gt;
&lt;p&gt;
My programmer personality type is: &lt;strong&gt;PLTB&lt;/strong&gt;
&lt;/p&gt;
&lt;h3&gt;I am a &lt;u&gt;P&lt;/u&gt;lanner.
&lt;/h3&gt;
&lt;p&gt;
I may be slow, but I'll usually find the best solution. If something's worth doing,
it's worth doing right.
&lt;/p&gt;
&lt;h3&gt;I like coding at a &lt;u&gt;L&lt;/u&gt;ow level.
&lt;/h3&gt;
&lt;p&gt;
I'm from the old school of programming and believe that I should have an intimate
relationship with the computer. I don't mind juggling registers around and spending
hours getting a 5% performance increase in an algorithm.
&lt;/p&gt;
&lt;h3&gt;I work best in a &lt;u&gt;T&lt;/u&gt;eam.
&lt;/h3&gt;
&lt;p&gt;
A good group is better than the sum of it's parts. The only thing better than a genius
programmer is a cohesive group of genius programmers.
&lt;/p&gt;
&lt;h3&gt;I am a li&lt;u&gt;B&lt;/u&gt;eral programmer.
&lt;/h3&gt;
&lt;p&gt;
Programming is a complex task and I should use white space and comments as freely
as possible to help simplify the task. We're not writing on paper anymore so we can
take up as much room as we need.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=af425961-a631-4ff9-8786-5dd6f425764b" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,af425961-a631-4ff9-8786-5dd6f425764b.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=9429e510-2f86-446e-86c4-64865a50a63e</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,9429e510-2f86-446e-86c4-64865a50a63e.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,9429e510-2f86-446e-86c4-64865a50a63e.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9429e510-2f86-446e-86c4-64865a50a63e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've never been, but I'm told that famous people line the streets in Hollywood. You
can go to lunch, look over at a corner booth and see big actor chowing down on
a roast beef sandwich.
</p>
        <p>
On Tuesday, I got to hang out with Carl Franklin at <a href="http://www.yelp.com/biz/eDXL96FYJgId0FctT4uugQ" target="_blank">Hanafin's
Irish Pub</a>. He had just finished a recording a DotNetRocks session with some super
stars and sat down with my WCF classmate and me for a beer. I've been listening
to his shows for years so it was a real treat to chat it up in person.
</p>
        <p>
Then, today (Thursday), I'm eating my roast beef sandwich at <a href="http://www.yelp.com/biz/b7RABUWG6Osetr4aqf5hSA" target="_blank">Steve
&amp; Cheri's Brooklyn Style Deli</a> when I look over and see none other than Geoff
Maciolek chowing down on a delicious deli treat about 3 feet from our table. I wasn't
quite sure at first, but then we started murmuring about code and databases
at our table and Geoff couldn't resist chiming in with a comment; then I was absolutely
sure. It went something like this:
</p>
        <blockquote>
          <p>
            <em>
              <strong>Geoff:</strong> Ah, spaghetti code</em>
          </p>
          <p>
            <em>
              <strong>Me:</strong> Hey, you're Geoff Maciolek!</em>
          </p>
          <p>
            <em>
              <strong>Geoff:</strong> Thats me! (ok, he didn't really say that, but that's what
I think in my head because he's says it at the end of so many DNR shows... he
just kind of stares and looks incredulous because a total stranger said his name)</em>
          </p>
          <p>
            <em>
              <strong>Me:</strong> I know you from DNR and Mondays!</em>
          </p>
          <p>
            <em>
              <strong>Geoff:</strong> Yeah, I'm over there with Carl...</em>
          </p>
        </blockquote>
        <p>
We exchange a few more pleasentries and chat for a minute, then Geoff leaves the
deli and I go back to the afternoon session of the WCF Master class - happier than
a pup with two peters. 
</p>
        <p>
I leave this town Saturday. What are the chances that I'll be filling up my rental
car at the gas station and see Karen drive by with Richard in the passenger seat and
Mark running after them down the street, screaming profanities with a stream
of toilet paper trailing out of his pants?
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=9429e510-2f86-446e-86c4-64865a50a63e" />
      </body>
      <title>My Own Little Hollywood</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,9429e510-2f86-446e-86c4-64865a50a63e.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/05/25/MyOwnLittleHollywood.aspx</link>
      <pubDate>Fri, 25 May 2007 03:35:32 GMT</pubDate>
      <description>&lt;p&gt;
I've never been, but I'm told that famous people line the streets in Hollywood. You
can go to lunch, look over at a corner booth and see big actor&amp;nbsp;chowing down on
a roast beef sandwich.
&lt;/p&gt;
&lt;p&gt;
On Tuesday, I got to hang out with Carl Franklin at &lt;a href="http://www.yelp.com/biz/eDXL96FYJgId0FctT4uugQ" target="_blank"&gt;Hanafin's
Irish Pub&lt;/a&gt;. He had just finished a recording a DotNetRocks session with some super
stars&amp;nbsp;and sat down with&amp;nbsp;my WCF classmate and me for a beer. I've been listening
to his shows for years so it was a real treat to chat it up in person.
&lt;/p&gt;
&lt;p&gt;
Then, today (Thursday), I'm eating my roast beef sandwich at &lt;a href="http://www.yelp.com/biz/b7RABUWG6Osetr4aqf5hSA" target="_blank"&gt;Steve
&amp;amp; Cheri's Brooklyn Style Deli&lt;/a&gt; when I look over and see none other than Geoff
Maciolek chowing down on a delicious deli treat about 3 feet from our table. I wasn't
quite sure at first, but then we started&amp;nbsp;murmuring about&amp;nbsp;code and databases
at our table and Geoff couldn't resist chiming in with a comment; then I was absolutely
sure. It went something like this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Geoff:&lt;/strong&gt; Ah, spaghetti code&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Me:&lt;/strong&gt; Hey, you're Geoff Maciolek!&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Geoff:&lt;/strong&gt; Thats me! (ok, he didn't really say that, but that's what
I think in my head because he's&amp;nbsp;says it at the end of so many DNR shows... he
just kind of stares and looks incredulous because a total stranger said his name)&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Me:&lt;/strong&gt; I know you from DNR and Mondays!&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Geoff:&lt;/strong&gt; Yeah, I'm&amp;nbsp;over there with Carl...&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
We exchange a few more pleasentries and chat&amp;nbsp;for a minute,&amp;nbsp;then Geoff leaves&amp;nbsp;the
deli and I go back to the afternoon session of the WCF Master class - happier than
a pup with two peters. 
&lt;/p&gt;
&lt;p&gt;
I leave this town Saturday. What are the chances that&amp;nbsp;I'll be filling up my rental
car at the gas station and see Karen drive by with Richard in the passenger seat and
Mark running after them down the street, screaming profanities&amp;nbsp;with a stream
of toilet paper trailing out of his pants?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=9429e510-2f86-446e-86c4-64865a50a63e" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,9429e510-2f86-446e-86c4-64865a50a63e.aspx</comments>
      <category>fun</category>
      <category>observations</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=6d392fe7-c3de-4ecc-b91d-ba7375e508a9</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,6d392fe7-c3de-4ecc-b91d-ba7375e508a9.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,6d392fe7-c3de-4ecc-b91d-ba7375e508a9.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6d392fe7-c3de-4ecc-b91d-ba7375e508a9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.liquidgeneration.com/Media/Games/The_Ultimate_Star_Wars_Personality_Test/" target="_blank">
            <img src="http://www.liquidgeneration.com/content/190407/Card_Jabba.jpg" border="0" />
          </a>
        </p>
        <p>
          <a href="http://www.liquidgeneration.com/Media/Games/The_Ultimate_Star_Wars_Personality_Test/">Who
are you?</a>
        </p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=6d392fe7-c3de-4ecc-b91d-ba7375e508a9" />
      </body>
      <title>I'm Jabba The Hut</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,6d392fe7-c3de-4ecc-b91d-ba7375e508a9.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/05/22/ImJabbaTheHut.aspx</link>
      <pubDate>Tue, 22 May 2007 02:08:57 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.liquidgeneration.com/Media/Games/The_Ultimate_Star_Wars_Personality_Test/" target="_blank"&gt;&lt;img src="http://www.liquidgeneration.com/content/190407/Card_Jabba.jpg" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.liquidgeneration.com/Media/Games/The_Ultimate_Star_Wars_Personality_Test/"&gt;Who
are you?&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=6d392fe7-c3de-4ecc-b91d-ba7375e508a9" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,6d392fe7-c3de-4ecc-b91d-ba7375e508a9.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=9db2f10c-ed61-4595-a2c7-9c2dfcee2e76</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,9db2f10c-ed61-4595-a2c7-9c2dfcee2e76.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,9db2f10c-ed61-4595-a2c7-9c2dfcee2e76.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9db2f10c-ed61-4595-a2c7-9c2dfcee2e76</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The wife coaches the Knowledge Bowl team at her highschool. She really digs
the higher level stuff and enjoys teaching AP math and stats classes. She comes home
just completely wiped out some days but I never seen her happier than when she's teaching.
She worked at a couple of internet start ups back in the day (in Chicago), has a Masters
degree, a whiz at Excel functions, punches you in the belly with SQL queries and knocks
your block off with scripting. She never really dug it though (except for the cash).
She started teaching a few years ago and never looked back. I'm really proud of her
for finding a job she loves.
</p>
        <p>
Last week, <a href="http://www.columbian.com/news/localNews/03272007news119729.cfm" target="_blank">her
Knowledge Bowl team won the 4A Washington state title</a>!!! She swears she had nothing
to do with it, and the kids are just fabulous. I can't tell you how many times my
wife has dragged me to bars for trivia night. We used to be regulars at <a href="http://www.portlandmercury.com/portland/FoundIt?restaurant=38538" target="_blank">Beulahland</a> for
trivia night. Now she has a state title to defend next year. Go wife!!
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=9db2f10c-ed61-4595-a2c7-9c2dfcee2e76" />
      </body>
      <title>I married a nerd.</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,9db2f10c-ed61-4595-a2c7-9c2dfcee2e76.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/04/01/IMarriedANerd.aspx</link>
      <pubDate>Sun, 01 Apr 2007 23:02:09 GMT</pubDate>
      <description>&lt;p&gt;
The&amp;nbsp;wife coaches the Knowledge Bowl team at her highschool. She&amp;nbsp;really digs
the higher level stuff and enjoys teaching AP math and stats classes. She comes home
just completely wiped out some days but I never seen her happier than when she's teaching.
She worked at a couple of internet start ups back in the day (in Chicago), has a Masters
degree, a whiz at Excel functions, punches you in the belly with SQL queries and knocks
your block off with scripting. She never really dug it though (except for the cash).
She started teaching a few years ago and never looked back. I'm really proud of her
for finding a job she loves.
&lt;/p&gt;
&lt;p&gt;
Last week, &lt;a href="http://www.columbian.com/news/localNews/03272007news119729.cfm" target="_blank"&gt;her
Knowledge Bowl team won the 4A Washington state title&lt;/a&gt;!!! She swears she had nothing
to do with it, and the kids are just fabulous. I can't tell you how many times my
wife has dragged me to bars for trivia night. We used to be regulars at &lt;a href="http://www.portlandmercury.com/portland/FoundIt?restaurant=38538" target="_blank"&gt;Beulahland&lt;/a&gt;&amp;nbsp;for
trivia night. Now she has a state title to defend next year. Go wife!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=9db2f10c-ed61-4595-a2c7-9c2dfcee2e76" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,9db2f10c-ed61-4595-a2c7-9c2dfcee2e76.aspx</comments>
      <category>events</category>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=a752eb63-6af7-4885-b62a-8646245dde46</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,a752eb63-6af7-4885-b62a-8646245dde46.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,a752eb63-6af7-4885-b62a-8646245dde46.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a752eb63-6af7-4885-b62a-8646245dde46</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.bsbrewing.com/blog/?p=135" target="_new" atomicselection="true">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 15px 0px 0px; border-right-width: 0px" height="84" alt="Tasty!" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/PreparingTheHog_7D16/pig1%5B5%5D.jpg" width="132" align="left" border="0" />
          </a> Sometimes
you do <a href="http://www.bsbrewing.com/blog/?p=135" target="_blank">something so
delicious</a> that you just have to link to it from your other blog.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=a752eb63-6af7-4885-b62a-8646245dde46" />
      </body>
      <title>Preparing The Hog</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,a752eb63-6af7-4885-b62a-8646245dde46.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/02/04/PreparingTheHog.aspx</link>
      <pubDate>Sun, 04 Feb 2007 16:55:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.bsbrewing.com/blog/?p=135" target="_new" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 15px 0px 0px; border-right-width: 0px" height="84" alt="Tasty!" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/PreparingTheHog_7D16/pig1%5B5%5D.jpg" width="132" align="left" border="0"&gt;&lt;/a&gt; Sometimes
you do &lt;a href="http://www.bsbrewing.com/blog/?p=135" target="_blank"&gt;something so
delicious&lt;/a&gt; that you just have to link to it from your other blog.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=a752eb63-6af7-4885-b62a-8646245dde46" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,a752eb63-6af7-4885-b62a-8646245dde46.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=0dcbaa56-1a3f-48f1-88f7-ea0078d4735a</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,0dcbaa56-1a3f-48f1-88f7-ea0078d4735a.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,0dcbaa56-1a3f-48f1-88f7-ea0078d4735a.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0dcbaa56-1a3f-48f1-88f7-ea0078d4735a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks <a href="http://wroxblog.typepad.com/minatel/" target="_blank">Jim</a>! Here
I am wasting time on my first day back at work after the holiday break, and apparently,
you are too. Here are 5 things you don't know about me.
</p>
        <ol>
          <li>
I played varsity basketball my freshman year in highschool, much to the delight of
the upperclassmen, and I was the MVP my senior year.</li>
          <li>
As a future software developer, I earned my obligatory black belt during college
by training in Ryukyu Kempo karate with <a href="http://www.burchskarate.com/" target="_blank">Bill
Burch</a>, good friends with <a href="http://www.dillman.com/" target="_blank">George
Dillman</a>. I met some of the best friends I ever had.</li>
          <li>
At my first 4-H show, I received a red ribbon for my two chickens. I think I was eight.</li>
          <li>
I visited the <a href="http://www.nationalgeographic.com/photography/galleries/belize/photo2.html" target="_blank">Blue
Hole</a> in Belize with the charming woman I would later marry. We met about 50
sharks, between 6 to 10 feet in length, as they came out of the deep blue center
to greet us at a depth of 140ft along the rim. She squeezed my hand very tightly and
I knew it was love from then on.</li>
          <li>
During the glorious late '90s I bought a red 1994 Corvette when I had absolutely no
business doing so. My wife says she dated me in spite of that car. Boy, that car was
sweet.</li>
        </ol>
        <p>
Here are my five victims of this game: <a href="http://whitepdx.com/blogs/" target="_blank">Kelly</a>, <a href="http://spaceninja.com/blog/" target="_blank">Scott</a>, <a href="http://happysteve.livejournal.com/" target="_blank">Happy
Steve</a>, <a href="http://www.odessastreet.net/" target="_blank">Lee</a>, and <a href="http://www.bsbrewing.com/blog/" target="_blank">Dave</a>.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=0dcbaa56-1a3f-48f1-88f7-ea0078d4735a" />
      </body>
      <title>Tagged by Jim - 5 things you don't know about me</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,0dcbaa56-1a3f-48f1-88f7-ea0078d4735a.aspx</guid>
      <link>http://www.a7drew.com/blog/2007/01/02/TaggedByJim5ThingsYouDontKnowAboutMe.aspx</link>
      <pubDate>Tue, 02 Jan 2007 18:37:16 GMT</pubDate>
      <description>&lt;p&gt;
Thanks &lt;a href="http://wroxblog.typepad.com/minatel/" target="_blank"&gt;Jim&lt;/a&gt;! Here
I am wasting time on my first day back at work after the holiday break, and apparently,
you are too. Here are 5 things you don't know about me.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
I played varsity basketball my freshman year in highschool, much to the delight of
the upperclassmen, and I was the MVP my senior year.&lt;/li&gt;
&lt;li&gt;
As a future software developer, I&amp;nbsp;earned my obligatory black belt during college
by training in Ryukyu Kempo karate&amp;nbsp;with &lt;a href="http://www.burchskarate.com/" target="_blank"&gt;Bill
Burch&lt;/a&gt;,&amp;nbsp;good friends with &lt;a href="http://www.dillman.com/" target="_blank"&gt;George
Dillman&lt;/a&gt;. I met some of the best friends I ever had.&lt;/li&gt;
&lt;li&gt;
At my first 4-H show, I received a red ribbon for my two chickens. I think I was eight.&lt;/li&gt;
&lt;li&gt;
I visited the &lt;a href="http://www.nationalgeographic.com/photography/galleries/belize/photo2.html" target="_blank"&gt;Blue
Hole&lt;/a&gt; in Belize with the charming woman I would later marry. We&amp;nbsp;met about&amp;nbsp;50
sharks, between 6 to 10 feet in length,&amp;nbsp;as they came out of the deep blue center
to greet us at a depth of 140ft along the rim. She squeezed my hand very tightly and
I knew it was love from then on.&lt;/li&gt;
&lt;li&gt;
During the glorious late '90s I bought a red 1994 Corvette when I had absolutely no
business doing so. My wife says she dated me in spite of that car. Boy, that car was
sweet.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Here are my five victims of this game: &lt;a href="http://whitepdx.com/blogs/" target="_blank"&gt;Kelly&lt;/a&gt;, &lt;a href="http://spaceninja.com/blog/" target="_blank"&gt;Scott&lt;/a&gt;,&amp;nbsp;&lt;a href="http://happysteve.livejournal.com/" target="_blank"&gt;Happy
Steve&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.odessastreet.net/" target="_blank"&gt;Lee&lt;/a&gt;, and &lt;a href="http://www.bsbrewing.com/blog/" target="_blank"&gt;Dave&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=0dcbaa56-1a3f-48f1-88f7-ea0078d4735a" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,0dcbaa56-1a3f-48f1-88f7-ea0078d4735a.aspx</comments>
      <category>fun</category>
      <category>observations</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=5f4702c2-6606-4dfb-8788-cb89b9ffa84a</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,5f4702c2-6606-4dfb-8788-cb89b9ffa84a.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,5f4702c2-6606-4dfb-8788-cb89b9ffa84a.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5f4702c2-6606-4dfb-8788-cb89b9ffa84a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img hspace="8" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/GarminGPSMAP76CSx_C4C5/garmin-gpsmap-76-csx%5B1%5D.png" align="left" vspace="4" border="0" />Last
weekend, during the holiday break, The Wife turns to me and says, "What do you think
of getting a GPS device and taking up <a href="http://en.wikipedia.org/wiki/Geocaching" target="_blank">geocaching</a>?"
</p>
        <p>
I was shocked. I had been secretly coveting the <a href="http://www.garmin.com/products/nuvi/" target="_blank">Garmin
Nüvi</a> ever since <a href="http://www.hanselman.com/blog/ReviewGarminNuvi350GPS.aspx" target="_blank">Scott
Hanselman talked it up</a> a while back. I was very subtle in my hints, but I finally
got it across that I was only interested in the Nüvi. 
</p>
        <p>
Well, The Wife is a keen lady indeed on the Google search engine. She discovered that
the Nüvi is <a href="http://gpsinformation.info/nuvi/nuvireview.html" target="_blank">not
recommended</a> for geocaching; its much more suited for use in the car or walking
around a tourist town with its (relatively) large screen size and feature set.
</p>
        <p>
There's another set of GPS devices that are better suited for geocaching. The <a href="http://www.garmin.com/products/gpsmap76csx/" target="_blank">GPSMAP
78CSx</a> series has a better waterproof standard of <a href="http://gpsinformation.net/iec529.htm" target="_blank">IEC
529 IPX7</a>, a built in compass, altimeter, celestial information, tide prediction
and other things are just meant for folks out wandering around in nature. There are
several other sets of GPS units such as marine and aviation. I think my brother has
a Garmin in his plane and my other brother has one in his boat.
</p>
        <p>
I was bummed, but glad that we were going to purchase the right device. I'm still
keen on the Garmin Nüvi though. :) 
</p>
        <p>
My day job involves building websites for companies and giving them a fantastic place
to promote their brand, product or service so perhaps my bar is a little higher than
some, but the <a href="http://www.garmin.com/" target="_blank">Garmin</a> website
blows. The site has a semi-decent Flash piece to promote one part of the site,
but over all, its a typical 1998 experience. The user interface could do well with
a little bit of polish and take advantage of some usability factors we (the web development
community) have learned over the past few years.
</p>
        <p>
With the holiday weekend and all, I did extensive checking online for retailers and
let my fingers to the walking. There's a wide range of phone experiences; from appallingly
bad all the way to very helpful. <a href="http://www.rei.com/" target="_blank">REI</a> was
one of the best phone experiences, plus they had one in stock!
</p>
        <p>
The Wife and I bundle up for the rain and head out to the local REI to purchase our
new GPS device. REI held it for us at the customer service desk, so I just walked
up to them and they handed it over. They provide fantastic service and I highly recommend
them for your outdoor and sporting needs. During checkout, they asked if we were members
and The Wife recalled that we signed up when we lived in Chicago. I had no idea. That
ended up saving us nearly $50 off the price! Booya!
</p>
        <p>
We brought the device home and booted it up. It's very pretty and has a great layout
of buttons and controls. Unfortunately the device didn't synch up with the satellites.
We saw between 2 and 8 bars in varying heights, but they wouldn't fill in,
which would indicate a successful initialization. We tried all sorts of things including
a reinstallation of the software using the USB connection. We even drove out to the
airport to assure ourselves of a wide open range. We got the most bars there, but
again, they were not filled in. We left it outside in our backyard for about 90 minutes
too, still nothing. I even drove up to <a href="http://vulcan.wr.usgs.gov/Volcanoes/Oregon/BoringLavaField/VisitVolcano/mount_tabor.html" target="_blank">Mt.
Tabor</a> and tried it there. Nada.
</p>
        <p>
We bought it on Friday and now it was Sunday. I got in the car and headed back down
to REI to exchange it for a new one. I went to the customer service desk and explained
the situation. The nice fella gave me a store voucher, took the broken device
and asked me to go to the GPS display and get another one (downstairs). I was filled
with glee!
</p>
        <p>
I bolted for the display. Too bad, they were out. I did have a quirky exchange with
one REI staffer at the display though. I explain the problem to him and he retorts,
"Did you initialize the device? Do you even know what initialization is?" I was a
tad startled by his gruff questioning, plus I was really interested in getting
the device to work. Perhaps I had forgotten something and I was merely a few minutes
away from eternal bliss. Alas, no. Everything this jerk explained was something I
had already tried. I've written him off though; I still really like REI.
</p>
        <p>
At this point, I could either ask REI to order another device for me, or I could try
my luck on the broken device. I decided to go back to the customer service desk, retrieve
the broken device and try some more for the remainder of the Sunday. With no luck,
I phoned Garmin during the week and explained the situation. The fella was awful nice
on the phone and said, based on my description that the device was probably broken.
Since the bars appeared at varying heights, the antenna was probably fine and it could
"see" the satellites, but it was having problems reading packets from the satellites.
He said to return it to REI and grab another. Ha!
</p>
        <p>
The Wife and I went back to REI today and exchanged the device. Fortunately they received
a shipment recently, so they had a device available for us immediately. Yay! Plus,
they were super nice to us. The Wife was immediately skeptical, so we walked a few
blocks down to <a href="http://www.portlandground.com/archives/2005/02/jameson_square.php" target="_blank">Jameson
Square</a> to test it out. It just took two minutes and we were locked in! Yay!
</p>
        <p>
REI also gave us a $20 gift certificate for an Introduction to GPS Navigation Class.
The Wife and I are looking forward to taking that for starters. I've been reading <a href="http://www.cauldwell.net/patrick/blog/CategoryView,category,geocaching.aspx" target="_blank">Patrick
Cauldwell's posts</a> about geocaching too. This looks like a great hobby to dive
into.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=5f4702c2-6606-4dfb-8788-cb89b9ffa84a" />
      </body>
      <title>Garmin GPSMAP 76CSx</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,5f4702c2-6606-4dfb-8788-cb89b9ffa84a.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/11/30/GarminGPSMAP76CSx.aspx</link>
      <pubDate>Thu, 30 Nov 2006 02:29:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img hspace=8 src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/GarminGPSMAP76CSx_C4C5/garmin-gpsmap-76-csx%5B1%5D.png" align=left vspace=4 border=0&gt;Last
weekend, during the holiday break, The Wife turns to me and says, "What do you think
of getting a GPS device and taking up &lt;a href="http://en.wikipedia.org/wiki/Geocaching" target=_blank&gt;geocaching&lt;/a&gt;?"
&lt;/p&gt;
&lt;p&gt;
I was shocked. I had been secretly coveting the &lt;a href="http://www.garmin.com/products/nuvi/" target=_blank&gt;Garmin
Nüvi&lt;/a&gt; ever since &lt;a href="http://www.hanselman.com/blog/ReviewGarminNuvi350GPS.aspx" target=_blank&gt;Scott
Hanselman talked it up&lt;/a&gt; a while back. I was very subtle in my hints, but I finally
got it across that I was only interested in the Nüvi. 
&lt;/p&gt;
&lt;p&gt;
Well, The Wife is a keen lady indeed on the Google search engine. She discovered that
the Nüvi is &lt;a href="http://gpsinformation.info/nuvi/nuvireview.html" target=_blank&gt;not
recommended&lt;/a&gt; for geocaching; its much more suited for use in the car or walking
around a tourist town with its&amp;nbsp;(relatively) large screen size and feature set.
&lt;/p&gt;
&lt;p&gt;
There's another set of GPS devices that are better suited for geocaching. The &lt;a href="http://www.garmin.com/products/gpsmap76csx/" target=_blank&gt;GPSMAP
78CSx&lt;/a&gt; series has a better waterproof standard of &lt;a href="http://gpsinformation.net/iec529.htm" target=_blank&gt;IEC
529 IPX7&lt;/a&gt;, a built in compass, altimeter, celestial information, tide prediction
and other things are just meant for folks out wandering around in nature. There are
several other sets of GPS units such as marine and aviation. I think my brother has
a Garmin in his plane and my other brother has one in his boat.
&lt;/p&gt;
&lt;p&gt;
I was bummed, but glad that we were going to purchase the right device. I'm still
keen on the Garmin Nüvi though. :) 
&lt;/p&gt;
&lt;p&gt;
My day job involves building websites for companies and giving them a fantastic place
to promote their brand, product or service so perhaps my bar is a little higher than
some, but the &lt;a href="http://www.garmin.com/" target=_blank&gt;Garmin&lt;/a&gt; website blows.
The site&amp;nbsp;has a semi-decent Flash piece to promote one part of the site, but over
all, its a typical 1998 experience. The user interface could do well with a little
bit of polish and take advantage of some usability factors we (the web development
community) have learned over the past few years.
&lt;/p&gt;
&lt;p&gt;
With the holiday weekend and all, I did extensive checking online for retailers and
let my fingers to the walking. There's a wide range of phone experiences; from appallingly
bad all the way to very helpful. &lt;a href="http://www.rei.com/" target=_blank&gt;REI&lt;/a&gt; was
one of the best phone experiences, plus they had one in stock!
&lt;/p&gt;
&lt;p&gt;
The Wife and I bundle up for the rain and head out to the local REI to purchase our
new GPS device. REI held it for us at the customer service desk, so I just walked
up to them and they handed it over. They provide fantastic service and I highly recommend
them for your outdoor and sporting needs. During checkout, they asked if we were members
and The Wife recalled that we signed up when we lived in Chicago. I had no idea. That
ended up saving us nearly $50 off the price! Booya!
&lt;/p&gt;
&lt;p&gt;
We brought the device home and booted it up. It's very pretty and has a great layout
of buttons and controls. Unfortunately the device didn't synch up with the satellites.
We saw&amp;nbsp;between 2 and 8&amp;nbsp;bars in varying heights, but they wouldn't fill in,
which would indicate a successful initialization. We tried all sorts of things including
a reinstallation of the software using the USB connection. We even drove out to the
airport to assure ourselves of a wide open range. We got the most bars there, but
again, they were not filled in. We left it outside in our backyard for about 90 minutes
too, still nothing. I even drove up to &lt;a href="http://vulcan.wr.usgs.gov/Volcanoes/Oregon/BoringLavaField/VisitVolcano/mount_tabor.html" target=_blank&gt;Mt.
Tabor&lt;/a&gt; and tried it there. Nada.
&lt;/p&gt;
&lt;p&gt;
We bought it on Friday and now it was Sunday. I got in the car and headed back down
to REI to exchange it for a new one. I went to the customer service desk and explained
the situation.&amp;nbsp;The nice fella gave me a store voucher, took the broken device
and asked me to go to the GPS display and get another one (downstairs). I was filled
with glee!
&lt;/p&gt;
&lt;p&gt;
I bolted for the display. Too bad, they were out. I did have a quirky exchange with
one REI staffer at the display though. I explain the problem to him and he retorts,
"Did you initialize the device? Do you even know what initialization is?" I was a
tad startled by his&amp;nbsp;gruff questioning, plus I was really interested in getting
the device to work. Perhaps I had forgotten something and I was merely a few minutes
away from eternal bliss. Alas, no. Everything this jerk explained was something I
had already tried. I've written him off though; I still really like REI.
&lt;/p&gt;
&lt;p&gt;
At this point, I could either ask REI to order another device for me, or I could try
my luck on the broken device. I decided to go back to the customer service desk, retrieve
the broken device and try some more for the remainder of the Sunday. With no luck,
I phoned Garmin during the week and explained the situation. The fella was awful nice
on the phone and said, based on my description that the device was probably broken.
Since the bars appeared at varying heights, the antenna was probably fine and it could
"see" the satellites, but it was having problems reading packets from the satellites.
He said to return it to REI and grab another. Ha!
&lt;/p&gt;
&lt;p&gt;
The Wife and I went back to REI today and exchanged the device. Fortunately they received
a shipment recently, so they had a device available for us immediately. Yay! Plus,
they were super nice to us. The Wife was immediately skeptical, so we walked a few
blocks down to &lt;a href="http://www.portlandground.com/archives/2005/02/jameson_square.php" target=_blank&gt;Jameson
Square&lt;/a&gt; to test it out. It just took two minutes and we were locked in! Yay!
&lt;/p&gt;
&lt;p&gt;
REI also gave us a $20 gift certificate for an Introduction to GPS Navigation Class.
The Wife and I are looking forward to taking that for starters. I've been reading &lt;a href="http://www.cauldwell.net/patrick/blog/CategoryView,category,geocaching.aspx" target=_blank&gt;Patrick
Cauldwell's posts&lt;/a&gt; about geocaching too. This looks like a great hobby to dive
into.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=5f4702c2-6606-4dfb-8788-cb89b9ffa84a" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,5f4702c2-6606-4dfb-8788-cb89b9ffa84a.aspx</comments>
      <category>fun</category>
      <category>geocache</category>
      <category>hardware</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=88d50256-d988-496f-b069-235df26e7b5f</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,88d50256-d988-496f-b069-235df26e7b5f.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,88d50256-d988-496f-b069-235df26e7b5f.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=88d50256-d988-496f-b069-235df26e7b5f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="16:3 Scale Labyrinth" hspace="8" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/163ScaleLabyrinth_BFB3/labyrinthxymechanism%5B1%5D.jpg" width="173" align="left" vspace="4" border="0" /> I
forgot to mention that we we're linked by <a href="http://www.makezine.com/blog/archive/2006/10/amazeing_game_b.html" target="_blank">makezine.com</a> the
other day for our efforts in building a large scale labyrinth game.
</p>
        <p>
My friend Dave Selden is the master mind. He had the idea to <a href="http://www.descendingashtray.com/archives/196" target="_blank">make
the game</a> based on his sweet eBay purchase. He called up some friends
and we've been helping Dave build it over the past couple of weeks in the
hopes of winning a mini-golf contest. We're up against our neighbors at Wyden
&amp; Kennedy, the ad agency for Nike. They are purportedly making a giant whale with
the ball shooting out of the blow hole; rumors to be sure but I would expect they
have a larger budget too.
</p>
        <p>
The game begins by placing the golf ball in the start position on the board surface.
One or two players turn two giant knobs on the sides of the game to manipulate the
x and y axis of the board surface. If the player succeeds in moving the ball to the
finish hole, the ball descends through a tube, out the side, and directly (hopefully)
into the cup. Otherwise, the ball drops out on the far side of the game; where the
player must then putt the ball around the rectangular green to the side with the hold.
Got to love the mini-golf game!
</p>
        <p>
Thanks Drew! He submitted us to makezine.com. He has <a href="http://www.mohdi.com/" target="_blank">millions
of hundred dollar ideas</a>.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=88d50256-d988-496f-b069-235df26e7b5f" />
      </body>
      <title>16:3 Scale Labyrinth</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,88d50256-d988-496f-b069-235df26e7b5f.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/10/21/163ScaleLabyrinth.aspx</link>
      <pubDate>Sat, 21 Oct 2006 20:40:54 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="16:3 Scale Labyrinth" hspace="8" src="http://www.andrewdothay.net/blog/content/binary/WindowsLiveWriter/163ScaleLabyrinth_BFB3/labyrinthxymechanism%5B1%5D.jpg" width="173" align="left" vspace="4" border="0"&gt; I
forgot to mention that we we're linked by &lt;a href="http://www.makezine.com/blog/archive/2006/10/amazeing_game_b.html" target="_blank"&gt;makezine.com&lt;/a&gt; the
other day for our efforts in building a large scale labyrinth game.
&lt;/p&gt;
&lt;p&gt;
My friend Dave Selden is the master mind. He had the idea to &lt;a href="http://www.descendingashtray.com/archives/196" target="_blank"&gt;make
the game&lt;/a&gt; based on his&amp;nbsp;sweet eBay purchase. He called up&amp;nbsp;some friends
and we've been&amp;nbsp;helping Dave build it&amp;nbsp;over the past couple of weeks in the
hopes of winning a mini-golf contest. We're up against&amp;nbsp;our neighbors at&amp;nbsp;Wyden
&amp;amp; Kennedy, the ad agency for Nike. They are purportedly making a giant whale with
the ball shooting out of the blow hole; rumors to be sure but I would expect they
have a larger budget too.
&lt;/p&gt;
&lt;p&gt;
The game&amp;nbsp;begins by placing the golf ball in the start position on the board surface.
One or two players turn two giant knobs on the sides of the game to manipulate the
x and y axis of the board surface. If the player succeeds in moving the ball to the
finish hole, the ball descends through a tube, out the side, and directly (hopefully)
into the cup. Otherwise, the ball drops out on the far side of the game; where the
player must then putt the ball around the rectangular green to the side with the hold.
Got to love the mini-golf game!
&lt;/p&gt;
&lt;p&gt;
Thanks&amp;nbsp;Drew! He&amp;nbsp;submitted us to makezine.com. He has &lt;a href="http://www.mohdi.com/" target="_blank"&gt;millions
of hundred dollar ideas&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=88d50256-d988-496f-b069-235df26e7b5f" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,88d50256-d988-496f-b069-235df26e7b5f.aspx</comments>
      <category>fun</category>
      <category>popart</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=54b9cf0c-ca0b-4033-a7cd-5701057ed3a1</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,54b9cf0c-ca0b-4033-a7cd-5701057ed3a1.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,54b9cf0c-ca0b-4033-a7cd-5701057ed3a1.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=54b9cf0c-ca0b-4033-a7cd-5701057ed3a1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jason Mauer's <a href="http://www.jasonmauer.com/EntryView.aspx?id=1AAEB531-0D82-4332-BD12-8AF33E1AF6EF" target="_blank">blog</a> let
me know that <a href="http://seattle.techevents.info/codecamp/2/default.aspx" target="_blank">Seattle
Code Camp</a> is coming up at the end of the month! Ack!
</p>
        <p>
I'm thinking about heading up with my buddy <a href="http://kelly.staging.popart.com/">Kelly</a>.
I told myself at the Portland Code camp, I said "Self," that's what I call myself, "you
should present at the next code camp." Well, this is the next one, but its right around
the corner! 
</p>
        <p>
I could do the DotNetNuke presentation, but seeing as how they just incorporated combined
with their proximity to Seattle, there's a good probability that a DNN big shot
will be there doing a far better show than I could. I was very impressed at the last
Portland Code Camp at the quality of the "simple" talks. Things that you should already
know, but are fun and refreshing to go over again. For example, the Subversion discussion
was really well attended and you always end up learning some new trick or insight.
I love that.
</p>
        <p>
I'll put my thinking hat on and see what I come up with.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=54b9cf0c-ca0b-4033-a7cd-5701057ed3a1" />
      </body>
      <title>Seattle Code Camp</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,54b9cf0c-ca0b-4033-a7cd-5701057ed3a1.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/10/03/SeattleCodeCamp.aspx</link>
      <pubDate>Tue, 03 Oct 2006 22:42:21 GMT</pubDate>
      <description>&lt;p&gt;
Jason Mauer's &lt;a href="http://www.jasonmauer.com/EntryView.aspx?id=1AAEB531-0D82-4332-BD12-8AF33E1AF6EF" target=_blank&gt;blog&lt;/a&gt; let
me know that &lt;a href="http://seattle.techevents.info/codecamp/2/default.aspx" target=_blank&gt;Seattle
Code Camp&lt;/a&gt; is coming up at the end of the month! Ack!
&lt;/p&gt;
&lt;p&gt;
I'm thinking about heading up with my buddy &lt;a href="http://kelly.staging.popart.com/"&gt;Kelly&lt;/a&gt;.
I told myself at the Portland Code camp, I said "Self," that's&amp;nbsp;what I call myself,&amp;nbsp;"you
should present at the next code camp." Well, this is the next one, but its right around
the corner! 
&lt;/p&gt;
&lt;p&gt;
I could do the DotNetNuke presentation, but seeing as how they just incorporated&amp;nbsp;combined
with their&amp;nbsp;proximity to Seattle, there's a good probability that a DNN big shot
will be there doing a far better show than I could. I was very impressed at the last
Portland Code Camp at the quality of the "simple" talks. Things that you should already
know, but are fun and refreshing to go over again. For example, the Subversion discussion
was really well attended and you always end up learning some new trick or insight.
I love that.
&lt;/p&gt;
&lt;p&gt;
I'll put my thinking hat on and see what I come up with.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=54b9cf0c-ca0b-4033-a7cd-5701057ed3a1" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,54b9cf0c-ca0b-4033-a7cd-5701057ed3a1.aspx</comments>
      <category>fun</category>
      <category>learning</category>
      <category>popart</category>
      <category>events</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=db5fefa0-dcd0-49eb-a7a1-85499e3bef6c</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,db5fefa0-dcd0-49eb-a7a1-85499e3bef6c.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,db5fefa0-dcd0-49eb-a7a1-85499e3bef6c.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=db5fefa0-dcd0-49eb-a7a1-85499e3bef6c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As a treat to myself for the new office move, I strategically ordered 2GB of RAM for
my laptop so it would arrive on the first day in the new office. My Dell Latitude
D610 has been a nice work horse for a while, but the paultry 512KB RAM just had a
hard time compiling large VS.Net solutions.
</p>
        <p>
I eagerly printed out the memory install instructions and patiently waited for the
DHL driver to show up with my package. By using the DHL online tracking tool, I could
see the package arrived in Portland on Friday and the driver had it by 9:25AM on Monday.
Around 4PM, I couldn't wait anymore and I was being to wear a path in the carpet past
the front desk; so I called the DHL line. They had a very good call system in place.
I typed in my tracking code and the live person on the phone answered my question
quickly. Basically, they knew exactly where they were delivering the package and no
problems were reported. Drat!
</p>
        <p>
Then, my (new) phone rang! It was the front desk calling to inform me that my package
had arrived at the front desk. Figures, as soon as I call, the dude walks off the
elevator to the office. I should have called a noon!
</p>
        <p>
So, as my first feat of strength, I fired up VS.Net and pointed it to a DotNetNuke
v4.3.4 solution that we have in the works. With just 512KB of RAM in my laptop, it
took several minutes to compile the entire source code comprised of many thousands
of lines. Now, with 2GB of RAM, I slammed through those 33 projects in about
two minutes. A marked improvement indeed!
</p>
        <p>
At just a measely 2GHz, my CPU is the dog now; the image of my task manager
window bears that out. This is the processor churning through all those lines of DotNetNuke
code in VS.Net; at least its not pegged at 100%! 
</p>
        <p>
The holidays are coming soon, perhaps I'll see a new laptop soon? :)
</p>
        <p>
          <img src="http://www.andrewdothay.net/blog/content/binary/perfmonwith2gig.png" border="1" />
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=db5fefa0-dcd0-49eb-a7a1-85499e3bef6c" />
      </body>
      <title>2 Gigs of RAM and Microphone</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,db5fefa0-dcd0-49eb-a7a1-85499e3bef6c.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/09/26/2GigsOfRAMAndMicrophone.aspx</link>
      <pubDate>Tue, 26 Sep 2006 00:01:21 GMT</pubDate>
      <description>&lt;p&gt;
As a treat to myself for the new office move, I strategically ordered 2GB of RAM for
my laptop so it would arrive on the first day in the new office. My Dell Latitude
D610 has been a nice work horse for a while, but the paultry 512KB RAM just had a
hard time compiling large VS.Net solutions.
&lt;/p&gt;
&lt;p&gt;
I eagerly printed out the memory install instructions and patiently waited for the
DHL driver to show up with my package. By using the DHL online tracking tool, I could
see the package arrived in Portland on Friday and the driver had it by 9:25AM on Monday.
Around 4PM, I couldn't wait anymore and I was being to wear a path in the carpet past
the front desk; so I called the DHL line. They had a very good call system in place.
I typed in my tracking code and the live person on the phone answered my question
quickly. Basically, they knew exactly where they were delivering the package and no
problems were reported. Drat!
&lt;/p&gt;
&lt;p&gt;
Then, my (new) phone rang! It was the front desk calling to inform me that my package
had arrived at the front desk. Figures, as soon as I call, the dude walks off the
elevator to the office. I should have called a noon!
&lt;/p&gt;
&lt;p&gt;
So, as my first feat of strength, I fired up VS.Net and pointed it to a DotNetNuke
v4.3.4 solution that we have in the works. With just 512KB of RAM in my laptop, it
took several minutes to compile the entire source code comprised of&amp;nbsp;many&amp;nbsp;thousands
of lines. Now, with 2GB of RAM, I slammed through&amp;nbsp;those 33 projects&amp;nbsp;in about
two minutes. A marked improvement indeed!
&lt;/p&gt;
&lt;p&gt;
At just a measely 2GHz, my&amp;nbsp;CPU is the dog now; the&amp;nbsp;image of my task manager
window bears that out. This is the processor churning through all those lines of DotNetNuke
code in VS.Net; at least its not pegged at 100%!&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The holidays are coming soon, perhaps I'll see a new laptop soon? :)
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.andrewdothay.net/blog/content/binary/perfmonwith2gig.png" border=1&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=db5fefa0-dcd0-49eb-a7a1-85499e3bef6c" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,db5fefa0-dcd0-49eb-a7a1-85499e3bef6c.aspx</comments>
      <category>DotNetNuke</category>
      <category>fun</category>
      <category>hardware</category>
      <category>popart</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=ad634ad4-7de1-451a-b9d3-1da89c2fff69</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,ad634ad4-7de1-451a-b9d3-1da89c2fff69.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,ad634ad4-7de1-451a-b9d3-1da89c2fff69.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ad634ad4-7de1-451a-b9d3-1da89c2fff69</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last night, I finally sat down to watch the last episode of Battlestar Galactica,
season two. I downloaded it overnight on a prior day. I was willing to put the prior
issues aside and enjoy the final segment of season two with a fine glass of Pinot
Noir.
</p>
        <p>
          <em>What's that iTunes? Got a little more fight left in ya?</em>
        </p>
        <p>
Either the new iTunes client needs additional display resources, or the quality of
the video is so enhanced, that my measley laptop cannot perform a dual display of
the projector and the laptop screen. 
</p>
        <p>
At first, I thought the entire full screen mode was broken as the projection show
static images of the video, about a second apart. Its not fun watching a television
show as a series of Flickr images so I started thinking about other modes
of viewing, including just using the laptop itself.
</p>
        <p>
Finally, it hit me that the resources on my laptop were probably insufficient to run
on both the laptop screen and the projection screen. Unlike all of my prior downloads
on iTunes...
</p>
        <p>
When I set the laptop to display on the projection system only, not dual display,
the video returned to an acceptable state. As I was watching the otherwise fantastic
end to season two, I kept wondering, hey, did I just see the video stutter a second
ago?
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=ad634ad4-7de1-451a-b9d3-1da89c2fff69" />
      </body>
      <title>More iTunes Woes</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,ad634ad4-7de1-451a-b9d3-1da89c2fff69.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/09/14/MoreITunesWoes.aspx</link>
      <pubDate>Thu, 14 Sep 2006 17:33:39 GMT</pubDate>
      <description>&lt;p&gt;
Last night, I finally sat down to watch the last episode of Battlestar Galactica,
season two. I downloaded it overnight on a prior day. I was willing to put the prior
issues aside and enjoy the final segment&amp;nbsp;of season two with a fine glass of Pinot
Noir.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;What's that iTunes? Got a little more fight left in ya?&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Either the new iTunes client needs additional display resources, or the quality of
the video is so enhanced, that my measley laptop cannot perform a dual display of
the projector and the laptop screen. 
&lt;/p&gt;
&lt;p&gt;
At first, I thought the entire full screen mode was broken as the projection show
static images of the video, about a second apart. Its not fun watching a television
show as a series of Flickr images so I started&amp;nbsp;thinking about&amp;nbsp;other modes
of viewing, including just using the laptop itself.
&lt;/p&gt;
&lt;p&gt;
Finally, it hit me that the resources on my laptop were probably insufficient to run
on both the laptop screen and the projection screen. Unlike all of my prior downloads
on iTunes...
&lt;/p&gt;
&lt;p&gt;
When I set the laptop to display on the projection system only, not dual display,
the video returned to an acceptable state. As I was watching the otherwise fantastic
end to season two, I kept wondering, hey, did I just see the video stutter a second
ago?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=ad634ad4-7de1-451a-b9d3-1da89c2fff69" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,ad634ad4-7de1-451a-b9d3-1da89c2fff69.aspx</comments>
      <category>fun</category>
      <category>movies</category>
      <category>observations</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=315f21ec-35aa-456c-8b2d-8adaafa10638</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,315f21ec-35aa-456c-8b2d-8adaafa10638.aspx</pingback:target>
      <dc:creator>Andrew Hay</dc:creator>
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,315f21ec-35aa-456c-8b2d-8adaafa10638.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=315f21ec-35aa-456c-8b2d-8adaafa10638</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img hspace="8" src="http://www.andrewdothay.net/blog/content/binary/yubiwahotel.png" align="left" border="0" />I
had a fancy date with my wife last Saturday night. We went to the <a href="http://www.pica.org/tba/default.aspx">TBA
Festival</a> and saw <a href="http://www.pica.org/tba/tba06/detail.aspx?eventid=30">Yubiwa
Hotel; CANDIES Girlish Hardcore</a>.
</p>
        <p>
I had two passes that provide access to nearly any show during the eleven day
festival, so I wasn't too worried about seats. We arrived at the Artists Repertory
Theatre only to find a very long line of people, a few of them looked like they were
in charge. We talked with them for a second and learned that there were in fact two
lines, one for folks with blue plastic passes like me, and another, much longer, line
for folks with yellow paper tickets. The smart people who planned ahead and actually
had "reservations" for this particular show were able to simply walk into the theater.
The theater seats ~ 130 people.
</p>
        <p>
20 minutes before the show, time went by quickly, even quicker with a glass of complimentary
wine; these folks know how to throw a festival. With about two minutes until
showtime, our line proceeded to the door in groups of two or three. The blue
plastic pass line trumps the yellow paper ticket line. We were about ten back, so
I knew it would be close. The sign on the ticket counter said "Sold Out". We finally
got in, much to my relief. No quicker way to end a nice date with The Wife than by
missing out on the very show we were going to see.
</p>
        <p>
The theater was set up with a main rising section facing the ground level stage. Two
other rising sections of theater seating were on the left and right sides. A large
black wall made the fourth side, the ground level stage was about 30x50. Two seats
in each row, closest to the stage were taped off. When inquired, the seating assistance
claimed right of "sight lines". The Wife, being a theater set designer in college recalled
the legend and lore instantly. Something about the seats conflicted with
the show; perhaps they permitted too much visibility back stage? I didn't buy that;
what could they see that I couldn't?
</p>
        <p>
I had pretty much no idea what we were about to see. After seeing the show, I had
pretty much no idea about what I saw, aside from the following points:
</p>
        <ul>
          <li>
The artists were Japanese, thus their lines were in Japanese 
</li>
          <li>
An LCD projector lit up some translated dialog on the back wall 
</li>
          <li>
The seats that were taped off had very little chance of seeing the english subtitles
on the back wall. I barely could. 
</li>
          <li>
There was dancing 
</li>
          <li>
There was some story about a mother who died, maybe it was the sister, anyway, a wedding
was involved 
</li>
          <li>
They ran a really good drill with a basketball, three groups, pass to the middle,
pass to the right, run to where you pass the ball 
</li>
          <li>
They stripped 
</li>
          <li>
Bare naked 
</li>
          <li>
Several times 
</li>
          <li>
They made a nice pancake on an electric grill 
</li>
          <li>
They ate said pancake off of a red leather backpack</li>
        </ul>
        <p>
I felt fairly well cultured after seeing the show. I find myself thinking back on
it several times a day since Saturday night. WTF did it mean?
</p>
        <p>
Before the show, the MC said the creator would be on hand afterwards to answer questions.
When I heard that, I had little motivation to stay and listen. While seeing the show,
I had more and more questions and I was quite interested in hearing the definitions
afterwards. Well the nude part, I understood, but the other stuff, that's what I was
interested in. 
</p>
        <p>
Yet, when the show ended, my wife was too hungry to stay and listen, so we bounded
off for <a href="http://portland.citysearch.com/profile/41971789/">le Pigeon</a>,
a nice french restaurant on SE 7th and Burnside. Its a nice urban place, I recommend
it. Its just up from the Outlaw Bar and has large windows to sit and watch the weird
(and I mean that in the best sense possible) Burnside pedestrian traffic around 8pm
when you're eating your meal cooked with large quantities of butter. 
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=315f21ec-35aa-456c-8b2d-8adaafa10638" />
      </body>
      <title>Yubiwa Hotel</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,315f21ec-35aa-456c-8b2d-8adaafa10638.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/09/11/YubiwaHotel.aspx</link>
      <pubDate>Mon, 11 Sep 2006 04:02:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img hspace=8 src="http://www.andrewdothay.net/blog/content/binary/yubiwahotel.png" align=left border=0&gt;I
had a fancy date with my wife last Saturday night. We went to the &lt;a href="http://www.pica.org/tba/default.aspx"&gt;TBA
Festival&lt;/a&gt; and saw &lt;a href="http://www.pica.org/tba/tba06/detail.aspx?eventid=30"&gt;Yubiwa
Hotel; CANDIES Girlish Hardcore&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I had two passes that&amp;nbsp;provide access to nearly any show during the eleven day
festival, so I wasn't too worried about seats. We arrived at the Artists Repertory
Theatre only to find a very long line of people, a few of them looked like they were
in charge. We talked with them for a second and learned that there were in fact two
lines, one for folks with blue plastic passes like me, and another, much longer, line
for folks with yellow paper tickets. The smart people who planned ahead and actually
had "reservations" for this particular show were able to simply walk into the theater.
The theater seats ~ 130 people.
&lt;/p&gt;
&lt;p&gt;
20 minutes before the show, time went by quickly, even quicker with a glass of complimentary
wine; these folks know how to throw a festival. With about two minutes&amp;nbsp;until
showtime, our line&amp;nbsp;proceeded to the door in groups of two or three. The blue
plastic pass line trumps the yellow paper ticket line. We were about ten back, so
I knew it would be close. The sign on the ticket counter said "Sold Out". We finally
got in, much to my relief. No quicker way to end a nice date with The Wife than by
missing out on the very show we were going to see.
&lt;/p&gt;
&lt;p&gt;
The theater was set up with a main rising section facing the ground level stage. Two
other rising sections of theater seating were on the left and right sides. A large
black wall made the fourth side, the ground level stage was about 30x50. Two seats
in each row, closest to the stage were taped off. When inquired, the seating assistance
claimed right of "sight lines".&amp;nbsp;The Wife, being a theater set designer in college&amp;nbsp;recalled
the&amp;nbsp;legend and lore&amp;nbsp;instantly. Something about the seats conflicted with
the show; perhaps they permitted too much visibility back stage? I didn't buy that;
what could they see that I couldn't?
&lt;/p&gt;
&lt;p&gt;
I had pretty much no idea what we were about to see. After seeing the show, I had
pretty much no idea about what I saw, aside from the following points:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The artists were Japanese, thus their lines were in Japanese 
&lt;li&gt;
An LCD projector lit up some translated dialog on the back wall 
&lt;li&gt;
The seats that were taped off had very little chance of seeing the english subtitles
on the back wall. I barely could. 
&lt;li&gt;
There was dancing 
&lt;li&gt;
There was some story about a mother who died, maybe it was the sister, anyway, a wedding
was involved 
&lt;li&gt;
They ran a really good drill with a basketball, three groups, pass to the middle,
pass to the right, run to where you pass the ball 
&lt;li&gt;
They stripped 
&lt;li&gt;
Bare naked 
&lt;li&gt;
Several times 
&lt;li&gt;
They made a nice pancake on an electric grill 
&lt;li&gt;
They ate&amp;nbsp;said pancake off of a red leather backpack&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I felt fairly well cultured after seeing the show. I find myself thinking back on
it several times a day since Saturday night. WTF did it mean?
&lt;/p&gt;
&lt;p&gt;
Before the show, the MC said the creator would be on hand afterwards to answer questions.
When I heard that, I had little motivation to stay and listen. While seeing the show,
I had more and more questions and I was quite interested in hearing the definitions
afterwards. Well the nude part, I understood, but the other stuff, that's what I was
interested in. 
&lt;/p&gt;
&lt;p&gt;
Yet, when the show ended, my wife was too hungry to stay and listen, so we bounded
off for &lt;a href="http://portland.citysearch.com/profile/41971789/"&gt;le Pigeon&lt;/a&gt;,
a nice french restaurant on SE 7th and Burnside. Its a nice urban place, I recommend
it. Its just up from the Outlaw Bar and has large windows to sit and watch the weird
(and I mean that in the best sense possible) Burnside pedestrian traffic around 8pm
when you're eating your meal cooked with large quantities of butter. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=315f21ec-35aa-456c-8b2d-8adaafa10638" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,315f21ec-35aa-456c-8b2d-8adaafa10638.aspx</comments>
      <category>fun</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=017f15e7-ba76-4f81-93f8-cd5af090c881</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,017f15e7-ba76-4f81-93f8-cd5af090c881.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,017f15e7-ba76-4f81-93f8-cd5af090c881.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=017f15e7-ba76-4f81-93f8-cd5af090c881</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mike Culver presented <a href="http://www.amazon.com/b/ref=sc_fe_l_1/104-2793060-0099156?ie=UTF8&amp;node=3435361&amp;no=3435361&amp;me=A36L942TSJ2AJA">Amazon
Web Services</a> last night at our monthly <a href="http://www.padnug.org/">PADNUG</a> meeting.
As usual, there was a short PowerPoint followed by a coding example. 
</p>
        <p>
Mike fired up Visual Studio and started writing a WinForms app that consumes the <a href="http://www.amazon.com/b/ref=sc_fe_l_2/104-2793060-0099156?ie=UTF8&amp;node=16427261&amp;no=15879911&amp;me=A36L942TSJ2AJA">S3
web service</a>. He wrote the first line of code by hand, then proceeded to use Code
Snippets to complete the class. Naturally, the Code Snippets were typed correctly,
but the first line of code typed in front of the audience stood a much larger chance
of containing an error. It was such a simple line, it was declaring a class level
variable; a field, if you will.
</p>
        <p>
Sure enough, there it was. The red sqiggley line presented by VS.Net for all the group
to see projected on the wall.
</p>
        <p>
Why didn't Mike see it? Why didn't the other developers in the room see it? Should
I point it out now? 
</p>
        <p>
I decided I should say something. I settled on a reasonable chuckle for the group
as that light hearted mood had already produced a few quips from the crowd.
</p>
        <p>
I saw that Mike was getting ready to compile and the cat would soon be out of the
bag. My opportunity lost forever. My hand shot up into the air. Mike was quick to
engage in the dialogue of the group. Yet, instead of asking an interesting question
that would capture and focus the attention of the group, I meekly state:
</p>
        <div class="sourcecodeblock">“Kelly says that the first line in your class, the variable
declaration, has an error in it.”
</div>
        <p>
I was hoping for a mild chuckle from the group, as was the norm for our mood of the
evening. Instead, Erik, who was sitting directly behind us, erupted in a fit of laughter,
while he was drinking a Diet Coke. That’s right folks; I think it came out his nose.
His laughter was that infectious kind that only happens once in a while. I was struggling
to keep a straight face five minutes after the comment. I had this uncontrollable
need to burst out laughing and if I let it control me, the entire group would have
to pause, stare at me, then continue with the presentation. I didn’t dare look
at Kelly, or I wouldn’t have been able to stop it. Laughing is fun.<br /></p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=017f15e7-ba76-4f81-93f8-cd5af090c881" />
      </body>
      <title>Diet Coke Out The Nose</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,017f15e7-ba76-4f81-93f8-cd5af090c881.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/07/27/DietCokeOutTheNose.aspx</link>
      <pubDate>Thu, 27 Jul 2006 17:05:32 GMT</pubDate>
      <description>&lt;p&gt;
Mike Culver presented &lt;a href="http://www.amazon.com/b/ref=sc_fe_l_1/104-2793060-0099156?ie=UTF8&amp;amp;node=3435361&amp;amp;no=3435361&amp;amp;me=A36L942TSJ2AJA"&gt;Amazon
Web Services&lt;/a&gt; last night at our monthly &lt;a href="http://www.padnug.org/"&gt;PADNUG&lt;/a&gt; meeting.
As usual, there was a short PowerPoint followed by a coding example. 
&lt;/p&gt;
&lt;p&gt;
Mike fired up Visual Studio and started writing a WinForms app that consumes the &lt;a href="http://www.amazon.com/b/ref=sc_fe_l_2/104-2793060-0099156?ie=UTF8&amp;amp;node=16427261&amp;amp;no=15879911&amp;amp;me=A36L942TSJ2AJA"&gt;S3
web service&lt;/a&gt;. He wrote the first line of code by hand, then proceeded to use Code
Snippets to complete the class. Naturally, the Code Snippets were typed correctly,
but the first line of code typed in front of the audience stood a much larger chance
of containing an error. It was such a simple line, it was declaring a class level
variable; a field, if you will.
&lt;/p&gt;
&lt;p&gt;
Sure enough, there it was. The red sqiggley line presented by VS.Net for all the group
to see projected on the wall.
&lt;/p&gt;
&lt;p&gt;
Why didn't Mike see it? Why didn't the other developers in the room see it? Should
I point it out now? 
&lt;/p&gt;
&lt;p&gt;
I decided I should say something. I settled on a reasonable chuckle for the group
as that light hearted mood had already produced a few quips from the crowd.
&lt;/p&gt;
&lt;p&gt;
I saw that Mike was getting ready to compile and the cat would soon be out of the
bag. My opportunity lost forever. My hand shot up into the air. Mike was quick to
engage in the dialogue of the group. Yet, instead of asking an interesting question
that would capture and focus the attention of the group, I meekly state:
&lt;/p&gt;
&lt;div class=sourcecodeblock&gt;“Kelly says that the first line in your class, the variable
declaration, has an error in it.”
&lt;/div&gt;
&lt;p&gt;
I was hoping for a mild chuckle from the group, as was the norm for our mood of the
evening. Instead, Erik, who was sitting directly behind us, erupted in a fit of laughter,
while he was drinking a Diet Coke. That’s right folks; I think it came out his nose.
His laughter was that infectious kind that only happens once in a while. I was struggling
to keep a straight face five minutes after the comment. I had this uncontrollable
need to burst out laughing and if I let it control me, the entire group would have
to pause, stare at me,&amp;nbsp;then continue with the presentation. I didn’t dare look
at Kelly, or I wouldn’t have been able to stop it. Laughing is fun.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=017f15e7-ba76-4f81-93f8-cd5af090c881" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,017f15e7-ba76-4f81-93f8-cd5af090c881.aspx</comments>
      <category>fun</category>
      <category>observations</category>
    </item>
    <item>
      <trackback:ping>http://www.a7drew.com/blog/Trackback.aspx?guid=46b2999d-e1d1-436d-bfa2-46ae8fb9a99b</trackback:ping>
      <pingback:server>http://www.a7drew.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.a7drew.com/blog/PermaLink,guid,46b2999d-e1d1-436d-bfa2-46ae8fb9a99b.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://www.a7drew.com/blog/CommentView,guid,46b2999d-e1d1-436d-bfa2-46ae8fb9a99b.aspx</wfw:comment>
      <wfw:commentRss>http://www.a7drew.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=46b2999d-e1d1-436d-bfa2-46ae8fb9a99b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img hspace="10" src="http://andrew.staging.popart.com/content/binary/rafting-group.jpg" align="right" vspace="6" border="1" />So,
the wife and I finally got some time to spend on a genuine vacation. Albeit, a weekend
trip to Sacramento. No parents or grandparents, no brothers, nephews, nieces. No family
politics, a real break. Can you sense that I had a good time? That's me in the
middle of the back row in the photo. Sometimes instead of going down by ourselves,
we'll "Floatilla". We sync up and get three to six rafts together and just go over
the edge. Its better with five or six rafts together.
</p>
        <p>
My friends have been going to this same place ran by <a href="http://gotwhitewater.com/">Whitewater
Adventures</a> for the past five years, and now I know why. I would like to go
next year too. The rapids aren't too bad, and a great learning experience for a beginner
like me. I estimate about 600 people went on the same weekend as me, and it was pretty
well organized. The Whitewater Adventures crew knew what they were doing. It didn't
feel too crowed, and most of the attendees where really nice people. A few could get
overzealous with the super soaker on the river. :)
</p>
        <p>
If you're a couple, you get an inflatable raft that kind of resembles a kayak. If
you have a threesome or a foursome, you can get a more traditional inflatable raft
that is more "boatish". The kayak raft is very maneuverable. 
</p>
        <p>
You put your soft side cooler between you and your mate. Strap it down with bungee
cords, less you want a yard sale downstream if you flip your raft. Then you pretty
much just float down, paddle when necessary, and drink cheap watered down beer all
day Saturday and Sunday. When you need to paddle, you stick your beer, which is nestled
inside a coozy, inside your personal floatation device; just tuck it down your neck.
Then its ready when you're through the rapids.
</p>
        <p>
Before rafting on day one, you chuck everything you don't want in the river with you
inside a big cargo truck. Then at the end of day one, you walk around a big tarp and
find your belongings, pitch your tent and eat a nice steak for dinner. The place hires college
kids to do most of the work for you like setup the rafts, organize them when you leave
the river, make breakfast, pack a lunch in a dry sack and bbq those nice steaks.
</p>
        <img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=46b2999d-e1d1-436d-bfa2-46ae8fb9a99b" />
      </body>
      <title>Vacations Are Good</title>
      <guid isPermaLink="false">http://www.a7drew.com/blog/PermaLink,guid,46b2999d-e1d1-436d-bfa2-46ae8fb9a99b.aspx</guid>
      <link>http://www.a7drew.com/blog/2006/07/13/VacationsAreGood.aspx</link>
      <pubDate>Thu, 13 Jul 2006 16:59:48 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img hspace=10 src="http://andrew.staging.popart.com/content/binary/rafting-group.jpg" align=right vspace=6 border=1&gt;So,
the wife and I finally got some time to spend on a genuine vacation. Albeit, a weekend
trip to Sacramento. No parents or grandparents, no brothers, nephews, nieces. No family
politics, a&amp;nbsp;real break. Can you sense that I had a good time? That's me in the
middle of the back row in the photo. Sometimes instead of going down by ourselves,
we'll "Floatilla". We sync up and get three to six rafts together and just go over
the edge. Its better with five or six rafts together.
&lt;/p&gt;
&lt;p&gt;
My friends have been going to this same place ran by &lt;a href="http://gotwhitewater.com/"&gt;Whitewater
Adventures&lt;/a&gt;&amp;nbsp;for the past five years, and now I know why. I would like to go
next year too. The rapids aren't too bad, and a great learning experience for a beginner
like me. I estimate about 600 people went on the same weekend as me, and it was pretty
well organized. The Whitewater Adventures crew knew what they were doing. It didn't
feel too crowed, and most of the attendees where really nice people. A few could get
overzealous with the super soaker on the river. :)
&lt;/p&gt;
&lt;p&gt;
If you're a couple, you get an inflatable raft that kind of resembles a kayak.&amp;nbsp;If
you have a threesome or a foursome, you can get a more traditional inflatable raft
that is more "boatish". The kayak raft is&amp;nbsp;very maneuverable. 
&lt;/p&gt;
&lt;p&gt;
You put your soft side cooler between you and your mate. Strap it down with bungee
cords, less you want a yard sale downstream if you flip your raft. Then you pretty
much just float down, paddle when necessary, and drink cheap watered down beer all
day Saturday and Sunday. When you need to paddle, you stick your beer, which is nestled
inside a coozy, inside your personal floatation device; just tuck it down your neck.
Then its ready when you're through the rapids.
&lt;/p&gt;
&lt;p&gt;
Before rafting on day one, you chuck everything you don't want in the river with you
inside a big cargo truck. Then at the end of day one, you walk around a big tarp and
find your belongings, pitch your tent and eat a nice steak for dinner. The place hires&amp;nbsp;college
kids to do most of the work for you like setup the rafts, organize them when you leave
the river, make breakfast, pack a lunch in a dry sack and bbq those nice steaks.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.a7drew.com/blog/aggbug.ashx?id=46b2999d-e1d1-436d-bfa2-46ae8fb9a99b" /&gt;</description>
      <comments>http://www.a7drew.com/blog/CommentView,guid,46b2999d-e1d1-436d-bfa2-46ae8fb9a99b.aspx</comments>
      <category>fun</category>
    </item>
  </channel>
</rss>