<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>MY DISTRIBUTED LIFE</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.mydistributedlife.com/blog/atom.xml" />
    <id>tag:www.mydistributedlife.com,2010-09-24:/blog//1</id>
    <updated>2011-04-26T04:25:44Z</updated>
    <subtitle>Software development in the age of distributed computing</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.33-en</generator>

<entry>
    <title>Fix - Visual Studio 2010 SP1 Breaks SSMS Intellisense</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2011/04/fix---visual-studio-2010-sp1-breaks-ssms-intellisense.html" />
    <id>tag:www.mydistributedlife.com,2011:/blog//1.25</id>

    <published>2011-04-26T04:25:43Z</published>
    <updated>2011-04-26T04:25:44Z</updated>

    <summary>After installing Visual Studio 2010 Service Pack 1, I noticed that intellisense had stopped working in SQL Server Management Studio 2008 R2. The issue was noted in Scott Guthrie’s blog, a few weeks ago. I discovered today that a hotfix...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>After installing <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5">Visual Studio 2010 Service Pack</a> 1, I noticed that intellisense had stopped working in SQL Server Management Studio 2008 R2. The <a href="http://weblogs.asp.net/scottgu/archive/2011/03/15/visual-studio-2010-sp1.aspx">issue</a> was noted in <a href="http://weblogs.asp.net/scottgu">Scott Guthrie’s</a> blog, a few weeks ago. I discovered today that a hotfix is available from Microsoft as a part of SQL Server 2008 R2 <a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2507770&amp;kbln=en-us">cumulative update 7</a>. I’ve installed <a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2507770&amp;kbln=en-us">update 7</a>, and verified that intellisense works again.</p>]]>
        
    </content>
</entry>

<entry>
    <title><![CDATA[Weekly Reading 1&ndash;Remote Fa&ccedil;ade Pattern]]></title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2011/01/weekly-reading-1remote-faade-pattern.html" />
    <id>tag:www.mydistributedlife.com,2011:/blog//1.24</id>

    <published>2011-01-09T06:05:57Z</published>
    <updated>2011-01-10T01:07:01Z</updated>

    <summary>As I’m an avid reader, I decided to start sharing weekly recaps of my reading list. This will often include articles I’ve found interesting, but also items related to the projects I’m currently involved with. The subject matter may vary,...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Learning" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Reading" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>As I’m an avid reader, I decided to start sharing weekly recaps of my reading list. This will often include articles I’ve found interesting, but also items related to the projects I’m currently involved with. The subject matter may vary, but I hope others will find them useful, or better yet as a way to <a href="http://www.mydistributedlife.com/blog/2009/06/sharpening-my-developer-saw.html">sharpen your saw</a>.</p>  <p>The past week has been all about design. I’ve been reading one of my favorite books again, <a href="http://www.amazon.com/gp/product/0321127420?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321127420">Patterns of Enterprise Application Architecture</a>. Recently, I’ve been thinking about ways to create a web service layer over fine-grained API.&#160; In order to reduce the number of remote calls from client applications over a distributed network, I’ve been revisiting the <a href="http://martinfowler.com/eaaCatalog/remoteFacade.html">Remote Façade</a> pattern, which allows you to create a coarse-grained interface over a fine-grained API. Additionally, you may also find the article on <a href="http://martinfowler.com/eaaCatalog/dataTransferObject.html">Data Transfer Objects</a> useful.</p>  <p>Here are a few more articles that I read:</p>  <p><a href="http://www.ibm.com/developerworks/webservices/library/ws-soa-granularity/"><font style="font-weight: normal">Software components: Coarse-grained versus fine-grained</font></a></p>  <p><a href="http://msdn.microsoft.com/en-us/library/ff649585.aspx">Data Transfer Object</a></p>  <p><a href="http://www.programmersheaven.com/2/Domain-Objects-Caching-Pattern-for-NET">Domain Objects Caching Pattern for .NET</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>Internet Explorer Finally Supports SVG</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/03/internet-explorer-finally-supports-svg.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.23</id>

    <published>2010-03-29T03:01:05Z</published>
    <updated>2010-03-29T14:40:02Z</updated>

    <summary><![CDATA[I was reading the Internet Explorer 9 Platform Preview release notes, and was happy to see that SVG is listed among its supported features.&nbsp; It's one of those features that have been dubiously missing from previous versions of the browser....]]></summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Internet Explorer" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="SVG" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="VML" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ie" label="IE" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="svg" label="SVG" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vml" label="VML" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>I was reading the Internet Explorer 9 Platform Preview <a href="http://ie.microsoft.com/testdrive/info/ReleaseNotes/Default.html">release notes</a>, and was happy to see that <a href="http://en.wikipedia.org/wiki/Svg">SVG</a> is listed among its supported features.&nbsp; It's one of those features that have been dubiously missing from previous versions of the browser. This has forced many developers to opt for <a href="http://en.wikipedia.org/wiki/Vector_Markup_Language">VML</a> when rendering to Internet Explorer, which can be a pain as I recently found out while working on a project, because certain features always seem to be <a href="http://www.lrbabe.com/?p=104">broken</a> with each new release. While it will be years before we will only have to support SVG across all browsers, it's still great to see that this will eventually be possible. However, from my experience with Microsoft technologies, I say that with a great deal of caution.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Running a 64-bit Guest Virtual Machine on a 32-bit Host</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/03/running-a-64-bit-guest-virtual-machine-on-a-32-bit-host.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.22</id>

    <published>2010-03-18T02:02:38Z</published>
    <updated>2010-03-18T02:11:57Z</updated>

    <summary>I was recently asked by a colleague if it was possible to run a 64-bit guest operating system on a 32-bit host. The question was specifically geared towards running Windows 2008 R2, via VMware Player, on Windows XP. Yes you...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="VMware" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Virtualization" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="vmware" label="VMware" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>I was recently asked by a colleague if it was possible to run a 64-bit guest operating system on a 32-bit host. The question was specifically geared towards running Windows 2008 R2, via <a href="http://www.vmware.com/products/player/">VMware Player</a>, on Windows XP.</p>
<p>Yes you should definitely be able to run a 64-bit virtual machine on a 32-bit host like Windows XP. There are a couple of caveats, which include:</p>
<ol>
<li>The virtual machine software must support 64-bit guests. That is, VMware Player must support 64-bit guests, which it does. You should use the latest version (3.0 as of this article) to be sure you get support for Windows 2008 R2. See the <a href="http://www.vmware.com/support/player30/doc/releasenotes_player3.html#new_os">release notes</a> for more information.</li>
<li>The CPU on the machine must support 64-bit instructions. In the case of Intel based CPUs, EMT64.</li>
<li>The CPU must support Virtualization Technology. Again, for Intel CPUs this is the VT extensions.</li>
<li>VT must be enabled. This is often accomplished via the Bios.</li></ol>
<p>Those are the perquisites for running 64-bit guests, like Windows 2008 R2, on a 32-bit host. You can check if your CPU supports 64-bit instructions and virtualization technology using <a href="http://www.cpuid.com/cpuz.php">CPU-Z</a>, or the VMware <a href="http://www.vmware.com/download/shared_utilities.html">shared utilities</a>. VMware also provides additional information in this knowledge base <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1003945">article</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title><![CDATA[Why Aren&rsquo;t More Startups Using .NET?]]></title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/03/why-arent-more-startups-using-net.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.20</id>

    <published>2010-03-09T03:50:18Z</published>
    <updated>2010-03-10T20:49:28Z</updated>

    <summary>I&apos;ve been reading the High Scalability blog quite a bit lately. After reading several articles over the past couple of weeks, I&apos;m wondering where are all the web startups that are using the Microsoft stack? I believe .NET is a...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term=".NET" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="net" label=".NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aspnet" label="ASP.NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="entrepreneur" label="Entrepreneur" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>I've been reading the <a href="http://highscalability.com/">High Scalability</a> blog quite a bit lately. After reading several articles over the past couple of weeks, I'm wondering where are all the web startups that are using the Microsoft stack? I believe .NET is a very productive platform on which a successful web-based product can be built, and I really like the C# programming language. I don't consider&nbsp; myself a Microsoft fan boy, and in the past I've recommend and used open source technologies for a few startups that I've worked with. So, why aren't more startups using .NET? Maybe they are out there, but not heavily advertised. A few notable exceptions include:</p>  <ul>   <li><a href="http://www.myspace.com/">MySpace</a> </li>    <li><a href="http://www.stackoverflow.com/">Stack Overflow</a> </li>    <li><a href="http://www.plentyoffish.com/">Plenty Of Fish</a> </li>    <li><a href="http://www.theport.com/">ThePort</a> </li> </ul>  <p>One issue that seems to always be raised is the cost of Microsoft's SQL Server, especially as one begins to scale out. If your strategy is to scale up by purchasing bigger hardware, then the cost may be fine, but as you begin to scale out, the costs can go significantly higher. So, for a start-up, who more than likely has very little money, this is not going to be a viable option. </p>  <p>Microsoft has attempted to address this issue by creating the <a href="http://www.microsoft.com/BizSpark/">BizSpark</a> program, where a startup can use their software virtually free of charge for up to three years. At the end of the program you would pay a small fee, and purchase the production licenses for software that you will continue to use. The assumption that seems to be made here is that after the three year period a company will be generating enough revenue to afford the licenses. This is a step in the right direction, but after the three year period you still have to potentially fork out a large sum of money.&nbsp; </p>  <p>Given theses choices I can understand why most startups shy away from using the Microsoft stack. However, I've been looking at it more seriously, and I'm wondering if you could replace the more costly pieces of the stack with another suitable option, then would it become more attractive. Specifically, what if you could replaced SQL Server with another open source database, like MySQL or PostgreSQL? It seems that these products have mature .NET support, so I can't see why they wouldn't be great choices to replace SQL Server. <a href="http://www.theport.com/">ThePort</a> indicates a similar strategy as they begin to look at scaling their application.</p>  <p></p>  <blockquote>However robust the cluster is, we've concluded that we will eventually have to move to a sharded architecture with MySQL. MS SQL licensing fees makes both continuing to enhance the cluster and scaling out to multiple machines prohibitive. </blockquote>  <p></p>  <p>Additionally, you have the <a href="http://www.microsoft.com/exPress/">express</a> versions of Visual Studio, which are more than capable. When combined with other open source tools like <a href="http://nant.sourceforge.net/">NAnt</a>, <a href="http://subversion.tigris.org/">Subversion</a>, <a href="http://www.nunit.org/">NUnit</a>, and <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.net</a>, I think you a have viable development platform for almost any application.</p>  <p>Obviously, I'm coming from a position that lacks the experience implementing such a solution, but as I begin to review potential options for new projects, this is one that I would have to seriously consider. </p>  <p>Here are a few resources for further reading on the subject: </p>  <ul>   <li><a href="http://highscalability.com/blog/2009/2/12/myspace-architecture.html">MySpace Architecture</a> </li>    <li><a href="http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html">Stack Overflow Architecture</a> </li>    <li><a href="http://highscalability.com/plentyoffish-architecture">Plenty Of Fish Architecture</a> </li>    <li><a href="http://highscalability.com/blog/2009/8/16/theport-network-architecture.html">ThePort Architecture</a> </li>    <li><a href="http://www.codinghorror.com/blog/2009/06/scaling-up-vs-scaling-out-hidden-costs.html">Scaling Up vs. Scaling Out: Hidden Costs</a> </li>    <li><a href="http://www.emadibrahim.com/2009/08/05/startup-asp-net-mvc-cloud-scale-deployment/">MVC, Cloud Scale &amp; Deployment</a> </li>    <li><a href="http://codebetter.com/blogs/karlseguin/archive/2009/10/22/migrating-to-postgresql-with-my-friend-nhibernate.aspx">Migrating to Postgresql with my friend NHibernate</a> </li>    <li><a href="http://weblogs.asp.net/astopford/archive/2007/09/05/is-asp-net-good-enough-for-startup-s.aspx">Is ASP.NET good enough for startup's</a> </li>    <li><a href="http://dimebrain.com/2008/04/five-recommenda.html">Six recommendations for starting a startup with ASP.NET</a> </li>    <li><a href="http://blog.jumptree.com/2007/why-we-chose-aspnet-to-run-our-startup/">Why we chose ASP.NET to run our startup</a> </li>    <li><a href="http://www.xconomy.com/seattle/2009/05/11/how-microsoft-bizspark-is-doing-with-startups-and-how-it-can-do-better/">How Microsoft BizSpark Is Doing With Startups</a> </li>    <li><a href="http://www.microsoftstartupzone.com/">Microsoft Startup Zone</a> </li> </ul>  <p>I would love to hear opinions on this. </p>

<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/d51bee23-1076-41d0-9da8-6d9c66a76562/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=d51bee23-1076-41d0-9da8-6d9c66a76562" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]>
        
    </content>
</entry>

<entry>
    <title>Upgrading Your MacBook Pro Hard Drive</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/03/upgrading-your-macbook-pro-hard-drive.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.19</id>

    <published>2010-03-05T03:59:25Z</published>
    <updated>2010-03-10T20:50:52Z</updated>

    <summary>Although I had more than enough room remaining on the 250GB Serial ATA drive that came with my MacBook Pro, I decided to upgrade the hard drive to a 500GB 7200 RPM drive. My main reason for doing this is...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>Although I had more than enough room remaining on the 250GB Serial ATA drive that came with my MacBook Pro, I decided to upgrade the hard drive to a 500GB 7200 RPM drive. My main reason for doing this is that I wanted a faster drive, since the previous drive ran at 5400 RPM. After some research, I decided to go with the <a href="http://www.anrdoezrs.net/click-3848723-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16822145275%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Hard%2BDrives%2B-%2BNotebooks%2B%2F%2BLaptops-_-Hitachi%2BGlobal%2BStorage%2BTechnologies-_-22145275&amp;cjsku=N82E16822145275">Hitachi Travelstar 7K500</a>. I purchased the drive and an <a href="http://www.kqzyfj.com/click-3848723-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16817729010%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-External%2BEnclosure-_-AcomData-_-17729010&amp;cjsku=N82E16817729010">Acomdata Tango USB &amp; Firewire</a> enclosure from my favorite place, <a href="http://www.jdoqocy.com/click-3848723-10485908">Newegg</a>. </p>  <p>This was my first time upgrading my MacBook Pro, which is a mid-2009 Unibody edition. The process was very easy, except for the fact that I didn't have a Torx screw driver, which is needed for the hard drive, but thank God for New York City, and the 24 hour Best Buy not too far from me. Where else can you go at 12 midnight to purchase a screw driver kit? Anyway, below are the steps I took to upgrade the hard drive. I've also included a few screen shots to serve as guidance.</p>  <h1><strong><font size="4">In preparation you will need to do the following:</font></strong></h1>  <ul>   <li>Download and install <a href="http://www.bombich.com/">Carbon Copy Cloner</a>. Also, please show your support by donating to this incredible useful tool. </li>    <li>Read <a href="http://www.ifixit.com/Guide/Browse/MacBook_Pro">ifixit</a> for instructions on removing the hard drive for your particular model. </li>    <li>Before proceeding, it is wise to create a backup of your current drive. I didn't do this, but it's probably best to do, just in case something goes wrong. </li> </ul>  <br />&nbsp; <br />  <h1><strong><font size="4">To upgrade the hard drive I did the following:</font></strong></h1>  <h2><strong>1. Format the new disk drive</strong></h2>  <ul>   <li>Connect the new drive, via enclosure, to the machine. </li>    <li>Open <strong>Disk Utility</strong>, which can be found under the <strong>Applications-&gt;Utilities</strong> folder. </li>    <li>Select the new drive, and click the <strong>Erase</strong> tab. </li>    <li>Select "<strong>Mac OS Extended (Journaled)</strong>" as the format, and give the drive a name. </li>    <li>Click "<strong>Erase</strong>". </li> </ul>  <p><a class="highslide" onclick="return hs.expand(this)" href="http://www.mydistributedlife.com/blog/images/disc_util_format_drive.jpg"><img title="Click to enlarge" alt="Highslide JS" src="http://www.mydistributedlife.com/blog/images/disc_util_format_drive_thumb.jpg" /></a> </p>  <p>&nbsp;</p>  <h2><strong>2. Repair permissions on the current drive</strong></h2>  <ul>   <li>From <strong>Disk Utility</strong>, select your current hard drive. </li>    <li>Click "<strong>Repair Permissions</strong>". </li> </ul>  <p><a class="highslide" onclick="return hs.expand(this)" href="http://www.mydistributedlife.com/blog/images/disc_util_repair_perm.jpg"><img title="Click to enlarge" alt="Highslide JS" src="http://www.mydistributedlife.com/blog/images/disc_util_repair_perm_thumb.jpg" /></a> </p>  <p>&nbsp;</p>  <h2><strong>3. Clone the current hard drive to the new drive</strong> </h2>  <ul>   <li>Open <strong>Carbon Copy Cloner</strong>, which should have been installed to the <strong>Applications</strong> folder. </li>    <li>Select your current hard drive as the "<strong>Source Disk</strong>" and the new drive as the "<strong>Target Disk</strong>". </li>    <li>Select "<strong>Backup Everything</strong>" for "<strong>Cloning Options</strong>". </li>    <li>I left "<strong>Delete items that don't exist on the source</strong>" unchecked. </li>    <li>Verify that it says "<strong>This item will be bootable</strong>". </li>    <li>Click "<strong>Clone</strong>". </li>    <li>(Optional) After the drive has been cloned. I went back to <strong>Disc Utility</strong>, selected the new drive and click "<strong>Repair Permissions</strong>". </li> </ul>  <p><a class="highslide" onclick="return hs.expand(this)" href="http://www.mydistributedlife.com/blog/images/ccc_clone_drive.jpg"><img title="Click to enlarge" alt="Highslide JS" src="http://www.mydistributedlife.com/blog/images/ccc_clone_drive_thumb.jpg" /></a> </p>  <p>&nbsp;</p>  <h2><strong>4. Boot to the new drive to ensure that it works</strong></h2>  <ul>   <li>Reboot the machine, immediately holding down the "<strong>Option</strong>" key. </li>    <li>The "<strong>Startup Manager</strong>" screen will appear. </li>    <li>Select the external drive as the boot drive. </li> </ul>  <p>Note: This may be a slow process. At least I found it a little painful.</p>  <p>&nbsp;</p>  <h2><strong>5. Replace the old drive with the new one</strong></h2>  <p>After verifying that the clone copy works, remove the old hard drive and install the new drive. </p>  <p>&nbsp;</p>  <p>I hope you find this helpful. Have fun!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Free Photoshop Images For Your UI</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/02/free-photoshop-images-for-your-ui-1.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.18</id>

    <published>2010-02-28T22:16:54Z</published>
    <updated>2010-03-10T21:06:46Z</updated>

    <summary>Shawn Adrian has been kind enough to freely share a few images that he has created in Photoshop. Check them out....</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Miscellaneous" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="miscellaneous" label="Miscellaneous" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p><a href="http://blog.nerdburn.com/">Shawn Adrian</a> has been kind enough to freely share a few <a href="http://blog.nerdburn.com/entries/user-interface-design/20-free-handmade-buttons-ui-elements-in-one-psd">images</a> that he has created in Photoshop. Check them out.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Retrieve the BizTalk Installation Path From the Registry</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/02/retrieve-the-biztalk-installation-path-from-the-registry.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.16</id>

    <published>2010-02-10T14:44:54Z</published>
    <updated>2010-02-10T14:49:07Z</updated>

    <summary>Recently, I wrote a utility to extract dehydrated messages from a BizTalk 2006 environment. As part of the process, I needed to figure out what folder the BizTalk software was installed in. Below is a function I quickly wrote to...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term=".NET" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="BizTalk" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>Recently, I wrote a utility to extract dehydrated messages from a BizTalk 2006 environment. As part of the process, I needed to figure out what folder the BizTalk software was installed in. Below is a function I quickly wrote to retrieve the BizTalk installation path from the Windows registry. I thought it might be something useful to share.</p>  <pre class="brush: csharp; auto-links: false;">public string GetBizTalkInstallationFolder()
{
    string biztalkFolder = String.Empty;

    using (RegistryKey biztalkKey = Registry.LocalMachine.OpenSubKey(&quot;SOFTWARE\\Microsoft\\BizTalk Server\\3.0&quot;))
    {
        biztalkFolder = biztalkKey.GetValue(&quot;InstallPath&quot;, String.Empty).ToString();
    }

    return biztalkFolder;
}</pre>]]>
        
    </content>
</entry>

<entry>
    <title>New Blog Home</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2010/02/new-blog-home.html" />
    <id>tag:www.mydistributedlife.com,2010:/blog//1.15</id>

    <published>2010-02-10T02:50:56Z</published>
    <updated>2010-03-10T21:08:08Z</updated>

    <summary>So, for the 3 people who read my blog, if that many.You may have noticed that it was down for a couple of weeks. I&apos;ve been in the process of moving away from hosting my blog at home to a...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Miscellaneous" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="miscellaneous" label="Miscellaneous" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>So, for the 3 people who read my blog, if that many.You may have noticed that it was down for a couple of weeks. I've been in the process of moving away from hosting my blog at home to a more reliable host (anything is more reliable than that). I wanted to host from home, because I use Solaris, and I couldn't find a good Solaris 10 VPS. I know, I know, but there are so many good Linux hosting providers. You might also be wondering: why the heck did you choose Solaris in the first place? Well, because that's what I knew best, since I worked with it for several years. Well, that and the fact that I think it's an awesome operating system, despite it not being a popular hosting option. I hope <a href="http://www.opensolaris.org/">OpenSolaris</a> changes that, but it may just be wishful thinking on my part.</p>
<p>After spending sometime researching hosting providers, it came down to two: <a href="http://www.slicehost.com/">Slicehost</a> and <a href="http://www.linode.com/">Linode</a>. While it was pretty much a toss up, I ended up choosing <a href="http://www.linode.com/">Linode</a>, because I thought their pricing/feature combination was slightly better. The setup process was fairly smooth . However, it took me longer to get my blog up and running, because I struggled to get <a href="http://www.movabletype.org/">MovabeType</a> working with <a href="http://wiki.nginx.org/Main">Nginx</a>, and <a href="http://www.plackperl.org/">Plack</a>. I would love to hear from folks who have gotten this working. I finally abandoned it and went with my previous setup using Apache. So, my blog is finally up, running on Ubuntu thanks to the great <a href="http://library.linode.com/">library</a> of documentation that <a href="http://www.linode.com/">Linode</a> provides to help in configuring various Linux packages.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Advice for a Career in Software</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2009/11/advice-for-a-career-in-software-1.html" />
    <id>tag:www.mydistributedlife.com,2009:/blog//1.14</id>

    <published>2009-11-03T16:20:44Z</published>
    <updated>2010-03-10T21:05:36Z</updated>

    <summary>Over the years I have come across many articles, books, tips, and advice that have helped guide and enhance my career as a software professional. I thought it would be a good idea to start cataloging these nuggets of wisdom...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Career" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Education" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Learning" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="career" label="Career" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="reading" label="Reading" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>Over the years I have come across many articles, books, tips, and advice that have helped guide and enhance my career as a software professional. I thought it would be a good idea to start cataloging these nuggets of wisdom that I have benefited from, and share them with others. I will start with a page pointing to online articles and in coming weeks add another that catalogs books. For the most part, I've tried my best to avoid articles that cause great controversy or debates, but given the nature of our industry it is sometimes unavoidable. Please feel free to point out other articles that you have found beneficial to your career, and I will update the list. Happy Reading!</p>  <p>&nbsp;</p>  <p><a href="http://www.ericsink.com/Career_Calculus.html">Eric Sink: Career Calculus</a></p>  <p><a href="http://www.joelonsoftware.com/articles/fog0000000043.html">Joel Spolsky:&nbsp; The Joel Test</a></p>  <p><a href="http://steve-yegge.blogspot.com/2007/09/ten-tips-for-slightly-less-awful-resume.html">Steve Yegge: Less Awful Resume</a></p>  <p><a href="http://blog.guykawasaki.com/2009/02/guest-post-memo.html#axzz0ScJPXIKj">Guy Kawasaki: What Employers Want to See on Your Resume</a></p>  <p><a href="http://www.norvig.com/21-days.html">Peter Norvig: Teach Yourself Programming in Ten Years</a></p>  <p><a href="http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html">Frederick Brooks: No Silver Bullets</a></p>  <p><a href="http://www.nytimes.com/2008/07/06/business/06unbox.html">If You're Open To Growth, You Tend to Grow</a></p>

<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/ae7692b7-f014-4fb8-880a-0f5528b3db91/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=ae7692b7-f014-4fb8-880a-0f5528b3db91" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]>
        
    </content>
</entry>

<entry>
    <title>My Observations on a Year Without Television</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2009/08/my-observations-on-a-year-without-television.html" />
    <id>tag:www.mydistributedlife.com,2009:/blog//1.12</id>

    <published>2009-08-24T00:27:28Z</published>
    <updated>2010-03-10T20:57:45Z</updated>

    <summary>As of last week it&apos;s been one year since I decided to cancel my television service, and keep just the internet. This is not my first attempt at doing this. About three years ago I stopped watching television for a...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Personal" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="learning" label="Learning" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="personal" label="Personal" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="personaldevelopment" label="Personal development" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="television" label="Television" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>As of last week it's been one year since I decided to cancel my television service, and keep just the internet. This is not my first attempt at doing this. About three years ago I stopped watching television for a couple of months. I don't remember the exact number, but I believe it was more than two. I didn't completely remove television viewing from my life, but instead I would rent or purchase specific DVDs that I wanted to watch, thus eliminating the time spent viewing programs that were not beneficial to me. My decision to reduce how much television I watched was initially inspired by an <a href="http://www.stevepavlina.com/blog/2006/08/8-changes-i-experienced-after-giving-up-tv/">article</a> written by Steve Pavlina, who has a great blog on personal development. So, similar to Steve, I've decided to reflect on how much my life has changed since I made this decision. The following are a few things I observed during the past year:</p>  <p><strong>I watched too much television</strong></p>  <p>I definitely noticed that I watched too much television in the past. Actually, I started to become more sensitive to the amount of television being watched around me. Whenever I hung out with friends or family I would notice just how much television they watched. It seems like we are constantly inundated with so much mindless television, which tries to do most of the thinking for us, instead of allowing us to think things through. I have to agree with Steve's observation that:</p>  <blockquote class="quotation">   <p>One reason is that TV oversimplifies reality. You're presented with subjects in a matter of minutes where everything is nicely wrapped up at the end. Reality is reduced to labels like good or bad, funny or serious, smart or dumb. This harms clear thinking by conditioning you to expect that most problems have a simple, clear solution (and if not, then it will be an overly dramatic solution). But real people and events defy labels. Real life weaves a much richer tapestry than TV, and too much TV viewing can make it hard to see and appreciate that tapestry for what it is. TV skews your map of reality. </p> </blockquote>  <p><strong>I spend too much time on the computer</strong></p>  <p>Similar to Steve, I also noticed that I spend quite a bit of time on the computer. However, I don't think this is something that I would like to change; at least for the time being. Given my current situation in life, with the goals I am pursuing, I believe this is somewhat necessary. I do plan on revisiting this in the future, because I know that over the long term this will not be a good habit to keep.</p>  <p><strong>I read more</strong></p>  <p>I've always been an avid reader, but with the new found time I have been reading even more. In recent months I've been able to finish a couple of books that I purchased, but never had the time to read. In a previous <a href="http://www.mydistributedlife.com/blog/2009/06/sharpening-my-developer-saw.html">article</a> I mentioned that I wanted to actively engage in growing my technical knowledge over the next year, so I went through my Amazon wish list and purchased a slew of books that I wanted to read at some point, and I'm now going through the first batch. Next year I will create a similar reading plan for the rest of the books.</p>  <p><strong>I get more done</strong></p>  <p>Besides reading, I've also been able to accomplish or pursue other goals I've been wanting to for quite some time. For instance, I've been much more active. I started to exercise on a regular basis, which has had a huge impact on my overall health. I've also been able to complete a few classes that I wanted to take in the past. There are a couple of other activities that I will be starting in the coming months as well.</p>  <p><strong>I spent more time with my friends</strong></p>  <p>Of all the benefits that reducing the amount of television in my life have done, in my opinion this is by far the best. I've become much more social by spending extra time interacting with my friends and family. I believe the results are quite visible, because my relationships are much better. Now, when I'm not working, I actively seek to spend time with friends instead of just watching some television show to pass the time.</p>  <p><strong>I don't plan on going back</strong></p>  <p>Overall, this change had such a positive benefit on my life that I don't want to go back. I want this to be permanent. Whether that is the case in the long term, I'm not sure, but I know for certain that the amount of time I spend watching television has been permanently curtailed. There is just too much that could be done with the extra time than wasting it on an activity that often adds no value to my personal growth. I encourage you to take the challenge and see what it does for your life.</p>

<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/720dc896-10ac-43bb-9d93-7b74c395b90f/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=720dc896-10ac-43bb-9d93-7b74c395b90f" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]>
        
    </content>
</entry>

<entry>
    <title><![CDATA[Windows XP&rsquo;s Performance Surprise]]></title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2009/08/windows-xps-performance-dominance.html" />
    <id>tag:www.mydistributedlife.com,2009:/blog//1.10</id>

    <published>2009-08-07T20:05:46Z</published>
    <updated>2010-03-10T21:00:10Z</updated>

    <summary>This article is a few months old, but I was very surprised to read some of its findings. It offers a performance comparison of Windows XP versus Vista and Windows 7. I had no idea XP&apos;s performance lead was that...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Miscellaneous" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="miscellaneous" label="Miscellaneous" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>This <a href="http://www.infoworld.com/t/platforms/generation-gap-windows-multicore-273?page=0,0&amp;source=rs">article</a> is a few months old, but I was very surprised to read some of its findings. It offers a performance comparison of Windows XP versus Vista and Windows 7. I had no idea XP's performance lead was that large. As one commenter indicated, I wonder what does this say about Windows 2008. I suspect it's not the same case.</p>

<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/32d936e6-7788-4b61-8fe1-1b553d14a7b1/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=32d936e6-7788-4b61-8fe1-1b553d14a7b1" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]>
        
    </content>
</entry>

<entry>
    <title>Switching From Windows to Mac</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2009/08/switching-from-windows-to-mac.html" />
    <id>tag:www.mydistributedlife.com,2009:/blog//1.9</id>

    <published>2009-08-03T04:17:26Z</published>
    <updated>2010-03-10T20:52:33Z</updated>

    <summary>I&apos;ve been contemplating switching my main development machine from windows to Mac for some time now. Well, I can now say that I have taken the plunge and am a faithful convert. Like most new converts, I am very excited,...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apple" label="Apple" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac" label="Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>I've been contemplating switching my main development machine from windows to Mac for some time now. Well, I can now say that I have taken the plunge and am a faithful convert. Like most new converts, I am very excited, but still need to learn the ropes, because my old windows ways are still with me. How the heck do you delete forward anyway?</p>  <p>My main reasons for the switch are:</p>  <ul>   <li>I wanted to learn developing software for the iPhone/iTouch </li>    <li>I will still be able to use windows </li>    <li>It's just so cool looking </li> </ul>  <p>As part of my quest to <a href="http://www.mydistributedlife.com/blog/2009/06/sharpening-my-developer-saw.html">sharpen my developer saw</a>, I've been learning Objective-C and Cocoa, in order to try a hand at creating software for the iPhone and iPod Touch. While there are other ways to get OS X to run on non-apple sanctioned hardware, I'd rather just purchase a Mac.&nbsp;&nbsp; </p>  <p>Since Intel-based Macs are able to run Windows, and Apple provides <a href="http://www.apple.com/support/bootcamp/">Boot Camp</a> to aid with installation, I knew that I would still be able to fire up Visual Studio when needed. However, I'm a software developer (and therefore <a href="http://www.jerf.org/programming/lazyProgrammersGuide.html">lazy</a>) so I had to find a way to save time moving between OSes while working. For me <a href="http://www.vmware.com/products/fusion/">VMware Fusion</a> was the answer, and now I'm writing this article in Windows Live Writer running on a Windows XP VM. Oh, and unity mode is awesome. Here a screen shot of my desktop.</p> <a class="highslide" onclick="return hs.expand(this)" href="http://www.mydistributedlife.com/blog/images/desktop.jpg"><img title="Click to enlarge" alt="Highslide JS" src="http://www.mydistributedlife.com/blog/images/desktop-thumbnail.jpg" height="120" width="107" /></a>   <p>&nbsp;</p>  <p>I guess I'm also a sucker for beautiful things, and the <a href="http://www.apple.com/macbookpro/">MacBook</a> is definitely an eye catcher. I've been experiencing something that I never got when I owned a PC; people are actually giving me complements. I wouldn't be surprised if some people reported getting dates by owning a Mac. That gives me an idea for a pretty cool Mac vs. PC commercial. You heard it here first, so Apple owes me royalties if this ever happens. </p>  <p>In the future I will write more about my experiences since the switch.</p>

<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/e46cea4f-f29c-4240-89b8-ef9158941f10/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=e46cea4f-f29c-4240-89b8-ef9158941f10" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]>
        
    </content>
</entry>

<entry>
    <title>Sharpening My Developer Saw</title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2009/06/sharpening-my-developer-saw.html" />
    <id>tag:www.mydistributedlife.com,2009:/blog//1.8</id>

    <published>2009-06-23T04:26:16Z</published>
    <updated>2010-03-10T20:56:26Z</updated>

    <summary>As we approach the midway point of the year, I have begun to assess my skills. Specifically, I&apos;ve been pondering how to improve on my current skills, as well as picking up a few new ones. So, inline with the...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term="Education" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Learning" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Reading" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="education" label="Education" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="learning" label="Learning" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>As we approach the midway point of the year, I have begun to assess my skills. Specifically, I've been pondering how to improve on my current skills, as well as picking up a few new ones. So, inline with the 7th habit from Stephen Covey's book <a href="http://www.amazon.com/gp/product/0743269519?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0743269519">The 7 Habits of Highly Effective People</a>, it's time to start sharpening the developer saw. As written about by <a href="http://www.hanselman.com/blog/SharpenTheSawForDevelopers.aspx">Scott Hanselman</a> and <a href="http://graysmatter.codivation.com/HowIAmBecomingABetterDeveloperPart1OfInfinity.aspx">Justice Gray</a>, one obvious way a software developer can improve his/her skills is by reading.&nbsp; So, for the rest of the year I've assembled a list of books that I plan on reading. They include:</p>  <p><a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0735619670">Code Complete</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0735619670" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/1848000693?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1848000693">The Algorithm Design Manual</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=1848000693" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/1893115941?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1893115941">User Interface Design for Programmers</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=1893115941" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/0596008031?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596008031">Designing Interfaces</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0596008031" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0735621632?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0735621632">CLR via C#</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0735621632" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/1933988363?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1933988363">C# in Depth</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=1933988363" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0321545613?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321545613">Framework Design Guidelines</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0321545613" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/032143482X?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=032143482X">Concurrent Programming on Windows</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=032143482X" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0932633439">Peopleware</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0932633439" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0596006624?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596006624">Hackers and Painters</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0596006624" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0321566157?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321566157">Programming in Objective-C 2.0</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0321566157" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/1430216263?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1430216263">Beginning iPhone Development</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=1430216263" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0140139966?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0140139966">How Buildings Learn</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0140139966" border="0" height="1" width="1" /></p>  <p><a href="http://www.amazon.com/gp/product/0596518579?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596518579">The Art of Capacity Planning</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0596518579" border="0" height="1" width="1" /> </p>  <p><a href="http://www.amazon.com/gp/product/0321356683?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321356683">Effective Java</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0321356683" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/0596516177?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596516177">The Ruby Programming Language</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0596516177" border="0" height="1" width="1" /> </p>  <p><a href="http://www.amazon.com/gp/product/0321127420?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321127420">Patterns of Enterprise Application Architecture</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0321127420" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/0321200683?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321200683">Enterprise Integration Patterns</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0321200683" border="0" height="1" width="1" /> (re-read)</p>  <p><a href="http://www.amazon.com/gp/product/1591840562?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1591840562">The Art of the Start</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=1591840562" border="0" height="1" width="1" /> </p>  <p><a href="http://www.amazon.com/gp/product/0321390539?ie=UTF8&amp;tag=seetecalp-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321390539">Mathematical Proofs</a><img style="border: medium none ; margin: 0px;" alt="" src="http://www.assoc-amazon.com/e/ir?t=seetecalp-20&amp;l=as2&amp;o=1&amp;a=0321390539" border="0" height="1" width="1" /> (re-read)</p>  <p>There you have it. The list may be a little aggressive, but it is feasible, since I have read a couple of those books before. In addition to reading, there are several other things that I would like to start doing. They include participating in online forums, like <a href="http://www.stackoverflow.com/">stackoverflow.com</a>, giving away code for utilities that I have written, as well as attending a couple of conferences. This makes for a pretty busy year, and you can never predict when life will get in the way, but I do believe these are all attainable.</p>  <p>What's your approach to Sharpening the Saw?</p>

<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/441e24db-fc40-4ac6-bfc2-9f82e33639b0/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=441e24db-fc40-4ac6-bfc2-9f82e33639b0" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]>
        
    </content>
</entry>

<entry>
    <title><![CDATA[Retrieving a Windows Service&rsquo;s Key Name Using It&rsquo;s Process ID]]></title>
    <link rel="alternate" type="text/html" href="http://www.mydistributedlife.com/blog/2009/05/retrieving-a-windows-services-key-name-using-its-process-id.html" />
    <id>tag:www.seekingtechalpha.com,2009:/blog//1.7</id>

    <published>2009-05-09T05:40:23Z</published>
    <updated>2010-03-10T21:10:19Z</updated>

    <summary>I was recently asked by a friend how to retrieve the name of a running windows service from the Service Control Manager (SCM) database. He wanted to do this from .NET, using the process id of the service. I started...</summary>
    <author>
        <name>Garett</name>
        <uri>http://www.mydistributedlife.com</uri>
    </author>
    
        <category term=".NET" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="net" label=".NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="Programming" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.mydistributedlife.com/blog/">
        <![CDATA[<p>I was recently asked by a friend how to retrieve the name of a running windows service from the Service Control Manager (SCM) database. He wanted to do this from .NET, using the process id of the service. I started to think of different ways that this could be accomplished and came up with a couple, utilizing <a href="http://msdn.microsoft.com/en-us/library/ms257340%28VS.80%29.aspx">WMI.NET</a>. Both approaches are similar, with a slight variation in the second.</p>
<h3><strong>First Solution</strong></h3>
<p>This function gets the service's name by retrieving all services registered with the SCM, and comparing their process ids to the one supplied. </p><pre class="brush: csharp; auto-links: false;">public static string GetServiceNameByProcessId(uint processId)
{
    string serviceName = String.Empty;

    ManagementClass mc = new ManagementClass("Win32_Service");

    foreach (ManagementObject service in mc.GetInstances())
    {
        if ((uint)service["ProcessId"] == processId)
        {
            serviceName = (string)service["Name"];
            break;
        }
    }

    return serviceName;
}</pre>
<p>&nbsp;&nbsp; <br /></p>
<h3><strong>Second Solution</strong></h3>
<p>This function uses <a href="http://msdn.microsoft.com/en-us/library/aa394606%28VS.85%29.aspx">WQL</a> to query for&nbsp; the specific service instance, using the process id in the WHERE clause. This avoids having to iterate over all the services within the SCM.</p><pre class="brush: csharp; auto-links: false;">public static string GetServiceNameByProcessId(uint processId)
{
    string serviceName = String.Empty;

    SelectQuery query = new SelectQuery("Win32_Service", String.Format("ProcessId={0}", processId));
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

    foreach (ManagementObject service in searcher.Get())
    {
        if ((uint)service["ProcessId"] == processId)
        {
            serviceName = (string)service["Name"];
            break;
        }
    }
   
    return serviceName;
}&nbsp; </pre>
<p>So, there you have it. These are the approaches that I came up with. In the future, I may present another that uses the Windows API, in particular the <a href="http://msdn.microsoft.com/en-us/library/ms682640%28VS.85%29.aspx">EnumServicesStatusEx</a> function, to accomplish the same task. Can anyone think of other approaches or suggest changes to the ones I've presented?</p>]]>
        
    </content>
</entry>

</feed>

