<?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>BitCrazed</title>
    <link>http://www.bitcrazed.com/</link>
    <description>
    Thoughts and musings on various aspects of software design and development,
    Microsoft's development tools and platforms, and working at Microsoft.
  </description>
    <language>en-us</language>
    <copyright>Richard Turner</copyright>
    <lastBuildDate>Sun, 27 Jul 2008 01:25:55 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.7238.742</generator>
    <managingEditor>rich@bitcrazed.com</managingEditor>
    <webMaster>rich@bitcrazed.com</webMaster>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Have been a little busy with my day job of late but I have continued tinkering behind
the scenes, learning (stage by stage) about how to build, deploy and debug a Windows
CE OS on an ARTiGO box.
</p>
        <p>
I'll shortly be posting the steps you need to go through in order to build a bootable
USB key. It's not as simple as it should be, but when all is said and done, it's not
as hard as it seems ;)
</p>
        <p>
Stay tuned for step-by-step instructions explaining just how to build a bootable USB
key that can get your ARTiGO online and ready to receive your Windows CE OS!
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84" />
      </body>
      <title>Still Here! :)</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84.aspx</guid>
      <link>http://www.bitcrazed.com/2008/07/27/StillHere.aspx</link>
      <pubDate>Sun, 27 Jul 2008 01:25:55 GMT</pubDate>
      <description>&lt;p&gt;
Have been a little busy with my day job of late but I have continued tinkering behind
the scenes, learning (stage by stage) about how to build, deploy and debug a Windows
CE OS on an ARTiGO box.
&lt;/p&gt;
&lt;p&gt;
I'll shortly be posting the steps you need to go through in order to build a bootable
USB key. It's not as simple as it should be, but when all is said and done, it's not
as hard as it seems ;)
&lt;/p&gt;
&lt;p&gt;
Stay tuned for step-by-step instructions explaining just how to build a bootable USB
key that can get your ARTiGO online and ready to receive your Windows CE OS!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,a8f5327c-bf8b-489a-a4dc-6a0b7c6abc84.aspx</comments>
      <category>Development</category>
      <category>Embedded Development</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=c1a7427c-3df5-46eb-8b9a-a4ef139a35e4</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,c1a7427c-3df5-46eb-8b9a-a4ef139a35e4.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,c1a7427c-3df5-46eb-8b9a-a4ef139a35e4.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c1a7427c-3df5-46eb-8b9a-a4ef139a35e4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In my <a title="Assembling an ARTiGO" href="http://www.bitcrazed.com/2008/05/26/AssemblingAnArtigoPicoITXDevice.aspx" target="_blank">previous
post</a>, I discussed how to assemble an ARTiGO device. Now that the device is assembled
and working, I need to get some software onto it.
</p>
        <p>
The ARTiGO is essentially a small form factor PC. Therefore, as any PC owner knows,
the machine has a BIOS that provides, amongst other features, the ability to select
where to look for the software that is to run on the machine.
</p>
        <p>
When my ARTiGO booted up, I was presented with the BIOS' boot screen:
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/ViaARTiGOBIOS_D4F4/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/ViaARTiGOBIOS_D4F4/image_thumb.png" width="244" border="0" />
          </a>
        </p>
        <p>
The device would then attempt to boot from the attached HDD. The problem is that the
HDD is currently empty, and I'd like to use some kind of bootloader that will signal
Visual Studio and ask it to download a Windows Embedded CE image to run.
</p>
        <p>
There was no on-screen indicator of what to press during boot-up to enter BIOS setup
mode, so I started by hitting [ESC] and [F12]. It turns out that [ESC] takes you to
the boot menu where you can select which device type to boot from:
</p>
        <ul>
          <li>
Hard Drive (either attached PATA/SATA drive or USB drive)</li>
          <li>
USB-Zip</li>
          <li>
USB-CD/DVD</li>
          <li>
USB-</li>
          <li>
Legacy Network</li>
          <li>
Network Agent (PXE)</li>
        </ul>
        <p>
While this is fine for the occasional boot, I wanted to setup my default boot device
options and so needed to configure the BIOS itself. However, because there were no
on-screen hints, I had to read the user's manual (online or from the accompanying
CD) to see that in order to get into the (Award) BIOS setup, I had to hit [DEL] during
bootup. 
</p>
        <p>
This gave me the usual BIOS configuration experience, including the ability to turn
off the above boot screen and show me the BIOS boot info, and select from which devices,
and in which order the machine would try to boot.
</p>
        <p>
I knew I'd be needing to play around with the bootloader for a little while, so configured
a bootable USB key (more on this in my next post) as my primary boot device, followed
by PXE and then my HDD.
</p>
        <p>
Booting from PXE will also let me try out scenarios where the device might be able
to bootstrap from the network, saving me from having to continually shuttle boot files
from my dev machine to my ARTiGO via a USB key.
</p>
I'll be covering the process of how to get an ARTiGO to boot from a USB stick in my
next post.<img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=c1a7427c-3df5-46eb-8b9a-a4ef139a35e4" /></body>
      <title>Via ARTiGO BIOS</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,c1a7427c-3df5-46eb-8b9a-a4ef139a35e4.aspx</guid>
      <link>http://www.bitcrazed.com/2008/05/28/ViaARTiGOBIOS.aspx</link>
      <pubDate>Wed, 28 May 2008 22:08:51 GMT</pubDate>
      <description>&lt;p&gt;
In my &lt;a title="Assembling an ARTiGO" href="http://www.bitcrazed.com/2008/05/26/AssemblingAnArtigoPicoITXDevice.aspx" target="_blank"&gt;previous
post&lt;/a&gt;, I discussed how to assemble an ARTiGO device. Now that the device is assembled
and working, I need to get some software onto it.
&lt;/p&gt;
&lt;p&gt;
The ARTiGO is essentially a small form factor PC. Therefore, as any PC owner knows,
the machine has a BIOS that provides, amongst other features, the ability to select
where to look for the software that is to run on the machine.
&lt;/p&gt;
&lt;p&gt;
When my ARTiGO booted up, I was presented with the BIOS' boot screen:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/ViaARTiGOBIOS_D4F4/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/ViaARTiGOBIOS_D4F4/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The device would then attempt to boot from the attached HDD. The problem is that the
HDD is currently empty, and I'd like to use some kind of bootloader that will signal
Visual Studio and ask it to download a Windows Embedded CE image to run.
&lt;/p&gt;
&lt;p&gt;
There was no on-screen indicator of what to press during boot-up to enter BIOS setup
mode, so I started by hitting [ESC] and [F12]. It turns out that [ESC] takes you to
the boot menu where you can select which device type to boot from:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Hard Drive (either attached PATA/SATA drive or USB drive)&lt;/li&gt;
&lt;li&gt;
USB-Zip&lt;/li&gt;
&lt;li&gt;
USB-CD/DVD&lt;/li&gt;
&lt;li&gt;
USB-&lt;/li&gt;
&lt;li&gt;
Legacy Network&lt;/li&gt;
&lt;li&gt;
Network Agent (PXE)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
While this is fine for the occasional boot, I wanted to setup my default boot device
options and so needed to configure the BIOS itself. However, because there were no
on-screen hints, I had to read the user's manual (online or from the accompanying
CD) to see that in order to get into the (Award) BIOS setup, I had to hit [DEL] during
bootup. 
&lt;/p&gt;
&lt;p&gt;
This gave me the usual BIOS configuration experience, including the ability to turn
off the above boot screen and show me the BIOS boot info, and select from which devices,
and in which order the machine would try to boot.
&lt;/p&gt;
&lt;p&gt;
I knew I'd be needing to play around with the bootloader for a little while, so configured
a bootable USB key (more on this in my next post) as my primary boot device, followed
by PXE and then my HDD.
&lt;/p&gt;
&lt;p&gt;
Booting from PXE will also let me try out scenarios where the device might be able
to bootstrap from the network, saving me from having to continually shuttle boot files
from my dev machine to my ARTiGO via a USB key.
&lt;/p&gt;
I'll be covering the process of how to get an ARTiGO to boot from a USB stick in my
next post.&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=c1a7427c-3df5-46eb-8b9a-a4ef139a35e4" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,c1a7427c-3df5-46eb-8b9a-a4ef139a35e4.aspx</comments>
      <category>Embedded Development</category>
      <category>Sentinel</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=cda716e6-46bb-4784-a913-18c18b14eb64</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,cda716e6-46bb-4784-a913-18c18b14eb64.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,cda716e6-46bb-4784-a913-18c18b14eb64.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=cda716e6-46bb-4784-a913-18c18b14eb64</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In <a href="http://www.bitcrazed.com/2008/05/26/BuildingAnEmbeddedSystemChoicesChoicesChoices.aspx" target="_blank">my
previous post, I outlined the decision making process</a> that led to my selecting
the Via Artigo Pico-ITX kit with which to build a prototype of an embedded device.
</p>
        <p>
There are already videos available of <a title="Video of unboxing and assembling an Artigo" href="http://www.youtube.com/watch?v=E0Ee4tNl3Vg" target="_blank">unboxing
and assembling an Artigo</a> (in case you don't like to <a title="Read The Flippin' Manual" href="http://en.wikipedia.org/wiki/RTFM" target="_blank">RTFM</a>),
so won't go into this in detail here. However, there is a useful tip below, so please
be sure to read on :)
</p>
        <p>
The <a title="Artigo Kit" href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank">Artigo
kit</a> contains everything you need to construct the foundation device for many prototyping
projects. 
</p>
        <p>
The kit contains a motherboard, case, power supply board and all the necessary cables.
Additional serial IO, DVI, PS/2 and ATX power cables come in the box. 
</p>
        <p>
The (demure) case exposes a power switch, power LED, HDD LED, 4 x USB 2.0 sockets,
microphone in, audio out and holes for the VGA and network sockets mounted on the
motherboard. 
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_6.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="171" alt="Artigo Case" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_2.png" width="244" border="0" />
          </a>
        </p>
        <p>
Core to the unit is the EPIA-PX motherboard. This tiny (approx 72mm x 94mm) board
houses VIA's C7 CPU and the VIA VX700 Unified Chipset that provides all IO, video
and audio capabilities. Pin connectors for the case's front panel connectors are arranged
towards the front of the board. An IDC and SATA connector for a HDD are mounted to
the side. VGA and network sockets are mounted at the rear of the card. The motherboard
chips are shrouded by a heatsink and fan to expel unwanted heat. 
</p>
        <p>
Note that this is a low-power consuming CPU from a PC perspective, but not from an
embedded perspective! VIA have recently announced an updated VX800 chipset and Pico-ITX
board that supports the new 1.5GHz C8 x86 CPU or a fanless 1GHz Eden low-power x86
CPU. No word yet on when the Artigo kit will be updated to include this new board.
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="EPIA-PX Board (Top)" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb.png" width="244" border="0" />
          </a>
        </p>
        <p>
Underneath the board, you'll notice a socket for RAM. Unlike the <a title="eBox 4300" href="http://www.embeddedpc.net/eBox4300/tabid/190/Default.aspx" target="_blank">eBox
4300</a>, this board doesn't support flash RAM, nor does it ship with DRAM - you have
to add your own DRAM and HDD. Whilst this may seem like an encumberance, it's actually
nice to be able to add considerably more RAM to this board than the 512MB DRAM that
is welded onto the eBox.
</p>
        <p>
 <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="EPIA-PX Board (Underside)" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_1.png" width="244" border="0" /></a></p>
        <p>
          <strong>
            <font color="#ff0000">IMPORTANT NOTE</font>
          </strong>: When assembling your
Artigo, be sure to properly mount the DRAM module. If you do not, your device will
not boot and you will not see the BIOS boot-page appear when you power on your device.
This one problem frustrated me for several hours until I saw mention of this very
issue in the <a title="Via Arena Forums" href="http://www.tkarena.com/forums/via-arena/" target="_blank">VIA
Arena Forums</a>. After disassembling my device and examining my Artigo's memory board
I saw that I had not pushed the memory board all the way into the socket:
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_8.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="116" alt="Incorrectly seated memory board" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_3.png" width="244" border="0" />
          </a>
        </p>
        <p>
I unclipped my memory board and re-seated it, pushing it home at 45° before clipping
it down (notice that the memory board's edge connector is now barely visible and that
the locking clips are now properly seated):
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_12.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="133" alt="Properly seated memory board" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_5.png" width="244" border="0" />
          </a>
        </p>
        <p>
Once that was done, I reassembled my Artigo, connected the VGA and the power sockets,
turned on my device and saw the BIOS boot screen:
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_16.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="Artigo Boot Screen" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_7.png" width="184" border="0" />
          </a>
        </p>
        <p>
Woot! :) Just don't ask about the Bunny! Let's just say that my girls like to decorate
stuff! :D
</p>
        <p>
Next step ... getting some software onto this thing :)
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=cda716e6-46bb-4784-a913-18c18b14eb64" />
      </body>
      <title>Assembling an Artigo Pico-ITX device</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,cda716e6-46bb-4784-a913-18c18b14eb64.aspx</guid>
      <link>http://www.bitcrazed.com/2008/05/26/AssemblingAnArtigoPicoITXDevice.aspx</link>
      <pubDate>Mon, 26 May 2008 21:19:14 GMT</pubDate>
      <description>&lt;p&gt;
In &lt;a href="http://www.bitcrazed.com/2008/05/26/BuildingAnEmbeddedSystemChoicesChoicesChoices.aspx" target="_blank"&gt;my
previous post, I outlined the decision making process&lt;/a&gt; that led to my selecting
the Via Artigo Pico-ITX kit with which to build a prototype of an embedded device.
&lt;/p&gt;
&lt;p&gt;
There are already videos available of &lt;a title="Video of unboxing and assembling an Artigo" href="http://www.youtube.com/watch?v=E0Ee4tNl3Vg" target="_blank"&gt;unboxing
and assembling an Artigo&lt;/a&gt; (in case you don't like to &lt;a title="Read The Flippin' Manual" href="http://en.wikipedia.org/wiki/RTFM" target="_blank"&gt;RTFM&lt;/a&gt;),
so won't go into this in detail here. However, there is a useful tip below, so please
be sure to read on :)
&lt;/p&gt;
&lt;p&gt;
The &lt;a title="Artigo Kit" href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank"&gt;Artigo
kit&lt;/a&gt; contains everything you need to construct the foundation device for many prototyping
projects. 
&lt;/p&gt;
&lt;p&gt;
The kit contains a motherboard, case, power supply board and all the necessary cables.
Additional serial IO, DVI, PS/2 and ATX power cables come in the box. 
&lt;/p&gt;
&lt;p&gt;
The (demure) case exposes a power switch, power LED, HDD LED, 4 x USB 2.0 sockets,
microphone in, audio out and holes for the VGA and network sockets mounted on the
motherboard. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="171" alt="Artigo Case" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_2.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Core to the unit is the EPIA-PX motherboard. This tiny (approx 72mm x 94mm) board
houses VIA's C7 CPU and the VIA VX700 Unified Chipset that provides all IO, video
and audio capabilities. Pin connectors for the case's front panel connectors are arranged
towards the front of the board. An IDC and SATA connector for a HDD are mounted to
the side. VGA and network sockets are mounted at the rear of the card. The motherboard
chips are shrouded by a heatsink and fan to expel unwanted heat. 
&lt;/p&gt;
&lt;p&gt;
Note that this is a low-power consuming CPU from a PC perspective, but not from an
embedded perspective! VIA have recently announced an updated VX800 chipset and Pico-ITX
board that supports the new 1.5GHz C8 x86 CPU or a fanless 1GHz Eden low-power x86
CPU. No word yet on when the Artigo kit will be updated to include this new board.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="EPIA-PX Board (Top)" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Underneath the board, you'll notice a socket for RAM. Unlike the &lt;a title="eBox 4300" href="http://www.embeddedpc.net/eBox4300/tabid/190/Default.aspx" target="_blank"&gt;eBox
4300&lt;/a&gt;, this board doesn't support flash RAM, nor does it ship with DRAM - you have
to add your own DRAM and HDD. Whilst this may seem like an encumberance, it's actually
nice to be able to add considerably more RAM to this board than the 512MB DRAM that
is welded onto the eBox.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="160" alt="EPIA-PX Board (Underside)" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_1.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color="#ff0000"&gt;IMPORTANT NOTE&lt;/font&gt;&lt;/strong&gt;: When assembling your
Artigo, be sure to properly mount the DRAM module. If you do not, your device will
not boot and you will not see the BIOS boot-page appear when you power on your device.
This one problem frustrated me for several hours until I saw mention of this very
issue in the &lt;a title="Via Arena Forums" href="http://www.tkarena.com/forums/via-arena/" target="_blank"&gt;VIA
Arena Forums&lt;/a&gt;. After disassembling my device and examining my Artigo's memory board
I saw that I had not pushed the memory board all the way into the socket:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="116" alt="Incorrectly seated memory board" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I unclipped my memory board and re-seated it, pushing it home at 45° before clipping
it down (notice that the memory board's edge connector is now barely visible and that
the locking clips are now properly seated):
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="133" alt="Properly seated memory board" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_5.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Once that was done, I reassembled my Artigo, connected the VGA and the power sockets,
turned on my device and saw the BIOS boot screen:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_16.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="Artigo Boot Screen" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/AssemblinganArtigoPicoITXdevice_C8B0/image_thumb_7.png" width="184" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Woot! :) Just don't ask about the Bunny! Let's just say that my girls like to decorate
stuff! :D
&lt;/p&gt;
&lt;p&gt;
Next step ... getting some software onto this thing :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=cda716e6-46bb-4784-a913-18c18b14eb64" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,cda716e6-46bb-4784-a913-18c18b14eb64.aspx</comments>
      <category>Embedded Development</category>
      <category>Sentinel</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=c987dee7-5750-4fe3-bfb5-1332e78780ec</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,c987dee7-5750-4fe3-bfb5-1332e78780ec.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,c987dee7-5750-4fe3-bfb5-1332e78780ec.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c987dee7-5750-4fe3-bfb5-1332e78780ec</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As I mentioned in <a href="http://www.bitcrazed.com/2008/05/26/EverHadABrightIdea.aspx" target="_blank">my
previous post</a>, I am building a prototype of a cool new idea for a product. This
product will be an embedded system that controls several devices.
</p>
        <p>
I know that the resulting device is going to need to be small, consume relatively
little power, cost-effective and yet must process large amounts of continually varying
data. It's also going to need to support a variety of devices, most of which can be
connected via USB. It'll also need to support WiFi and possibly cellular Internet
connectivity.
</p>
        <p>
The requirements above pretty much exclude the really low-end 8-bit and even 16-bit
embedded microcontrollers due to the data processing requirements that the device
will require. So, I'm going to be using a 32-bit CPU of some kind.
</p>
        <p>
Now, whilst the resulting product may well end up using a power efficient ARM (or
similar) core, along with various ancillary support (USB, WiFi, etc), the prototype
device doesn't need to be quite so stringent. In fact, it'd be quite useful to have
a little more processing power, sockets, etc., available during prototype so that
I can try new things out before finalizing any productization plans.
</p>
        <p>
So, do I use an emulator or a real device? The problem with the emulator route is
that I would only be able to test the prototype out from my desk at home. This won't
work for me, so I decided to explore how I might go about building a real prototype.
</p>
        <p>
          <a title="Via's Artigo Kit" href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BuildinganEmbedded.choiceschoiceschoices_B291/image_3.png" width="205" align="right" border="0" />
          </a>When
I began investigating prototype hardware, I quickly learned that that there are now
a rapidly growing number of hobbyist computing devices that will fit my needs nicely.
Products like <a href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank">Via's
Artigo Pico-ITX kit</a> provide support for pretty much everything I will need to
get this sucker running:
</p>
        <ul>
          <li>
Low power x86 CPU 
</li>
          <li>
Up to 1GB RAM 
</li>
          <li>
HDD Interfaces (PATA &amp; SATA) for persistent storage 
</li>
          <li>
SVGA (the final product won't need video out, but it'll be useful while prototyping) 
</li>
          <li>
4 x USB sockets 
</li>
          <li>
1 x 10/100mbps network socket 
</li>
          <li>
Only costs around $350 (inc tax) from Fry's!</li>
        </ul>
        <p>
Okay, so if I know what kind of tin I'm working with, what about the software?
</p>
        <p>
When it comes to prototyping this device, I need to focus on getting the thing built
as quickly and as easily as possible. Therefore, I won't be building my own Real Time
Operating System from scratch - there's just too much that would need to be done:
Memory manager, CPU scheduler, USB IO, Storage IO, TCP/IP v4 &amp; v6 stacks, WiFi
and wired networking, etc.
</p>
        <p>
So which RTOS do I use? Symbian? QNX? VxWorks? Linux? Windows Embedded CE?
</p>
        <p>
I am a Microsoft developer. I have been for years. Back when DOS was around I was
generally dividing my time between hand-coded assembly and C on UNIX, but ever since
working in commercial software development, I've been a Windows developer: first in
C/C++, then In Delphi, now in C#.
</p>
        <p>
When looking into the available RTOS options, Windows Embedded CE just made perfect
sense to me: It's features are very impressive - particularly for Windows CE 6.0.
I'm already very familiar with most of it's API, it's tools support is pretty stellar
and is very cost effective. It also supports .NET Compact framework and .NET Micro
Framework which may also help shorten time to completion. Via also ship a <a href="http://blogs.msdn.com/mikehall/archive/2008/05/05/via-pico-itx-artigo-ce-6-0-bsp-download.aspx" target="_blank">free
Board Support Package (BSP) for the Artigo for Windows CE 6.0</a>.
</p>
        <p>
So there, in a nutshell was my decision making process for how to build the prototype:
I am going to use <a href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank">Via's
Artigo Pico-ITX kit</a> running Windows Embedded CE, Visual Studio 2005 (for the OS
&amp; drivers etc.) &amp; Visual Studio 2008 (for the apps).<img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="IMG_1315" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BuildinganEmbedded.choiceschoiceschoices_B291/IMG_1315_1.jpg" width="260" align="right" border="0" /></p>
        <p>
Next: Building the Artigo! Stay tuned.
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=c987dee7-5750-4fe3-bfb5-1332e78780ec" />
      </body>
      <title>Building an Embedded System ... choices, choices choices!</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,c987dee7-5750-4fe3-bfb5-1332e78780ec.aspx</guid>
      <link>http://www.bitcrazed.com/2008/05/26/BuildingAnEmbeddedSystemChoicesChoicesChoices.aspx</link>
      <pubDate>Mon, 26 May 2008 19:41:56 GMT</pubDate>
      <description>&lt;p&gt;
As I mentioned in &lt;a href="http://www.bitcrazed.com/2008/05/26/EverHadABrightIdea.aspx" target="_blank"&gt;my
previous post&lt;/a&gt;, I am building a prototype of a cool new idea for a product. This
product will be an embedded system that controls several devices.
&lt;/p&gt;
&lt;p&gt;
I know that the resulting device is going to need to be small, consume relatively
little power, cost-effective and yet must process large amounts of continually varying
data. It's also going to need to support a variety of devices, most of which can be
connected via USB. It'll also need to support WiFi and possibly cellular Internet
connectivity.
&lt;/p&gt;
&lt;p&gt;
The requirements above pretty much exclude the really low-end 8-bit and even 16-bit
embedded microcontrollers due to the data processing requirements that the device
will require. So, I'm going to be using a 32-bit CPU of some kind.
&lt;/p&gt;
&lt;p&gt;
Now, whilst the resulting product may well end up using a power efficient ARM (or
similar) core, along with various ancillary support (USB, WiFi, etc), the prototype
device doesn't need to be quite so stringent. In fact, it'd be quite useful to have
a little more processing power, sockets, etc., available during prototype so that
I can try new things out before finalizing any productization plans.
&lt;/p&gt;
&lt;p&gt;
So, do I use an emulator or a real device? The problem with the emulator route is
that I would only be able to test the prototype out from my desk at home. This won't
work for me, so I decided to explore how I might go about building a real prototype.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="Via's Artigo Kit" href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BuildinganEmbedded.choiceschoiceschoices_B291/image_3.png" width="205" align="right" border="0"&gt;&lt;/a&gt;When
I began investigating prototype hardware, I quickly learned that that there are now
a rapidly growing number of hobbyist computing devices that will fit my needs nicely.
Products like &lt;a href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank"&gt;Via's
Artigo Pico-ITX kit&lt;/a&gt; provide support for pretty much everything I will need to
get this sucker running:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Low power x86 CPU 
&lt;li&gt;
Up to 1GB RAM 
&lt;li&gt;
HDD Interfaces (PATA &amp;amp; SATA) for persistent storage 
&lt;li&gt;
SVGA (the final product won't need video out, but it'll be useful while prototyping) 
&lt;li&gt;
4 x USB sockets 
&lt;li&gt;
1 x 10/100mbps network socket 
&lt;li&gt;
Only costs around $350 (inc tax) from Fry's!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Okay, so if I know what kind of tin I'm working with, what about the software?
&lt;/p&gt;
&lt;p&gt;
When it comes to prototyping this device, I need to focus on getting the thing built
as quickly and as easily as possible. Therefore, I won't be building my own Real Time
Operating System from scratch - there's just too much that would need to be done:
Memory manager, CPU scheduler, USB IO, Storage IO, TCP/IP v4 &amp;amp; v6 stacks, WiFi
and wired networking, etc.
&lt;/p&gt;
&lt;p&gt;
So which RTOS do I use? Symbian? QNX? VxWorks? Linux? Windows Embedded CE?
&lt;/p&gt;
&lt;p&gt;
I am a Microsoft developer. I have been for years. Back when DOS was around I was
generally dividing my time between hand-coded assembly and C on UNIX, but ever since
working in commercial software development, I've been a Windows developer: first in
C/C++, then In Delphi, now in C#.
&lt;/p&gt;
&lt;p&gt;
When looking into the available RTOS options, Windows Embedded CE just made perfect
sense to me: It's features are very impressive - particularly for Windows CE 6.0.
I'm already very familiar with most of it's API, it's tools support is pretty stellar
and is very cost effective. It also supports .NET Compact framework and .NET Micro
Framework which may also help shorten time to completion. Via also ship a &lt;a href="http://blogs.msdn.com/mikehall/archive/2008/05/05/via-pico-itx-artigo-ce-6-0-bsp-download.aspx" target="_blank"&gt;free
Board Support Package (BSP) for the Artigo for Windows CE 6.0&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
So there, in a nutshell was my decision making process for how to build the prototype:
I am going to use &lt;a href="http://www.via.com.tw/en/products/embedded/artigo/" target="_blank"&gt;Via's
Artigo Pico-ITX kit&lt;/a&gt; running Windows Embedded CE, Visual Studio 2005 (for the OS
&amp;amp; drivers etc.) &amp;amp; Visual Studio 2008 (for the apps).&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="IMG_1315" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BuildinganEmbedded.choiceschoiceschoices_B291/IMG_1315_1.jpg" width="260" align="right" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
Next: Building the Artigo! Stay tuned.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=c987dee7-5750-4fe3-bfb5-1332e78780ec" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,c987dee7-5750-4fe3-bfb5-1332e78780ec.aspx</comments>
      <category>Embedded Development</category>
      <category>Sentinel</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=e3441ed9-9fd0-4195-8b46-3420ddf97224</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,e3441ed9-9fd0-4195-8b46-3420ddf97224.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,e3441ed9-9fd0-4195-8b46-3420ddf97224.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e3441ed9-9fd0-4195-8b46-3420ddf97224</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've had a few bright ideas for cool products in the past. Some of these ideas turned
to dust when I found that several other people had the same idea some time before
me and have fully implemented the resulting product. Others turned out to be infeasible
for a variety of reasons. A few have been shelved only to find that someone else later
implemented said product ... much to my annoyance.
</p>
        <p>
A few weeks ago, I had a bright idea for a new product. I've searched online and can't
find anything quite like what I am considering building. So I've decided to build
a prototype of this product to see what it'd take to make it all work.
</p>
        <p>
The specific details of what this product will be are not important right now - I'll
(hopefully) be able to share the details on this product sometime later. For now,
we'll code-name this product Sentinel!
</p>
        <p>
The thing that I want to build requires an embedded system to control several devices. 
</p>
        <p>
Now, I've been a computer and gadget geek for years. When I was 12, I got a <a href="http://en.wikipedia.org/wiki/Dragon_32" target="_blank">Dragon
32</a> for Xmas ... and the love affair with computers began. A year later I was lucky
enough to upgrade to a <a href="http://en.wikipedia.org/wiki/BBC_Micro" target="_blank">BBC
Micro</a> ... that's when the fun <strong>really</strong> started. The Beeb was an
amazing machine - it had built-in A/D converters (one of the only home computers to
do so at the time) and a variety of serial and parallel interfaces. It was a home
hobbyist's dream. My Beeb rarely had its cover on and was regularly seen to be spewing
wires and probes as I interfaced it to all manner of things.
</p>
        <p>
When I went to <a href="http://www.oxfordbrookes.ac.uk/" target="_blank">university</a>,
I took Computer Science and Microelectronics. I was fascinated by how computer hardware
and software interacted and how these amazing machines *really* worked. After college,
I worked at a company that was split 50-50 between hardware and software engineers.
The hardware crew designed incredibly powerful <a href="http://en.wikipedia.org/wiki/Transputer" target="_blank">Transputer</a>-based
signal/image processing cards and hardware; the software teams designed sophisticated
apps and systems (usually in <a href="http://en.wikipedia.org/wiki/Occam_%28programming_language%29" target="_blank">Occam</a> and/or
C) to make the hardware sing. It was very cool stuff back then.
</p>
        <p>
It's been a few years since I build anything electronic ... and times have changed.
So have available hardware. Whilst many existing and new products are built around
8-bit and 16-bit microcontrollers and microprocessors, the cost, size and power consumption
of modern 32-bit CPU's has dropped to the point where it's often more cost-effective
to build products based around these more powerful chips which in turn let products
do more than ever before.
</p>
        <p>
So, in order to build a prototype of this system, I'm going to have to do some work
and un-learn and re-learn many things to get it all working! I'm going to need to
decide *how* to build it. Do I build it in an emulator? Do I build a real device?
Do I write my own OS or use a pre-existing OS? How do I build, debug, test and deploy
said system? What are the challenges of building an embedded system using today's
technologies vs. those of yesteryear?
</p>
        <p>
I'll be regularly blogging my progress in building this prototype here, covering many
of my strategy, design and implementation choices, problems, successes and failures.
</p>
        <p>
Stay tuned :)
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=e3441ed9-9fd0-4195-8b46-3420ddf97224" />
      </body>
      <title>Ever had a bright idea?</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,e3441ed9-9fd0-4195-8b46-3420ddf97224.aspx</guid>
      <link>http://www.bitcrazed.com/2008/05/26/EverHadABrightIdea.aspx</link>
      <pubDate>Mon, 26 May 2008 18:51:01 GMT</pubDate>
      <description>&lt;p&gt;
I've had a few bright ideas for cool products in the past. Some of these ideas turned
to dust when I found that several other people had the same idea some time before
me and have fully implemented the resulting product. Others turned out to be infeasible
for a variety of reasons. A few have been shelved only to find that someone else later
implemented said product ... much to my annoyance.
&lt;/p&gt;
&lt;p&gt;
A few weeks ago, I had a bright idea for a new product. I've searched online and can't
find anything quite like what I am considering building. So I've decided to build
a prototype of this product to see what it'd take to make it all work.
&lt;/p&gt;
&lt;p&gt;
The specific details of what this product will be are not important right now - I'll
(hopefully) be able to share the details on this product sometime later. For now,
we'll code-name this product Sentinel!
&lt;/p&gt;
&lt;p&gt;
The thing that I want to build requires an embedded system to control several devices. 
&lt;/p&gt;
&lt;p&gt;
Now, I've been a computer and gadget geek for years. When I was 12, I got a &lt;a href="http://en.wikipedia.org/wiki/Dragon_32" target="_blank"&gt;Dragon
32&lt;/a&gt; for Xmas ... and the love affair with computers began. A year later I was lucky
enough to upgrade to a &lt;a href="http://en.wikipedia.org/wiki/BBC_Micro" target="_blank"&gt;BBC
Micro&lt;/a&gt; ... that's when the fun &lt;strong&gt;really&lt;/strong&gt; started. The Beeb was an
amazing machine - it had built-in A/D converters (one of the only home computers to
do so at the time) and a variety of serial and parallel interfaces. It was a home
hobbyist's dream. My Beeb rarely had its cover on and was regularly seen to be spewing
wires and probes as I interfaced it to all manner of things.
&lt;/p&gt;
&lt;p&gt;
When I went to &lt;a href="http://www.oxfordbrookes.ac.uk/" target="_blank"&gt;university&lt;/a&gt;,
I took Computer Science and Microelectronics. I was fascinated by how computer hardware
and software interacted and how these amazing machines *really* worked. After college,
I worked at a company that was split 50-50 between hardware and software engineers.
The hardware crew designed incredibly powerful &lt;a href="http://en.wikipedia.org/wiki/Transputer" target="_blank"&gt;Transputer&lt;/a&gt;-based
signal/image processing cards and hardware; the software teams designed sophisticated
apps and systems (usually in &lt;a href="http://en.wikipedia.org/wiki/Occam_%28programming_language%29" target="_blank"&gt;Occam&lt;/a&gt; and/or
C) to make the hardware sing. It was very cool stuff back then.
&lt;/p&gt;
&lt;p&gt;
It's been a few years since I build anything electronic ... and times have changed.
So have available hardware. Whilst many existing and new products are built around
8-bit and 16-bit microcontrollers and microprocessors, the cost, size and power consumption
of modern 32-bit CPU's has dropped to the point where it's often more cost-effective
to build products based around these more powerful chips which in turn let products
do more than ever before.
&lt;/p&gt;
&lt;p&gt;
So, in order to build a prototype of this system, I'm going to have to do some work
and un-learn and re-learn many things to get it all working! I'm going to need to
decide *how* to build it. Do I build it in an emulator? Do I build a real device?
Do I write my own OS or use a pre-existing OS? How do I build, debug, test and deploy
said system? What are the challenges of building an embedded system using today's
technologies vs. those of yesteryear?
&lt;/p&gt;
&lt;p&gt;
I'll be regularly blogging my progress in building this prototype here, covering many
of my strategy, design and implementation choices, problems, successes and failures.
&lt;/p&gt;
&lt;p&gt;
Stay tuned :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=e3441ed9-9fd0-4195-8b46-3420ddf97224" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,e3441ed9-9fd0-4195-8b46-3420ddf97224.aspx</comments>
      <category>Embedded Development</category>
      <category>Sentinel</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=f6ac39c0-01ad-418a-9222-cec27fdf374c</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,f6ac39c0-01ad-418a-9222-cec27fdf374c.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,f6ac39c0-01ad-418a-9222-cec27fdf374c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f6ac39c0-01ad-418a-9222-cec27fdf374c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ever wondered what the key bindings for your favorite Visual Studio actions were for
C# or VB? Here are the downloadable posters you can pin to your wall :)
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?familyid=e5f902a8-5bb5-4cc6-907e-472809749973&amp;displaylang=en&amp;tm">Visual
Studio 2008 C# Key Bindings</a>
        </p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=255b8cf1-f6bd-4b55-bb42-dd1a69315833&amp;DisplayLang=en">Visual
Studio 2008 VB Key Bindings</a>
        </p>
        <p>
Enjoy!
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=f6ac39c0-01ad-418a-9222-cec27fdf374c" />
      </body>
      <title>Visual Studio 2008 C# and VB Key Bindings</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,f6ac39c0-01ad-418a-9222-cec27fdf374c.aspx</guid>
      <link>http://www.bitcrazed.com/2008/02/21/VisualStudio2008CAndVBKeyBindings.aspx</link>
      <pubDate>Thu, 21 Feb 2008 02:41:18 GMT</pubDate>
      <description>&lt;p&gt;
Ever wondered what the key bindings for your favorite Visual Studio actions were for
C# or VB? Here are the downloadable posters you can pin to your wall :)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e5f902a8-5bb5-4cc6-907e-472809749973&amp;amp;displaylang=en&amp;amp;tm"&gt;Visual
Studio 2008 C# Key Bindings&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=255b8cf1-f6bd-4b55-bb42-dd1a69315833&amp;amp;DisplayLang=en"&gt;Visual
Studio 2008 VB Key Bindings&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=f6ac39c0-01ad-418a-9222-cec27fdf374c" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,f6ac39c0-01ad-418a-9222-cec27fdf374c.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=aa30a0dc-c4f4-4a58-9289-07819f2c19ea</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,aa30a0dc-c4f4-4a58-9289-07819f2c19ea.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,aa30a0dc-c4f4-4a58-9289-07819f2c19ea.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=aa30a0dc-c4f4-4a58-9289-07819f2c19ea</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.msdn.com/gertd/archive/2008/02/14/visual-studio-team-system-2008-database-edition-power-tools.aspx">Gert
has just announced</a> the release of the VS 2008 Database edition Power Tools:
</p>
        <p>
The “DataDude” team is happy to announce the availability of the Power Tools for Visual
Studio Team System 2008 Database Edition. 
</p>
        <p>
The Power Tools for 2008 contains all the functionality we shipped in 2005 plus: 
</p>
        <ul>
          <li>
Command line SQL Static Code Analysis execution through MSBuild, this was the biggest
customer request, which is why I was holding the release. This enables SQL Static
Code Analysis to be an integrated part of Team Build! 
</li>
          <li>
Data Generation Wizard; this is another customer request where we allow users to create
a new data generation plan by pointing at an existing database, the plan will be fully
configured by the wizard to pull all data from the database using the Sequential Databound
Generator. This way users can use an existing data set and only override columns which
impose risks because of for example privacy concerns and save about half a day or
more of configuring a data generation plan from scratch, one column at the time. 
</li>
          <li>
File based data generator; this allows you to insert the content of files in to the
database (works for string and binary, not for XML yet). 
</li>
          <li>
XML based data generator; this allows you to generate XML based on an XSD (the XSD
has to be provided as file right now, and cannot be selected from database or inherited
from the data type). 
</li>
          <li>
Unique Regular Expression generator; this adds the ability to generator unique values
using the RegEx String generator. 
</li>
          <li>
Refactoring Command Generator has been made available as a MSBuild task for better
project build integration so it can be made part of the pre-build and pre-deployment
stages in the project. This allows users to automated the results of refactoring to
some degree in to the project. 
</li>
        </ul>
        <p>
We added two new test conditions for Database Unit Tests 
</p>
        <ul>
          <li>
ChecksumCondition – Which you can use to verify that the checksum of the data set
returned by a database unit test matches the checksum of an expected data set. 
</li>
          <li>
ExpectedSchemaTestCondition – Which you use to verify that the column names and data
types of the returned data set match expected values. 
</li>
        </ul>
        <p>
Download page:<br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=73ba5038-8e37-4c8e-812b-db14ede2c354&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=73ba5038-8e37-4c8e-812b-db14ede2c354&amp;displaylang=en</a></p>
        <p>
Installer download: 
<br /><a href="http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/VSTSDB2008PT.msi">http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/VSTSDB2008PT.msi</a></p>
        <p>
Documentation download: 
<br /><a href="http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/Power Tools 2008.doc">http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/Power
Tools 2008.doc</a></p>
        <p>
Go download and have fun! :)
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=aa30a0dc-c4f4-4a58-9289-07819f2c19ea" />
      </body>
      <title>Visual Studio Team System 2008 Database Edition Power Tools Released</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,aa30a0dc-c4f4-4a58-9289-07819f2c19ea.aspx</guid>
      <link>http://www.bitcrazed.com/2008/02/15/VisualStudioTeamSystem2008DatabaseEditionPowerToolsReleased.aspx</link>
      <pubDate>Fri, 15 Feb 2008 21:27:22 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.msdn.com/gertd/archive/2008/02/14/visual-studio-team-system-2008-database-edition-power-tools.aspx"&gt;Gert
has just announced&lt;/a&gt; the release of the VS 2008 Database edition Power Tools:
&lt;/p&gt;
&lt;p&gt;
The “DataDude” team is happy to announce the availability of the Power Tools for Visual
Studio Team System 2008 Database Edition. 
&lt;p&gt;
The Power Tools for 2008 contains all the functionality we shipped in 2005 plus: 
&lt;ul&gt;
&lt;li&gt;
Command line SQL Static Code Analysis execution through MSBuild, this was the biggest
customer request, which is why I was holding the release. This enables SQL Static
Code Analysis to be an integrated part of Team Build! 
&lt;li&gt;
Data Generation Wizard; this is another customer request where we allow users to create
a new data generation plan by pointing at an existing database, the plan will be fully
configured by the wizard to pull all data from the database using the Sequential Databound
Generator. This way users can use an existing data set and only override columns which
impose risks because of for example privacy concerns and save about half a day or
more of configuring a data generation plan from scratch, one column at the time. 
&lt;li&gt;
File based data generator; this allows you to insert the content of files in to the
database (works for string and binary, not for XML yet). 
&lt;li&gt;
XML based data generator; this allows you to generate XML based on an XSD (the XSD
has to be provided as file right now, and cannot be selected from database or inherited
from the data type). 
&lt;li&gt;
Unique Regular Expression generator; this adds the ability to generator unique values
using the RegEx String generator. 
&lt;li&gt;
Refactoring Command Generator has been made available as a MSBuild task for better
project build integration so it can be made part of the pre-build and pre-deployment
stages in the project. This allows users to automated the results of refactoring to
some degree in to the project. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We added two new test conditions for Database Unit Tests 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ChecksumCondition – Which you can use to verify that the checksum of the data set
returned by a database unit test matches the checksum of an expected data set. 
&lt;li&gt;
ExpectedSchemaTestCondition – Which you use to verify that the column names and data
types of the returned data set match expected values. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Download page:&lt;br&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=73ba5038-8e37-4c8e-812b-db14ede2c354&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=73ba5038-8e37-4c8e-812b-db14ede2c354&amp;amp;displaylang=en&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Installer download: 
&lt;br&gt;
&lt;a href="http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/VSTSDB2008PT.msi"&gt;http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/VSTSDB2008PT.msi&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Documentation download: 
&lt;br&gt;
&lt;a href="http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/Power Tools 2008.doc"&gt;http://download.microsoft.com/download/f/b/8/fb8d1c0d-c0c4-4004-ab86-12396b2a3ee3/Power
Tools 2008.doc&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Go download and have fun! :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=aa30a0dc-c4f4-4a58-9289-07819f2c19ea" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,aa30a0dc-c4f4-4a58-9289-07819f2c19ea.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=0cef4818-487e-4a14-8479-2243c4e08ea3</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,0cef4818-487e-4a14-8479-2243c4e08ea3.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,0cef4818-487e-4a14-8479-2243c4e08ea3.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0cef4818-487e-4a14-8479-2243c4e08ea3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="center">
          <strong>CONGRATULATIONS TO ALL THE KIDS WHO WERE BORN IN THE 1940's, 50's, 60's and
70's !!</strong>
        </p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BestemailIvereceivedinages_D114/image_2.png">
            <img style="border-right: 0px; border-top: 0px; margin: 0px 10px 10px 0px; border-left: 0px; border-bottom: 0px" height="132" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BestemailIvereceivedinages_D114/image_thumb.png" width="244" align="left" border="0" />
          </a> First,
we survived being born to mothers who smoked and/or drank while they<br />
carried us.
</p>
        <p>
They took aspirin, ate blue cheese dressing, tuna from a tin, and didn't get tested
for diabetes.
</p>
        <p>
Then after that trauma, our baby cots were covered with bright coloured lead-based
paints. We had no childproof lids on medicine bottles, doors or cabinets and when
we rode our bikes, we had no helmets, not to mention, the risks we took hitchhiking
.
</p>
        <p>
As children, we would ride in cars with no seat belts or air bags. Riding in the back
of a van - loose - was always great fun.
</p>
        <p>
We drank water from the garden hosepipe and NOT from a bottle.
</p>
        <p>
We shared one soft drink with four friends, from one bottle and NO ONE actually died
from this.
</p>
        <p>
We ate cakes, white bread and real butter and drank pop with sugar in it, but we weren't
overweight because ...
</p>
        <p>
          <strong>WE WERE ALWAYS OUTSIDE PLAYING!!</strong>
        </p>
        <p>
We would leave home in the morning and play all day, as long as we were back when
the streetlights came on. 
</p>
        <p>
No one was able to reach us all day. And we were O.K.
</p>
        <p>
We would spend hours building our go-carts out of scraps and then ride down the hill,
only to find out we forgot the brakes. After running into the bushes a few times,
we learned to solve the problem.
</p>
        <p>
We did not have Playstations, Nintendo's, X-boxes, no video games at all, no 99 channels
on cable, no video tape movies, no surround sound, no cell phones, no text messaging,
no personal computers, no Internet or Internet chat rooms ...<strong></strong></p>
        <p>
          <b>WE HAD FRIENDS and we went outside and found them!</b>
        </p>
        <p>
We fell out of trees, got cut, broke bones and teeth and there were no lawsuits from<br />
these accidents.
</p>
        <p>
We played with worms and mud pies made from dirt, and the worms did not live in us
forever. 
</p>
        <p>
We made up games with sticks and tennis balls and although we were told it would happen,
we did not poke out any eyes. 
</p>
        <p>
We rode bikes or walked to a friend's house and knocked on the door or rang the bell,
or just yelled for them! 
</p>
        <p>
Local teams had tryouts and not everyone made the team. Those who didn't had to learn
to deal with disappointment. Imagine that!! 
</p>
        <p>
The idea of a parent bailing us out if we broke the law was unheard of ...
</p>
        <p>
          <b>They actually sided with the law!</b>
        </p>
        <p>
This generation has produced some of the best risk-takers, problem solvers and inventors
ever! The past 50 years have been an explosion of innovation and new ideas.
</p>
        <p>
We had freedom, failure, success and responsibility, and we learned ...
</p>
        <p>
          <b>HOW TO  </b>
          <b>DEAL WITH IT ALL! </b>
        </p>
        <p>
          <b>And YOU are one of them! </b>
          <b>CONGRATULATIONS!</b>
        </p>
        <p>
You might want to share this with others who have had the luck to grow up as<br />
kids, before the lawyers and the government regulated our lives for our own good.<br />
And, while you are at it, show it to your kids so they will know how brave their parents
were.
</p>
        <p>
Kind of makes you want to run through the house with scissors, doesn't it?!
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=0cef4818-487e-4a14-8479-2243c4e08ea3" />
      </body>
      <title>Best email I've received in ages:</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,0cef4818-487e-4a14-8479-2243c4e08ea3.aspx</guid>
      <link>http://www.bitcrazed.com/2008/02/11/BestEmailIveReceivedInAges.aspx</link>
      <pubDate>Mon, 11 Feb 2008 22:52:12 GMT</pubDate>
      <description>&lt;p align="center"&gt;
&lt;strong&gt;CONGRATULATIONS TO ALL THE KIDS WHO WERE BORN IN THE 1940's, 50's, 60's and
70's !!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BestemailIvereceivedinages_D114/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 10px 10px 0px; border-left: 0px; border-bottom: 0px" height="132" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/BestemailIvereceivedinages_D114/image_thumb.png" width="244" align="left" border="0"&gt;&lt;/a&gt; First,
we survived being born to mothers who smoked and/or drank while they&lt;br&gt;
carried us.
&lt;/p&gt;
&lt;p&gt;
They took aspirin, ate blue cheese dressing, tuna from a tin, and didn't get tested
for diabetes.
&lt;/p&gt;
&lt;p&gt;
Then after that trauma, our baby cots were covered with bright coloured lead-based
paints. We had no childproof lids on medicine bottles, doors or cabinets and when
we rode our bikes, we had no helmets, not to mention, the risks we took hitchhiking
.
&lt;/p&gt;
&lt;p&gt;
As children, we would ride in cars with no seat belts or air bags. Riding in the back
of a van - loose - was always great fun.
&lt;/p&gt;
&lt;p&gt;
We drank water from the garden hosepipe and NOT from a bottle.
&lt;/p&gt;
&lt;p&gt;
We shared one soft drink with four friends, from one bottle and NO ONE actually died
from this.
&lt;/p&gt;
&lt;p&gt;
We ate cakes, white bread and real butter and drank pop with sugar in it, but we weren't
overweight because ...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;WE WERE ALWAYS OUTSIDE PLAYING!!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We would leave home in the morning and play all day, as long as we were back when
the streetlights came on. 
&lt;/p&gt;
&lt;p&gt;
No one was able to reach us all day. And we were O.K.
&lt;/p&gt;
&lt;p&gt;
We would spend hours building our go-carts out of scraps and then ride down the hill,
only to find out we forgot the brakes. After running into the bushes a few times,
we learned to solve the problem.
&lt;/p&gt;
&lt;p&gt;
We did not have Playstations, Nintendo's, X-boxes, no video games at all, no 99 channels
on cable, no video tape movies, no surround sound, no cell phones, no text messaging,
no personal computers, no Internet or Internet chat rooms ...&lt;strong&gt; &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;WE HAD FRIENDS and we went outside and found them!&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
We fell out of trees, got cut, broke bones and teeth and there were no lawsuits from&lt;br&gt;
these accidents.
&lt;/p&gt;
&lt;p&gt;
We played with worms and mud pies made from dirt, and the worms did not live in us
forever. 
&lt;/p&gt;
&lt;p&gt;
We made up games with sticks and tennis balls and although we were told it would happen,
we did not poke out any eyes. 
&lt;/p&gt;
&lt;p&gt;
We rode bikes or walked to a friend's house and knocked on the door or rang the bell,
or just yelled for them! 
&lt;/p&gt;
&lt;p&gt;
Local teams had tryouts and not everyone made the team. Those who didn't had to learn
to deal with disappointment. Imagine that!! 
&lt;/p&gt;
&lt;p&gt;
The idea of a parent bailing us out if we broke the law was unheard of ...
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;They actually sided with the law!&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
This generation has produced some of the best risk-takers, problem solvers and inventors
ever! The past 50 years have been an explosion of innovation and new ideas.
&lt;/p&gt;
&lt;p&gt;
We had freedom, failure, success and responsibility, and we learned ...
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;HOW TO&amp;nbsp; &lt;/b&gt;&lt;b&gt;DEAL WITH IT ALL! &lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;And YOU are one of them! &lt;/b&gt;&lt;b&gt;CONGRATULATIONS!&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
You might want to share this with others who have had the luck to grow up as&lt;br&gt;
kids, before the lawyers and the government regulated our lives for our own good.&lt;br&gt;
And, while you are at it, show it to your kids so they will know how brave their parents
were.
&lt;/p&gt;
&lt;p&gt;
Kind of makes you want to run through the house with scissors, doesn't it?!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=0cef4818-487e-4a14-8479-2243c4e08ea3" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,0cef4818-487e-4a14-8479-2243c4e08ea3.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=eb6ddc9a-83fe-4898-b401-8dcdf7e48089</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,eb6ddc9a-83fe-4898-b401-8dcdf7e48089.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,eb6ddc9a-83fe-4898-b401-8dcdf7e48089.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=eb6ddc9a-83fe-4898-b401-8dcdf7e48089</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Back in the day, I used to love having a PC equipped with a VGA graphics card and
an additional Hercules graphics card attached to a green-screen monitor. When debugging
applications, the app could run on the main screen and the debugger could run on the
green-screen. This was particularly beneficial in the early days of Windows when debuggers
were text-mode apps which forced the screen to toggle between text screen and Windows
GUI as you stepped through code. Some older graphics cards and monitors used to take
several seconds per switch to re-sync making single stepping through code a VERY painful
experience.
</p>
        <p>
And then, along came debuggers that could run within console windows or were native
Widows apps and the need to switch between text-only and graphical screen resolutions
suddenly went away. However, I always missed having my debugger &amp; source on one
screen and the app being debugged on another.
</p>
        <p>
As the price of graphics cards and screens continued to drop, and as PC's and Windows'
ability to support multiple screens improved, I eventually acquired a second screen
letting me run the debugger on one screen while the app rendered on the other. 
</p>
        <p>
But as I started to work on multiple machines at the same time, I then hit another
dilemma ... how do I retain my multi-screen environment when I have to switch between
several physical boxes? 
</p>
        <p>
Alas, KVM's are just not a solution - they're unpredictable at best, horribly unreliable
at worst and didn't smoothly support multi-monitor scenarios.
</p>
        <p>
Then, a few years ago, Citrix, Microsoft and others introduced Terminal Services (TS)
capabilities to Windows and other OS'. TS essentially streams all the User Experience
(UXP) commands that would normally be directed to a machine's graphics, audio, printer,
keyboard, etc. drivers to a remote PC running a Terminal Services Client (TSC). The
TSC app would then translate these commands to render the same UXP on the local machine
so that to all intents and purposes, the user could believe that they were actually
sat at and operating the remote machine. 
</p>
        <p>
Whilst TS can be a massive boon to many enterprise scenarios enabling administrators
to consolidate many thousands of user's PC's apps and environment into one server
infrastructure. However, TS capabilities are not just limited to enterprise environments. 
</p>
        <p>
Thankfully, Microsoft opted to include a TS client (MSTSC) within Windows client OS'
which meant that instead of having to buy a KVM and a ton of cables, I could instead
control multiple machines from one client PC using MSTSC application (also known as
Remote Desktop).
</p>
        <p>
Whilst MSTSC was great in that I could now have my local desktop on one screen and
other machine's desktops on other screens, all controlled from the same keyboard and
mouse with no fiddly screen-switching to perform, I sometimes wanted to view a remote
machine's desktop spanned across two screens.
</p>
        <p>
Vista has now made this not only possible, but easy and simple!
</p>
        <p>
To start MSTSC, it's often best to use the command line because there are a few options
available which (for some reason) aren't exposed through the Tools  | Options
dialog.
</p>
        <p>
For example, to connect to a remote machine called RichDev01, you could type (or create
a shortcut for) the following:
</p>
        <p>
          <font face="Consolas" size="2">MSTSC </font>
          <font face="Consolas" size="2">\\RichLaptop01</font>
        </p>
        <p>
When executed, you'll then be shown the remote machine's desktop. For example, here's
my laptop's desktop (where I am writing this post), accessed from an MSTSC instance
running on my dev box:
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image6.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image6_thumb.png" width="229" border="0" />
          </a>
        </p>
        <p>
On a multi-monitor machine, I am also able to access the local machine's desktop (on
the left) AND the remote machine's desktop (on the right) simultaneously:
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image13.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image13_thumb.png" width="454" border="0" />
          </a>
        </p>
        <p>
Whilst this is great (so I can keep up with my email while my dev box builds, for
example), I sometimes want to be able to access the remote machine's desktop as if
it was attached to the two screens.
</p>
        <p>
Thankfully, this was a feature added to Vista (and enhanced in Vista SP1)! Below is
a screen capture of my laptop's desktop, viewed across my dev machine's two screens:
</p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image8.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image8_thumb.png" width="454" border="0" />
          </a>
        </p>
        <p>
How do you do this? Simple - you call MSTSC with the /SPAN command-line option; for
example:
</p>
        <p>
          <font face="Consolas" size="2">MSTSC \\RichLaptop01 /SPAN</font>
        </p>
        <p>
It turns out that spanning your target desktop via an MSTSC session has a valuable
hidden feature: When you maximize an app on the remote desktop, it will expand to
fill the entire space available to it, rather than the current screen! Just what you
need when parsing complex logs or comparing files etc! <img alt="Wink" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/wink_smile.gif" /></p>
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image_3.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="175" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image_thumb.png" width="454" border="0" />
          </a>
        </p>
        <p>
Anyone out there with more than two screens that can test out if a remote machine's
desktop can be spanned across more than two screens? <img alt="Big Grin" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif" /></p>
Enjoy!<img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=eb6ddc9a-83fe-4898-b401-8dcdf7e48089" /></body>
      <title>Fun with multiple monitors</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,eb6ddc9a-83fe-4898-b401-8dcdf7e48089.aspx</guid>
      <link>http://www.bitcrazed.com/2008/02/11/FunWithMultipleMonitors.aspx</link>
      <pubDate>Mon, 11 Feb 2008 18:10:50 GMT</pubDate>
      <description>&lt;p&gt;
Back in the day, I used to love having a PC equipped with a VGA graphics card and
an additional Hercules graphics card attached to a green-screen monitor. When debugging
applications, the app could run on the main screen and the debugger could run on the
green-screen. This was particularly beneficial in the early days of Windows when debuggers
were text-mode apps which forced the screen to toggle between text screen and Windows
GUI as you stepped through code. Some older graphics cards and monitors used to take
several seconds per switch to re-sync making single stepping through code a VERY painful
experience.
&lt;/p&gt;
&lt;p&gt;
And then, along came debuggers that could run within console windows or were native
Widows apps and the need to switch between text-only and graphical screen resolutions
suddenly went away. However, I always missed having my debugger &amp;amp; source on one
screen and the app being debugged on another.
&lt;/p&gt;
&lt;p&gt;
As the price of graphics cards and screens continued to drop, and as PC's and Windows'
ability to support multiple screens improved, I eventually acquired a second screen
letting me run the debugger on one screen while the app rendered on the other. 
&lt;/p&gt;
&lt;p&gt;
But as I started to work on multiple machines at the same time, I then hit another
dilemma ... how do I retain my multi-screen environment when I have to switch between
several physical boxes? 
&lt;/p&gt;
&lt;p&gt;
Alas, KVM's are just not a solution - they're unpredictable at best, horribly unreliable
at worst and didn't smoothly support multi-monitor scenarios.
&lt;/p&gt;
&lt;p&gt;
Then, a few years ago, Citrix, Microsoft and others introduced Terminal Services (TS)
capabilities to Windows and other OS'. TS essentially streams all the User Experience
(UXP) commands that would normally be directed to a machine's graphics, audio, printer,
keyboard, etc. drivers to a remote PC running a Terminal Services Client (TSC). The
TSC app would then translate these commands to render the same UXP on the local machine
so that to all intents and purposes, the user could believe that they were actually
sat at and operating the remote machine. 
&lt;/p&gt;
&lt;p&gt;
Whilst TS can be a massive boon to many enterprise scenarios enabling administrators
to consolidate many thousands of user's PC's apps and environment into one server
infrastructure. However, TS capabilities are not just limited to enterprise environments. 
&lt;/p&gt;
&lt;p&gt;
Thankfully, Microsoft opted to include a TS client (MSTSC) within Windows client OS'
which meant that instead of having to buy a KVM and a ton of cables, I could instead
control multiple machines from one client PC using MSTSC application (also known as
Remote Desktop).
&lt;/p&gt;
&lt;p&gt;
Whilst MSTSC was great in that I could now have my local desktop on one screen and
other machine's desktops on other screens, all controlled from the same keyboard and
mouse with no fiddly screen-switching to perform, I sometimes wanted to view a remote
machine's desktop spanned across two screens.
&lt;/p&gt;
&lt;p&gt;
Vista has now made this not only possible, but easy and simple!
&lt;/p&gt;
&lt;p&gt;
To start MSTSC, it's often best to use the command line because there are a few options
available which (for some reason) aren't exposed through the Tools&amp;nbsp; | Options
dialog.
&lt;/p&gt;
&lt;p&gt;
For example, to connect to a remote machine called RichDev01, you could type (or create
a shortcut for) the following:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas" size="2"&gt;MSTSC &lt;/font&gt;&lt;font face="Consolas" size="2"&gt;\\RichLaptop01&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
When executed, you'll then be shown the remote machine's desktop. For example, here's
my laptop's desktop (where I am writing this post), accessed from an MSTSC instance
running on my dev box:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image6_thumb.png" width="229" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
On a multi-monitor machine, I am also able to access the local machine's desktop (on
the left) AND the remote machine's desktop (on the right) simultaneously:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image13.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image13_thumb.png" width="454" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Whilst this is great (so I can keep up with my email while my dev box builds, for
example), I sometimes want to be able to access the remote machine's desktop as if
it was attached to the two screens.
&lt;/p&gt;
&lt;p&gt;
Thankfully, this was a feature added to Vista (and enhanced in Vista SP1)! Below is
a screen capture of my laptop's desktop, viewed across my dev machine's two screens:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image8_thumb.png" width="454" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
How do you do this? Simple - you call MSTSC with the /SPAN command-line option; for
example:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas" size="2"&gt;MSTSC \\RichLaptop01 /SPAN&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
It turns out that spanning your target desktop via an MSTSC session has a valuable
hidden feature: When you maximize an app on the remote desktop, it will expand to
fill the entire space available to it, rather than the current screen! Just what you
need when parsing complex logs or comparing files etc! &lt;img alt="Wink" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/wink_smile.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="175" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/THEreasontoupgradetoVistaSP1_B8A8/image_thumb.png" width="454" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Anyone out there with more than two screens that can test out if a remote machine's
desktop can be spanned across more than two screens? &lt;img alt="Big Grin" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif"&gt;
&lt;/p&gt;
Enjoy!&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=eb6ddc9a-83fe-4898-b401-8dcdf7e48089" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,eb6ddc9a-83fe-4898-b401-8dcdf7e48089.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=1e6fa6d6-4661-4699-b545-e6a6e6489ab2</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,1e6fa6d6-4661-4699-b545-e6a6e6489ab2.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,1e6fa6d6-4661-4699-b545-e6a6e6489ab2.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1e6fa6d6-4661-4699-b545-e6a6e6489ab2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Scott has just announced that the <a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx">.NET
Framework Library Source Code now available</a>!! As Scott states: You can now browse
and debug the source code for the following .NET Framework libraries:
</p>
        <ul>
          <li>
.NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel,
System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection,
System.Runtime, System.Security, System.Text, System.Threading, etc). 
</li>
        </ul>
        <ul>
          <li>
ASP.NET (System.Web, System.Web.Extensions) 
</li>
        </ul>
        <ul>
          <li>
Windows Forms (System.Windows.Forms) 
</li>
        </ul>
        <ul>
          <li>
Windows Presentation Foundation (System.Windows) 
</li>
        </ul>
        <ul>
          <li>
ADO.NET and XML (System.Data and System.Xml) 
</li>
        </ul>
        <p>
We are in the process of adding additional framework libraries (including LINQ, WCF
and Workflow) to the above list.
</p>
        <p>
Note: The primary goal here is to enable developers to view source code to the underlying
.NET Framework while building apps. As such, the ability to view the source to .NET
is granted under a read-only reference license.
</p>
        <p>
Happy hacking! :)
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=1e6fa6d6-4661-4699-b545-e6a6e6489ab2" />
      </body>
      <title>.NET Framework Library Source Code now available - ScottGu's Blog</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,1e6fa6d6-4661-4699-b545-e6a6e6489ab2.aspx</guid>
      <link>http://www.bitcrazed.com/2008/01/17/NETFrameworkLibrarySourceCodeNowAvailableScottGusBlog.aspx</link>
      <pubDate>Thu, 17 Jan 2008 00:22:11 GMT</pubDate>
      <description>&lt;p&gt;
Scott has just announced that the &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx"&gt;.NET
Framework Library Source Code now available&lt;/a&gt;!! As Scott states: You can now browse
and debug the source code for the following .NET Framework libraries:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
.NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel,
System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection,
System.Runtime, System.Security, System.Text, System.Threading, etc). 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
ASP.NET (System.Web, System.Web.Extensions) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Forms (System.Windows.Forms) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Presentation Foundation (System.Windows) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
ADO.NET and XML (System.Data and System.Xml) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We are in the process of adding additional framework libraries (including LINQ, WCF
and Workflow) to the above list.
&lt;/p&gt;
&lt;p&gt;
Note: The primary goal here is to enable developers to view source code to the underlying
.NET Framework while building apps. As such, the ability to view the source to .NET
is granted under a read-only reference license.
&lt;/p&gt;
&lt;p&gt;
Happy hacking! :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=1e6fa6d6-4661-4699-b545-e6a6e6489ab2" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,1e6fa6d6-4661-4699-b545-e6a6e6489ab2.aspx</comments>
      <category>.NET</category>
      <category>Development</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=042a1339-b266-4f2f-92f8-b02d74567f8b</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,042a1339-b266-4f2f-92f8-b02d74567f8b.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,042a1339-b266-4f2f-92f8-b02d74567f8b.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=042a1339-b266-4f2f-92f8-b02d74567f8b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jeremy Clarkson, presenter of TV's "<a href="http://www.topgear.com/" target="_blank">Top
Gear</a>" published his bank account details and home address in an article he penned
for "The Sun", the UK's best-selling newspaper. Why? Because he wanted to illustrate
his belief that the furore over reports of the loss of CD's containing a database
of 25M people's personal details were much ado about nothing. He claimed:
</p>
        <blockquote>
          <p>
"All you'll be able to do with them is put money into my account. Not take it out.
Honestly, I've never known such a palaver about nothing"
</p>
        </blockquote>
        <p>
Alas, this stunt has backfired on him! Clarkson subsequently wrote in his Sunday Times
column that:
</p>
        <blockquote>
          <p>
"I opened my bank statement this morning to find out that someone has set up a direct
debit which automatically takes £500 from my account. The bank cannot find out who
did this because of the Data Protection Act and they cannot stop it from happening
again."
</p>
        </blockquote>
        <p>
Clarkson, much chastened, had the good grace to admit that:
</p>
        <blockquote>
          <p>
"I was wrong and I have been punished for my mistake.
</p>
        </blockquote>
        <p>
He must be thanking his lucky stars that whoever managed to compromise his account
didn't clean him out! Let this be a lesson to us all. 
</p>
        <p>
It is clearly all too easy for our identities to be abused and compromised and we
should all take steps to do what we can to protect our personal identities. 
</p>
        <p>
Here are my top 5 suggestions on the absolute minimum steps we should all take to
protect our personal identities: 
</p>
        <ol>
          <li>
            <strong>Shred paperwork</strong>. Don't just throw away paperwork with your name,
address, telephone numbers, account numbers, balances, credit details, etc., <strong>SHRED
THEM</strong>!  <a type="amzn">Document shredders</a> are not expensive and take
just moments to make it much harder for malicious third parties to abuse your identity. 
</li>
          <li>
            <strong>Protect your passwords</strong>: Passwords are a pain to use and open us up
to innumerable identity attacks such as phishing. However, until alternative identity
exchange mechanisms such as <a href="http://msdn2.microsoft.com/en-us/netframework/aa663320.aspx" target="_blank">Windows
CardSpace</a> establish a strong foothold, passwords are going to remain as the primary
way we secure access to websites and online services. So we will need to more effectively
manage our passwords. Key tips for password management:</li>
        </ol>
        <ol>
          <li>
            <strong>Don't re-use passwords</strong>: Avoid using the same password at more than
one site. If your password is compromised once, you're open to much broader attack
if your password is shared across several other sites. It's quite easy to choose a
unique password and to augment it with some site identifier so that you can easily
remember the password to use on a given site. 
</li>
          <li>
            <strong>Never write down your passwords</strong>, nor store them in an unsecured store
(e.g. a spreadsheet on your laptop). If you must store your passwords, store them
in an encrypted and/or password protected store, and rather than store the password
itself, store a hint or reminder as to what the password is.</li>
        </ol>
        <li>
          <strong>Avoid passwords</strong>: Lobby your bank, credit card companies, merchants,
billing companies, and anywhere else online that requires to you create and maintain
yet another password. Ask them when they plan to adopt identity selectors such as <a href="http://msdn2.microsoft.com/en-us/netframework/aa663320.aspx" target="_blank">Windows
CardSpace</a> (or other identity selectors such as <a href="http://www.novell.com/news/press/bandit-projects-cross-platform-card-selector-gives-users-control-of-their-internet-identities/" target="_blank">Novell's
Bandit</a> for example). We need to start moving beyond usernames and passwords and
to enjoy a safer Internet. 
</li>
        <li>
          <strong>Protect your Social Security/Tax/National IDs</strong>: It stuns and amazes
me that most banks here in the US use a person's Social Security Number (SSN) as the
primary identifier for their customers. I've lost count of the number of times I have
been asked to provide my full SSN when speak to my bank, mortgage company, etc. I
am even more astonished at how flummoxed the phone rep's are when I refuse to provide
my whole SSN - they just don't know what to do or go out of their way to avoid performing
the couple of extra steps necessary to look you up in their systems using other credentials
(name, address, etc). 
</li>
        <li>
          <strong>Monitor your bank / credit card transactions monthly</strong>: I am as guilty
as the next guy of not doing this as regularly as I should. Until recently. A few
weeks ago I decided to take a more proactive stance regarding my financial position
and invested in a money management package (I chose <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FMicrosoft-KFA-00003-Money-Plus-Premium%2Fdp%2FB000SKZIXG%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1199729462%26sr%3D8-2&amp;tag=bitc-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Microsoft
Money</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=bitc-20&amp;l=ur2&amp;o=1" width="1" border="0" />,
but tools like <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FIntuit-Quicken-2008-Premier%2Fdp%2FB000U0CBVG%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1199729462%26sr%3D8-7&amp;tag=bitc-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Quicken</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=bitc-20&amp;l=ur2&amp;o=1" width="1" border="0" /> are
great too). Whilst categorizing all my uncategorized credit card transactions, I found
that I had been billed over $120 by TFN*GreatFun (<a href="http://search.live.com/results.aspx?q=TLG*greatfun+Scam" target="_blank">Trilegiant's
well documented scam</a>). I am in the process of jumping through the (quite unnecessary)
hoops required to have these charges reimbursed. Without <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FMicrosoft-KFA-00003-Money-Plus-Premium%2Fdp%2FB000SKZIXG%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1199729462%26sr%3D8-2&amp;tag=bitc-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Microsoft
Money</a><img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=bitc-20&amp;l=ur2&amp;o=1" width="1" border="0" />,
I would most likely not have noticed these charges and so it has already more than
paid for itself!</li>
        <p>
Hope this helps you avoid getting compromised.
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=042a1339-b266-4f2f-92f8-b02d74567f8b" />
      </body>
      <title>Jeremy Clarkson's Bank Account Compromised!</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,042a1339-b266-4f2f-92f8-b02d74567f8b.aspx</guid>
      <link>http://www.bitcrazed.com/2008/01/07/JeremyClarksonsBankAccountCompromised.aspx</link>
      <pubDate>Mon, 07 Jan 2008 18:33:14 GMT</pubDate>
      <description>&lt;p&gt;
Jeremy Clarkson, presenter of TV's "&lt;a href="http://www.topgear.com/" target="_blank"&gt;Top
Gear&lt;/a&gt;" published his bank account details and home address in an article he penned
for "The Sun", the UK's best-selling newspaper. Why? Because he wanted to illustrate
his belief that the furore over reports of the loss of CD's containing a database
of 25M people's personal details were much ado about nothing. He claimed:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"All you'll be able to do with them is put money into my account. Not take it out.
Honestly, I've never known such a palaver about nothing"
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Alas, this stunt has backfired on him! Clarkson subsequently wrote in his Sunday Times
column that:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"I opened my bank statement this morning to find out that someone has set up a direct
debit which automatically takes £500 from my account. The bank cannot find out who
did this because of the Data Protection Act and they cannot stop it from happening
again."
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Clarkson, much chastened, had the good grace to admit that:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"I was wrong and I have been punished for my mistake.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
He must be thanking his lucky stars that whoever managed to compromise his account
didn't clean him out! Let this be a lesson to us all. 
&lt;p&gt;
It is clearly all too easy for our identities to be abused and compromised and we
should all take steps to do what we can to protect our personal identities. 
&lt;p&gt;
Here are my top 5 suggestions on the absolute minimum steps we should all take to
protect our personal identities: 
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Shred paperwork&lt;/strong&gt;. Don't just throw away paperwork with your name,
address, telephone numbers, account numbers, balances, credit details, etc., &lt;strong&gt;SHRED
THEM&lt;/strong&gt;!&amp;nbsp; &lt;a type="amzn"&gt;Document shredders&lt;/a&gt; are not expensive and take
just moments to make it much harder for malicious third parties to abuse your identity. 
&lt;li&gt;
&lt;strong&gt;Protect your passwords&lt;/strong&gt;: Passwords are a pain to use and open us up
to innumerable identity attacks such as phishing. However, until alternative identity
exchange mechanisms such as &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa663320.aspx" target="_blank"&gt;Windows
CardSpace&lt;/a&gt; establish a strong foothold, passwords are going to remain as the primary
way we secure access to websites and online services. So we will need to more effectively
manage our passwords. Key tips for password management:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Don't re-use passwords&lt;/strong&gt;: Avoid using the same password at more than
one site. If your password is compromised once, you're open to much broader attack
if your password is shared across several other sites. It's quite easy to choose a
unique password and to augment it with some site identifier so that you can easily
remember the password to use on a given site. 
&lt;li&gt;
&lt;strong&gt;Never write down your passwords&lt;/strong&gt;, nor store them in an unsecured store
(e.g. a spreadsheet on your laptop). If you must store your passwords, store them
in an encrypted and/or password protected store, and rather than store the password
itself, store a hint or reminder as to what the password is.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
&lt;strong&gt;Avoid passwords&lt;/strong&gt;: Lobby your bank, credit card companies, merchants,
billing companies, and anywhere else online that requires to you create and maintain
yet another password. Ask them when they plan to adopt identity selectors such as &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa663320.aspx" target="_blank"&gt;Windows
CardSpace&lt;/a&gt; (or other identity selectors such as &lt;a href="http://www.novell.com/news/press/bandit-projects-cross-platform-card-selector-gives-users-control-of-their-internet-identities/" target="_blank"&gt;Novell's
Bandit&lt;/a&gt; for example). We need to start moving beyond usernames and passwords and
to enjoy a safer Internet. 
&lt;li&gt;
&lt;strong&gt;Protect your Social Security/Tax/National IDs&lt;/strong&gt;: It stuns and amazes
me that most banks here in the US use a person's Social Security Number (SSN) as the
primary identifier for their customers. I've lost count of the number of times I have
been asked to provide my full SSN when speak to my bank, mortgage company, etc. I
am even more astonished at how flummoxed the phone rep's are when I refuse to provide
my whole SSN - they just don't know what to do or go out of their way to avoid performing
the couple of extra steps necessary to look you up in their systems using other credentials
(name, address, etc). 
&lt;li&gt;
&lt;strong&gt;Monitor your bank / credit card transactions monthly&lt;/strong&gt;: I am as guilty
as the next guy of not doing this as regularly as I should. Until recently. A few
weeks ago I decided to take a more proactive stance regarding my financial position
and invested in a money management package (I chose &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FMicrosoft-KFA-00003-Money-Plus-Premium%2Fdp%2FB000SKZIXG%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1199729462%26sr%3D8-2&amp;amp;tag=bitc-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Microsoft
Money&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=bitc-20&amp;amp;l=ur2&amp;amp;o=1" width="1" border="0"&gt;,
but tools like &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FIntuit-Quicken-2008-Premier%2Fdp%2FB000U0CBVG%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1199729462%26sr%3D8-7&amp;amp;tag=bitc-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Quicken&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=bitc-20&amp;amp;l=ur2&amp;amp;o=1" width="1" border="0"&gt; are
great too). Whilst categorizing all my uncategorized credit card transactions, I found
that I had been billed over $120 by TFN*GreatFun (&lt;a href="http://search.live.com/results.aspx?q=TLG*greatfun+Scam" target="_blank"&gt;Trilegiant's
well documented scam&lt;/a&gt;). I am in the process of jumping through the (quite unnecessary)
hoops required to have these charges reimbursed. Without &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FMicrosoft-KFA-00003-Money-Plus-Premium%2Fdp%2FB000SKZIXG%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1199729462%26sr%3D8-2&amp;amp;tag=bitc-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Microsoft
Money&lt;/a&gt;&lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=bitc-20&amp;amp;l=ur2&amp;amp;o=1" width="1" border="0"&gt;,
I would most likely not have noticed these charges and so it has already more than
paid for itself!&lt;/li&gt;&gt;
&lt;p&gt;
Hope this helps you avoid getting compromised.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=042a1339-b266-4f2f-92f8-b02d74567f8b" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,042a1339-b266-4f2f-92f8-b02d74567f8b.aspx</comments>
      <category>Identity</category>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/HaLOL_EF77/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/HaLOL_EF77/image_thumb.png" width="212" border="0" />
          </a>
        </p>
        <p>
Sorry ... couldn't resist it! Just HAD to post a <a href="http://mine.icanhascheezburger.com/View.aspx?128418947193521250.jpg" target="_blank">picture
of our cat</a>!
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6" />
      </body>
      <title>HaLOL</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6.aspx</guid>
      <link>http://www.bitcrazed.com/2007/12/12/HaLOL.aspx</link>
      <pubDate>Wed, 12 Dec 2007 01:01:48 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/HaLOL_EF77/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://www.bitcrazed.com/content/binary/WindowsLiveWriter/HaLOL_EF77/image_thumb.png" width="212" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Sorry ... couldn't resist it! Just HAD to post a &lt;a href="http://mine.icanhascheezburger.com/View.aspx?128418947193521250.jpg" target="_blank"&gt;picture
of our cat&lt;/a&gt;!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,7e1730d8-5ec2-413c-8eb6-5bfa1bc365c6.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bitcrazed.com/Trackback.aspx?guid=ee7fe004-8aa5-49dc-ade5-26fdffab4cc9</trackback:ping>
      <pingback:server>http://www.bitcrazed.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.bitcrazed.com/PermaLink,guid,ee7fe004-8aa5-49dc-ade5-26fdffab4cc9.aspx</pingback:target>
      <dc:creator>Rich Turner</dc:creator>
      <wfw:comment>http://www.bitcrazed.com/CommentView,guid,ee7fe004-8aa5-49dc-ade5-26fdffab4cc9.aspx</wfw:comment>
      <wfw:commentRss>http://www.bitcrazed.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ee7fe004-8aa5-49dc-ade5-26fdffab4cc9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Brad Abrams is asking <a href="http://blogs.msdn.com/brada/archive/2007/10/26/adhoc-poll-allowing-net-exes-to-run-off-a-network-share.aspx" target="_blank">whether
or not the default behavior of the .NET runtime should allow your machine to run .NET
applications stored on network shares by default</a>.
</p>
        <p>
Today, you can run native EXE's stored on a network shares without having to do any
security work at the desktop. .NET application on the other hand will fail with a
somewhat unhelpful "[exename] has encountered a problem and needs to close. 
We are sorry for the inconvenience" error message.
</p>
        <p>
This is, as Brad points out, a well known issue with some simple workarounds involving:
</p>
        <ol>
          <li>
Configuring your machine to trust a given strong-named (i.e. signed) .NET EXE (using
MSCORCFG.MSC; <a href="http://support.microsoft.com/kb/832742" target="_blank">details
here</a>) 
</li>
          <li>
Alter your machine's Code Access Security Policy to trust a given network share (using
CASPOL.EXE, as <a href="http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx" target="_blank">shown
by Shawn</a>)</li>
        </ol>
        <p>
I believe that softening the default Code Access Policy to permit .NET EXE's to run
from default shares will introduce too many opportunities for malicious software authors
to fool users into running apps that they think they trust. 
</p>
        <p>
Remember the ILoveYou virus which, <a href="http://www.leastprivilege.com/DoesMicrosoftRegretTheSecurityPush.aspx" target="_blank">as
Dominick points out</a>, copied itself to network shares as one of the avenues through
which it spread its infection?
</p>
        <p>
The only way I could accept such a sweeping change is if only EXE's that are Digitally
Signed with a cert from a Certificate Authority in my trusted root store were permitted
to run from a network share. Otherwise users WILL be fooled into running something
that is less than desirable and which causes significant damage ... something I think
we should all take steps to avoid.
</p>
        <p>
In short, Just say NO!
</p>
        <img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=ee7fe004-8aa5-49dc-ade5-26fdffab4cc9" />
      </body>
      <title>Running .NET EXE's from network shares by default? Just say No!</title>
      <guid isPermaLink="false">http://www.bitcrazed.com/PermaLink,guid,ee7fe004-8aa5-49dc-ade5-26fdffab4cc9.aspx</guid>
      <link>http://www.bitcrazed.com/2007/11/01/RunningNETEXEsFromNetworkSharesByDefaultJustSayNo.aspx</link>
      <pubDate>Thu, 01 Nov 2007 16:51:45 GMT</pubDate>
      <description>&lt;p&gt;
Brad Abrams is asking &lt;a href="http://blogs.msdn.com/brada/archive/2007/10/26/adhoc-poll-allowing-net-exes-to-run-off-a-network-share.aspx" target="_blank"&gt;whether
or not the default behavior of the .NET runtime should allow your machine to run .NET
applications stored on network shares by default&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Today, you can run native EXE's stored on a network shares without having to do any
security work at the desktop. .NET application on the other hand will fail with a
somewhat unhelpful "[exename] has encountered a problem and needs to close.&amp;nbsp;
We are sorry for the inconvenience" error message.
&lt;/p&gt;
&lt;p&gt;
This is, as Brad points out, a well known issue with some simple workarounds involving:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Configuring your machine to trust a given strong-named (i.e. signed) .NET EXE (using
MSCORCFG.MSC; &lt;a href="http://support.microsoft.com/kb/832742" target="_blank"&gt;details
here&lt;/a&gt;) 
&lt;li&gt;
Alter your machine's Code Access Security Policy to trust a given network share (using
CASPOL.EXE, as &lt;a href="http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx" target="_blank"&gt;shown
by Shawn&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I believe that softening the default Code Access Policy to permit .NET EXE's to run
from default shares will introduce too many opportunities for malicious software authors
to fool users into running apps that they think they trust. 
&lt;/p&gt;
&lt;p&gt;
Remember the ILoveYou virus which, &lt;a href="http://www.leastprivilege.com/DoesMicrosoftRegretTheSecurityPush.aspx" target="_blank"&gt;as
Dominick points out&lt;/a&gt;, copied itself to network shares as one of the avenues through
which it spread its infection?
&lt;/p&gt;
&lt;p&gt;
The only way I could accept such a sweeping change is if only EXE's that are Digitally
Signed with a cert from a Certificate Authority in my trusted root store were permitted
to run from a network share. Otherwise users WILL be fooled into running something
that is less than desirable and which causes significant damage ... something I think
we should all take steps to avoid.
&lt;/p&gt;
&lt;p&gt;
In short, Just say NO!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bitcrazed.com/aggbug.ashx?id=ee7fe004-8aa5-49dc-ade5-26fdffab4cc9" /&gt;</description>
      <comments>http://www.bitcrazed.com/CommentView,guid,ee7fe004-8aa5-49dc-ade5-26fdffab4cc9.aspx</comments>
      <category>.NET</category>
      <category>Security</category>
    </item>
  </channel>
</rss>