<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16735039</id><updated>2012-01-29T14:23:29.847-08:00</updated><category term='Development'/><category term='Out and About'/><category term='Concurrency'/><title type='text'>A Day in the Life</title><subtitle type='html'>A day in my life.  Thoughts on leadership, management, startups, technology, software, concurrent development, etc... Basically the stuff I think about from 10am to 6pm.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default?start-index=101&amp;max-results=100'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>238</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16735039.post-4155843238427340685</id><published>2012-01-29T14:13:00.000-08:00</published><updated>2012-01-29T14:23:29.863-08:00</updated><title type='text'>Time to go personal</title><content type='html'>For a long time I used this blog for work / industry related posts because a) that was a part of my job and b) when I was writing code I had technical contributions of value to add.&lt;br /&gt;&lt;br /&gt;Today, I realized that I would like to blog again.  To have a writing outlet.  For the last few years I've been working on my MBA / MSF (almost done), moved into management at a huge company (which is my first time), and trying to be a good spouse and parent.  &lt;br /&gt;&lt;br /&gt;I've used hockey as a physical outlet to disconnect and get to those moments of oneness that we can have when a group joins and focuses on a common objective.  I love those moments and I actively look for them.  I try to create opportunities for them.  To bring the type of people together that can do this.  &lt;br /&gt;&lt;br /&gt;I finished skating in a hockey tournament today and I am filled with angst as we were unable to achieve this objective.  And I have sadly come to the conclusion that I will have to leave this team.  My recreational time is too scarce and therefore, very precious.  I need a group of people who will play as a team.  No hot dogs, no ice hogs.  I need everyone to play as hard as they can, to work to have their best game.  To put the team first.  That did not happen this weekend.  I think it's time to move on.  &lt;br /&gt;&lt;br /&gt;I've been thinking about this for hours now.  I will likely think about it for many more.  But I think the decision to walk away has been made.  The next decision is what to do next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-4155843238427340685?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/4155843238427340685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=4155843238427340685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/4155843238427340685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/4155843238427340685'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2012/01/time-to-go-personal.html' title='Time to go personal'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-8996171628224027021</id><published>2009-08-28T17:23:00.000-07:00</published><updated>2009-08-28T17:33:34.028-07:00</updated><title type='text'>Word...Time Flies!</title><content type='html'>In the crazy world I call my life it doesn't really seem that long since I last posted.  Sure, I've been busy and time flies when you're busy, but wow.  Long time, no post.   &lt;br /&gt;&lt;br /&gt;I've been consulting, keeping my eyes on the job market, recently retired as SF Bay .NET UG co-chair, cut back on coaching, started an investment club, applied to an MBA program and got accepted, still playing hockey,... yea busy.&lt;br /&gt;&lt;br /&gt;I wanted to remind folks that the &lt;a href="http://www.siliconvalley-codecamp.com"&gt;Silicon Valley Code Camp&lt;/a&gt; is coming up on us fast.  I just signed up to do two talks.  (More on my plate but good more.)  Don't forget to sign-up early so Peter has enough food, tell your friends, give a talk.  You know...get involved.  Check out the site, I suspect there are still volunteer opportunities.  We could use your help and it's a great way to meet folks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-8996171628224027021?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/8996171628224027021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=8996171628224027021' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/8996171628224027021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/8996171628224027021'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2009/08/wordtime-flies.html' title='Word...Time Flies!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-5976275591776861372</id><published>2008-11-10T18:28:00.000-08:00</published><updated>2008-11-10T18:29:48.127-08:00</updated><title type='text'>Job Hunt 2008</title><content type='html'>It's been a roller-coaster ride this year.  At the beginning of 2008 FonJax struggled through the usual startup hiccups culminating in a successful sale. (As in, we sold the company.)  Then at the prompting of my family I took a position at a "more stable" company only to find the US office being shut-down and myself back on the job market.  While I made phase 2 of the shutdown, my last day is the end of this month and it's time to start hunting around again. &lt;br /&gt;&lt;br /&gt;I am looking for something that is either managerially challenging or technically challenging.  Both would be ideal.  &lt;br /&gt;&lt;br /&gt;If you have something real that you would like to discuss, and you've taken the time to research me, please feel free to contact me.  I've tried to make it very easy for prospective employers to verify my skill set.  Use your favorite search engine and search on "Kim Greenlee".  All technical and hockey references are me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-5976275591776861372?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/5976275591776861372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=5976275591776861372' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5976275591776861372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5976275591776861372'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2008/11/job-hunt-2008.html' title='Job Hunt 2008'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-2228096602636220793</id><published>2008-11-10T12:51:00.000-08:00</published><updated>2008-11-10T12:56:27.745-08:00</updated><title type='text'>Silicon Valley Code Camp 2008</title><content type='html'>Thanks to everyone who donated their time, energy, creativity, and enthusiasm to this year's event.  For those folks who attended my sessions and wanted the slide decks…I have uploaded files to the wiki pages attached to my sessions.  &lt;br /&gt; &lt;br /&gt;Remember that code camp is by developers for developers.  So if you've never presented, start thinking about a topic.  Some of us have been throwing around the idea of training sessions for presenters.  When we get that going I'll make an announcement here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-2228096602636220793?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/2228096602636220793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=2228096602636220793' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/2228096602636220793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/2228096602636220793'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2008/11/silicon-valley-code-camp-2008.html' title='Silicon Valley Code Camp 2008'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-7641960531335111854</id><published>2008-08-18T17:38:00.000-07:00</published><updated>2008-08-18T17:53:54.580-07:00</updated><title type='text'>Code Camps are Coming...</title><content type='html'>The 3rd annual &lt;a href="http://www.siliconvalley-codecamp.com/"&gt;Silicon Valley Code Camp&lt;/a&gt; is coming in November and the &lt;a href="http://www.centralcoastcodecamp.com"&gt;San Luis Obispo Code Camp&lt;/a&gt; in September.  I am planning on speaking at the Silicon Valley Code Camp and seriously thinking about San Luis Obispo.  At past code camps I've presented on the basics of threading...the stuff that is more at the operating system level but I think vital to deciphering threads regardless of what the stack above them is..., debugging, and architecture for startups.&lt;br /&gt;&lt;br /&gt;I have been considering putting together a talk on the process of groking a new code base, which is something all of us will have to do many times in our career.  I don't know what the process is called. Maybe there isn't a name and I should make one up! Since I know some of the .NET UG members read this blog I am wondering if you guys have an opinion on what you would like to hear about.  &lt;br /&gt;&lt;br /&gt;So of the topics you've heard in the past and topics that may interest you in the future...what do you want me to speak on?  I only want to do two talks so give me your ideas.&lt;br /&gt;&lt;br /&gt;Thanks much.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-7641960531335111854?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/7641960531335111854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=7641960531335111854' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/7641960531335111854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/7641960531335111854'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2008/08/code-camps-are-coming.html' title='Code Camps are Coming...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-1269915632002206580</id><published>2008-08-06T20:01:00.000-07:00</published><updated>2008-08-06T20:04:03.425-07:00</updated><title type='text'>Cackl.com…The Yokes on You</title><content type='html'>A buddy of mine just created a joke site and wants to get the word out to folks and I was one of those tapped to blog about it.  It's still a work in progress so post your ideas for improvement here and I'll pass them on to Mike and his team.  Otherwise, enjoy and…if you're a jokester…post a few of your own.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cackl.com"&gt;Cackl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-1269915632002206580?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/1269915632002206580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=1269915632002206580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/1269915632002206580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/1269915632002206580'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2008/08/cacklcomthe-yokes-on-you.html' title='Cackl.com…The Yokes on You'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-5284229514856247918</id><published>2008-07-10T12:19:00.000-07:00</published><updated>2008-07-10T12:30:23.757-07:00</updated><title type='text'>Out and About – July 15th, North Bay .NET User Group</title><content type='html'>I'm heading up to Sebastopol next week. The talk is titled &lt;strong&gt;Threading: Back to Basics&lt;/strong&gt; and I'll be covering how threads work, .NET specific thread stuff, decomposition, and tip and tricks. You can sign up &lt;a href="http://www.baynetug.org/DesktopModules/DetailXEvents.aspx?ItemID=329&amp;mid=49"&gt;here&lt;/a&gt; for the North Bay .NET User Group.  Make sure to sign up so they have a good head count.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-5284229514856247918?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/5284229514856247918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=5284229514856247918' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5284229514856247918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5284229514856247918'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2008/07/out-and-about-july-15th-north-bay-net.html' title='Out and About – July 15th, North Bay .NET User Group'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-4082476805592259223</id><published>2008-05-28T22:51:00.001-07:00</published><updated>2008-05-29T14:53:05.519-07:00</updated><title type='text'>Comcast? Internet? Huh?</title><content type='html'>One would think in this day and age that an Internet Service Provider would understand how the Internet works. But apparently Comcast doesn't have a clue. Not only was I NOT notified that their system would be down…they also don't seem to know how to brand their own 'under construction' page to let their users know what is going on…&lt;br /&gt;&lt;br /&gt;After I got a hold of a tech support person, who was rude, there was no estimate as to when I would get email back. Thanks Comcast because not having access to my email is a really big deal for me. I mean it's not like I’m not trying to run a soccer team, a hockey team, play on a hockey team, run a .NET user group, or coordinate a dozen other things that I need to manage in my spare time which…wow…just happens to be at 10:30pm.&lt;br /&gt;&lt;br /&gt;Doesn't it actually look like they lost their URL? or that there are a bunch of DNS servers offline?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_T0qvffyPWxQ/SD5E15MMlEI/AAAAAAAAACA/8Kp3rZ9rIUE/s1600-h/ComcasticallyStupid.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_T0qvffyPWxQ/SD5E15MMlEI/AAAAAAAAACA/8Kp3rZ9rIUE/s400/ComcasticallyStupid.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5205673911962604610" /&gt;Click to view image...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;em&gt;Update: &lt;/em&gt; &lt;a href="http://www.theregister.co.uk/2008/05/29/comcast_hack/"&gt;Comcast hacked&lt;/a&gt; I actually suspected something like that but the Comcast rep told me the site was "down for maintenance".  I hate liars.  Come on folks a little honesty please.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-4082476805592259223?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/4082476805592259223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=4082476805592259223' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/4082476805592259223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/4082476805592259223'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2008/05/comcast-internet-huh.html' title='Comcast? Internet? Huh?'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T0qvffyPWxQ/SD5E15MMlEI/AAAAAAAAACA/8Kp3rZ9rIUE/s72-c/ComcasticallyStupid.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-5371924757372219005</id><published>2007-12-17T16:22:00.001-08:00</published><updated>2007-12-17T16:24:51.783-08:00</updated><title type='text'>VS2005 C++ Build Error vc80.pdb</title><content type='html'>Are you getting the errors:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Could not delete file ‘c:\myproject\obj\release\vc80.pdb &lt;br /&gt;Make sure that the file is not open by another process and is not write-protected.&lt;br /&gt;Could not delete file ‘c:\myproject\obj\release\vc80.idb &lt;br /&gt;Make sure that the file is not open by another process and is not write-protected.&lt;/blockquote&gt;&lt;br /&gt;Then maybe you have the problem described &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=100564"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Another solution is to change the number of processes you allow the build process to use.&lt;br /&gt;&lt;br /&gt;1. From the VS2005 IDE menu bar select: Tools.Options.Projects and Solutions.Build and Run.&lt;br /&gt;2. On the Build and Run page set the "maximum number of parallel project builds" to 1.&lt;br /&gt;&lt;br /&gt;Problem solved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-5371924757372219005?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/5371924757372219005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=5371924757372219005' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5371924757372219005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5371924757372219005'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/12/vs2005-c-build-error-vc80pdb.html' title='VS2005 C++ Build Error vc80.pdb'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-4030989216681177219</id><published>2007-12-13T11:02:00.000-08:00</published><updated>2007-12-13T11:04:45.313-08:00</updated><title type='text'>AVIFileOpen returns 0x8004406d…</title><content type='html'>So what does it mean?  I was trying to open a .wav file to merge into my AVI stream.  After a bit of running around I found that my .wav file only contained a header…no data.  And this is why the AVIFileOpen was failing with the return code AVIERR_FILEREAD.  &lt;br /&gt;&lt;br /&gt;Not a very good error message because the Microsoft documentation says the error indicates, "A disk error occurred while reading the file."   &lt;br /&gt;&lt;br /&gt;Which is not the case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-4030989216681177219?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/4030989216681177219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=4030989216681177219' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/4030989216681177219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/4030989216681177219'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/12/avifileopen-returns-0x8004406d.html' title='AVIFileOpen returns 0x8004406d…'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-6892484913074930503</id><published>2007-10-24T23:22:00.000-07:00</published><updated>2007-10-24T23:24:51.844-07:00</updated><title type='text'>Out and About – Oct 28th, Silicon Valley Code Camp</title><content type='html'>I'm giving two talks again this year at the &lt;a href ="http://www.siliconvalley-codecamp.com"&gt;Silicon Valley Code Camp&lt;/a&gt;.  The first talk is at 9:15am and called "Architecture- Building Commercial Apps for Success".  I'm going to talk about the things I've learned over the last 20 years delivering commercial apps for startups and small companies.  You will learn about my techniques and I will explain to you why those techniques work.   This is a high-level talk, no code, but the process has never failed me. &lt;br /&gt;&lt;br /&gt;The second talk starts at 10:45am in the same room as the first talk.  This will be an "Introduction to Threading" talk for people new to threading.  All code samples will use C# but the talk is not language specific.  The information is relevant to any developer new to threading on a pre-emptive multitasking operating system.   &lt;br /&gt;&lt;br /&gt;So…if either of those sound interesting to you follow the &lt;a href ="http://www.siliconvalley-codecamp.com"&gt;Code Camp&lt;/a&gt; link and register.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-6892484913074930503?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/6892484913074930503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=6892484913074930503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/6892484913074930503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/6892484913074930503'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/10/out-and-about-oct-28th-silicon-valley.html' title='Out and About – Oct 28th, Silicon Valley Code Camp'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-5336046896112104593</id><published>2007-09-28T10:53:00.000-07:00</published><updated>2007-09-28T11:04:35.410-07:00</updated><title type='text'>OnUserPreferenceChanged Hang</title><content type='html'>You think your code is clean and all is well in the world when all of a sudden your users are starting to report that your application is hanging.  You research the issue and discover that from time to time your application hangs when it receives a WM_SETTINGCHANGE message or an OnUserPreferenceChanged event.  Ivan Krivyakov did a very thorough write up of what's happening which you can find &lt;a href="http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html"&gt;here&lt;/a&gt;.  And Microsoft is supposed to have a knowledgebase article out soon about this.  &lt;br /&gt;&lt;br /&gt;We just ran into this problem and we have learned a few things beyond what Ivan presented.  First…did you know that in .NET 2.0 when you create a Control or Form (window) object…it really doesn't exist?  For performance reasons Microsoft delays the actual window creation until the window becomes visible or a handle request is made.  On the surface this looks innocent enough but if you took the time to read Ivan's report you realize that the final action of window creation may NOT happen on the main UI thread.  Where you probably started it. &lt;br /&gt;&lt;br /&gt;And don't think you're going to get a CrossThreadException on this one.  Even with the CheckForIllegalCrossThreadCalls flag set no exception was thrown.   Nor was an exception thrown when the application encountered this problem outside the debugger.  Which the documentation says should happen.&lt;br /&gt;&lt;br /&gt;Ivan's Freezer code worked very well (he has a link on The Page for some code, you'll want that) and made it very easy for me to reproduce the problem.  So step one whenever debugging something like this is to reproduce it on the developer's machine.  Freezer enables just that.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Force Window Creation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;One thing that Ivan's write-up didn't make clear to me was how to get around this problem.  I have confirmed from the Microsoft support guy (Trevor) that the code below will work if you've identified the correct window.  &lt;br /&gt;&lt;br /&gt;You basically have to force the window creation and you can do that in one of two ways: 1) make the window visible with a Show() or 2) request the Handle.  I used the code below:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;List&lt;IntPtr&gt; lstHandles = new List&lt;IntPtr&gt;();&lt;br /&gt;IntPtr hTemp;&lt;br /&gt;foreach (Control myCtrl in Controls)&lt;br /&gt;{&lt;br /&gt;   hTemp = myCtrl.Handle;&lt;br /&gt;   lstHandles.Add(hTemp);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;hTemp = Handle;&lt;br /&gt;lstHandles.Add(hTemp);&lt;br /&gt;lstHandles.Clear();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I put the handles in a temporary buffer because I wasn't sure if the optimizing compiler would drop a simple assignment loop like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;IntPtr hTemp;&lt;br /&gt;foreach (Control myCtrl in Controls)&lt;br /&gt;{&lt;br /&gt;   hTemp = myCtrl.Handle;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;hTemp = Handle;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Identifying the Hanging Window&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We had not correctly identified the problem Window.  To do that we needed Trevor's suggestion which sent us down the correct road.  Trevor suggested using Spy++ to identify what threads our windows were running on.&lt;br /&gt;&lt;br /&gt;This was a new use case for me (with Spy++), I had already thrown Spy++ out as a tool for this problem because with Spy++ running the hang hung my entire desktop and nothing worked but the good old three finger salute, to get a Task Manager up. &lt;br /&gt;&lt;br /&gt;The trick was to not start Spy++ until we were ready to run the test.  So I got my application to the area I knew would hang (with the help of Freezer), and then started Spy++.  Once in Spy++ you'll want to do the steps below to find that "bad" window:&lt;br /&gt;&lt;br /&gt;1. Select Spy-&gt;Processes&lt;br /&gt;2. In the Process dialog find your process&lt;br /&gt;3. Expand your process&lt;br /&gt;4. Expand the threads with the + sign&lt;br /&gt;5. Look for GUI elements on those threads.  If you find an element on a non-UI thread...you have found culprit.&lt;br /&gt;&lt;br /&gt;You might think that it would be obvious and clear where all your windows are but that wasn't the case for us.  Down in our audio code an engineer had created a window to pass to the SetCooperativeLevel().  This was the problem window.  A window with no title…so we basically stepped through the process until we saw that Spy++ now contained a window on a non-UI thread.&lt;br /&gt;&lt;br /&gt;What was interesting here is that the Window was actually created much earlier but only finished being created on the call to SetCooperativeLevel(). So once we discovered where the system thought the window was created we had to back up the callstack to find the actual window creation location.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-5336046896112104593?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/5336046896112104593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=5336046896112104593' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5336046896112104593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5336046896112104593'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/09/onuserpreferencechanged-hang.html' title='OnUserPreferenceChanged Hang'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-5515959728333560766</id><published>2007-08-17T12:54:00.000-07:00</published><updated>2007-08-17T12:55:45.505-07:00</updated><title type='text'>Can you hear me now? ... No</title><content type='html'>I've spent the last three days trying to figure out how we lost audio in our server products. &lt;br /&gt;&lt;br /&gt;I had the following pieces of information:&lt;br /&gt;&lt;br /&gt;1. We are using DirectSound.&lt;br /&gt;2. The following DirectSound call threw the exception:  ApplicationException.  Of course…it's not documented for this constructor.&lt;br /&gt;&lt;br /&gt;_captureBuffer = new CaptureBuffer(desc, device); &lt;br /&gt;&lt;br /&gt;3. The following DirectSound call did not threw an exception, however VS2005 Watch window says that the Caps property threw a NullReferenceException.  So basically I have an empty Caps property.  &lt;br /&gt;&lt;br /&gt;_captureDevice = new Capture();&lt;br /&gt;&lt;br /&gt;4. I ran the DirectSound managed sample CaptureSound and that application had the same problems as I was having in my server application.&lt;br /&gt;&lt;br /&gt;This all makes me start wondering about drivers and hardware…but the weird thing was the problem manifested at the same time on three servers.&lt;br /&gt;&lt;br /&gt;While attempting to debug this problem I was using Microsoft's Remote Desktop to access the servers.  It actually turns out that Remote Desktop is the problem.&lt;br /&gt;&lt;br /&gt;To fix the problem:&lt;br /&gt;&lt;br /&gt;1. Open &lt;strong&gt;Remote Desktop Connection&lt;/strong&gt;.  Enter the machine address and then select &lt;strong&gt;Options&lt;/strong&gt;.&lt;br /&gt;2. Select the &lt;strong&gt;Local Resources&lt;/strong&gt; page and in the &lt;strong&gt;Remote computer sound&lt;/strong&gt; group box select &lt;strong&gt;Leave at remote computer&lt;/strong&gt;.&lt;br /&gt;3. Select &lt;strong&gt;Connect&lt;/strong&gt;.&lt;br /&gt;4. Log in to your machine&lt;br /&gt;5. Close the Remote Desktop session.&lt;br /&gt;&lt;br /&gt;Can you hear me now?  …Yes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-5515959728333560766?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/5515959728333560766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=5515959728333560766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5515959728333560766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5515959728333560766'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/08/can-you-hear-me-now-no.html' title='Can you hear me now? ... No'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-2216155201329754194</id><published>2007-08-06T22:43:00.001-07:00</published><updated>2007-08-06T23:00:16.675-07:00</updated><title type='text'>Didn't Microsoft used to have forums?</title><content type='html'>I just got to know what is going on?  I haven't been able to access Microsoft forums for awhile now.  I'm getting the error below when I try to link to &lt;a href="http://forums.microsoft.com"&gt;http://forums.microsoft.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_T0qvffyPWxQ/RrgHPtD6sUI/AAAAAAAAABU/ClGKVoF5VKU/s1600-h/MSForumErr.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_T0qvffyPWxQ/RrgHPtD6sUI/AAAAAAAAABU/ClGKVoF5VKU/s400/MSForumErr.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5095830944745173314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And if I try any link off the forums.microsoft.com root...such as the one in the right hand panel of the &lt;a href="http://msdn2.microsoft.com/en-us/default.aspx"&gt;http://msdn2.microsoft.com&lt;/a&gt; page...under Communities...my browser just sits there spinning...looking lost and confused.  In other words...nothing loads and there is no error message.&lt;br /&gt;&lt;br /&gt;So Microsoft...WHAT'S UP!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-2216155201329754194?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/2216155201329754194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=2216155201329754194' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/2216155201329754194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/2216155201329754194'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/08/didnt-microsoft-used-to-have-forums.html' title='Didn&apos;t Microsoft used to have forums?'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T0qvffyPWxQ/RrgHPtD6sUI/AAAAAAAAABU/ClGKVoF5VKU/s72-c/MSForumErr.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-6100921745451648903</id><published>2007-07-28T22:14:00.000-07:00</published><updated>2007-07-28T22:27:20.197-07:00</updated><title type='text'>Grand Theft Auto – The Insurance Way</title><content type='html'>A few weeks ago my neighbor hit my truck.  There is no question in any one's mind as to who is responsible.  The truck was parked on the street in the same place it has been parked (when I'm home) for nine years.  And…did I mention it was parked… as in not moving, stationary.   &lt;br /&gt;&lt;br /&gt;When it first happened I was angry…more for the inconvenience the accident represented than because I felt a victim.  The damage wasn't too bad and I figured that the insurance company (he did stop and he had insurance) would take care of things.  Boy was I wrong.&lt;br /&gt;&lt;br /&gt;The insurance company (Progressive) has "valued" my truck at $3600 and decided that the repairs exceeded the value of the vehicle and totaled it.  On the surface this seems logical but what it actually is, is an extremely unethical decision that moves me from someone who has simply been inconvenienced to a true victim.  Progressive has given me the choice of $3600 where they take ownership of my truck and give me the money or I can keep my truck and $2700 (to fix it myself) with the stamp of "Salvage" added to the title.  Neither option is acceptable.&lt;br /&gt;&lt;br /&gt;I can not replace my truck for the pittance they have offered and the stamp of "Salvage" is a whole other head ache.  This entire incident has left me without transportation and has eaten up a considerable amount of time, with more time to be lost in the future as I continue to search for a solution.  &lt;br /&gt;&lt;br /&gt;In 1993 I drove my truck off the lot, brand new, for fourteen years I have driven that vehicle.  I know it and I feel safe in it.  And now…what can I possibly buy for $3600 that could come close the value that truck has to me?  The emotional side of my personality is screaming out at the injustice.  "I DID NOTHING WRONG!"  I believe that either Jeff (the guy who hit the truck) or his insurance company should pay to have my truck repaired.  The fact that the market value of the vehicle is less that the repair costs SHOULD NOT BE my problem.  The value of the truck to me can not be measured in a dollar amount.&lt;br /&gt;&lt;br /&gt;I'm open to suggestions.  I've already talked to my insurance company and pretty much got the same story.  This is wrong.  We wonder how the Enron and WorldCom scandals can happen…here is your answer.  When our business communities measure the cost of something they RARELY stop to think about the human cost or the long-term costs.  These nameless, faceless entities only consider the short-term bottom line...thus making it easy to dump toxic waste, rob from their employees and share holders, produce shoddy products, and steal from the people they are supposed to serve.&lt;br /&gt;&lt;br /&gt;This picture should give you an idea of how long he had to slow down...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_T0qvffyPWxQ/Rqwi09D6sQI/AAAAAAAAAA0/03ampcO5hGQ/s1600-h/072407+013.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_T0qvffyPWxQ/Rqwi09D6sQI/AAAAAAAAAA0/03ampcO5hGQ/s400/072407+013.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5092483571788722434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is all the damage...really looks like the truck should be totaled right? It's drivable, just not legally drivable...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_T0qvffyPWxQ/RqwjQdD6sSI/AAAAAAAAABE/CWjWeaPyPww/s1600-h/072407+009.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_T0qvffyPWxQ/RqwjQdD6sSI/AAAAAAAAABE/CWjWeaPyPww/s400/072407+009.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5092484044235125026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_T0qvffyPWxQ/RqwjidD6sTI/AAAAAAAAABM/WQXbGEN785Y/s1600-h/072407+011.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_T0qvffyPWxQ/RqwjidD6sTI/AAAAAAAAABM/WQXbGEN785Y/s400/072407+011.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5092484353472770354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see from the photos the truck is basically fine and the only one inconvenienced by any of this has been me and my family.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-6100921745451648903?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/6100921745451648903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=6100921745451648903' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/6100921745451648903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/6100921745451648903'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/07/grand-theft-auto-insurance-way.html' title='Grand Theft Auto – The Insurance Way'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T0qvffyPWxQ/Rqwi09D6sQI/AAAAAAAAAA0/03ampcO5hGQ/s72-c/072407+013.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-6557301890754798834</id><published>2007-07-04T22:49:00.000-07:00</published><updated>2007-07-04T23:15:24.237-07:00</updated><title type='text'>Just when you think it's safe to go back in the water</title><content type='html'>Microsoft development libraries and tools have been around a long time and it's easy to think that all the kinks have been worked out.  If weird stuff happens it's got to be in my code…right?  Wrong.  &lt;br /&gt;&lt;br /&gt;I spent several days trying to figure out why, when I stepped (F10) over an instruction…I lost my thread.  I thought of everything that could go wrong:  GC, aborted thread, ThreadPool starvation, etc… I tried a lot of stuff.  &lt;br /&gt;&lt;br /&gt;A word of debugging advice, whenever you find yourself in a messy situation, try to find the simplest setup that produces the problem.  I stripped my code down to:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public partial class frmMyForm : Form&lt;br /&gt;{&lt;br /&gt;    private void frmFonBook_Shown(object sender, EventArgs eArgs)&lt;br /&gt;    {&lt;br /&gt;        ThreadPool.QueueUserWorkItem(new WaitCallback(_DoSomething), this);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void _DoSomething(Object state)&lt;br /&gt;{&lt;br /&gt;    frmMyForm frmObject = state as frmMyForm;&lt;br /&gt;    if (frmObject != null )&lt;br /&gt;    {&lt;br /&gt;        frmObject.MakeACall();&lt;br /&gt;    }&lt;br /&gt;} &lt;/pre&gt;&lt;br /&gt;Eventually I hit on the right search terms and came up with this &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=600009&amp;SiteID=1"&gt;link&lt;/a&gt;.  There are some other links in the post that explain things in more detail &lt;a href="http://blogs.msdn.com/greggm/archive/2005/11/18/494648.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/greggm/archive/2004/02/04/67766.aspx"&gt;here&lt;/a&gt;.  It's a crazy world but the IDE was actually the problem NOT my code.  &lt;br /&gt;&lt;br /&gt;Basically to get around this probem open VS2005, select Tools-&gt;Options-&gt;Debugging-&gt;General and then disable the 'Enable property evaluation and other implicit function calls' checkbox. &lt;br /&gt;&lt;br /&gt;So here are some search terms that I hope will make someone else's life easier:  &lt;br /&gt;&lt;br /&gt;disappearing thread&lt;br /&gt;collected thread object&lt;br /&gt;lost&lt;br /&gt;failed step&lt;br /&gt;IDE broken&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-6557301890754798834?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/6557301890754798834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=6557301890754798834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/6557301890754798834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/6557301890754798834'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/07/just-when-you-think-its-safe-to-go-back.html' title='Just when you think it&apos;s safe to go back in the water'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-3861464516782466957</id><published>2007-07-04T22:21:00.000-07:00</published><updated>2007-07-04T22:32:57.079-07:00</updated><title type='text'>…another door opening…</title><content type='html'>This is my third week at &lt;a href="http://www.fonjax.com"&gt;FonJax&lt;/a&gt; and things are moving right along.  I'm out of marketing and back in development and while it was hard to leave Digipede there are many things I'm excited about at FonJax.   And while I've spend a great deal of time learning the business and marketing side of the software startup sector, the plan was always to take what I learned back to engineering. &lt;br /&gt;&lt;br /&gt;I really enjoyed my interviews with two of the founders: Niall Sweeny and Mark Moore. During my interview with Mark I mentioned that I had been sold as an asset at KaseWorks.  That was the first time I have ever mentioned that in an interview and actually had someone understand.  First there were the layoffs, then there was the Chapter 11, and then there was the "new" company with different leadership and a different agenda. When it was all done there were only five software engineers left standing. Being sold as an asset is a traumatic experience but it also reflects that the company thought my contributions were important enough to keep me through it all.&lt;br /&gt;&lt;br /&gt;Feeling understood, valued, and respected is important to me and I get that feeling from the FonJax team.  I'm looking forward to a long and fun ride.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-3861464516782466957?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/3861464516782466957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=3861464516782466957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/3861464516782466957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/3861464516782466957'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/07/another-door-opening.html' title='…another door opening…'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-523400026034906313</id><published>2007-06-17T23:35:00.000-07:00</published><updated>2007-06-19T23:25:22.106-07:00</updated><title type='text'>One door closing...</title><content type='html'>&lt;em&gt;Update...this post was taken down because...well there were unintended interpretations to what I wrote.  This may go back up later after a little more editing. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Well, the toned down version of this post is that I find that for personal reasons I had to leave Digipede.  I loved working there.  Great team, great product but things don't always work out the way we want them to.   So…a door closing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-523400026034906313?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/523400026034906313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=523400026034906313' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/523400026034906313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/523400026034906313'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/06/one-door-closing.html' title='One door closing...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-1769514407687510994</id><published>2007-06-04T15:33:00.000-07:00</published><updated>2007-06-04T15:42:58.307-07:00</updated><title type='text'>We all need a little help from our friends...</title><content type='html'>All right all you developers out there...you have GOT to start blogging because I am really tired of running into error messages and situations that I KNOW someone has gotten around but no one has bothered to share the solution for.  Now I know for a fact that my blog is not in the top 10000 of blogs that are widely read, but I can tell you from my traffic that my blog does help folks.  You can help folks too.  Be altruistic and give back to the community, there is so much software left to build that there is no reason to hoard information.  &lt;br /&gt;&lt;br /&gt;As I was searching Google for the answer to the error message below I saw the same error message pop-up in Groups and on the Web but with no solution ever presented. This is not the first time I've encountered this problem, it won't be the last, but maybe we can change this...one post at a time.  Okay, that was my call to arms.  Now onto the error message and the solution.&lt;br /&gt;&lt;br /&gt;-------------------------- &lt;br /&gt;&lt;br /&gt;I don't know if my solution will work for you, but here is my situation and the accompanying solution. &lt;br /&gt;&lt;br /&gt;I'm trying to open a password protected Excel workbook from a VBScript file.  The problem I ran into is that there are "empty parameters" between the filename and the password for the Workbooks.Open call; in C# those empty parameters are filled with the word 'missing', but what to do about VBS?&lt;br /&gt;&lt;br /&gt;Here is the error message generated with all my attempts to make the call:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Unable to get the Open property of the Workbooks class."&lt;/blockquote&gt;&lt;br /&gt;Here is the correct syntax:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Set oWorkBook = myExcelWorker.Workbooks.Open&lt;br /&gt;(strWorkerWB, , , , "password")&lt;/pre&gt;&lt;br /&gt;Where strWorkerWB is a variable containing the name of my Excel workbook, "password" is the &lt;b&gt;Password to open&lt;/b&gt; for the workbook, and the command is typed into your script on one line (While the line is split in this post, don't split it in your code).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-1769514407687510994?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/1769514407687510994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=1769514407687510994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/1769514407687510994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/1769514407687510994'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/06/we-all-need-little-help-from-our.html' title='We all need a little help from our friends...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-702176175207705364</id><published>2007-06-01T16:11:00.000-07:00</published><updated>2007-06-01T17:05:40.263-07:00</updated><title type='text'>Fun with vbc.exe...snore</title><content type='html'>I created a .NET 1.1 and a .NET 2.0 VB.NET sample for the Digipede Network.  One of the requirements for our sample code is that the samples can be built from the command-line.  The first thing I had to do for this test was to make sure that I had an open Command Prompt window with the PATH correctly containing only .NET 1.1 and VS2003 references.&lt;br /&gt;&lt;br /&gt;Then it was time to start building my batch file.  Since my sample is based on a C# sample I started by copying the build.bat file from the C# sample, thinking that that would work just fine after I changed a few things.  Boy was I wrong.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;.NET 1.1/VS2003&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;My VB.NET project builds fine when built inside VS2003.  This is what my batch file started out looking like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;copy ..\..\Digipede.Framework.dll &lt;br /&gt;copy ..\..\Microsoft.Web.Services2.dll &lt;br /&gt;&lt;br /&gt;cd MonteCarloLibrary&lt;br /&gt;vbc.exe /t:library /out:MonteCarloLibrary.dll &lt;br /&gt;/r:..\Digipede.Framework.dll piworker.vb&lt;br /&gt;&lt;br /&gt;cd ..&lt;br /&gt;copy MonteCarloLibrary\MonteCarloLibrary.dll &lt;br /&gt;&lt;br /&gt;vbc.exe /t:winexe /out:MonteCarloPi.exe &lt;br /&gt;/r:Digipede.Framework.dll /r:MonteCarloLibrary.dll &lt;br /&gt;MainForm.vb&lt;/pre&gt;&lt;br /&gt;This didn't work and generated a plethora of bugs.&lt;br /&gt;&lt;br /&gt;The build command for the MonteCarloLibrary changed to look like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;vbc.exe /t:library /out:MonteCarloLibrary.dll &lt;br /&gt;/r:..\Digipede.Framework.dll /r:Microsoft.VisualBasic.dll &lt;br /&gt;/r:System.Data.dll piworker.vb&lt;/pre&gt;&lt;br /&gt;Apparently the IDE automatically includes the Microsoft.VisualBasic.dll and System.Data.dll files for you and when compiling on the command-line you have to reference them yourself.  Additionally, I had to make changes to my code so that my Imports list contained everything I would need.  That list changed from:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Imports Digipede.Framework&lt;br /&gt;Imports Digipede.Framework.Api&lt;/pre&gt;&lt;br /&gt;to:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Imports System&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.XML&lt;br /&gt;Imports System.Runtime.Serialization&lt;br /&gt;Imports Digipede.Framework&lt;br /&gt;Imports Digipede.Framework.Api&lt;/pre&gt;&lt;br /&gt;These changes got me around most of the BC30002 errors.&lt;br /&gt;&lt;br /&gt;The next thing that was a problem was that in my executable I referenced my DLL as MonteCarloLibrary.MonteCarloLibrary.PiWorker.  This compiled just fine in the IDE but not from the command-line.  When compiling from the command-line I got the following error:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;MainForm.vb(468) : error BC30002: Type &lt;br /&gt;'MonteCarloLibrary.MonteCarloLibrary.PiWorker' is not defined.&lt;br /&gt;Dim jobTemplate As JobTemplate = JobTemplate.NewWorkerJobTemplate&lt;br /&gt;(GetType(MonteCarloLibrary.MonteCarloLibrary.PiWorker))&lt;/pre&gt;&lt;br /&gt;This puzzled me for awhile until I changed my code to be:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Dim jobTemplate As JobTemplate = JobTemplate.NewWorkerJobTemplate&lt;br /&gt;(GetType(MonteCarloLibrary.PiWorker))&lt;/pre&gt;&lt;br /&gt;Notice I deleted the Namespace 'MonteCarloLibrary'.  This change compiled just fine from the command-line but not from the IDE.  What was going on?&lt;br /&gt;&lt;br /&gt;It seems that in the IDE my MonteCarloLibrary had a Root namespace defined in the project.  Now I don't remember ever setting this so I don't know if I put it in or the IDE put it in, regardless...there it was.  And that, so to say, was the root of my problem.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_T0qvffyPWxQ/RmCo9j70OuI/AAAAAAAAAAs/qFCb2-0WBwM/s1600-h/MCLPropsRootNamespace.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_T0qvffyPWxQ/RmCo9j70OuI/AAAAAAAAAAs/qFCb2-0WBwM/s400/MCLPropsRootNamespace.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5071238955990792930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I deleted the Root namespace.  Changed my code to remove the namespace reference and was then around that problem.&lt;br /&gt;&lt;br /&gt;Onward...though not upward....  As you can see I've switched over to errors reported by my executable WorkerLibraryFormsVB.exe&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;vbc : error BC30420: 'Sub Main' was not &lt;br /&gt;found in 'WorkerLibraryFormsVB'.&lt;/pre&gt;&lt;br /&gt;A quick Google search yielded no valid answer so I decided to bite the bullet and actually look at the VB.NET compiler settings by typing:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;vbc /?&lt;/pre&gt;&lt;br /&gt;This looked good:  &lt;pre&gt;/main:&lt;class&gt;&lt;/pre&gt; option is defined as&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Specifies the Class or Module that contains Sub Main. It can also be a Class that inherits from System.Windows.Forms.Form. (Short form: /m)&lt;/blockquote&gt;&lt;br /&gt;New command-line:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;vbc /t:winexe /main:MonteCarloForm &lt;br /&gt;/out:WorkerLibraryFormsVB.exe /r:Digipede.Framework.dll &lt;br /&gt;/r:MonteCarloLibrary.dll MainForm.vb&lt;/pre&gt;&lt;br /&gt;Which got past the ‘Sub Main’ error but there were still more....&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;vbc: error BC30451: Name 'MessageBox' is not declared.&lt;/pre&gt;&lt;br /&gt;To get around the problem above you'll need to do two things.  The first thing to do is to verify that you have &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Imports System.Windows.Forms&lt;/pre&gt;  &lt;br /&gt;at the top of your file.  (In this case I added the Imports command to the top of MainForm.vb)&lt;br /&gt;&lt;br /&gt;The second thing is to add additional references to your build command-line:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;vbc /t:winexe /main:MonteCarloForm /out:MonteCarloPi.exe &lt;br /&gt;/r:Digipede.Framework.dll /r:MonteCarloLibrary.dll &lt;br /&gt;/r:System.Windows.Forms.dll /r:Microsoft.VisualBasic.dll &lt;br /&gt;/r:System.Data.dll MainForm.vb &lt;/pre&gt;&lt;br /&gt;I had one error left and that was:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;\MainForm.vb(534) : error BC30451: Name 'ControlChars' &lt;br /&gt;is not declared.&lt;br /&gt;&lt;br /&gt;Dim errMsg As String = [String].Format("Job submission &lt;br /&gt;failed with error:" + ControlChars.Lf + "{0}", &lt;br /&gt;e.Error.Message)&lt;/pre&gt;&lt;br /&gt;I changed the line to read:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Dim errMsg As String = [String].Format&lt;br /&gt;("Job submission failed with error:" + &lt;br /&gt;Microsoft.VisualBasic.ControlChars.Lf + "{0}", &lt;br /&gt;e.Error.Message)&lt;/pre&gt;&lt;br /&gt;Notice I told the compiler EXACTLY where to find ControlChars....and then everything was just fine.&lt;br /&gt;&lt;br /&gt;Here is the new, working build.bat file:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;copy ..\..\Digipede.Framework.dll &lt;br /&gt;copy ..\..\Microsoft.Web.Services2.dll &lt;br /&gt;&lt;br /&gt;cd MonteCarloLibrary&lt;br /&gt;vbc.exe /t:library /out:MonteCarloLibrary.dll &lt;br /&gt;/r:..\Digipede.Framework.dll /r:Microsoft.VisualBasic.dll &lt;br /&gt;/r:System.Data.dll piworker.vb&lt;br /&gt;&lt;br /&gt;cd ..&lt;br /&gt;copy MonteCarloLibrary\MonteCarloLibrary.dll &lt;br /&gt;&lt;br /&gt;vbc.exe /t:winexe /out:WorkerLibraryFormsVB.exe &lt;br /&gt;/r:Digipede.Framework.dll /r:MonteCarloLibrary.dll &lt;br /&gt;/r:Microsoft.VisualBasic.dll /r:System.Data.dll &lt;br /&gt;/r:Mscorlib.dll /r:System.dll &lt;br /&gt;/r:System.Windows.Forms.dll /r:System.Drawing.dll &lt;br /&gt;/main:MonteCarloForm MainForm.vb &lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;.NET 2.0/VS2005&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Once testing indicated that I had the .NET 1.1/VS2003 version working I then copied my new build.bat file over to the .NET 2.0/VS2005 project.  I made the necessary code changes with my Imports and namespace, and then tried to build.  I got the following warning:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;warning BC42025: Access of shared member, &lt;br /&gt;constant member, enum member or nested type through &lt;br /&gt;an instance; qualifying expression will not be evaluated.&lt;br /&gt;&lt;br /&gt;Dim jobTemplate As JobTemplate = jobTemplate.NewWorkerJobTemplate&lt;br /&gt;(GetType(MonteCarloLibrary.PiWorker))&lt;/pre&gt;&lt;br /&gt;Although not an error, only a warning, I don’t like to see either in my output and it needed to go.  This is what my code looked like to me in VS2003:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Dim jobTemplate As JobTemplate = &lt;br /&gt;JobTemplate.NewWorkerJobTemplate(GetType(&lt;br /&gt;MonteCarloLibrary.PiWorker))&lt;/pre&gt;&lt;br /&gt;Notice that in the error message it is jobTemplate.NewWorkerJobTemplate and in my code it is JobTemplate.NewWorkerJobTemplate.  Damned if VB wasn’t making my capital J a lowercase j.  It was actually funny (for all of 30 seconds) to change the lower case j to an upper case J and watching the IDE change it back for me.  It was like a magic trick; only after the first few laughs it wasn't funny any more.  Quite frankly I have better things to do than waste my time on this kind of crap.  A quick look through the VS2005 Options pages and nothing jumped out to make this stop.  So I changed my variable name to myJobTemplate.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;One thing that would have been really handy is if the IDE would have displayed the command-line it was using.  This option is available for other languages why not VB.NET?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-702176175207705364?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/702176175207705364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=702176175207705364' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/702176175207705364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/702176175207705364'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/06/fun-with-vbcexesnore.html' title='Fun with vbc.exe...snore'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T0qvffyPWxQ/RmCo9j70OuI/AAAAAAAAAAs/qFCb2-0WBwM/s72-c/MCLPropsRootNamespace.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-5071475823889416710</id><published>2007-03-20T21:25:00.000-07:00</published><updated>2007-03-20T21:29:25.314-07:00</updated><title type='text'>They’re back.....</title><content type='html'>Termite season...and they’re &lt;a href="http://krgreenlee.blogspot.com/2006/04/swarm-7.html"&gt;back&lt;/a&gt;.  This sucks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-5071475823889416710?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/5071475823889416710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=5071475823889416710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5071475823889416710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/5071475823889416710'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/03/theyre-back.html' title='They’re back.....'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-7762358104153584756</id><published>2007-03-20T19:01:00.000-07:00</published><updated>2007-03-20T19:29:14.490-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>CRT .762 side-by-side error</title><content type='html'>About two weeks ago I installed VS2005 SP1 onto my laptop and a few days ago I was asked to retest all the sample code that ships with the Digipede Framework SDK.  Everything worked fine until I got to IComWorkerCPP.  IComWorkerCPP is a C++ COM sample which ran fine on my machine but when I tried to run it on the grid it failed. &lt;br /&gt;&lt;br /&gt;I looked in the Event Viewer but only under Digipede so I didn't find any good clues.  &lt;a href="http://et.cairene.net/"&gt;Robert&lt;/a&gt; looked under System and was able to come up with this error:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Resolve Partial Assembly failed for Microsoft.VC80.MFC. Reference error message: The referenced assembly is not installed on your system."&lt;/blockquote&gt;&lt;br /&gt;After a bit of research it turns out that SP1 installs new C++ libraries with the minor version number .762.   If you look in directory C:\WINDOWS\WinSxS you’ll see a bunch of side-by-side directories. &lt;br /&gt;&lt;br /&gt;If you get the error above and you only see the directory x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd and not the directory x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700, then you may need to install .762.&lt;br /&gt;&lt;br /&gt;I was unable to find a download page on MSDN for the latest redist libraries.  But did find that VCRedist_x86.exe was updated on my computer. &lt;br /&gt;&lt;br /&gt;You can find the latest version in the directory:  C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86&lt;br /&gt;&lt;br /&gt;Simply run VCRedist_x86.exe on the target machine and you should be good to go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-7762358104153584756?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/7762358104153584756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=7762358104153584756' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/7762358104153584756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/7762358104153584756'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/03/crt-762-side-by-side-error.html' title='CRT .762 side-by-side error'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-7249044714490507683</id><published>2007-03-14T14:52:00.000-07:00</published><updated>2007-03-14T14:55:52.897-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>VS2005 and ASP.NET: Can't start my debugger</title><content type='html'>For the record, I have absolutely NO IDEA what's going on here. But with luck this solution may work for you. I'm playing around with ASP.NET web services and I was getting this error from VS2005 (I was getting this before and after SP1 installation):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Unable to start debugging on the web server. An authentication error&lt;br /&gt;occurred while communicating with the web server."&lt;/blockquote&gt;Searching on the error produced links to proposed solutions that didn't work for me. This was the only official Microsoft &lt;a href="http://support.microsoft.com/kb/306165"&gt;link&lt;/a&gt; I found that addressed the error message.&lt;br /&gt;&lt;br /&gt;So now I know basically that IIS was having trouble starting my debugger. So I thought, hmmm, let's just try this without debugging. Ctrl-F5 and everything comes up as expected. I closed the new browser window (I'm working on a service) and then hit F5...just to see what would happen. And LO! Up comes my debugger. I set a breakpoint, ran the service, and hit the breakpoint.&lt;br /&gt;&lt;br /&gt;I can only assume that a VS2005 setting got munged and &lt;strong&gt;Starting Without Debugging&lt;/strong&gt; fixed it. But I just don't know. Good luck on this one...there seems to be many paths to the same error message.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-7249044714490507683?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/7249044714490507683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=7249044714490507683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/7249044714490507683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/7249044714490507683'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/03/vs2005-and-aspnet-cant-start-my.html' title='VS2005 and ASP.NET: Can&apos;t start my debugger'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-117226446681191447</id><published>2007-02-23T13:00:00.000-08:00</published><updated>2007-03-06T11:07:05.808-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About: February 27th San Diego, CA</title><content type='html'>I'm heading down to San Diego next week. If you're interested in concurrent software development: multithreading and grid computing please come by. I'll be talking to the San Diego .NET User Group, you can find out about the meeting &lt;a href="http://www.sandiegodotnet.com/"&gt;here&lt;/a&gt;. Brian and I have plans to grab some food after the event so please plan on joining us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-117226446681191447?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/117226446681191447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=117226446681191447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117226446681191447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117226446681191447'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/02/out-and-about-february-27th-san-diego.html' title='Out and About: February 27th San Diego, CA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-117158015416131072</id><published>2007-02-15T14:15:00.000-08:00</published><updated>2007-02-15T15:52:25.800-08:00</updated><title type='text'>If I had a nickel...</title><content type='html'>...for every product idea I've ever had, I'd retire.&lt;br /&gt;&lt;br /&gt;This was a fun read today, &lt;a href="http://www.siliconvalley.com/mld/siliconvalley/news/editorial/16703448.htm"&gt; Alien-hunting software rats out laptop thief&lt;/a&gt; and provided yet another product idea.  Lojack for your computers.  &lt;blockquote&gt;&lt;br /&gt;Unless a computer-savvy thief uninstalls nearly every piece of software before connecting to the Internet, he said, SETI@home would track the machine -- and the thief would likely never know it.&lt;br /&gt;&lt;br /&gt;"I have some advice for thieves: Don't connect to the network," Anderson said.&lt;/blockquote&gt;With the recent news reports of stolen laptops containing lots-o-confidential data, it seems there is a market for a product that can get your stuff back.  &lt;br /&gt;&lt;br /&gt;After searching the Internet it seems that someone already thought of this, &lt;a href="http://www.lojackforlaptops.com/"&gt;Lojack for Laptops&lt;/a&gt;.  Here is a review &lt;a href="http://www.forbes.com/technology/2005/08/19/digilife-lojack-laotops-cx_daa_0819digilife.html"&gt;Does LoJack For Laptops Work?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I'm wondering why stolen laptops with confidential information ARE SUCH A BIG DEAL! The technology and service is available so that IT departments should be investing money here and protecting their customer's data.  This makes it seem criminal that companies are having trouble finding recently stolen computers. &lt;br /&gt;&lt;br /&gt;------------------------------------&lt;br /&gt;&lt;br /&gt;While I'm on a product idea rant...&lt;br /&gt;&lt;br /&gt;Where is the social networking site for retirees?  This seems like a huge untapped target market with money.  Why build the next MySpace or FaceBook for teenagers and young adults when you can tap an entire un-served market space?  Let's think about our retirees...&lt;br /&gt;&lt;br /&gt;1. Statistics show that people live longer if they stay busy after retirement.&lt;br /&gt;2. Retirees need to create new connections to replace the work related ones they've lost.&lt;br /&gt;3. The Baby Boomers are a very large, technically savvy group.&lt;br /&gt;4. Many have money.&lt;br /&gt;&lt;br /&gt;Most of my immediate family members are 30 to 40 years older than I am.  That's just how things worked out.  My Grandfather suffered from Macular degeneration.  I watched his world get smaller and smaller.  Where did he turn for mental stimulation and social contact?  His computer.  He spent hours on his computer every day.  I jacked the fonts up as large I could make them and he would sit in front of the computer with a magnifying glass.  To me this is a BIG opportunity indicator.  The guy was in his 80s.  &lt;br /&gt;&lt;br /&gt;So many people think that only the kids are technically savvy, this is a mistake.  My Grandfather's generation went through an incredible amount of technology changes.  And I am confident that when folks have something to gain by learning about technology – they can not be stopped.&lt;br /&gt;&lt;br /&gt;So, build a social network for retirees.  Provide a framework for them to make it their own.  They are a group that knows how to lead and they will be very vocal in telling you what you need to build.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-117158015416131072?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/117158015416131072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=117158015416131072' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117158015416131072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117158015416131072'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/02/if-i-had-nickel.html' title='If I had a nickel...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-117150098036872411</id><published>2007-02-14T16:53:00.000-08:00</published><updated>2007-02-14T16:56:20.390-08:00</updated><title type='text'>Talk to me</title><content type='html'>As is my wont I was looking through message boards and stumbled across a LinkedIn &lt;a href="http://www.linkedin.com/answers?viewQuestion=&amp;questionID=19267&amp;askerID=7009368&amp;browseIdx=7&amp;sik=1171497836076&amp;goback=%2Eabq_o_n_*2"&gt;question&lt;/a&gt; about the strangest interview questions you've been asked or have asked.  I didn't think my response was strange enough to post there but I thought I'd write it up here.  &lt;br /&gt;&lt;br /&gt;About 14 years ago I was interviewing candidates for a customer support position.  I had already gone through the cover letters and resumes and eliminated folks who were either not technical enough or could not write well enough.  At this point I thought that the most important skill for the candidates was how well they handled the phone.  So when I called them for the prescreening interview, I asked them to just talk to me.  Tell me how their weekend was, what they had for breakfast, I just didn't care.  I told them I was just trying to get a feel for their phone skills and how well they communicated.&lt;br /&gt;&lt;br /&gt;One candidate got frazzled and asked me what he was supposed to talk about, I reiterated that I didn't care I just wanted to get a feel for how he was on the phone.  He got mad and hung up.  This was for a job where he would have to spend a lot of time on the phone.  His English was good and his technical skills on his resume looked sound, but obviously he was lacking in people skills.  &lt;br /&gt;&lt;br /&gt;The guy I ended up hiring had very broken English and a thick accent, but our customers loved him.  He was very helpful, enthusiastic, and competent.  When I had asked him to just talk he very excitedly talked to me, I don't even remember what it was about.  But he made a positive impression and that was what I wanted my customers to come away with.  (I'm going to call him Bing because my memory is bad and I can't remember his name.)  &lt;br /&gt;&lt;br /&gt;I suspect that Bing would have been overlooked by many people because of his speech.  But I think people are more tuned into emotions and he had a happy, positive, helpful, and engaging personality.  Any employee in a customer facing position becomes the voice or face of the company.  When people thought of our company I wanted them to not only have their technical needs addressed but I wanted them to leave the encounter feeling good about it, about our products, and about our company.  Bing was able to do all of that because he was able to communicate to the customer that he really cared about them and that he was there to help and support them.  So his English wasn't so good...but he was a GREAT communicator.&lt;br /&gt;&lt;br /&gt;So...what's my point?  I don't have one today!  I just wanted to share a random story.  Have a good one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-117150098036872411?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/117150098036872411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=117150098036872411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117150098036872411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117150098036872411'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/02/talk-to-me.html' title='Talk to me'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-117011579149505422</id><published>2007-01-29T16:07:00.000-08:00</published><updated>2007-01-29T16:09:51.513-08:00</updated><title type='text'>My Cool Projects</title><content type='html'>I’ve decided to start a meme.  We’ll see how far it goes, but I want to know what the coolest projects you’ve ever worked on are and why.  I think that the coolness factor says a lot about who we are because it is so subjective.  The projects don’t have to be technical.  Maybe you built a house with Habitat for Humanity.  I think that would be cool.  Maybe you taught your dog to bring you a beer.  (If you let this information out you may find a lot of dog training gigs coming your way.)  Regardless, cool is about who we are at our core and I think it would be much more revealing then the "five things you don’t know about me" meme.&lt;br /&gt;&lt;br /&gt;• I started a recreational women’s softball division for the Hotlanta softball league.  Zero to thirteen teams in four years.  What a ride.&lt;br /&gt;&lt;br /&gt;• I wrote a product that was used at the Nagano Olympics and a Super Bowl, I mentioned it &lt;a href="http://krgreenlee.blogspot.com/2007/01/my-five-things.html"&gt;here&lt;/a&gt;.  Besides where it was used, I also got to play around with live broadcast feed, did the entire product myself (that includes documentation), supported multithreading, and generated code.  Did I mention it was used at the Olympics?&lt;br /&gt;&lt;br /&gt;• There are two things I love to do as an engineer.  Work down in the bits and bytes and pull-off the impossible.  I’ve had the chance to do this for a casino gaming system (embedded system! proprietary operating system!  EPROM!  Yea, that’s the ticket!) and for a content aggregation server that was ported from a stand-alone app (I did NOT design that thing but I certainly helped fix it.  Can you say more multithreading bugs than stars in the sky?).  Now that was cool.&lt;br /&gt;&lt;br /&gt;• As an athlete I’ve had moments when my teammates and I have just gelled.  It was if we were one unit.  Every pass was perfect.  Those moments are why I play.  And when I think about the coolest moments in my life...I always see those plays and remember the feeling of absolute completion and wholeness.  In martial arts they talk about giving up your ego, but I don’t think that is exactly what happens.  I think it is a combination of truly accepting what is happening and being open to the moment.  Anyway...it’s definitely a safe clean high.&lt;br /&gt;&lt;br /&gt;• And to finish off my list...I organized an informational event at one company I worked at.  The problem was that there were a lot of folks in the company who didn’t really understand what we were selling or how it worked.  I sent out an email asking for questions, lined up the speakers, and we spent a day on the top topics.  The event was very well attended and received.  This was cool for me because I love to help people, I got a lot of ego strokes from the attendees, and I can’t help but think that it helped our company be more successful...and that is just cool.&lt;br /&gt;&lt;br /&gt;Since I want this meme to spread I’m not going to tag anyone specifically.  I ask that after you’ve put up your post that you add a comment here with a link to it and tag folks from your blog.  That will be my tagging.   &lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/meme" rel="tag"&gt;Meme&lt;/a&gt;, &lt;a href="http://technorati.com/tag/cool" rel="tag"&gt;cool&lt;/a&gt;, &lt;a href="http://technorati.com/tag/project" rel="tag"&gt;project&lt;/a&gt;, &lt;a href="http://technorati.com/tag/my%20cool%20projects" rel="tag"&gt;my cool projects&lt;/a&gt;  &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-117011579149505422?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/117011579149505422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=117011579149505422' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117011579149505422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/117011579149505422'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/01/my-cool-projects.html' title='My Cool Projects'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116976607658723606</id><published>2007-01-25T14:58:00.000-08:00</published><updated>2007-03-06T11:09:37.948-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Experienced Multithread Developer...so good I don't need locks</title><content type='html'>This has got to be one of the funniest things I've read all year. (Of course it's still early...)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"We have a multi-threaded .NET application, the problem is that the previous programmer didn't care to have locks on the shared variables. Somehow the application doesn't end up in Locked state on a single CPU machine but I have tried running it on several dual core machines and it randomly freezes. I am searching for a quick-fix until I implement locks around all the shared variables in the entire application.&lt;br /&gt;&lt;br /&gt;Is there a way to bound the .NET application to single CPU.&lt;br /&gt;&lt;br /&gt;Thanks!" &lt;a href="http://msdn.microsoft.com/newsgroups/default.aspx?&amp;lang=en&amp;amp;cr=US&amp;guid=&amp;amp;sloc=en-us&amp;dg=microsoft.public.dotnet.general&amp;amp;amp;p=1&amp;tid=3fe78ca6-459b-4a79-957d-012adbef7e49&amp;amp;mid=3fe78ca6-459b-4a79-957d-012adbef7e49"&gt;link&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;Anyone who has been reading my postings or attended any of my concurrent development presentations will immediately see the humor in this. However, I will explain for the unenlightened....&lt;br /&gt;&lt;br /&gt;I have been saying all along that there are a lot of folks writing multithreaded applications that have no idea what they're doing. The original developer is one of them. Now this guy is probably going to keep writing multithreaded apps because he thinks he has successfully done it before. In fact his new company may have hired him because of that experience. This is funny.&lt;br /&gt;&lt;br /&gt;The other funny thing is that I've said time and time again that often a newbie will add multithreading and then only test on a single processor. Some folks have asked me how any one could be so...ignorant. (I want to say stupid but we're trying not to use that word at home.) Well folks, here you have it. Never underestimate a person's ability to do stupid...I mean ignorant things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116976607658723606?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116976607658723606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116976607658723606' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116976607658723606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116976607658723606'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/01/experienced-multithread-developerso.html' title='Experienced Multithread Developer...so good I don&apos;t need locks'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116847505278836551</id><published>2007-01-10T16:13:00.000-08:00</published><updated>2007-01-10T16:24:12.793-08:00</updated><title type='text'>I am...a Green Lantern!</title><content type='html'>To continue this crazy meme kind of day...the results of my Super Hero test indicate that I am secretly a Green Lantern...I just wish I could find my ring...&lt;br /&gt;&lt;br /&gt;&lt;B&gt;You are Green Lantern&lt;/B&gt;&lt;TABLE&gt;&lt;TR&gt;&lt;TD&gt;&lt;TABLE&gt;&lt;TR&gt;&lt;TD&gt;Green Lantern&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=80&gt;&lt;/TD&gt;&lt;TD&gt; 80%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Superman&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=75&gt;&lt;/TD&gt;&lt;TD&gt; 75%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Spider-Man&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=75&gt;&lt;/TD&gt;&lt;TD&gt; 75%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;The Flash&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=75&gt;&lt;/TD&gt;&lt;TD&gt; 75%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=65&gt;&lt;/TD&gt;&lt;TD&gt; 65%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Robin&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=60&gt;&lt;/TD&gt;&lt;TD&gt; 60%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Iron Man&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=60&gt;&lt;/TD&gt;&lt;TD&gt; 60%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Hulk&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=55&gt;&lt;/TD&gt;&lt;TD&gt; 55%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Supergirl&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=50&gt;&lt;/TD&gt;&lt;TD&gt; 50%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Wonder Woman&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=45&gt;&lt;/TD&gt;&lt;TD&gt; 45%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Catwoman&lt;/TD&gt;&lt;TD&gt;&lt;HR ALIGN=LEFT NOSHADE SIZE=4 WIDTH=45&gt;&lt;/TD&gt;&lt;TD&gt; 45%&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;TD&gt;Hot-headed.  You have strong &lt;BR&gt;will power and a good imagination.&lt;BR&gt;&lt;IMG SRC="http://www.thesuperheroquiz.com/pics/lantern2.jpg"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;A HREF="http://www.thesuperheroquiz.com/"&gt;Click here to take the Superhero Personality Test&lt;/A&gt;&lt;BR&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116847505278836551?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116847505278836551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116847505278836551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116847505278836551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116847505278836551'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/01/i-ama-green-lantern.html' title='I am...a Green Lantern!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116847414944609478</id><published>2007-01-10T15:39:00.000-08:00</published><updated>2007-01-29T16:38:00.183-08:00</updated><title type='text'>My five things...</title><content type='html'>&lt;a href="http://westcoastgrid.blogspot.com/"&gt;Dan&lt;/a&gt; tagged me a few days ago with the "5 things you don't know about me" meme.  I've spent a few days thinking about those five things.  I read what others had written about themselves for inspiration (and to get some idea what this is about) and came up with these five things:&lt;br /&gt;&lt;br /&gt;1. I love turtles. I have no idea why.&lt;br /&gt;&lt;br /&gt;2. My favorite color is orange.  This is new, my favorite color used to be green.&lt;br /&gt;&lt;br /&gt;3. I've been around and touched by a few celebrities.  I've eaten dinner on Melissa Etheridge's credit card but I've never met her.  I've been inches away from Emily of the Indigo Girls fame on several occasions at the softball field.  I was bored out of my mind with Ellen Degeneres at an art show at the Snake Pit in Atlanta.  We didn't talk.  She is very quite and after several attempts to start a conversation...I decided to just try to get drunk...I didn't succeed at that either.  I used to know this &lt;a href="http://www.chipcoffey.com/"&gt;guy&lt;/a&gt; because we worked together at a children’s theatre where I was more concerned about the roof leaking than any ghosts that might be hanging around.  And of course...there's &lt;a href="http://westcoastgrid.blogspot.com/2007/01/end-of-meme.html"&gt;Dan&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;[update] I forgot to mention that Fran Tarkenton walked into my office and asked me how things were going (I used to work for him).  He didn't really care so I told him everything was fine.  &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;4. And one really cool product that I created (yes I did the whole thing, documentation and everything) was NetCam II for the IBM sports group.  NetCam captured images from live broadcast feeds, packaged the images up (even creating the HTML pages for them), and sent them to the IBM hosted websites.  The software was used at the Nagano Olympics, a couple big golf events, and even the Super Bowl.  I would get crazy last minute requests like the one from the Super Bowl.  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"We're going to be in a truck in the parking lot...how fast can you add FTP support because we're going to have to upload the images using FTP through a satellite!" &lt;/blockquote&gt;&lt;br /&gt;Sleep?  I don't need no stinking sleep!  You want FTP...you got FTP, Baby!&lt;br /&gt;&lt;br /&gt;5. Inspired by Jonathan Schwartz's &lt;a href="http://blogs.sun.com/jonathan/entry/five_things_about_myself"&gt;response #3&lt;/a&gt; I found myself thinking back to my own brush with death.  Unlike Jonathan I am going to elaborate not only on what happened but also on how it began to change me.&lt;br /&gt; &lt;br /&gt;I think it was in 1993.  I was living in Norcross, GA and commuting to work in Roswell.  It had been raining that morning, the first rain in a long time which meant that there were slick spots on the road from oil build up.  I was coming down the ramp from 85 to 285 when I hit one of those slicks and did a 180.  My pick-up truck was sliding backwards down the ramp at about 50 miles an hour.&lt;br /&gt;&lt;br /&gt;When I looked up, I looked right into the eyes of a trucker driving a big rig.  In a moment of clarity I felt that he and I had a non-verbal conversation that went like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Me: Oh shit...I'm going to die.&lt;br /&gt;Trucker:  I'm sorry.  I can't do anything without hurting more people.&lt;br /&gt;Me: I know.  You're right.  It's not your fault.  I don't blame you.&lt;/blockquote&gt;&lt;br /&gt;In the Trucker's eyes I saw him prepare to ride that rig right over me.  He had to be careful not to brake and end up in worse shape than me.  But just as I thought it was all over...one of my back tires got a grip on some good pavement and I was able to spin my truck back around and off to the shoulder.&lt;br /&gt;&lt;br /&gt;As I sat on the side of the road, not a scratch on me or my truck, I just shook.  I had faced what I thought was certain death by a man who I had never met and who meant me no harm.  I was surprised that I had faced my death so calmly and peacefully.  I had felt bad for the Trucker; I had not wanted my death to be a burden to him and I remembered feeling forgiveness toward him and hoping that he would forgive me.  &lt;br /&gt;&lt;br /&gt;My life changed in less than a second but the changes weren't immediate.  I began asking myself the question, "If I die tomorrow will I regret this decision?"  And this one question began to change the direction of my life.  I also began to look at people differently.  I am more forgiving, more willing to look for the reasons behind a person's actions, to try to understand a person's motivations and assumptions, to step up in my life and lead, to try to leave things a little better than I found them, to never give up...I believe I am a better person.&lt;br /&gt;&lt;br /&gt;I hope that when the time comes to face my death again...that I will fight just as calmly to live as I did that day.  To accept that my death may be the outcome, but not that my death is necessarily inevitable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Your turn:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblog.raganwald.com/"&gt;Reg Braithwaite&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.axisebusiness.com/adnano/"&gt;Adnan Masood&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.fresnofamous.com/blog/180"&gt;Gustavo Cavalcanti&lt;/a&gt;&lt;br /&gt;&lt;a href="http://peterkellner.net/"&gt;Peter Kellner&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/aniyer/"&gt;Anand Iyer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116847414944609478?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116847414944609478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116847414944609478' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116847414944609478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116847414944609478'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2007/01/my-five-things.html' title='My five things...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116737269122132805</id><published>2006-12-28T22:07:00.000-08:00</published><updated>2006-12-28T22:11:31.243-08:00</updated><title type='text'>Brecknock Hall, Southold, NY</title><content type='html'>&lt;a href="http://www.shelter-island.org/garden_club/Brecknock_Hall.html"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/7692/1596/200/826320/brecknock.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I’m in NY this week visiting family and today we got a private tour of &lt;a href="http://www.shelter-island.org/garden_club/Brecknock_Hall.html"&gt;Brecknock Hall&lt;/a&gt;.  It is an amazing building.  Brecknock Hall is currently being lovingly renovated by a small group of volunteers.  We were fortunate to get a tour because it is not currently open to the public.  According to Uncle Bob, our guide, each floor is about 4,000 square feet.  There are four floors.  As we were being shown around I was struck by several things.  &lt;br /&gt;&lt;br /&gt;The first thing was the difference in size between the servant’s quarters and the family’s quarters.  Four servant’s bedrooms would fit into one of the family’s bedrooms.  The cook’s quarters were right off the kitchen and amazingly small.  On the right-hand side of the picture you can see what appears to be an addition...that is were the servants lived.  Sleeping quarters were on the second floor and there was a recreation room in the basement.  &lt;br /&gt;&lt;br /&gt;The second thing I found interesting was a very large open space on the second floor at the top of the stairs in the main house.  The open area was enormous and was made to improve air circulation.  The bedrooms off the open area had levored doors; these doors allowed air to flow into the family bedrooms but still provided privacy.&lt;br /&gt;&lt;br /&gt;Some other interesting things:  the doors are all different sizes, there are wooden pegs holding many of the support joints in place (cool), there is a safe the size of a small closet, there was an incredible amount of attention to detail with a scroll motif that goes up the main staircase and can also be found on the cornices, every single window in the house has shutters on the inside that fold into the window casing when not in use, there are areas in the attic that look like jail cells with wooden bars (not actually jail cells), there is a small room above the attic where one can get a 360 degree view of the area (Uncle Bob says that birds often fly into the north facing windows),  because the boiler made a lot of noise there is actually about 2 inches of dirt in the ceiling over the boiler area, actual window inside the servant’s quarters between a bedroom and the hall (to increase air circulation in that area), the house is solid (thick brick and stone walls).&lt;br /&gt;&lt;br /&gt;This house is absolutely amazing.  And it is enormous.  It really doesn’t look that large from the outside, but once you add a full basement and attic, well...it is.  There is still a lot of work to do on it and if you happen to be inclined to contribute to the renovation fund...I’m sure they won’t turn down the money.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116737269122132805?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116737269122132805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116737269122132805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116737269122132805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116737269122132805'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/12/brecknock-hall-southold-ny.html' title='Brecknock Hall, Southold, NY'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116727962644428671</id><published>2006-12-27T20:00:00.000-08:00</published><updated>2006-12-27T20:20:26.466-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>The challenge of concurrency</title><content type='html'>This month’s copy of ACM Queue has got a really amazing  &lt;a href="http://www.acm.org/acmqueue/digital/Queuevol4no10_December2006.pdf"&gt;interview&lt;/a&gt; in it with John Hennessy and David Patterson, authors of the very popular textbook, &lt;a href=" http://www.amazon.com/Computer-Architecture-Fourth-Quantitative-Approach/dp/0123704901/sr=8-1/qid=1166488878/ref=pd_bbs_1/104-7058058-5256702?ie=UTF8&amp;s=books "&gt;"Computer Architecture: A Quantitative Approach"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"...From my perspective, parallelism is the biggest challenge since high-level programming languages.  It’s the biggest thing in 50 years because industry is betting its future that parallel programming will be useful.&lt;br /&gt;&lt;br /&gt;Industry is building parallel hardware, assuming people can&lt;br /&gt;use it.  And I think there’s a chance they’ll fail since the software is&lt;br /&gt;not necessarily in place.  So this is a gigantic challenge facing the&lt;br /&gt;computer science community.  If we miss this opportunity, it’s going to be bad for the industry.&lt;br /&gt;&lt;br /&gt;Imagine if processors stop getting faster, which is not impossible.  Parallel programming has proven to be a really hard concept.  Just because you need a solution doesn’t mean you’re going to find it."  -  David Patterson&lt;/blockquote&gt;I find this quote extremely interesting because it never occurred to me that the software development community would not rise to the challenge.  While I agree that it is a major paradigm shift for many developers, there are pockets of developers who have been building parallel applications for years.  I suppose one of the key questions is, can we help our colleagues make the shift?&lt;br /&gt;&lt;br /&gt;I agree with Dr. Patterson’s statement that parallel programming is hard.  Engineers are required to really know the systems that they are building software on and the tools they are using.  As I’ve traveled around giving my presentation on concurrent software development, I’ve found that there are a large number of developers that are not aware of what is really happening in their code.  These developers are accustomed to using only the high-level languages they commonly write in and rarely, if ever, dig down into the real bits and bytes that are actually being executed.  This lack of low-level knowledge handicaps them when it comes time to track down multi-threading bugs.  Remember that threads are a kernel tool and while high-level languages wrap threads to fit their development paradigm, you can’t escape the reality that they are still kernel tools.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Hey, the world has changed.  The La-Z-Boy approach isn’t going to work anymore.  You can’t just sit there, waiting for your single processor to get a lot faster and your software to get faster, and then you can add the feature sets.  That era is over.  If you want things to go faster, you’re going to have to do parallel computing."  -  David Patterson &lt;/blockquote&gt;&lt;br /&gt;There are a lot of folks working on the problem of making concurrent software development easier.  By defining technologies and standards:  &lt;a href="http://www.openmp.org/drupal/"&gt;OpenMP&lt;/a&gt;, &lt;a href="http://www-unix.mcs.anl.gov/mpi/"&gt;MPI&lt;/a&gt;; parallel &lt;a href="http://wotug.ukc.ac.uk/parallel/languages/"&gt;languages&lt;/a&gt;; and new products: &lt;a href="http://www.digipede.net/products/sdk.html"&gt;Digipede Framework SDK&lt;/a&gt;, &lt;a href="http://www.intel.com/cd/software/products/asmo-na/eng/threading/219785.htm"&gt;Intel Threading Analysis Tools&lt;/a&gt;, &lt;a href="http://www.coverity.com/html/prod_prev_concurrency.html"&gt;Coverity’s Concurrency Defect Manager&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But at the end of the day the important thing is that people are learning how to think in parallel.  Whichever tools they decide to use, right now, isn’t as important as the journey that they are going on.  Because if they were paying attention...when they come out the other side they will have a natural and intuitive understanding of how to add concurrency to their applications.&lt;br /&gt;&lt;br /&gt;As a developer and an optimist, I'm going to hope that we succeed at this and I'll continue to do my part to help that happen.  But we will fail if the engineering community doesn't wake up and realize that times have changed.  We have to put a little more thought and effort into adding concurrency to our applications; we have to learn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116727962644428671?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116727962644428671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116727962644428671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116727962644428671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116727962644428671'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/12/challenge-of-concurrency.html' title='The challenge of concurrency'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116648744273803135</id><published>2006-12-18T16:05:00.000-08:00</published><updated>2006-12-18T16:17:41.956-08:00</updated><title type='text'>Architecture: It's about balance</title><content type='html'>After my talk for NETDA, someone come up to me with a question about architecture.  I emphasize during my talks the importance of simplifying your product’s architecture when you plan to add concurrency.  I think a simple architecture is required regardless of the application but is absolutely vital with concurrent applications.  The questioner wanted to know to how to convince management that an architectural change is needed.  The answer....&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Money&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;An architect straddles the line between business and technology.  An architect isn’t out selling the product but she absolutely must understand the impact each technology decision has on potential business.  Architectural decisions rarely adhere to technical purity but are a balance between technical purity and business opportunity.  There must be a compelling business reason to change an architecture.  If there is no business reason, then it is usually more cost effective to leave things alone. &lt;br /&gt;&lt;br /&gt;Here are some monetary reasons to change an architecture:&lt;br /&gt;&lt;br /&gt;1.  To increase architectural flexibility.  Increasing architectural flexibility enables engineering to respond faster to new market requirements and even...new markets.  Architectural flexibility is vital for startups and small companies because the target market is often moving.  It is common for a startup to create a great product idea way before the market is ready for it and as a result have to quickly adjust to a new market.  The more flexible the product architecture the faster (and as a result cheaper) the engineering organization will be able to adjust to the new requirements.&lt;br /&gt;&lt;br /&gt;Example: Company A (circa 1997) came up with the idea of using user defined patterns to extract data from 3rd party websites.  Structuring the unstructured data found on the web.  Some people know this as web scraping and this was used early on to do pricing comparisons between vendors.  The problem was that Company A was ahead of the game, so they had to branch out into other technology areas.  The focus shifted from the web to collecting ANY unstructured data and making it structured.  This had a serious impact on the architectural integrity of the product.  The company ended up with a tightly coupled architecture (spaghetti code) which made the code prone to bugs, hard to maintain, slow to respond.  All of which added up to missed business opportunities because the architecture was not flexible.  When I talk about missed business opportunities I’m not saying that they were unable to go after different markets with the product they had.  I’m saying that they could have packaged the same code in different ways to create the perception that the products were specifically designed for a given market.  Building focused product and marketing efforts that appealed specifically to the target market WITHOUT impacting any of the core product line.  This could have been done if the main product line had had a flexible architecture.&lt;br /&gt;&lt;br /&gt;2.  Improve product quality.  There are a lot of good things that come from a good architecture and that includes product quality.  I’ll define "quality product" as a software product that works as expected, is stable, easy to enhance, and easy to maintain.  At the root of any product is the product’s architecture and poor architectural decisions will result in poor product quality. &lt;br /&gt;&lt;br /&gt;Example:  Company B (circa 1996) had decided several years prior to my arrival, that they needed to build a new casino video game system.  It was a market that they were already in, so they knew what the system had to do.  They choose an embedded system; built the operating system, payout system, configuration system, and games.  Everything done in-house.  The problem was that they were two years late with no end in sight because the system was so buggy.  Part of the problem was that the system was built by hardware guys with a lot of hardware experience and very little software experience.  Fortunately they knew they were in trouble and hired a software gal...me.  Their problems were all fixed by a simple change to the architecture.  Seven months after I started working with them, they were good to go.  The product was approved by the Gaming Commission and the company was successfully sold.  Architects who are inexperienced or technical purists will often try to redesign an entire architecture.  That is rarely cost effective.  A good architect balances the business needs with the technology needs to create a compromise that lets both sides win.&lt;br /&gt;&lt;br /&gt;3. Improve productivity.  As I said it’s about money.  So if by making an architectural change you can help your company either save money or make money by increasing productivity you can usually sell that to management.  This is usually the type of thing that happens for internal projects.  But productivity gains can also occur by enabling unit testing, increasing the ability to add enhancements, speeding up maintenance, automating help file generation, etc...&lt;br /&gt;&lt;br /&gt;I’m sure that there are other reasons to change architectures.  Changing tools, enabling other OSs, etc... but at the end of the day;  if you don’t have a compelling business reason to make the change (which is usually directly tied to some revenue opportunities) leave the architecture alone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116648744273803135?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116648744273803135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116648744273803135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116648744273803135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116648744273803135'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/12/architecture-its-about-balance.html' title='Architecture: It&apos;s about balance'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116544596565847771</id><published>2006-12-06T14:52:00.000-08:00</published><updated>2006-12-06T14:59:25.683-08:00</updated><title type='text'>GNoTECon take aways...</title><content type='html'>Monday’s  &lt;a href="http://www.gnote.ws"&gt;GNoTECon&lt;/a&gt; was very informative.  I learned a few things, got validation on a few others, and met some very interesting people.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Root and Branch&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://marytrigiani.typepad.com/"&gt;Mary Trigiani&lt;/a&gt; asked a very important question during one of the panel discussions that was basically along the lines of, "Is the rise in technical evangelism a result of a failure of marketing?"  This is an important question because the answer is vital to help understand how technical evangelism will mature.  At its root the question is asking, "Why was technical evangelism invented?"  Technical or secular evangelism was invented to fill some needs and it has grown because these needs are common.  But what are the needs?  Has marketing gotten too passive?  Has it lost touch with the markets it’s trying to reach?  Do technical products need to be marketed differently?  Are people tuning out marketing messages?  &lt;br /&gt;&lt;br /&gt;Knowing why technical evangelism was created and has grown is also important to understanding how to better reach our prospective customers.  All the presenters emphasized the importance of getting in front of people and telling your story.  But flying people all over the country is expensive.  When an entrepreneur sits down to write her first business plan does she have to factor in the expense of evangelism?  Has this become a requirement for startup success? &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Startup Techniques&lt;/strong&gt;&lt;br /&gt;There was a lot of talk about trust, honesty, integrity, and transparency.  An evangelist’s reputation is vital and the evangelist must strive for transparency so that when he says something people will believe it and not dismiss it as a sales pitch.  In a startup there is a fine line between being an evangelist and being a sales person.  If you cross that line then you lose credibility and as a result your company loses.  &lt;br /&gt;&lt;br /&gt;I had inherently suspected this and it was very interesting to hear it emphasized so much.  Here are some low cost techniques we use to try and spread the message:&lt;br /&gt;&lt;br /&gt;- Microsoft Groups: The Digipede Network has a very powerful SDK and so that opens our products up to developers.  I watch the developer groups and forums for opportunities to mention our product.  I try very hard to be respectful when I post a response by not making it a sales pitch but rather to offer technical assistance and point out options.  I actually will mention Alchemi sometimes or threading if that is an option.  I also answer posts that are not directly relevant to Digipede.  I do this because it’s the right thing to do and I think that that is one of the root elements to evangelism...helping people be successful.&lt;br /&gt;&lt;br /&gt;- Blogs: With my blog and on other people’s blogs I try to add to the conversation.  Which is what blogging is all about.  Over half of the Digipede team is blogging because we believe that blogs are a very effective communication tool.  What is hard about blogging as an evangelist is again that fine line between adding value and selling.  I’ve seen people push their products without adding anything else to the conversation and I know that when I see something like that, I don’t like it.  I love the idea of blogging because it’s the geeky honesty thing at work, out where everyone can see it.  I’ve written &lt;a href="http://krgreenlee.blogspot.com/2006/01/business-honest-geek.html"&gt;before&lt;/a&gt; that I think engineers are required to have a thick streak of honesty because of the nature of our jobs.  And because I am pushing a product that has an SDK component, you will find programming stuff on my blog.  Even programming samples that are not directly tied to Digipede.  The reason for this is again...helping people.   &lt;br /&gt;&lt;br /&gt;- White Papers:  Yes, I’ve written a couple white papers for Digipede.  These just take time to write, but creation and distribution is basically free.  Stick them on the web site and make them accessible. &lt;br /&gt; &lt;br /&gt;- Videos: Video creation has gotten extremely easy and cheap.  While our videos are not the highest quality available, &lt;a href="http://www.youtube.com/"&gt;YouTube&lt;/a&gt; and other video sites have lowered the quality bar and made this okay.  Dan has become the face of Digipede and he tries to make the videos informative and educational.  More "here’s what’s in it for you" and no "here’s why you need to buy this".&lt;br /&gt;&lt;br /&gt;- Talk to Everyone: We talk to anyone and everyone.  That’s how Dan got on &lt;a href="http://www.dotnetrocks.com/"&gt;DotNetRocks!&lt;/a&gt;.  He told the guys what the Digipede Network can do, they thought it was cool, and now you can listen to Dan and Carl &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=0182"&gt;talk&lt;/a&gt; about grid computing.  Dan just asked.  What’s the worst anyone will say?  If they say "No" you’re no worse off than you were before. &lt;br /&gt;&lt;br /&gt;- Give Presentations:  I will talk to any group that is within a 4 hour drive of Oakland, CA.  I will fly to any city where I can get a $250 or less round-trip ticket.  Just get me 20 people to show up to hear what I have to say.  But I don’t just talk about grid computing and Digipede.  I talk about concurrent software development.  I did this because the first person I approached about presenting was Oliver Nguyen, President of the &lt;a href="http://www.baynetug.org/DesktopDefault.aspx"&gt;Bay .NET User Group&lt;/a&gt;.  Oliver was very helpful and he pointed out that .NET user groups don’t want a sales pitch.  They want to leave the presentation with something that they can use right away.  So, I talk about concurrent software development, why it’s important, design considerations, and two concurrency tools: threads and grid objects.  &lt;br /&gt;&lt;br /&gt;- Piggy Back on Partners:  The Digipede team works hard to form solid, positive relationships with our partners.  Especially our large partners who have significantly more resources than we do.  This really paid off for Supercomputing 2006 because we were invited to hang-out in HP’s booth.  And for the SIA Management Technology conference we were in the Microsoft booth AND in the Microsoft break room.  The Microsoft break room was very cool because it was where Microsoft, HP and Digipede products where being demonstrated working together by a Microsoft employee.  Hardware: HP Proliant Servers; OS: Microsoft’s Windows Computer Cluster Server 2003; Software to pull it all together and demo: Digipede.  This was great.  &lt;a href="http://www.powersunfiltered.com/"&gt;John&lt;/a&gt; blogs a lot about partnering.  &lt;br /&gt;&lt;br /&gt;- Webcasts:  We also have taken advantage of doing webcasts with MSDN.  These webcasts are free, on a Microsoft site, and searchable.  The fact that the webcasts are hosted by Microsoft adds validity to the presentations.  I see these webcasts as being evangelistic, we also do monthly webcasts but those are presented to folks who have identified themselves as prospects.&lt;br /&gt;&lt;br /&gt;- Make it Easy:  We provide a free &lt;a href="http://www.digipede.net/products/dev-edition.html"&gt;Digipede Network Developer’s Edition&lt;/a&gt; which is a fully functional Digipede Network, the only limitation is that this version only supports two compute nodes.  But this is enough for people to see how easy it is to set up and use, and to see a performance improvement.  There are plenty of code samples and complete documentation.  Providing the Developer Edition has helped us get free reviews.  Mike Gunderloy of &lt;a href="http://www.larkware.com"&gt;Larkware&lt;/a&gt; was kind enough to do an unsolicited &lt;a href="http://www.larkware.com/NewReviews/digipede.aspx"&gt;review&lt;/a&gt;.  This was awesome.&lt;br /&gt;&lt;br /&gt;- Community:  We have a &lt;a href="http://support.digipede.net/community/"&gt;community&lt;/a&gt; board that is one way we communicate with users.  What’s great about using a forum format is that if we’re not here, the board is.  So if someone runs into a problem they can search to see if someone else has run into the same issue or post to get help.  I did like the idea from the SAP evangelist about using a point system to encourage more participation, but we haven’t implemented anything like that...yet. &lt;br /&gt;&lt;br /&gt;These are all low cost techniques that we have been using to spread the message that, "Yes Virginia, you can do grid computing on Windows and it’s really easy."  You can even &lt;a href="http://krgreenlee.blogspot.com/2006/02/digipede-distributing-excel.html"&gt;grid-enable&lt;/a&gt; Microsoft Excel.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Customer Evangelists Rock!&lt;/strong&gt;&lt;br /&gt;Customer evangelists are the most credible and enthusiastic messengers.  I wish I had a hundred.  What more can I say?  Except that I wish it was easy to identify who has the potential to become a customer evangelist.  As was pointed out by many of the presenters, these folks are often not the ones you were targeting. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Things I Learned&lt;/strong&gt;&lt;br /&gt;Most of what I learned on Monday validated what we are already doing.  But there were some other great ideas and they came from &lt;a href="http://blog.guykawasaki.com/"&gt;Guy’s&lt;/a&gt; presentation.&lt;br /&gt;&lt;br /&gt;- Go with your strengths.  Guy pointed out that a product may be built for a specific market or to solve a specific problem, but if users come up with something else...support that something else. &lt;br /&gt;&lt;br /&gt;- People see things through the lense of what they already know.  Wow.  Great point.  Obvious point, but only after it was stated. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;This was a great event and I’m glad I went.  I think evangelism has become an important part of the product life-cycle.  Yes, I said product life-cycle.  Because evangelists are also educators and remember that a product is far more than the software or hardware.  It’s all the other stuff that makes it easy for customers to find value.  If you’re interested in learning more about Technical Evangelism then I recommend you join &lt;a href="http://www.gnote.ws/"&gt;gnote&lt;/a&gt;.  It’s very easy and it’s free. &lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/digipede" rel="tag"&gt;Digipede&lt;/a&gt;, &lt;a href="http://technorati.com/tag/grid%20computing" rel="tag"&gt;Grid Computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/distributed" rel="tag"&gt;Distributed&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Excel" rel="tag"&gt;Excel&lt;/a&gt;, &lt;a href="http://technorati.com/tag/technical%20evangelism" rel="tag"&gt;Technical Evangelism &lt;/a&gt;, &lt;a href="http://technorati.com/tag/evangelism" rel="tag"&gt;Evangelism&lt;/a&gt;, &lt;a href="http://technorati.com/tag/gnote" rel="tag"&gt;gnote&lt;/a&gt;,  &lt;a href="http://technorati.com/tag/gnotecon" rel="tag"&gt;GNoTECon&lt;/a&gt;  &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116544596565847771?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116544596565847771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116544596565847771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116544596565847771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116544596565847771'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/12/gnotecon-take-aways.html' title='GNoTECon take aways...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116535119176442757</id><published>2006-12-05T12:34:00.000-08:00</published><updated>2006-12-05T12:39:51.853-08:00</updated><title type='text'>.NET Developer Association...Come On Down!</title><content type='html'>Welcome .NET Developer Association folks.  As you look at this blog to help you decide whether to attend my talk next week, let me tell you that I was a senior server engineer in one of my past lives. This is not a marketing talk.  In the threading section of my talk we will look at C# code, assembler, and discuss common mistakes that threading newbies make.  This section is a deep dive.  The software development community must embrace concurrent software development to take advantage of the new multi-core machines.  It is up to you to be prepared for this by becoming knowledgeable about concurrent software development principles and tools.  The two tools that I will discuss are threads and grid objects. I will also discuss concurrent design and process ideas as well. This is a big subject but an important one.  So I hope to see many of you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116535119176442757?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116535119176442757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116535119176442757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116535119176442757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116535119176442757'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/12/net-developer-associationcome-on-down.html' title='.NET Developer Association...Come On Down!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116500375446697260</id><published>2006-12-01T12:07:00.000-08:00</published><updated>2007-03-06T11:07:23.991-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About: December 2006, USA</title><content type='html'>Well, as usual we’re busy here. Even sandwiched in between holidays we have a lot going on.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;December 4th&lt;/strong&gt;&lt;br /&gt;Dan and I’ll will be attending the first &lt;a href="http://www.gnote.ws/"&gt;Global Network of Technology Evangelists&lt;/a&gt; (GNOTE) event. If you haven’t already registered, get to it. We aren’t presenting but some notables are and some large companies are contributing speakers. This event should prove interesting and educational.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;December 6th&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://powersunfiltered.com/2006/11/30/hpc-event-in-nyc/"&gt;John&lt;/a&gt; and Nathan are going to be in NYC attending a Microsoft HPC event for the financial services market. Not only is John going to present some very cool ways to use the Digipede Network with the newest Microsoft products, one of our clients is also a featured speaker. So if you’re in the NYC area...don’t miss this one.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;December 11th&lt;/strong&gt;&lt;br /&gt;I’ll be in Redmond, WA in the evening presenting to the &lt;a href="http://www.netda.net"&gt;.NET Developers Association&lt;/a&gt; my talk on Concurrent Software Development. Be sure to print this &lt;a href="http://www.netda.net/Event/EventNewsletter.asp?EventDate=12/11/2006"&gt;page&lt;/a&gt; so that you can get in. Make sure that you read the Security Checkpoint section so that you won’t have any problems.&lt;br /&gt;&lt;br /&gt;I also have a late flight out on Tuesday so if you’re interested in setting up a meeting let me know. I’ll be happy to give demos on Tuesday featuring just the Digipede Network.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;December 26th – 29th&lt;/strong&gt;&lt;br /&gt;Well, I’ll be home for Christmas and for me and my family that means Long Island. We’re staying for a week so if you are on Long Island and would like to setup up a meeting, send me an email. We’re staying in Southold so I really don’t want to go all the way into NYC, but I am willing to meet on the island.&lt;br /&gt;&lt;br /&gt;Happy Holidays...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116500375446697260?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116500375446697260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116500375446697260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116500375446697260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116500375446697260'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/12/out-and-about-december-2006-usa.html' title='Out and About: December 2006, USA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116364253600949601</id><published>2006-11-15T17:57:00.000-08:00</published><updated>2006-11-15T18:02:16.183-08:00</updated><title type='text'>Follow up: Inland Empire</title><content type='html'>There were things that we talked about during the presentation that I told the group I would put up a blog post about.  &lt;br /&gt;&lt;br /&gt;Here is a link to the &lt;a href="http://oca.microsoft.com/en/welcome.aspx"&gt;Microsoft Online Crash Analysis&lt;/a&gt; (MOCA) project that we talked about. &lt;br /&gt;&lt;br /&gt;To set a process to use a specific CPU you would use the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDiagnosticsProcessClassProcessorAffinityTopic.asp"&gt;System.Diagnostics.Process.ProcessorAffinity&lt;/a&gt; property.  &lt;br /&gt;&lt;br /&gt;To set a thread to use a specific CPU you would use the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDiagnosticsProcessClassProcessorAffinityTopic.asp"&gt;System.Diagnostics.ProcessThread.ProcessorAffinity&lt;/a&gt; property.&lt;br /&gt;&lt;br /&gt;To find out how many processors are available on a machine use the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.environment.processorcount.aspx "&gt;Environment.ProcessorCount&lt;/a&gt; property.&lt;br /&gt;&lt;br /&gt;To find links to SOA with grid computing articles just use your favorite search engine using the terms: SOA “grid computing”.  You will get quite a few hits. Digipedians, &lt;a href="http://et.cairene.net/"&gt;Robert&lt;/a&gt; and &lt;a href="http://westcoastgrid.blogspot.com/"&gt;Dan&lt;/a&gt;, wrote an article for Dr. Dobb's you can find &lt;a href="http://www.drdobbs.com/dept/webservices/193104809"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I can’t remember what other topics we left hanging.  If you were there and remember then post here or send me an email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116364253600949601?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116364253600949601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116364253600949601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116364253600949601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116364253600949601'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/11/follow-up-inland-empire.html' title='Follow up: Inland Empire'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116233195090965872</id><published>2006-10-31T13:57:00.000-08:00</published><updated>2007-03-06T11:07:40.473-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About:  November 14th, Inland Empire, CA</title><content type='html'>While things have been slow on my blog...they have not been slow in my life. I’m off next week to San Bernardino, CA to talk about concurrency, threads, and grid computing. If you missed my talk at the San Gabriel Valley .NET user group, here’s your chance to catch it with the &lt;a href="http://www.iedotnetug.org"&gt;Inland Empire .NET User’s Group&lt;/a&gt;. You should register so that the organizers can plan ahead.&lt;br /&gt;&lt;br /&gt;This will be my first time to San Bernardino, although the county figured very largely in my life a few years ago. My youngest son is adopted out of the foster care system. But he is the second child that we had been presented with. The first child was living in San Bernardino. After evaluating his medical needs, we had decided that we were not going to be a good fit. He has a heart condition which requires good temperature control in the home and no stairs. Our house is a converted cabin with no insulation and the front door of the house is 36 steps up from the street. Anyone who can read knows that the housing prices in the Bay Area are crazy, so moving wasn’t an option. We always wonder about James. How would our lives be different if he had joined our family? How would his life have been different? Who is his family now? How is he doing?&lt;br /&gt;&lt;br /&gt;So, I’ll be looking around and thinking about him. And I am looking forward to talking to the group!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116233195090965872?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116233195090965872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116233195090965872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116233195090965872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116233195090965872'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/out-and-about-november-14th-inland.html' title='Out and About:  November 14th, Inland Empire, CA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116111060686502842</id><published>2006-10-17T11:42:00.000-07:00</published><updated>2007-03-06T11:08:00.275-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About: October 18th, San Gabriel Valley, CA</title><content type='html'>Wow! I’ve been writing a ton of articles...unfortunately I’ve been so busy they haven’t made it to the blog. I’m off to Monrovia, CA tomorrow to talk to the &lt;a href="http://www.sgvdotnet.org"&gt;San Gabriel Valley .NET User Group&lt;/a&gt; about concurrency.&lt;br /&gt;&lt;br /&gt;When I had started talking to the Digipede folks about joining their team I hadn’t given a lot of thought to understanding what I love about software development. Over the last year I have found myself evaluating my career and thinking back on the products and projects I loved. From a technical perspective: I love the low level stuff, I love debugging, and I love concurrency. I also love to teach and coach so I’m finding that presenting on concurrency is a lot of fun. I also believe that helping people understand concurrency design issues and how threading works, and sharing hard-earned lessons improves the quality of products we deliver. My stepfather Gary always said, “Leave things better then you found them.” That is always my hope when I give one of these talks. That people have at least one take away from the talk that will help them be a better engineer.&lt;br /&gt;&lt;br /&gt;So! I’ll be down south tomorrow. If you’re in the area join us. Make sure to register and bring $5 for the pizza.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116111060686502842?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116111060686502842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116111060686502842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116111060686502842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116111060686502842'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/out-and-about-october-18th-san-gabriel.html' title='Out and About: October 18th, San Gabriel Valley, CA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116051619711581478</id><published>2006-10-10T14:34:00.000-07:00</published><updated>2006-10-10T14:36:37.130-07:00</updated><title type='text'>Silicon Valley Code Camp: Wrap up</title><content type='html'>Well, I had a lot of fun on Sunday with both of my presentations; both were well attended, and in both I had some really good questions and contributions from the attendees.  One of the things that I was very surprised to see was the number of women at the event.  I’ve been in this industry since 1987 and I had grown accustomed to being very outnumbered by the men.  Many times, I was the only woman.  Not on Sunday.  It’s nice to see the industry changing.  And perhaps this change will mean that being successful in this industry as a woman, doesn’t require that a woman be 4x better than all the men.  &lt;br /&gt;&lt;br /&gt;For all of you who have submitted session reviews: Thank you.  Detailed reviews are valuable tools to help improve a presentation.  However, some of the reviews pointed out a problem that I also see reflected in the world of blogging.  People don’t read.  Or maybe I made too many assumptions about their comprehension of what I wrote.  In the future I’ll try to provide a clearer title.  The reviews for my debugging session went from really liked the session to the session was useless.  What’s interesting to me is that the people who didn’t like the session didn’t seem to understand what I was planning to talk about.  I specifically stated in the session description that we would be looking at the disassembly, register, and memory windows.  Those windows have little value if we don’t talk about Assembly.  A lot of debugging is learning to creatively use the tools that you have available to you.  If you don’t understand the information the tools expose then you won’t be able to do that.&lt;br /&gt;&lt;br /&gt;I think that both debugging and performance are two huge subjects that we could do more to talk about and, as I suggested in the debugging session, I think we would all benefit from targeted performance and debugging conversations.&lt;br /&gt;&lt;br /&gt;I also realized that I really don’t know what the definition for Beginner, Intermediate, and Advanced are.  Especially in technology.  While I think it is easier to assess a person’s level as an athletic coach, determining the level for a technology presentation is harder.  Another factor that a lot of people don’t realize is that in any presentation each attendee brings unique skills and experiences to the session.  This makes it hard for a presenter to put together a generic presentation that will benefit everyone.  Next code camp, I’ll ask the organizers if they can post some standard level definitions so that we will all have a better idea what to expect.&lt;br /&gt;&lt;br /&gt;For those of you who wanted more in the area of grid computing, in particular Digipede...Well, out of respect for the code camp I tried to stay away from a sales type of presentation.  I encourage you to go to this &lt;a href="http://www.digipede.net/products/dev-edition.html"&gt;webpage&lt;/a&gt; and request a free copy of the Digipede Network Developer Edition.  Yes, you do have to fill out some contact information, but really it’s not that big a deal.  The Digipede Network Developer Edition is a fully featured version of the Digipede Network Team Edition.  The only limitation is that your grid can only install two Agents.  But you get everything.  The Digipede Server, Digipede Agent, Digipede Control (administration tool), Digipede Workbench (GUI app that creates and runs Jobs via a wizard), Digipede Framework SDK (this is the cool stuff), and complete documentation with code samples.  And if you were looking for more information you can also cruise around the main site.  We’ve put up a bunch of videos and some whitepapers to try and make it easier for people to understand the technology.&lt;br /&gt;&lt;br /&gt;Many thanks to the code camp organizers and to all the volunteers and donors who made the event such a success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116051619711581478?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116051619711581478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116051619711581478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116051619711581478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116051619711581478'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/silicon-valley-code-camp-wrap-up.html' title='Silicon Valley Code Camp: Wrap up'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116008858909613612</id><published>2006-10-05T15:41:00.000-07:00</published><updated>2006-10-05T15:49:49.113-07:00</updated><title type='text'>Show me the money!</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7692/1596/1600/snapontoolchest.gif"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7692/1596/400/snapontoolchest.jpg" border="0" alt="" /&gt;&lt;/a&gt;The other evening I was talking with some software folks about technology and software development.  The topic ranged over to which language is better.  For those of you who have been reading my blog for awhile you know that I think these types of conversations are ignorant.  Before it got too heated, I just had to break in and say, "It’s about the money."  That stopped the conversation track cold because all the participants were senior level, experienced software development folk.  And they know it’s all about the money.  If someone pays you to write code for them...then every technology choice is some how tied to money.  If it is a commercial &lt;br /&gt;application then the software needs to generate revenue to pay your salary.  If it is an internal application then it should save the company money.  The only time that software development is only about the technology is when you write it for free. &lt;br /&gt;&lt;br /&gt;Understanding the business impact of your technology choices is one of the differences between being an architect and being a coder.  An architect will look at the problems and make technology choices that are balanced between short-term objectives (time to market, stability, performance, scalability, security, ...) and long-term objectives (maintainability, enhance ability, marketability, ...).  Developers who make pure technology choices (i.e. without considering the business aspects of the choice) are far more likely to build a product that will fail.  &lt;br /&gt;&lt;br /&gt;Over the years I’ve had the opportunity to work for quite a lot of startups.  Startups that were founded by pure technologists tended to fail because the leaders didn’t understand marketing and sales.  But not just marketing and sales from the perspective of what the marketing and sales teams needed to do, but in terms of what the technology needed to do to satisfy a market.  Any market.  &lt;br /&gt;&lt;br /&gt;I have also worked for companies started by sales folks who understood the sales-side of things but didn’t understand the technology.  These companies are interesting because they jumped right out of the gate but the technology wasn’t solid enough to standup to customer use.  (Just for the record, I often come in late on companies.)&lt;br /&gt;&lt;br /&gt;Companies with the highest success rates were those where the founding teams were balanced and could communicate between the technology and sales sides.  Building high quality products, using the right technologies for the problem space, in a market that needs the solution.  &lt;br /&gt;&lt;br /&gt;Just remember the old adage, "If all you have is a hammer, then everything is a nail."  And keep in mind what that means.  These days the software community has a wide assortment of tools to choose from.  There is a smorgasbord of choices.  We have today the equivalent of my father’s &lt;a href="http://www.snapon.com/"&gt;SnapOn&lt;/a&gt; tool chest.  Use it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116008858909613612?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116008858909613612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116008858909613612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116008858909613612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116008858909613612'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/show-me-money.html' title='Show me the money!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116008430880666058</id><published>2006-10-05T14:11:00.000-07:00</published><updated>2006-10-05T14:40:04.140-07:00</updated><title type='text'>Digipede and Dr. Dobbs</title><content type='html'>&lt;a href="http://et.cairene.net/"&gt;Robert&lt;/a&gt; and &lt;a href="http://westcoastgrid.blogspot.com/"&gt;Dan&lt;/a&gt; wrote an article for &lt;a href="http://www.drdobbs.com/"&gt;Dr. Dobbs&lt;/a&gt; a few months ago and it was published today.  The article is &lt;a href="http://www.ddj.com/dept/webservices/193104809"&gt;Scaling SOA with Distributed Computing&lt;/a&gt;.  I just finished reading it and I think the guys did a great job.  I encourage you to check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116008430880666058?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116008430880666058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116008430880666058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116008430880666058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116008430880666058'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/digipede-and-dr-dobbs.html' title='Digipede and Dr. Dobbs'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-116008263222157792</id><published>2006-10-05T14:08:00.000-07:00</published><updated>2006-10-05T14:10:32.250-07:00</updated><title type='text'>Links: October 5, 2006</title><content type='html'>Concurrency/Performance &lt;br /&gt;&lt;a href="http://weblogs.asp.net/miked/archive/2006/09/28/UI-Controls-and-Threading.aspx"&gt;UI Controls and Threading&lt;/a&gt;&lt;br /&gt;&lt;a href="http://research.microsoft.com/~birrell/papers/ThreadsCSharp.pdf"&gt;An Introduction to programming with C# Threads&lt;/a&gt;&lt;br /&gt;&lt;a href="http://research.microsoft.com/~birrell/talks/Threads-04-2004.ppt"&gt;Programming with C# Threads Presentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/cbreisch/archive/2006/09/05/90281.aspx"&gt;Do I Thread Thee? Let Me Count The Ways...&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/08/Concurrency/default.aspx"&gt;What Every Dev Must Know About Multithreaded Apps &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.theserverside.net/tt/articles/content/PracticalDotNet2/PracticalDotNet2Ch5.pdf"&gt;Processes, threads and synchronization&lt;/a&gt;  &lt;br /&gt;&lt;a href="http://www.albahari.com/threading/"&gt;Threading in C#&lt;/a&gt;&lt;br /&gt;&lt;a href="http://xblog.xman.org/articles/2006/09/12/on-efficiency-scalability-and-the-wisdom-to-know-the-difference"&gt;On Efficiency, Scalability, and the Wisdom to Know the Difference&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjunkies.com/WebLog/paul/archive/2006/10/03/149147.aspx"&gt;Multicore Standards&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjunkies.com/WebLog/paul/archive/2006/09/27/148465.aspx"&gt;Quad Core&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjunkies.com/WebLog/paul/archive/2006/08/25/144721.aspx"&gt;Asynchronous Tasks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/gauravbi/archive/2006/09/04/740027.aspx"&gt;Understand problem before you try to find a solution&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ask.slashdot.org/article.pl?sid=06/10/04/0435232"&gt;To Grid Or Not To Grid?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/ccalderon/archive/2006/10/02/92969.aspx"&gt;Clustering in VMWare 1.0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://weblog.raganwald.com/2006/09/surfs-up.html"&gt;Surf's Up!&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.labnotes.org/2006/08/29/why-processes-scale-better-than-threads/"&gt;Why Processes Scale Better Than Threads&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/johnsperfblog/archive/2006/08/29/89691.aspx"&gt;Code Analysis Tools&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Debugging&lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/patrick/archive/2006/10/04/dotTrace-2.0-beta.aspx"&gt;dotTrace 2.0 beta&lt;/a&gt;&lt;br /&gt;&lt;a href="http://csharpfeeds.com/post.aspx?id=2055"&gt;Simpler Debugger with DebuggerTypeProxy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://yexley.net/blogs/bob/archive/2006/09/27/Custom-service-controller-for-debugging-windows-services.aspx"&gt;Custom service controller for debugging windows services&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/WallabyFan/archive/2006/09/01/89994.aspx"&gt;Deep Troubleshooting Tools for Windows - Kernel Memory Space Analyzer Version 8.1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/wndp/archive/2006/10/05/Debugging-Winsock-LSPs.aspx"&gt;Debugging Winsock LSPs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/geekspeak/archive/2006/10/04/Resources-for-Debugging-.NET.aspx"&gt;Resources for Debugging .NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/jmstall/archive/2006/10/04/debugging_5F00_ngen_5F00_code.aspx"&gt;Debugging Ngen code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.gotdotnet.com/parthas/archive/2006/10/04/Debug-a-process-which-is-attached-to-another-Debugger.aspx"&gt;Debug a process which is attached to another Debugger&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/alanpa/archive/2006/10/02/Debugging-100.aspx"&gt;Debugging 100&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Embedded/Mobile &lt;br /&gt;&lt;a href="http://weblogs.asp.net/rosherove/archive/2006/09/18/Blogging-about-embedded-software-development.aspx"&gt;Blogging about embedded software development&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjunkies.com/WebLog/paul/archive/2006/09/27/148571.aspx"&gt;Mobile Trends and Technologies&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dotnetjunkies.com/WebLog/paul/archive/2006/09/16/147329.aspx"&gt;Windows Mobile Labs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/walterst/archive/2006/10/03/Windows-XP-Embedded-Virtual-Labs.aspx"&gt;Windows XP Embedded Virtual Labs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ce_base/archive/2006/09/01/735940.aspx"&gt;Understanding Memory Sections in config.bib, boot.bib, and OEMAddressTable in Windows CE 5.0 and 6.0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/embedded/archive/2006/10/04/Component-Enhancements-in-Windows-XP-Embedded-SP2-Feature-Pack-2007.aspx"&gt;Component Enhancements in Windows XP Embedded SP2 Feature Pack 2007 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SOA/SaaS&lt;br /&gt;&lt;a href="http://weblogs.asp.net/ahoffman/archive/2006/10/04/A-Service-is-Not-an-Object-or-Component.aspx"&gt;A Service is Not an Object or Component&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.davidchappell.com/blog/2006/09/responses-to-soa-and-reality-of-reuse"&gt;Responses to SOA and the Reality of Reuse&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/SabotsShell/archive/2006/10/03/93068.aspx"&gt;More SOA tips from the real world&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/rjacobs/archive/2006/10/05/Patterns-and-Anti_2D00_Patterns-for-SOA.aspx"&gt;Patterns and Anti-Patterns for SOA&lt;/a&gt;&lt;br /&gt;&lt;a href=" http://blogs.msdn.com/federaldev/archive/2006/10/04/Microsoft_3A00_-Real_2D00_world-SOA.aspx&lt;br /&gt;"&gt;Microsoft: Real-world SOA&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/stevecla01/archive/2006/10/04/Understanding-SaaS-Architecture-Powerpoint-Presentation.aspx"&gt;Understanding SaaS Architecture Powerpoint Presentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Learning &lt;br /&gt;&lt;a href="http://freecomputerbooks.com/"&gt;Free Computer Books, Tutorials &amp; Lecture Notes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/tmarman/archive/2006/09/01/Intro-to-Cryptography-Course.aspx"&gt;Intro to Cryptography Course&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/jschreuder/archive/2006/10/03/High-level-White-Papers-on-.Net-framework-3.0.aspx"&gt;High level white papers on .Net framework 3.0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/jschreuder/archive/2006/10/03/Patterns-_2600_amp_3B00_-Practices-Guidance-Explorer.aspx"&gt;Patterns and Practices Guidance Explorer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2006/09/19/Podcasts-I-listen-to-_2D00_-level-100.aspx"&gt;Podcasts I listen to - level 100&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/devdevin/archive/2006/09/30/92821.aspx"&gt;Free Books, Journals, &amp; Articles on Computer Science, Engineering, Programming, &amp; Math&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/Karthiksblog/archive/2006/09/28/92569.aspx"&gt;Free MS Courses and Workshops &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just Fun&lt;br /&gt;&lt;a href="http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2006/09/30/148798.aspx"&gt;My foray into XNA : Basic Pixel Perfect Collision Detection&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/shahed/archive/2006/09/27/92493.aspx"&gt;Write your own Code Generator or Template Engine in .NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/iliast/archive/2006/10/03/A-Comparison-of-the-Linux-and-Windows-Device-Driver-Architectures.aspx"&gt;A Comparison of the Linux and Windows Device Driver Architectures&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/iliast/archive/2006/10/02/Key-Driver-Concepts-and-Driver-Development-books.aspx"&gt;Key Driver Concepts and Driver Development books&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-116008263222157792?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/116008263222157792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=116008263222157792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116008263222157792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/116008263222157792'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/links-october-5-2006.html' title='Links: October 5, 2006'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115999767709805792</id><published>2006-10-04T14:29:00.000-07:00</published><updated>2007-03-06T11:08:14.590-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About: October 8th, Silicon Valley Code Camp</title><content type='html'>This Sunday I’m giving two talks at the &lt;a href="http://www.siliconvalley-codecamp.com"&gt;Silicon Valley Code Camp&lt;/a&gt; in Los Altos Hills, CA. Foothill College is hosting the event and from the pictures it looks like they have a nice campus. Registration is still open and the event is free, so if you're in the San Francisco Bay Area...come on down.&lt;br /&gt;&lt;br /&gt;Dan is also presenting at this event and you can catch his session titled ".NET Development and Excel Services" at 9:15 on Sunday morning. Dan has been working with Excel Services for several months now and did an MSDN webcast on the subject this morning. You will soon be able to watch that webcast &lt;a href="http://www.microsoft.com/communities/eventdetails.mspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032308755%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;here.&lt;/a&gt; Dan also put up a post for more information on Excel Services &lt;a href="http://westcoastgrid.blogspot.com/2006/10/webcast-resources.html"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sunday at 1:15 PM Concurrent Software Development&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;** this is the blurb from the session wiki **&lt;br /&gt;&lt;br /&gt;My talk on concurrent software development was designed for a two hour session. Because the code camp format is one hour I’m dropping most of the high level discussion about why concurrency matters and concurrency design. Instead you will find some of my thoughts here as well as links to references where you can learn more. I will also continue to blog on concurrency so I encourage you to visit from time to time. (http://krgreenlee.blogspot.com)&lt;br /&gt;&lt;br /&gt;Why Concurrency Matters&lt;br /&gt;&lt;br /&gt;Concurrent software development is not new. If you’ve written code that uses threads then you’ve written code that, in theory, is concurrent. However, with computers that have only one CPU, true concurrency does not happen. The opportunity for real concurrency is increasing. Recently the hardware vendors have started making multi-core machines. A dual-core laptop is now on the market and affordably priced. This puts multi-core machines into the hands of the average user. Previously, the expense of multi-processor boxes had relegated those machines to the server room. No more.&lt;br /&gt;&lt;br /&gt;The reason for the shift to multi-core machines is that the faster chips are generating too much heat. Until a cooling solution is found we are not going to see any faster chips. To get around this problem the hardware developers have started adding cores (usually with slower chips) and increasing the on chip cache size.&lt;br /&gt;&lt;br /&gt;In the past when hardware developers came out with a faster chip, software automatically got faster. This was great for both developers and users. But with multi-core machines this is not the case. For the software to run faster, the software companies are going to have to modify their software to take advantage of the available cores. Software that is already concurrent, but never tested on multi-processor machines, may fail.&lt;br /&gt;&lt;br /&gt;For a long time software developers could count on the hardware getting faster so an emphasis on performance, for many products, didn’t exist. I’ve even had conversations with engineers who told me to stop worrying about the efficiency of an algorithm because of that very fact. Well folks, responsibility for performance improvement has landed squarely back into our laps. We, the software development community, have work to do.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gotw.ca/publications/concurrency-ddj.htm/"&gt;"The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software" – Herb Sutter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Concurrency Design Considerations&lt;br /&gt;&lt;br /&gt;You've decided that you need to add concurrency to your applications. The questions then becomes, "Where?" and "How?" Finding those areas in your applications that would benefit from concurrency is called decomposition. There is data decomposition and functional decomposition. And sometimes there is overlap between them. Identifying opportunities for performance improvement is an ongoing process and that is the same for concurrency opportunities. As your understanding of concurrency improves so will your ability to identify those opportunities.&lt;br /&gt;&lt;br /&gt;Let's say that you have an application that processes very large EDI files. These files come in at the end of each month and it's a mad house trying to get the files processed quickly. Right now the application is fed a file and runs for six hours. How can you use concurrency to speed that up? Programmatically what is happening is an ETL (extract, transform, and load) process. Because you know that there are transaction boundaries within the EDI file, you can easily break the large EDI file up into smaller EDI files. This is where your opportunity to add concurrency occurs. By breaking up the large file into much smaller ones, the application can then process each of the smaller files concurrently. Significantly reducing the processing time.&lt;br /&gt;&lt;br /&gt;Or let's say you have an application that does risk analysis. You are running a lot of Monte Carlo simulations to attempt to evaluate the risk potential of an investment. The application execution takes eight hours. Because a Monte Carlo simulation is based on random number generation it is an algorithm that is very parallelizable. With concurrency you can significantly reduce the execution time or if the execution time is fine you could change the algorithm to run more simulations in an attempt to get a more accurate result.&lt;br /&gt;&lt;br /&gt;Some other areas to look at during decomposition are places where the application interfaces with a slow device or a human being. A slow device may be the hard drive, and you may want one execution path that reads/writes to the hard drive while another execution path processes the data. I think one of the most common places to find parallel execution paths is between the UI (foreground thread) and a background thread. Giving the user the impression that an application is responsive is an important contributing factor to how the average user perceives the value of a product.&lt;br /&gt;&lt;br /&gt;Another area to look for concurrency opportunities is in loops. Long running loops, where loop iterations do not have dependencies on past iterations, are great candidates.&lt;br /&gt;&lt;br /&gt;The other two concurrency design considerations are synchronization and communication. These two areas are tool dependent. Meaning that the language and tools you use to write your application directly affect your synchronization and communication options.&lt;br /&gt;&lt;br /&gt;The above is a quick summary of the first half of my two hour session. The rest is code. However, if you want to read some good article on concurrency and threading I suggest you read the following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/09/CLRInsideOut/"&gt;"Using concurrency for scalability" – Joe Duffy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/08/Concurrency/"&gt;"What Every Dev Must Know About Multithreaded Apps" – Vance Morrison&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sunday 10:45 AM VS2005: Debugging Tips and Tricks&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I want this debugging session to be an opportunity for sharing information. I'm planning on looking at the different debug tools. I’ll share some tips and tricks I've learned over the years and I hope that others in attendance will share theirs.&lt;br /&gt;&lt;br /&gt;See you on Sunday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115999767709805792?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115999767709805792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115999767709805792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115999767709805792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115999767709805792'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/10/out-and-about-october-8th-silicon.html' title='Out and About: October 8th, Silicon Valley Code Camp'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115939149643914679</id><published>2006-09-27T14:05:00.000-07:00</published><updated>2007-03-06T11:08:25.958-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About – Sept 28th, San Francisco, CA</title><content type='html'>I’m giving my concurrency talk tomorrow night at 1 Market Street in San Francisco for the Bay .NET User Group. You can register &lt;a href="http://www.baynetug.org/DesktopModules/DetailXEvents.aspx?ItemID=244&amp;amp;mid=49"&gt;here&lt;/a&gt;. The event starts at 6:30. 1 Market Street is an easy BART ride in from the East Bay, just get off at the Embarcadero Station and walk towards the Bay. See you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115939149643914679?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115939149643914679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115939149643914679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115939149643914679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115939149643914679'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/out-and-about-sept-28th-san-francisco.html' title='Out and About – Sept 28th, San Francisco, CA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115939086264357226</id><published>2006-09-27T13:56:00.000-07:00</published><updated>2006-09-27T14:05:07.246-07:00</updated><title type='text'>Digipede Update – Sept 28th, 2006</title><content type='html'>Since I’ve been swamped AND sick...I haven’t blogged about all the cool stuff that has happened here in the last two weeks.  So here is a quick list:&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Digipede Network v1.3 has shipped and for a list of some of the new features follow this &lt;a href="http://www.digipede.net/products/whatsnew.html"&gt;link&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The C++ COM sample is now finished and will soon be available.  Keep an eye on the Digipede Support Sample forum. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dan went to SaasCon early this week and put up a bunch of nice posts from it.  Which you can find &lt;a href="http://westcoastgrid.blogspot.com/2006/09/saascon-2006-keynote-1.html"&gt;here&lt;/a&gt;, &lt;a href="http://westcoastgrid.blogspot.com/2006/09/gp-and-fc-saasing-it-up.html"&gt; here&lt;/a&gt;, &lt;a href="http://westcoastgrid.blogspot.com/2006/09/saascon-i-know-you-are-but-what-am-i.html"&gt; here&lt;/a&gt;, &lt;a href="http://westcoastgrid.blogspot.com/2006/09/wait-i-thought-s-a-s-spelled-panacea.html"&gt; here&lt;/a&gt;, and &lt;a href="http://westcoastgrid.blogspot.com/2006/09/grid-and-saas-callidus-and-sun-say-yes.html"&gt;here&lt;/a&gt;.  &lt;em&gt;It almost looks likes he’s a reporter instead of a developer!&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dan also threw together a VERY rough &lt;a href="http://westcoastgrid.blogspot.com/2006/09/grid-computing-in-action.html"&gt;video&lt;/a&gt; that does a great job of demonstrating the types of performance gains users can get with the Digipede Network.  While he did this simply to play around with YouTube! and while he was sick, it is really educational to watch.  Keep in mind that there are only 8 or 9 machines on the grid...the grid-side could have won the race in under 4 seconds if there had been one machine per cell (25 machines).  Ultimate in coolness.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Well, that's all the stuff I'm allowed to write about!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115939086264357226?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115939086264357226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115939086264357226' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115939086264357226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115939086264357226'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/digipede-update-sept-28th-2006.html' title='Digipede Update – Sept 28th, 2006'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115938891498814013</id><published>2006-09-27T13:19:00.000-07:00</published><updated>2006-09-27T13:28:47.420-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Concurrency: "To infinity...and beyond!"</title><content type='html'>As many of you know Intel’s Developer Forum happened this week in San Francisco.  Intel announced that they will have quad-core machines on the market in November and 80-core machines in five years...&lt;strong&gt;Slow down&lt;/strong&gt; there big guy!  While quads are something software engineers can understand...80?  What operating system are you going to use?  Because I can’t think of a one.  &lt;br /&gt;&lt;br /&gt;John Dvorak has a nice piece on this very subject that you can read &lt;a href="http://www.marketwatch.com/News/Story/Story.aspx?dist=newsfinder&amp;siteid=google&amp;guid=%7BE095F8B3-9499-45A5-B536-D6A0EDB6E0BF%7D&amp;keyword=" target="_blank"&gt;here&lt;/a&gt;.  It’s validating to see my OS concerns echoed by someone with some clout...maybe the hardware guys will listen.  Once you’ve gone beyond infinity...who cares?  You may get there and realize that’s not where you want to be, because you will find yourself ALL ALONE.  &lt;br /&gt;&lt;br /&gt;Instead. I suggest that once you’ve maxed out what the available OSs can handle...how about working on getting that power miniaturized?  Image the power of quad in a handheld!&lt;br /&gt;&lt;br /&gt;John has a great line:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Ah, yes, I'm guessing that only a few people are aware that whether a chip has two cores or four cores or 80 cores only one core can actually be used with most of today's software.&lt;/blockquote&gt;&lt;br /&gt;Oh, I’m aware.  I’m also aware that many applications that have been designed to take advantage of multiple CPUs... haven’t been thoroughly tested in that environment.  Chaos shall reign!  The reason for this is that engineers started using threads.  Threads are the default concurrency tool because thread support comes with the operating system.  But many engineers treat threads as something akin to message queues.  Simply as a way to separate the user interface (foreground thread) from the actual algorithms (background thread).  So that the user has a responsive experience with the application.  &lt;br /&gt;&lt;br /&gt;On a single CPU machine these threads have to share the CPU, so only one thread is every really running in memory at a given time.  There is no true concurrency happening on a single CPU machine.  This all changes as you start adding CPUs.  And many applications aren’t going to be ready.&lt;br /&gt;&lt;br /&gt;I like John’s idea of the OS dedicating cores to specific applications.  The real-time implications of this are staggering.  While John is thinking Universal Translator...I’m thinking something that is smart enough to clean my toilet. All I need is some duct tape, a toilet brush, new &lt;a href="http://shop.lego.com/product.asp?p=8527&amp;cn=55&amp;d=13&amp;t=5"&gt;Lego Mindstorms&lt;/a&gt; kit, wireless network, ......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115938891498814013?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115938891498814013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115938891498814013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115938891498814013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115938891498814013'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/concurrency-to-infinityand-beyond.html' title='Concurrency: &quot;To infinity...and beyond!&quot;'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115827542749400874</id><published>2006-09-14T16:04:00.000-07:00</published><updated>2006-09-14T16:10:27.523-07:00</updated><title type='text'>Things on my mind....</title><content type='html'>I told the Santa Barbara .NET User Group that I’d put up a link for my slides and some of the code...&lt;a href="http://www.digipede.net/downloads/SantaBarbara_091206.zip" target="_blank"&gt;here it is&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Personal&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I am &lt;b&gt;&lt;em&gt;exhausted!&lt;/em&gt;&lt;/b&gt;  I think I really over did it this week.  I only skated once this summer and that was for a game against the Oakland Seals.  Sunday night I ran the Red evaluation practice so I was standing on my skates, non-stop, for almost 2 hours.  Right after that practice was the Blue evaluation which I had agreed to be a benchmark skater for.  That was a mistake.  Besides the fact that my feet were killing me...I tried to keep up with the 20 some things and Marcel.  Being out of shape and not having my hockey legs back, I didn’t make it to the end of the practice.  I think if people were really being evaluated against me, then everyone is now in Blue.  On the plus-side I looked so comical out there; the evaluators couldn’t stop laughing at me.  Or maybe that is a bad thing...&lt;br /&gt;&lt;br /&gt;Anyway, Monday and Tuesday were filled with the muscle aches and pains that come with trying to do too much.  After the five and a half hour drive down to Santa Barbara on Tuesday, I was really stiff.  I had fun with the .NET User Group, but I don’t think they got me at my best and one of my thread code demos wasn’t setup correctly, fortunately &lt;a href="http://rhope.blogspot.com/" target="_blank"&gt;Rob&lt;/a&gt; spotted the problem and I was able to move on.  One note on Rob, he’s trying to start a .NET User Group in San Luis Obispo so if you live around there you should contact him.&lt;br /&gt;&lt;br /&gt;After a really bad night’s sleep at one of the Santa Barbara Motel 6s, I made the long drive back to Oakland on Wednesday.  A great thing that happened last night was that my 4 year old, who normally doesn’t want me around, talked to me for forty-five minutes.  By his own choice.  That was really cool.  He moved in with us when he was two and his adoption was finalized shortly before his third birthday.  While I’ve been trying to help him attach to me, our relationship over the last two years has been developing very slowly.  He usually doesn’t want anything to do with me.  Maybe we had a break through, which would be awesome, but with kids sometimes a break through is followed by a regression, so I’ll have to wait and see if this new found affection for me sticks.  Here’s hoping.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Digipede&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;John is back from GridWorld.  His talk went well and his room was full.  Digipede also won an award for &lt;a href="http://www.gridtoday.com/grid/888750.html" target="_blank"&gt;Best price/performance Middleware solution for Grid implementation&lt;/a&gt;.  That’s a mouthful!  The award was awarded as a tie between Digipede and United Devices.  It’s exciting to tie with a company that has such a history.  John also has an article out on GridToday that you can find &lt;a href="http://www.gridtoday.com/grid/889122.html" target="_blank"&gt;here&lt;/a&gt;.   &lt;br /&gt;&lt;br /&gt;As usual we’re busy at the office.  If you missed the &lt;a href="http://www.digipede.net/downloads/20060912_Digipede_DigitalDimension_PR.pdf" target="_blank"&gt;press release&lt;/a&gt;, we have announced &lt;a href="http://www.digitaldimension.com/" target="_blank"&gt;Digital Dimension&lt;/a&gt; as a customer.  There are a lot of things to get excited about when you land a customer like Digital Dimension.  One big thing is that we can talk about them!  Companies that do rendering have been using grid computing solutions to speed up the render process for a long time because rendering speed has a direct impact on their income.  Financial service companies have also been in grid computing for a long time for similar reasons.  The major difference between the two industries is that financial service companies are VERY close mouthed about the technologies they use.  Having a customer that we can talk about, doing something people understand, in an early grid adoption industry, will really help our message.  &lt;br /&gt;&lt;br /&gt;Now if I can keep my eyes open I think there is a school event tonight...but I think I’m going to stay home with the kids and let them walk all over me.  I can do that lying down.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115827542749400874?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115827542749400874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115827542749400874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115827542749400874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115827542749400874'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/things-on-my-mind.html' title='Things on my mind....'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115747798473204685</id><published>2006-09-05T10:35:00.000-07:00</published><updated>2007-03-06T11:08:56.365-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About – Sept 12th, Santa Barbara, CA</title><content type='html'>September 12th is going to be a very busy day for Digipedians. (See I just made up a new word...like I said I did &lt;a href="http://krgreenlee.blogspot.com/2006/08/i-virtual-labs.html"&gt;here&lt;/a&gt; and I actually did &lt;a href="http://krgreenlee.blogspot.com/2005/11/grid-computing-steps-to-gridified.html"&gt;here&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.powersunfiltered.com/"&gt;John&lt;/a&gt; is giving a talk at &lt;a href="http://www.gridworld.com/live/42/"&gt;GridWorld&lt;/a&gt; on &lt;a href="http://gridworld.com/live/42/events/42WDC06A/conference/tracksessions/Solutions%20Track/QMONYA04RJYV"&gt;"Grid Computing in Small and Medium Businesses"&lt;/a&gt; at 10am. If you’re in DC then don’t miss this talk. The wholesale adoption of grid computing as a viable solution to performance and scalability issues starts by making grid computing accessible to the majority of business users. That means small and medium size businesses. The solution has to not only be affordable out of the box (the purchase price) but affordable long term (the cost of grid-enabling and maintaining the software), i.e. the total cost of ownership has to be in the thousands of dollars and not the millions. The Digipede Network has hit the target on this and John will talk about how our SMB customers got immediate value from the Digipede Network.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://westcoastgrid.blogspot.com/"&gt;Dan&lt;/a&gt; will also be at GridWorld. Although not presenting. If you have any questions about grid computing or cluster computing on Windows, I encourage you to track him down. With the number of CCS presentations he’s been to, the number of grid computing presentations he’s given, and the fact that he has product management responsibilities here...I think he qualifies as an expert on clusters and grids for Windows.&lt;br /&gt;&lt;br /&gt;Nathan, our esteemed VP of Customer Services will be covering the &lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032299705"&gt;MSDN Event&lt;/a&gt; - Get Connected with the .NET Framework 2.0 and Visual Studio 2005 in Dublin, CA. He’ll be there from about 12pm to 5pm. We’ll have a table setup where you can stop by and talk to Nathan about the Digipede Network. I was supposed to cover this but I’ll be...&lt;br /&gt;&lt;br /&gt;Kim, that would be me, is off to Santa Barbara to give a presentation at the &lt;a href="http://www.sbdotnetug.org/"&gt;Santa Barbara .NET Developer Group&lt;/a&gt;. I’ll be talking about concurrent software development, threading, and grid objects.&lt;br /&gt;&lt;br /&gt;And for anyone interested in seeing a demo of the Digipede Network and you aren’t able to get to Washington, DC, Dublin, CA, or Santa Barbara, CA...Nathan and I will be hosting a webcast that morning at 10am PST. Busy day for us here. But a good kind of busy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115747798473204685?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115747798473204685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115747798473204685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115747798473204685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115747798473204685'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/out-and-about-sept-12th-santa-barbara.html' title='Out and About – Sept 12th, Santa Barbara, CA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115740687920349953</id><published>2006-09-04T14:52:00.000-07:00</published><updated>2006-09-04T14:54:39.216-07:00</updated><title type='text'>Mouse tip for kids</title><content type='html'>About a month ago a very nice door-to-door saleswoman came to my house to sell me kid’s books.  It wasn’t a hard sell and she did a good job so I bought some stuff.  One of the things I bought was a collection of educational software products.  The software products have really been very good but my four year old has been having problems with the mouse.  &lt;br /&gt;&lt;br /&gt;One problem is that he’s four, so I know he’ll get past that.  Another is that his hand is too small for the mouse, another problem that time will solve.  And yet another problem is that the mouse has two buttons.  Mal suggested that we put a sticker on the mouse button where he needs to push it to control the game.  Today we tried it out and his frustration level was significantly reduced.  In other words, he was able to use the mouse successfully and had a much more positive learning experience.  &lt;br /&gt;&lt;br /&gt;When I’m home and its computer time I make the time to work with kids.  To share the experience with them.  I’ve been extremely surprised at how much my five year old has learned.  Right now he’s really into the science games (Thinking Science by Edmark) and today he totally shocked me with his understanding of animal tracks and basic Newtonian physics (pendulums and ballistics).  I also find myself very impressed with how the games manage to hit on his developmental level.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115740687920349953?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115740687920349953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115740687920349953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115740687920349953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115740687920349953'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/mouse-tip-for-kids.html' title='Mouse tip for kids'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115714179690637479</id><published>2006-09-01T13:14:00.000-07:00</published><updated>2006-09-01T13:16:37.873-07:00</updated><title type='text'>It’s Hockey Time!</title><content type='html'>It’s time for a new hockey season to start.  So if you’re a woman in the San Francisco Bay Area and interested in ice hockey check out the &lt;a href="http://www.ncwhl.com"&gt;Northern California Women’s Hockey League&lt;/a&gt;.  There are four divisions starting from the very beginning level (I don’t even know how to skate) to the advanced (I’ve played in college).  Captains volunteer and pick teams each season so the teams are often different and you’ll get a chance to meet a lot of people.  NCWHL has some great people participating and hockey is certainly a great way to get exercise! &lt;br /&gt;&lt;br /&gt;If you’re a man or woman who is interested in coaching ice hockey...here’s your chance.  Contact the &lt;a href="http://www.ncwhl.com/league/contact.html"&gt;Coaching Coordinator&lt;/a&gt; and let her know your experience and interest.  The league works hard to guarantee coaches for each team in the Green and Red divisions.  And also tries to get coaches for the Maroon division.  &lt;br /&gt;&lt;br /&gt;I took the summer season off from both coaching and playing; I’ve already signed up to skate and had decided to take another season off from coaching.  But when I got an email asking if I would be the on ice coach for the Red placement session...it took me all of 0.5 seconds to decide yes.  While I don’t want to commit to a full season of coaching, I love it so much I’m more than happy to take the one offs!&lt;br /&gt;&lt;br /&gt;If you’re looking for me...I’ll be on the ice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115714179690637479?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115714179690637479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115714179690637479' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115714179690637479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115714179690637479'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/09/its-hockey-time.html' title='It’s Hockey Time!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115689205194553528</id><published>2006-08-29T15:47:00.000-07:00</published><updated>2006-08-29T15:54:12.313-07:00</updated><title type='text'>Passport Problems?</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7692/1596/1600/MSPartnerSignOut.1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7692/1596/400/MSPartnerSignOut.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe it’s bad luck or maybe bad karma...or maybe I’m just stupid.  But I get myself into ALL kinds of trouble with Microsoft Passport.  I have two accounts.  One that is for work and one that is personal.  So maybe that is the problem.  Either way...I just don’t know.  &lt;br /&gt;&lt;br /&gt;The first time I ran into a Passport problem was about two months ago on the &lt;a href="http://forums.microsoft.com/"&gt;Microsoft Community Forums&lt;/a&gt;, I tried to login using my work account and I got "stuck" on a profile page.  Nothing I did could get me past that page...for weeks...but that seems to be fixed now.  Yea. (Microsoft screw-ups 1)&lt;br /&gt;&lt;br /&gt;The second time was when I tried to login to the Microsoft Partner site and I used the wrong Passport account.  That took awhile to figure out because I was so &lt;em&gt;sure&lt;/em&gt; that I had used my work account and not my personal account to register.  (Kim screw-ups 1)&lt;br /&gt;&lt;br /&gt;My latest adventure with Passport is happening on the &lt;a href="https://partner.microsoft.com"&gt;Microsoft Partner&lt;/a&gt; page.  The site has been revamped...I know because I got an email about it.  So I thought I would check it out.  I tried logging in with one account and that failed (I got a message saying that I wasn’t a member, okay, wrong account), so I wanted to try the other account...this is where the fun starts.  I am sad to report that I can push that &lt;strong&gt;Sign Out&lt;/strong&gt; button ALL day long and nothing happens.  It stays a &lt;strong&gt;Sign Out&lt;/strong&gt; button.&lt;br /&gt;&lt;br /&gt;Is it me?  Is it the site?  Is it Passport?  &lt;br /&gt;&lt;br /&gt;Current Screw-up Score:&lt;br /&gt;&lt;br /&gt;Microsoft 1&lt;br /&gt;Kim       1&lt;br /&gt;Unknown   1&lt;br /&gt;&lt;br /&gt;Am I annoyed? Yes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115689205194553528?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115689205194553528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115689205194553528' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115689205194553528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115689205194553528'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/passport-problems.html' title='Passport Problems?'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115680528662262181</id><published>2006-08-28T15:45:00.000-07:00</published><updated>2006-08-28T15:48:06.640-07:00</updated><title type='text'>Just thinking about processors, threads, performance, and scalability</title><content type='html'>Before I read John’s blog post for &lt;a href="http://powersunfiltered.com/2006/08/27/grid-computing-for-windows-part-deux/"&gt;today&lt;/a&gt; I was thinking about multiprocessor machines.  Probably because I was talking about threading in my last post.   I was thinking about the maximum number of processors the Windows Server 2003 operating system can support.  The 32-bit version of Windows Server 2003 supports up to 32 processors in one box.  While the 64-bit version of Windows Server 2003 can support more than 32.  &lt;a href="http://technet2.microsoft.com/WindowsServer/en/library/81999f39-41e9-4388-8d7d-7430ec4cc4221033.mspx?mfr=true" target="_blank"&gt;link&lt;/a&gt;  So...how much would one of these machines cost?&lt;br /&gt;&lt;br /&gt;I went to &lt;a href="http://www.dell.com/" target="_blank"&gt;Dell’s&lt;/a&gt; site and the box with the most number of sockets was the &lt;a href="http://configure.us.dell.com/dellstore/config.aspx?c=us&amp;cs=555&amp;l=en&amp;oc=pe6800pad&amp;s=biz&amp;fb=1" target="_blank"&gt;PowerEdge 6800&lt;/a&gt; with four dual cores.  By selecting the default configuration and only switching from a dual to a quad, the price was $19,107.  Ouch.&lt;br /&gt;&lt;br /&gt;I then went to &lt;a href="http://www.hp.com/" target="_blank"&gt;HP’s&lt;/a&gt; site and found a couple offerings:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://h10010.www1.hp.com/wwpc/us/en/ss/WF04a/15351-241434-241477-241477-f84.html" target="_blank"&gt;HP ProLiant ML570 G3 Server series&lt;/a&gt; which has four sockets and starts at $4599.&lt;br /&gt;&lt;a href="http://h10010.www1.hp.com/wwpc/us/en/ss/WF04a/15351-241434-241475-241475-f80.html" target="_blank"&gt;HP ProLiant DL500 Server series&lt;/a&gt; which has four sockets and starts at $6199.&lt;br /&gt;&lt;a href="http://h20341.www2.hp.com/integrity/cache/342254-0-0-0-121.html" target="_blank"&gt;HP Integrity Server series&lt;/a&gt; which supports 2-64 processors with no listed base price.  Hmmmm.... &lt;em&gt;This reminds me of eating at a fancy restaurant that doesn’t list the prices...if you have to ask...you can’t afford it.&lt;/em&gt;  &lt;br /&gt;&lt;br /&gt;I think that the numbers are interesting.  There is absolutely no doubt in my mind that there are applications that must use threads to support performance issues.  But considering how difficult it can be to write multithreaded applications, coupled with the price of machines capable of scaling via threads, it just doesn’t make sense to me from a cost/benefit perspective to use threading for scaling problems.  I think that scalability is better served by using grid objects on a compute grid running on cheap single or dual core machines.&lt;br /&gt;&lt;br /&gt;Just ruminating...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115680528662262181?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115680528662262181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115680528662262181' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115680528662262181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115680528662262181'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/just-thinking-about-processors-threads.html' title='Just thinking about processors, threads, performance, and scalability'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115679637261616127</id><published>2006-08-28T13:12:00.000-07:00</published><updated>2006-08-28T13:19:54.683-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Concurrent Development:  Required Personality Traits</title><content type='html'>I came across this &lt;a href="http://www.softwarebyrob.com/articles/Personality_Traits_of_the_Best_Software_Developers.aspx"&gt;post&lt;/a&gt; by Rob Walling.  Rob writes about four personality traits that the best software developers have.  I’m going to use those traits and explain why any developer who hopes to make the shift to being a concurrent software developer must find someway to draw those traits to the surface of their psyche.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pessimistic&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;While I wouldn’t have used the term pessimistic, (I would have used realist), the idea is sound.  You must confront the reality of your situation.  Period.  You are an engineer.  It is your job to make sure that the applications work and to anticipate ALL the things that can go wrong.  Because if you don’t find it...someone else will.  And if that someone is a customer it can be bad for your company and maybe even you.&lt;br /&gt;&lt;br /&gt;Anticipating the worst requires mental discipline, a comfortable knowledge of how the system and software work, and the willingness to test your assumptions.  All of this can be learned.  &lt;br /&gt;&lt;br /&gt;If you are using threading as your concurrency tool, it is absolutely vital that you understand context switching and time slices.  You have to make sure that threaded code can lose a time slice at any point, still produce the expected results, and not cause other threads to fail.  This needs to be tested and not just by the test team but by you.  And not just on a single processor box, but on a multiprocessor box.  Test is NOT a dirty word.  You should be doing it early and often.  Because when things go wrong...a good engineer makes sure that they know about it before anyone else.&lt;br /&gt;&lt;br /&gt;Remember, you are not in marketing...you are an engineer; anticipate the worst and plan for it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Angered By Sloppy Code&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If the code is sloppy...then how can you understand it?  If you are using threads there will come a point in the development process where the only tools you’ll have for isolating a thread problem will be a log file and your knowledge of the code.  When you get to this point...sloppy code can kill you.  Concurrency developers don’t have the luxury of unclear thinking or convoluted solutions.  Clean code AND a clean architecture make it easier to identify shared resources and potential problems.  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Someone who fixes a problem but doesn't take the time to find out what caused it is doomed to never become an expert in their field." – &lt;a href="http://news.com.com/Intel+Optimize+applications+for+multicore/2100-1006-6109936.html?part=dht&amp;tag=nl.e703" target="_blank"&gt;Rob Walling&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;If you try to fix a thread problem without understanding it...I can guarantee that you didn’t fix the problem...you just moved it.  Thread problems often manifest when a time slice is released at just the right time and you’re not protecting something as well as you think you are.  If you just fix the symptoms then the problem will manifest again and will be even harder to track down next time.  Fix it when it happens and fix it right.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Long Term Life Planners&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;"Cause and effect, chain of events, All of the chaos makes perfect sense, When you’re spinning round things come undone...Welcome to Earth 3rd rock from the Sun" – &lt;a href="http://www.lyricscafe.com/d/diffie_joe/joe03.html"&gt;Joe Diffie&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yes, I listen to county western music.  I love that song because it is such a perfect example of how one thing affects another to the point where things just get nuts.  And with threads things can get really nuts if you’re not careful.  That is why planning is so important.  &lt;br /&gt;&lt;br /&gt;Concurrency should be planned into your application from the beginning but if that isn’t an option for you...plan how you’re going to add it.  Don’t just sit down and start writing code.  Figure out all the &lt;a href="http://krgreenlee.blogspot.com/2006/08/concurrent-development-pieces-and.html"&gt;Pieces Parts&lt;/a&gt;.  Hope for the best, but plan for the worst.&lt;br /&gt;&lt;br /&gt;Once you’ve figured out where you can add concurrency and how you’re going to add it...you need think about the future.  To support concurrent applications you have to add more processes to your software development cycle.&lt;br /&gt;&lt;br /&gt;Put processes in place to protect the code.  For example, your team may have fifteen people on it of which only two are responsible for the threaded code.  Your two threading engineers should code review all changes made by the other engineers that could even remotely affect the threaded code.  If you are the engineering manager don’t make the mistake of thinking that everyone "gets" parallel development, because they don’t.  &lt;br /&gt;&lt;br /&gt;Also put in automated build and test processes designed to catch threading issues as close to the code change as possible.  This will make tracking down the problems easier.  Don’t forget to add logging and log levels to your applications and to TRAIN your test team.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Attention to Detail&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Well...I think the need for this trait is summed up in the first three traits.  The idea of paying attention to details is tied up in mental discipline, planning, and testing. Don't be lazy...just do it!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Concurrent software engineers have to juggle a harder programming model than sequential software engineers.  So make it as easy on yourself as you can.  Writing code for parallel execution requires that developers learn to think differently, it’s not just me waving my hands here.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"It's not intrinsically harder to write threads, but developers need to get used to thinking that way and we need help from the tools," Reinders said. "In the serial world, it doesn't matter which order you do things or how you break them down."&lt;a href="http://news.com.com/Intel+Optimize+applications+for+multicore/2100-1006-6109936.html?part=dht&amp;tag=nl.e703" target="_blank"&gt; - article link...&lt;/a&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115679637261616127?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115679637261616127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115679637261616127' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115679637261616127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115679637261616127'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/concurrent-development-required.html' title='Concurrent Development:  Required Personality Traits'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115674574763286383</id><published>2006-08-27T23:14:00.000-07:00</published><updated>2006-08-27T23:15:47.633-07:00</updated><title type='text'>Recommended ASP.NET webcast</title><content type='html'>When I’m learning a new technology I need to understand how it’s put together.  (Basically understand the structure of the technology and then the base elements of how it works.)  This is probably because I started my career working with DOS interrupts and Assembler.  So in my quest to understand how ASP.NET works I ran across this great webcast that I think every ASP.NET architect or development lead should watch.  &lt;br /&gt;&lt;br /&gt;&lt;a href = "http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032298165%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt; "MSDN Webcast: ASP.NET Under the Covers: Creating High-Availability, Scalable Web Applications (Level 300)"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I particularly liked the information pertaining to how virtual address space gets fragmented by small assemblies that align on 64KB boundaries; this means that there can be a lot of unused memory between the assemblies.  With this increased risk of virtual address fragmentation, applications suffer out-of-memory (OOM) errors but the physical memory looks fine.  Very interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115674574763286383?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115674574763286383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115674574763286383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115674574763286383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115674574763286383'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/recommended-aspnet-webcast.html' title='Recommended ASP.NET webcast'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115674527252305388</id><published>2006-08-27T23:05:00.000-07:00</published><updated>2006-08-27T23:07:52.536-07:00</updated><title type='text'>Improve Windows XP performance...</title><content type='html'>Here is a &lt;a href="http://www.ddj.com/dept/windows/192201612?pgno=1"&gt;link&lt;/a&gt; to an article with tips to improve your Windows XP performance.  Some of the tips I've used in the past and some were new to me.  This is great because I’ve got an XP box at home that is just a dog, even with the changes I already made to speed it up.  I’m looking forward to making it even faster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115674527252305388?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115674527252305388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115674527252305388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115674527252305388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115674527252305388'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/improve-windows-xp-performance.html' title='Improve Windows XP performance...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115654046266408804</id><published>2006-08-25T14:10:00.000-07:00</published><updated>2006-08-25T16:57:56.990-07:00</updated><title type='text'>I Code Therefore I Learn</title><content type='html'>&lt;strong&gt;Microsoft has a lot of resources available to developers:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/default.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/virtuallabs/"&gt;Virtual Labs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/showsandwebcasts/"&gt;Shows &amp; Webcasts&lt;/a&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;&lt;br /&gt;&lt;a href="http://on10.net/"&gt;10&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/"&gt;Microsoft bloggers&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/chats/"&gt;Microsoft Chats&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/"&gt;MSDN Magazine&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/newsgroups/"&gt;Newsgroups&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forums.microsoft.com/"&gt;Microsoft Forums&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/default.aspx"&gt;Microsoft TechNet&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;And for third-party sample code and articles:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/community/codezone/default.aspx"&gt;Codezone&lt;/a&gt; – Microsoft’s list of 3rd party sites, some of the links below will be found on Codezone&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.Dotnetwire.com/"&gt;.netWire&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.4guysfromrolla.com/"&gt;4 Guys From Rolla.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://abstractvb.com/"&gt;abstractvb.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.a1vbcode.com/"&gt;A1 VBCode&lt;/a&gt;&lt;br /&gt;&lt;a href="http://aspadvice.com/"&gt;ASPAdvice&lt;/a&gt;&lt;br /&gt;&lt;a href="http://aspalliance.com/"&gt;asp alliance&lt;/a&gt;&lt;br /&gt;&lt;a href="http://aspwire.com/"&gt;ASPWire&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.code101.com/code101/default.aspx"&gt;Code 101.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/"&gt;Code Guru&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codehound.com/"&gt;Code Hound&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/"&gt;Code Projectc&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.c-sharpcorner.com/"&gt;C# Corner&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csharpfriends.com/"&gt;CSharpFriends.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csharphelp.com/"&gt;C# Help&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csharp-station.com/"&gt;C# Station&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codecomments.com/"&gt;Code Comments&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codersource.net/"&gt;CodeSource.net&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devasp.net/"&gt;DevASP .Net&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devarticles.com/"&gt;Dev Articles&lt;/a&gt;&lt;br /&gt;&lt;a href="http://devauthority.com/default.aspx"&gt;DevAuthority.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developer.com/"&gt;developer.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developerland.com/"&gt;Developer Land .NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developerfusion.co.uk /"&gt;Developer Fusion&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developers.net/"&gt;developers.net&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developersdex.com/"&gt;Developers dex&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devx.com/"&gt;DevX.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetbips.com/"&gt;DotNetBips&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetfun.com/"&gt;C# .Net Fun&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjohn.com/"&gt;DotNetJohn&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.Dotnetjunkies.com/"&gt;dotnetjunkies&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnet.za.net/"&gt;dotnet.za.net&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dotnetslackers.com/"&gt;dotnetslackers.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetspider.com/"&gt;Dotnet Spider&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dnzone.com/"&gt;DNzone&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.eggheadcafe.com/"&gt;eggheadcafe.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.knowdotnet.com/"&gt;Know dot net&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mycplus.com/"&gt;Mycplus&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sitepoint.com/"&gt;sitepoint&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vbaccelerator.com/home/index.asp"&gt;vb accelerator&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vbcity.com/"&gt;vb City.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vbexplorer.com/VBExplorer/VBExplorer.asp"&gt;Visual Basic Explorer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.velocityreviews.com/"&gt;velocityreviews&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;News Sites:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.csharp-online.net/csow/index.php?title=Main%28%29"&gt;C# Online.NET&lt;/a&gt; - wiki&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/"&gt;DotNetKicks.com&lt;/a&gt; – Digg for .NET&lt;br /&gt;&lt;a href="http://dotnetrocks.com/"&gt;.NET Rocks!&lt;/a&gt; - .NET podcasts&lt;br /&gt;&lt;a href="http://www.theserverside.net/news/"&gt;TheServerSide.NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.wwwcoder.com/main/Default.aspx"&gt;wwwcoder&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetcat.com/"&gt;dotnetcat.com&lt;/a&gt; - wiki&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Magazines:&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.advisor.com/"&gt;Access/VB/SQL Advisor&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.adtmag.com/index.aspx?hf=y"&gt;Application Development Trends&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.code-magazine.com/"&gt;CoDe Magazine&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ddj.com"&gt;Dr. Dobbs Journal&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dotnet.sys-con.com"&gt;NET Developer's Journal &lt;/a&gt; &lt;br /&gt;&lt;a href="http://webservices.sys-con.com/"&gt;SOA Web Services Journal &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sqlmag.com/"&gt;SQL Server Magazine&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/technetmag/"&gt;TechNet Magazine &lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.ftponline.com/vsm/"&gt;Visual Studio Magazine&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.windowsitpro.com/"&gt;WindowsITPro&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Information about .NET products, components, and tools:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.larkware.com/"&gt;LarkWare News&lt;/a&gt; – Mike Gunderloy is a very nice guy so when you find out about new tools...let him know&lt;br /&gt;&lt;a href="http://sharptoolbox.com/"&gt;madgeek SharpToolbox&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devdirect.com/"&gt;Dev Direct&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.programmersheaven.com/"&gt;Programmers Heaven&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devarchive.com/c5.html"&gt;DevArchive.Com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.worldofdotnet.net/"&gt;World of .NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.winsupersite.com"&gt;Paul Thurrott’s SuperSite for Windows&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And you know this isn’t even the tip of the iceberg.  There are plenty of other sites for SQL Server, Excel, Biztalk, non-English sites, etc...that aren’t listed; as well as a very large pool of non-Microsoft bloggers.  Someone said to me the other day that ASP.NET didn’t have as many online resources as PHP.  Well, I don’t know if this is true but I am pretty sure that if it is true...it really doesn’t matter.  There is too much and then there is too much.  There is plenty of information for both technology choices, so that the decision between one or the other should be based on business needs and developer experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115654046266408804?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115654046266408804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115654046266408804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115654046266408804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115654046266408804'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/i-code-therefore-i-learn.html' title='I Code Therefore I Learn'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115653854545642820</id><published>2006-08-25T13:40:00.000-07:00</published><updated>2006-08-25T13:42:25.470-07:00</updated><title type='text'>I &lt;Heart&gt; Virtual Labs</title><content type='html'>My next project is getting the Digipede Network to run behind an ASP.NET application.  (I’m sooo happy to be back in .NET land again for a little while.)  This means that I am busy learning ASP.NET.  Microsoft has really done a great job of providing developer learning tools.  Between the &lt;a href="http://msdn.microsoft.com/virtuallabs/"&gt;Virtual Labs&lt;/a&gt; - hands on labs hosted on a remote Microsoft machines, &lt;a href="http://msdn.microsoft.com/showsandwebcasts/"&gt;Shows &amp; Webcasts&lt;/a&gt; - live and prerecorded webinars, videos, and podcasts, and technology specific sites like &lt;a href="http://www.asp.net/"&gt;ASP.net&lt;/a&gt;, there is a plethora of learning opportunities. &lt;br /&gt;&lt;br /&gt;There are a lot of things to like about the Virtual Labs:&lt;br /&gt;&lt;br /&gt;1. I get to use the technologies without having to install all the software.&lt;br /&gt;&lt;br /&gt;2. I get walked through a "doing something" with the technology.&lt;br /&gt;&lt;br /&gt;3. I get to learn what all the little doodads are called, like smart tags and grab handle.  So I’m learning the proper Microsoft terminology.  &lt;em&gt;I actually have a tendency to make up my own names for things if none are apparent, which can make communicating with me pretty interesting sometimes.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;A few things I don’t like:&lt;br /&gt;&lt;br /&gt;1. I sure could use some screen shots from time to time.  I have had trouble figuring out what UI element the lab notes were talking about.&lt;br /&gt;&lt;br /&gt;2. There are times when an explanation of &lt;em&gt;why&lt;/em&gt; I’m typing something in would be helpful.&lt;br /&gt;&lt;br /&gt;3. Running a lab during "peek" hours can sometimes result in very slow keyboard response. &lt;br /&gt;&lt;br /&gt;But hey!  I’m not complaining it is an incredible service and we are lucky to have it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115653854545642820?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115653854545642820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115653854545642820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115653854545642820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115653854545642820'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/i-virtual-labs.html' title='I &amp;lt;Heart&amp;gt; Virtual Labs'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115652731673369395</id><published>2006-08-25T10:29:00.000-07:00</published><updated>2006-08-25T10:35:16.746-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Concurrent Development: Pieces and parts...</title><content type='html'>I hope that you took my last post seriously.  While kind of kooky the approach actually works and for those of you who are old enough to remember the shift to object oriented development; we need all the help we can get.  Let’s say that you’ve taught yourself how to look at the world with the eyes an experienced multitasker.  Now it’s time to start thinking about how to apply this new way of thinking to your code.    &lt;br /&gt;&lt;br /&gt;There are three main areas in concurrent program design:  decomposition, communication, and synchronization.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decomposition&lt;/strong&gt; - the task of identifying both functions and data within an application that have parallelizable elements as well as identifying shared resources.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Communication&lt;/strong&gt; - how the parallelizable elements communicate with each other and/or the rest of the application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Synchronization&lt;/strong&gt; - how to manage the creation, execution, and termination of the parallelizable elements such that shared resources are not corrupted or locked out and the expected results are achieved every time.&lt;br /&gt;&lt;br /&gt;Start and end with decomposition because you will need to continuously exam your application for opportunities and potential problems.  Any engineer using concurrency must approach software development as a big picture activity.  Generally this has been the responsibility of the architects and leads, but now it’s yours as well.  If you’re going to use concurrency in your applications you MUST understand how your application is put together.  You must be able to identify:&lt;br /&gt;&lt;br /&gt;1. Parallelizable areas that perform the same function over and over, but act on different data.  You will often find these algorithms in loops.&lt;br /&gt;&lt;br /&gt;2. Parallelizable areas that are not algorithmically connected and can execute at the same time.  The obvious example of this is a UI thread and a background worker thread.  &lt;br /&gt;&lt;br /&gt;3. Critical areas of code that must never be executed in parallel.  These codes sections are often found around shared resources that must be accessed sequentially.&lt;br /&gt;&lt;br /&gt;4. Large bulk processes that can be easily split up and processed in parallel.  An example of this is the breaking up of a large EDI (Electronic Data Interchange) file for ETL (extract, transform, and load). &lt;br /&gt;&lt;br /&gt;Know your code.  Know your tools.  Know your business.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115652731673369395?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115652731673369395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115652731673369395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115652731673369395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115652731673369395'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/concurrent-development-pieces-and.html' title='Concurrent Development: Pieces and parts...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115646275448653443</id><published>2006-08-24T16:37:00.000-07:00</published><updated>2006-08-24T16:39:14.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Concurrent Development: I think therefore I am; I am therefore I think</title><content type='html'>Learning to develop using the concurrent model requires a mental shift in how a developer problem solves.  This mental shift can be difficult and to help demonstrate this: try patting your head and rubbing your stomach at the same time.  Too easy... how about: hold your screaming infant while simultaneously checking the temperature of the formula without dropping the kid or the bottle.  Learning to multitask in your day to day life will help you learn to multitask in your software because you learn to identify WHEN it’s safe to multitask.  It’s probably not a great idea to try and check the formula while holding a screaming baby at 3am in the morning (assuming that you’re half awake).  But we’ve done it haven’t we.  &lt;br /&gt;&lt;br /&gt;Change is a process.  Most engineers can teach themselves to multitask and the action of multitasking exposes people to the idea of doing more than one thing at a time.  If the pathways in your brain are not wired for thinking in parallel, then you have to start building those pathways.  You have to train yourself.  &lt;br /&gt;&lt;br /&gt;&lt;em&gt;This reminds me of my step-father who used to constantly tell us kids, "If you’re going into the kitchen, take a dirty plate with you."  Thanks Gary, that was early training for concurrent software development techniques.&lt;/em&gt;  &lt;br /&gt;&lt;br /&gt;What you need to learn to do is:&lt;br /&gt;&lt;br /&gt;1. Identify multitasking opportunities.&lt;br /&gt;2. Learn to judge how "safe" it is to do those tasks in parallel. &lt;br /&gt;3. Learn to distinguish between similar parallel activities, conjunction parallel activities, and always needs to be sequential activities.&lt;br /&gt;&lt;br /&gt;While there are some folks who already have all these skills, many folks don’t.  So take a little time and learn it.  Train your mind by using your body.&lt;br /&gt;&lt;br /&gt;More later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115646275448653443?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115646275448653443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115646275448653443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115646275448653443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115646275448653443'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/concurrent-development-i-think.html' title='Concurrent Development: I think therefore I am; I am therefore I think'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115639666355234002</id><published>2006-08-23T22:16:00.000-07:00</published><updated>2006-08-23T22:17:43.566-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Concurrent Development: Spotting the Wave</title><content type='html'>Over the years I’ve had the pleasure of working on several multithreaded applications but rarely have I been involved with the projects from the beginning.  Usually I’ve been brought in because the teams couldn’t stabilize the systems.  While this is a great ego boost and a chance to play the white knight – it’s a pain.  I’ve had a lot of time to think about grid computing since I started at Digipede and very early I recognized the relationship between threads and grid objects.  Both are tools that support concurrent software development and both have their place in solutions requiring high performance and scalability.  &lt;br /&gt;&lt;br /&gt;For those of you who haven’t been keeping up with the latest hardware trends.  CPU clock speed has reached a major roadblock.  The general computer buying public (this would be us) is not going to see new processors with faster chips until the hardware vendors figure out how to either reduce the generated heat or a how to more efficiently draw the heat away.  To continue to bring us the new and faster computer chips that we’ve become accustomed to, the hardware vendors are adding processors to the core.  Dual-core machines are already on the market and they are not restricted to servers.  Those chips are going into desktops and laptops as well.  And it has been predicted that the hardware vendors are not going to stop at two.  I would take that bet.&lt;br /&gt;&lt;br /&gt;In the past our applications would automatically reap the benefit of faster CPUs but that is not going to be the case with the multi-core machines.  We, the software developers of the world, are now going to have to work to make our applications faster.  This means that software developers are going to have to learn how to build software applications that take advantage of concurrency.  &lt;br /&gt;&lt;br /&gt;There are many differences between sequential and concurrent software development.  Sequential software development boils down to the idea that there is only ever ONE part of your application running at any time.  Even when it looks like there is more going on...say when you send a message, catch an event, run something asynchronously (without threads), etc...  There is only one part of the application running and there can BE only one part running.  &lt;br /&gt;&lt;br /&gt;With concurrent software development, one or more parts of your application can be executed at the exact same time.  I say can, because concurrent software applications that are run on a single processor machine are sort of a hybrid sequential/concurrent application.  While parts of the application are capable of running at the same time (in parallel), there is only one processor and the single processor acts as a bottleneck.  The operating system assumes responsibility for switching (time-slicing) between all the different threads and processes running on the computer.  Barring the concurrent application on the single processor case; concurrent applications are designed to take advantage of multiple processors and of the operating system’s time-slicing capability resulting in the improvement of an application’s performance and scalability.&lt;br /&gt;&lt;br /&gt;This is the beginning of a series of posts on concurrent software development; it is a journey that much of the software development community is going to have to take.  I hope that the information that I share here will be make the transition from sequential to concurrent development easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115639666355234002?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115639666355234002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115639666355234002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115639666355234002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115639666355234002'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/concurrent-development-spotting-wave.html' title='Concurrent Development: Spotting the Wave'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115637533070546546</id><published>2006-08-23T16:17:00.000-07:00</published><updated>2006-08-23T16:22:10.720-07:00</updated><title type='text'>He was lost and then found...</title><content type='html'>I’ve mentioned before that I LOVE startups and small companies.  One big reason for that are the teams.  While I think that large companies have the ability to build teams, I’ve found that I’m much more likely to land on a team while working for a small company.  I’m thinking about this today because my friend Jeff Mackay turned up.  Shortly after I moved to California I lost track of him.  And today he found me.  Yippeee!  &lt;br /&gt;&lt;br /&gt;Jeff and I worked at Kaseworks together.  We got drunk together, built and designed products together, complained together.  A defining project was the Kase:Set++ project.  Kase:Set++ was the C++ code generator that shipped with IBM’s first release of their C++ compiler for OS/2.  If my memory serves me right Jeff and I turned that product around in a month.  Did we live at the office?  Yep.  I remember sleeping under my desk a few times...just one more compile...&lt;br /&gt;&lt;br /&gt;It was a very satisfying journey that we took together.  And we built something that we were proud of.  I remember Jeff laughing and telling me that we had to stop work on the Notebook module because IBM wasn’t ready.  We were pushing the big guys, and while that was a minor blip in my life, it was a shared moment of feeling exhilarated because we "beat" IBM at something.  Our friendship was forged in the fires of creativity and on the stresses of competition.  Good natured competition between engineers with a passion for software, driven to be better than anyone else.  Having teammates like Jeff helped make me a better engineer.&lt;br /&gt;&lt;br /&gt;While the pressure and work of startups aren’t for everyone, the friends I have gained, the teams I have been on, have all made this an incredible journey.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Jeff just started blogging &lt;a href="http://jeffmackay.blogspot.com/"&gt;here&lt;/a&gt; and he’s looking a little scruffy in his photo!  But I know he’s not afraid to write (he had a C++ book published, didn’t he just) so I hope to see some great things....No pressure Dude!&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115637533070546546?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115637533070546546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115637533070546546' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115637533070546546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115637533070546546'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/he-was-lost-and-then-found.html' title='He was lost and then found...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115620793897239038</id><published>2006-08-21T17:51:00.000-07:00</published><updated>2006-08-21T17:52:18.986-07:00</updated><title type='text'>For a good laugh...read these</title><content type='html'>I’ve been meaning to put together a blog post of my favorite links.  So here it is.  If you know of other bloggers who write like these folks...let me know.  I find these blogs refreshing, honest, and most of them extremely funny.  And for the record...I KNOW I have a warped sense of humor.  I’ve accepted it and so should you.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Too funny for words&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://blog.ragan.com/archives/stevesblog/"&gt;Corporate Hallucinations&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dooce.com/"&gt;dooce&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bugbash.net/"&gt;Bug Bash&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dilbertblog.typepad.com/the_dilbert_blog/"&gt;The Dilbert Blog&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sandhillslave.com/journal/"&gt;Sand Hill Slave&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Very Interesting&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.whatimnot.com/"&gt;What I’m Not&lt;/a&gt; - She’s taking me on a journey that I’ve often fantasized about.  While she is having adventures I would never have, I’m loving living through her.  And she is a very good writer.  I just wish she could write more often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115620793897239038?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115620793897239038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115620793897239038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115620793897239038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115620793897239038'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/for-good-laughread-these.html' title='For a good laugh...read these'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115576373468117480</id><published>2006-08-16T14:27:00.000-07:00</published><updated>2006-08-16T14:28:54.703-07:00</updated><title type='text'>For me, VS2003 Server Pack 1 is a bust</title><content type='html'>I just installed &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=69d2219f-ce82-46a5-8aec-072bd4bb955e&amp;displaylang=en"&gt;Visual Studio .NET 2003 Server Pack 1&lt;/a&gt;, as I have written before &lt;a href="http://krgreenlee.blogspot.com/2006/05/software-vs2003-truncating-vcproj.html"&gt;here&lt;/a&gt; and &lt;a href="http://krgreenlee.blogspot.com/2006/05/software-vs2003-crashingno-option-but.html"&gt;here&lt;/a&gt;, I have been experiencing instability (i.e. the IDE is crashing hard) with VS2003 ever since I installed VS2005 on the same machine.  I am sad to report that the service pack DOES NOT solve my problems.&lt;br /&gt;&lt;br /&gt;It is very easy for me to reproduce two of the crashes:&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;Properties&lt;/strong&gt; crash:&lt;br /&gt;&lt;br /&gt;1. Launch Visual Studio 2003.&lt;br /&gt;2. Open a solution.&lt;br /&gt;3. In the &lt;strong&gt;Solution Explorer pane&lt;/strong&gt;, select a project.&lt;br /&gt;4. Right-click on the project and select &lt;strong&gt;Properties&lt;/strong&gt; at the bottom of the context menu.&lt;br /&gt;5. Bam, "An unhandled exception has been caught by the VSW exception filter." and Microsoft sends itself the error information.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;Server Explorer&lt;/strong&gt; crash:&lt;br /&gt;&lt;br /&gt;1. Launch Visual Studio 2003.&lt;br /&gt;2. Open a solution.&lt;br /&gt;3. From the menu bar select &lt;strong&gt;View-&amp;gt;Server Explorer&lt;/strong&gt;.&lt;br /&gt;4. Bam, "An unhandled exception has been caught by the VSW exception filter." and Microsoft sends itself the error information.&lt;br /&gt;&lt;br /&gt;I don’t really need Server Explorer, but I do need to configure my project properties.  On the plus side, at least my project file hasn’t been trashed.  (Knock on wood)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115576373468117480?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115576373468117480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115576373468117480' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115576373468117480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115576373468117480'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/for-me-vs2003-server-pack-1-is-bust.html' title='For me, VS2003 Server Pack 1 is a bust'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115534605563143858</id><published>2006-08-11T18:21:00.000-07:00</published><updated>2006-08-14T10:51:25.610-07:00</updated><title type='text'>COM...the gift that keeps on giving</title><content type='html'>Here are some more things I learned today and all of these parts are related to the same program halt....&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TODO: &amp;lt;File description&amp;gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I don’t know exactly what triggers the MFC error message box with the text, "TODO: &amp;lt;File description&amp;gt;".  But I now know that I have a good reason to fill in all the VS_VERSION_INFO resources in my projects.  Under some circumstances Microsoft pops up the message box below, obviously I couldn’t find any documentation that tells me exactly when Microsoft will do this, but I know it can happen.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7692/1596/1600/TODOFileDesc.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7692/1596/400/TODOFileDesc.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To identify which part of the project triggered the error, update the FileDescription field in all the VS_VERSION_INFO structures in all your projects.  That way when it goes you’ll know what assembly/dll was involved.&lt;br /&gt;&lt;br /&gt;In Visual Studio open your project's the &lt;strong&gt;Resource View&lt;/strong&gt; and under &lt;strong&gt;Version&lt;/strong&gt; you’ll see VS_VERSION_INFO, change "FileDescription" to something unique.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;EEFileLoadException&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I haven’t exactly tracked down why this exception is being thrown.  Microsoft doesn’t document it.  But Microsoft does document the exception &lt;a href="http://msdn2.microsoft.com/en-us/library/system.io.fileloadexception.aspx"&gt;FileLoadException&lt;/a&gt;.  Considering that I’m calling a managed assembly through an exposed COM interface from an unmanaged C++ executable, the error does fit.  The description for FileLoadException is "The exception that is thrown when a managed assembly is found but cannot be loaded."&lt;br /&gt;&lt;br /&gt;For some reason the description triggered some dormant brain cells, probably hanging around from when I was younger, which caused me to look in my Event Log.  So I opened Event Viewer and I found that I had a .NET Runtime error that corresponded to the time I got the EEFileLoadException.  Hmmm.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;.NET Runtime version 2.0.50727.42 - &lt;br /&gt;Fatal Execution Engine Error (79F97075) (80131506)&lt;/pre&gt;&lt;br /&gt;Okay, this is more information but...what does it mean?  Searching on the number 80131506 from MSDN of course doesn’t get a hit (if you hear a really loud sucking sound, that would be Microsoft search...sucking!)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;First-chance exception at 0x7c81eb33 in MonteCarloPiApp.exe: 0xE0434F4D: 0xe0434f4d.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I also got a message box with the above error.  Not much information available for this one, but I did find some recommendations about not running the application inside the debugger.  So, I launched my program outside the debugger, got the "TODO message" box and selected the "Debug" button, which launches the debugger and sweetness... I get a "COMException was unhandled" error with an HRESULT of DISP_E_MEMBERNOTFOUND and a nice stack.&lt;br /&gt;&lt;br /&gt;System.Runtime.InteropServices.COMException was unhandled&lt;br /&gt;  Message="Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))"&lt;br /&gt;  Source="System.Windows.Forms"&lt;br /&gt;  ErrorCode=-2147352573&lt;br /&gt;  StackTrace:&lt;br /&gt;       at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)&lt;br /&gt;       at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)&lt;br /&gt;       at g.a(Delegate A_0, Object[] A_1)&lt;br /&gt;       at Digipede.Framework.Api.DigipedeClient.d(JobStatusEventArgs A_0)&lt;br /&gt;       at Digipede.Framework.Api.DigipedeClient.f(Object A_0)&lt;br /&gt;       at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)&lt;br /&gt;       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)&lt;br /&gt;&lt;br /&gt;That’s something I can work with.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Updated formatting problem&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115534605563143858?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115534605563143858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115534605563143858' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115534605563143858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115534605563143858'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/comthe-gift-that-keeps-on-giving.html' title='COM...the gift that keeps on giving'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115533510124547629</id><published>2006-08-11T15:09:00.000-07:00</published><updated>2006-08-11T15:31:13.083-07:00</updated><title type='text'>I want my Groups!</title><content type='html'>Googles UI has changed.  What a pain in the butt.  I use Google for work which means that I am often looking for code samples to clarify syntax and techniques.  While for most users removing "Groups" isn’t that big a deal...for me it’s huge.  Google has now added an extra button click and a mouse move for me to switch from "Web" search to "Group" search.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7692/1596/1600/GoogleNewUI.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7692/1596/400/GoogleNewUI.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I suppose I could try to play around with Google’s personalized home page to see if that gets around the problem but right now I don’t have time.  I did do a quick look to see if it would be easy, I basically just want the usual Google home page with the top links I need, but the personalized home page has a lot of crap on it which will slow down my page load time and there is no obvious way to set the links I want. &lt;br /&gt;&lt;br /&gt;I’m sooo not happy about this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115533510124547629?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115533510124547629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115533510124547629' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115533510124547629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115533510124547629'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/i-want-my-groups.html' title='I want my Groups!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115532451332632042</id><published>2006-08-11T12:13:00.000-07:00</published><updated>2006-08-11T12:28:54.943-07:00</updated><title type='text'>Where Oh Where is my DISPID???!!!!</title><content type='html'>Life is such a journey.  And sometimes what is old is new again.  For those of you who have been reading my blog for the last 2 months you know that I’ve been working on a C++ COM sample for the Digipede Network.  I’m not working on this full-time so I’m not a complete idiot for not finishing yet!  But I’m learning new things and remembering old things.  I often feel like I’ve forgotten more software techniques and technologies than I remember.  And today is no exception.  The focus of my interest recently has been creating a sink (to handle Digipede events).  One of the problems I ran into is without access to the Digipede source code, how would a developer know what the DISPID values are to hook up the sink?  How should my code define the event when one of the values I’m receiving is defined as an &lt;strong&gt;object&lt;/strong&gt;?&lt;br /&gt;&lt;br /&gt;Well, here is the answer to that part of the puzzle.&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;&lt;br /&gt;1. From your Visual Studio environment, from the menu bar select &lt;strong&gt;Tools-&amp;gt;OLE/COM Object Viewer&lt;/strong&gt;.  You now have the OLE/COM Object Viewer application open.&lt;br /&gt;2. From the OLE/COM Object Viewer’s menu bar select &lt;strong&gt;File-&amp;gt;View TypeLib...&lt;/strong&gt;.  In the Open dialog box navigate to a Digipede.Framework.dll file and select the file for opening.  My Digipede.Framework.dll is located in "C:\Program Files\Digipede\Framework SDK\v1.2\Net1.1".&lt;br /&gt;3. Now what you should see is the ITypeLib Viewer window with the  Digipede.Framework.dll’s type library displayed.&lt;br /&gt;&lt;br /&gt;We are now at the point where we can get important information that we need.  In the left hand column is a list of all the methods and interfaces available from the Digipede.Framework.dll file.  Right now I’m interested in the IDigipedeClientEvents interface.  So I expand "coclass DigipedeClient" and from there I can see the IDigipedeClientEvents interface.  I then expand the "Methods" and select "JobSubmissionCompleted".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7692/1596/1600/ITypeLibViewer.2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/7692/1596/400/ITypeLibViewer.1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is what I see in the right-hand box:&lt;br /&gt;&lt;pre&gt;[id(0x000003e9)]&lt;br /&gt;void JobSubmissionCompleted(&lt;br /&gt;                [in] VARIANT sender, &lt;br /&gt;                [in] _JobSubmissionCompletedEventArgs* e);&lt;/pre&gt;&lt;br /&gt;So to get the DISPID that I need I convert the number found in the &lt;strong&gt;id&lt;/strong&gt;, 0x000003e9, from hex to decimal, and I have my DISPID value which is 1001. &lt;br /&gt;&lt;br /&gt;I also see that the &lt;strong&gt;object&lt;/strong&gt; value is converted to VARIANT. &lt;br /&gt;&lt;br /&gt;I now have two important pieces of information.  The DISPID value for JobSubmissionCompleted AND a prototype definition that C/C++ can understand.  So the information is there and now I know how to find it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115532451332632042?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115532451332632042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115532451332632042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115532451332632042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115532451332632042'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/where-oh-where-is-my-dispid.html' title='Where Oh Where is my DISPID???!!!!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115523790065270789</id><published>2006-08-10T12:21:00.000-07:00</published><updated>2006-08-10T12:27:06.883-07:00</updated><title type='text'>For your viewing pleasure...</title><content type='html'>I had a great time in Fresno last night talking to the &lt;a href="http://www.centralcaldotnet.com/"&gt;Central California .NET User Group&lt;/a&gt; about concurrency, threads, and grid objects.  It was a great group of people and I think we had some good conversation.  I’ve had several requests for &lt;a href="http://krgreenlee.blogspot.com/2006/08/out-and-about-aug-9th-fresno-ca.html"&gt;last night’s presentation&lt;/a&gt;.  Click this &lt;a href="http://www.digipede.net/downloads/ThreadToGripPresentation.zip"&gt;link&lt;/a&gt; to download a zip file containing the presentation and the thread sample code.&lt;br /&gt;&lt;br /&gt;Don't forget to get your free copy of the &lt;a href="http://www.digipede.net/products/dev-edition.html"&gt;Digipede Network Developer Edition&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115523790065270789?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115523790065270789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115523790065270789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115523790065270789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115523790065270789'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/for-your-viewing-pleasure.html' title='For your viewing pleasure...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115498108974742085</id><published>2006-08-07T12:57:00.000-07:00</published><updated>2007-03-06T11:09:20.951-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Out and About – Aug 9th, Fresno, CA</title><content type='html'>This Wednesday, August 9th, I’ll be presenting at the &lt;a href="http://www.centralcaldotnet.com/"&gt;Fresno .NET User Group&lt;/a&gt;. I’m going to be discussing concurrent software development, how threads work, and grid computing.&lt;br /&gt;&lt;br /&gt;Year after year the hardware industry has been making our computers run faster and faster. But they have reached a plateau, we aren’t going to see an increase in clock speed for awhile. What we are going to see is more onboard cache and cpus. No more &lt;a href="http://www.gotw.ca/publications/concurrency-ddj.htm" target="_blank"&gt;"free lunch"&lt;/a&gt; for us software engineers. Now we have to ensure that the performance improvements come from our software. And that means concurrent software development.&lt;br /&gt;&lt;br /&gt;I agree with &lt;a href="http://www.gotw.ca/" target="_blank"&gt;Herb Sutter’s&lt;/a&gt; assessment that the software industry is ready for another paradigm shift as significant as the OO shift. And like the OO shift it’s going to hurt and some of us aren’t going to be able to make the change. I’ve been building multithreaded applications since 1993 and I’ve made a few observations. First of all, multithreaded development is very different from sequential development. Second, multithreaded development is not intuitive, most people use threads and have no idea what is really going on. That is why the threading part of my presentation is going to talk about what is really happening in a threaded application.&lt;br /&gt;&lt;br /&gt;Here are some links that will be useful to read before the presentation:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techworld.com/opsys/features/index.cfm?featureID=2710&amp;amp;pagtype=all" target="_blank"&gt;Multi-core chips provide power but make development tough&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;"Tom Halfhill, an analyst for In-Stat's "Microprocessor Report" in San Jose, says some software developers are "tearing their hair out" over the new CMP systems. "Rewriting the software for multi-threading is a lot of work, and it introduces new bugs, new complexities, and the software gets bigger, so there is some resistance to it.""&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;"But the CMP train has left the station, whether software developers like it or not. Intel says 85 percent of its server processors and 70 percent of its PC processors will be dual-core by year's end."&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://www.sdtimes.com/article/opinion-20060201-01.html" target="_blank"&gt;The Core Issue&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;"The biggest learning curve will be for programming teams that target consumer and business desktops. Until now, nearly all such platforms used one single-core processor. That meant that thread management was handled in software, not in hardware. While multithreaded applications would be slightly more efficient in a multitasking environment, the benefits of threaded designs were rarely emphasized by architects. Deadlocks and race conditions could be managed by the operating system. In short, programmers didn’t have to think about it. "&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://www.sdtimes.com/article/story-20060201-03.html" target="_blank"&gt;The Race is On to Debug Dual-Core Deadlocks&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;"Deadlocks...Race conditions....Detecting either error is difficult because collisions don’t always occur, so pinpointing the problem is a matter of timing, said Ken Cowan"&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;"Designing for concurrency is about getting a clear focus on how to decompose a problem, added Intel’s Reinders. "You are asking: ‘How do I break this program up?"" &lt;/blockquote&gt;Concurrent software development requires a more structured approach to design, development, and testing. Those engineers and testers who grok the concurrent model are going to be worth a lot of money and are going to be very employable until the ability to use concurrent methodologies is as common as the ability to use OO methodologies. Wednesday’s presentation should get you heading in the right direction.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update: Yes slides will be available. I will need to talk to Gustavo to find out the best distribution method. It may be that ya'll will have to send me an email and I will send them off to you. I didn't see a download section on the website.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115498108974742085?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115498108974742085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115498108974742085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115498108974742085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115498108974742085'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/08/out-and-about-aug-9th-fresno-ca.html' title='Out and About – Aug 9th, Fresno, CA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115326533919688648</id><published>2006-07-18T16:24:00.000-07:00</published><updated>2006-07-18T16:28:59.210-07:00</updated><title type='text'>Wait for it...</title><content type='html'>I've been building a couple console applications today and when I run them in the debugger the Command Prompt window they run in closes before I can see what happened.  As I'm new to the .NET libraries I didn’t know what command to use to 'pause' program execution.  I basically want to put a statement in before the program exits that waits for a keystroke.  &lt;br /&gt;&lt;br /&gt;Either of these commands will work if the user hits the "Enter" key but any other characters the user types in are displayed (echoed) to the Command Prompt window:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Console.Read ();&lt;/pre&gt;or &lt;br /&gt;&lt;pre&gt;Console.ReadLine(); &lt;/pre&gt;&lt;br /&gt;While this works, I want a solution that would respond to ANY keystroke and not show what the user typed.  The following solutions work for .NET 2.0 but not .NET 1.1:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;while (Console.KeyAvailable == false);&lt;/pre&gt;&lt;br /&gt;And my favorite is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Console.ReadKey(true);&lt;/pre&gt;&lt;br /&gt;Console.ReadKey(true) does not echo the key the user entered, responds to any key, and doesn't have the iffy forever while loop going on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115326533919688648?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115326533919688648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115326533919688648' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115326533919688648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115326533919688648'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/wait-for-it.html' title='Wait for it...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115302836440158388</id><published>2006-07-15T22:37:00.000-07:00</published><updated>2006-07-15T22:39:24.413-07:00</updated><title type='text'>A day late and a dollar short</title><content type='html'>With technology I often feel like I’m a day late and a dollar short.  It’s not that I don’t understand technology or that I don’t care about it; it’s just that I never feel like I know what the next "big thing" is going to be.  Or where I can find the latest tips and tricks.  Well, some how Daniel Moth ended up in my feed list and he posted about aggregated blogs.  You can find his list &lt;a href="http://www.danielmoth.com/Blog/2006/07/my-blog-subscriptions.html"&gt;here&lt;/a&gt;.  Maybe now I’ll be able to keep up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115302836440158388?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115302836440158388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115302836440158388' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115302836440158388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115302836440158388'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/day-late-and-dollar-short.html' title='A day late and a dollar short'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115286206378342030</id><published>2006-07-14T00:25:00.000-07:00</published><updated>2006-07-14T00:27:43.796-07:00</updated><title type='text'>Sugar pie, honey bunch...</title><content type='html'>On another personal note.  For those of you who read Dan’s blog West Coast Grid you may remember him posting about the &lt;a href="http://westcoastgrid.blogspot.com/2006/01/slow-and-steady-wins-race.html"&gt;exercise regime&lt;/a&gt; the guys are on.  I started doing the sit-ups and push-ups, got sick, and never started back up again.  But I did make some changes and the effects are visible.  &lt;br /&gt;&lt;br /&gt;I am over-weight.  Not a lot but enough that I was unable to fit into my nice clothing and to not like what I was seeing.  I knew it was time for a change and exercise just wasn’t going to be enough.  I started by not eating ice cream anymore.  I was a two gallon a week gal.  Breyer’s Mint Chocolate Chip - thank you very much.&lt;br /&gt;&lt;br /&gt;So the first thing that went was the ice cream.  But I would have wicked cravings that were driving me mad.  During this time I discovered that if I had a mocha in the morning I often didn’t have any sugar cravings later in the day.  So the first change to my diet was to remove the after 9pm ice cream and add the morning mocha.  This was great and worked really well.   &lt;br /&gt;&lt;br /&gt;I then decided that it was time to say goodbye to the mocha calories as well.  I first started by switching from Starbucks to Jenny’s.  I figured Jenny’s mocha had few calories than Starbucks and they were definitely smaller.  This went on for a few weeks and then it was time to let go all the way.  During the week of my caffeine withdrawal I had the most painful headaches ever.  That was a tough week and I almost didn’t make it.  I had a headache at work one afternoon that was so bad that I couldn’t see.  John suggested a diet Coke to take the edge off and it was that one soda that got me over the caffeine hump. &lt;br /&gt;&lt;br /&gt;I’m now mostly off sugar products and I’ve lost about an inch all the way around.  I feel better physically although I haven’t found anything yet to replace the "comfort" that the food provided.  I’m going to stick with what I’m doing for at least a month or so and then see about adding exercise back to the mix, but for now I’ve found that by approaching dieting systematically things are looking good.  I had read someplace that if you can do something for two months or so then it becomes a habit.  That’s what I’m working toward.  Replacing bad habits with good ones, one day at a time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115286206378342030?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115286206378342030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115286206378342030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115286206378342030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115286206378342030'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/sugar-pie-honey-bunch.html' title='Sugar pie, honey bunch...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115286071368754616</id><published>2006-07-14T00:01:00.000-07:00</published><updated>2006-07-14T00:05:13.703-07:00</updated><title type='text'>The wheel of life keeps on turning...</title><content type='html'>This week has been a rough one at home and a very good one at work.  My uncle died on Sunday morning.  He was struggling with cancer and lost.  And then on Monday a friend of mine lost her battle and died of respiratory failure.  My uncle was 64 and my friend was 81.  This is a strange time in my life.  There was such a long period where I hadn’t lost anyone that I lost touch with the fact that life is a cycle.  And that death is a part of it.  I wrote the following for my uncle and my cousin’s wife read it at the service this morning.  One thing that I want to pass on as a final gift to him is the notion that when we give of ourselves we get more back then we could ever imagine.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Life is like a pond in a rain storm.  The water drops dance across the surface creating ripples that start, fan out, connect, grow, and eventually end.  So like a water drop have you created ripples in my life.  Ripples that have affected and continue to affect other people.  It is in others that our greatest gifts live.&lt;br /&gt;&lt;br /&gt;I needed help when I was a teenager and you were there.  You gave me a home where I could feel safe and loved, a car which gave me freedom, and an education that gave me a future.  In return, I helped Dody get a car to taste her own freedom and an education so that she could truly be free.  I have helped others: friends, acquaintances, and strangers; because of the lessons that you taught me.  Through your gifts to me, you have helped hundreds of other people and through our gift to them, thousands more.  Ripples fanning out, touching, growing, changing.&lt;br /&gt;&lt;br /&gt;My greatest and most precious ripples are those created by my children.  The children that I have because you taught me that the love of a parent toward her child is not dependent on the ties of blood.  That the bonds built by time, nurture, and love are the real bonds.  That a child does not have to be born of the flesh, to live in the heart. &lt;br /&gt;&lt;br /&gt;As you move from this world to the next, know that your gifts have spread and echoed.  That in you was a beginning, not just for me but for all those others whom you helped as well.  And through us your legacy is alive and will continue to live, passing from us to others, and then onto others, echoing onward through time. &lt;/blockquote&gt;&lt;br /&gt;I met my friend Jody about 8 years ago.  She is Mal’s best friend’s mother.  I remember the night that I first had the feeling that she was someone special.  Mal and I had gone to Telluride to visit relatives and it just happened that Jody and her husband Charles were there at their second home.  They invited us over for cards and to meet two European fellows that I think were scientists.  Both Jody and Charles are scientists so that is probably right.  Anyway, we were playing Bump, which is a card game.  I remember sitting across from Jody and frustrating the hell out of her because I wasn’t playing the “right” way.  Basically I played an attack approach to the game instead of a defensive approach and I could see it was getting to her.  Finally she had enough and threw a card at me.  You have to understand my competitiveness and my sense of humor.  Jody threw the card in a joking but frustrated fashion and at that moment she crossed that invisible line between the people I trust and the people I don’t trust.  I like competitors, fighters, people who can use humor to defuse situations.  And I really like people who can be honest about who they are and what they are feeling.  Over the years we’ve played cards on many other occasions, but this week I realized that we hadn’t played enough.  There was more to this impressive woman than her card playing and I missed out on a great opportunity to really know someone I want to be like when I grow up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115286071368754616?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115286071368754616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115286071368754616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115286071368754616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115286071368754616'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/wheel-of-life-keeps-on-turning.html' title='The wheel of life keeps on turning...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115283997945851807</id><published>2006-07-13T18:08:00.000-07:00</published><updated>2006-07-13T18:19:39.536-07:00</updated><title type='text'>What the 0x800700c1 is going on?</title><content type='html'>I ran into an interesting problem yesterday while trying to get my C++/COM server sample working.  I was getting this error message from the Digipede Network:  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;FailureInstantiatingComWrapper - Failure instantiating COM wrapper: Retrieving the COM class factory for component with CLSID {3D26EA71-F824-4651-B15C-EBDEA183D978} failed due to the following error: 800700c1.&lt;/blockquote&gt;&lt;br /&gt;The interesting part of the message is the 0x800700c1.  I was unable to find this error code documented clearly....anywhere.  I searched the libraries, MSDN, development groups, and the web.  There are references to the error code but in no way was my problem related to the Microsoft Media Player.  I eventually stumbled upon a newsgroup &lt;a href="http://groups.google.com/group/microsoft.public.windows.64bit.general/browse_thread/thread/cdd8dc81b23f2a63/2f17173c52f81057?lnk=st&amp;q=%2264+bit%22+%22COM+server%22+Windows&amp;rnum=5&amp;hl=en#2f17173c52f81057"&gt;post&lt;/a&gt; which led me to set up a 32-bit pool removing the 64-bit machine from the equation.  That did the trick.&lt;br /&gt;&lt;br /&gt;Here’s what’s going on in a nut shell:&lt;br /&gt;&lt;br /&gt;In the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms241064.aspx"&gt;64-bit Applications&lt;/a&gt; documentation on MSDN there is this text:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;An application built using .NET Framework 2.0 (on a 32-bit or 64-bit machine) by default will run as a native application (not under WOW64) on a 64-bit machine. &lt;/blockquote&gt;&lt;br /&gt;The Digipede Agent running on the 64-bit test machine is running natively – as a 64-bit application.  The COM server component that I had distributed to the machine was compiled as 32-bit.  &lt;br /&gt;&lt;br /&gt;More reading:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/running_32_bit_applications.asp"&gt;Running 32-bit Applications&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Further research into WOW64 may yield a way to make this all work without any code changes from anyone; unlike the 16-bit to 32-bit transition when we had to write our own thunking layers.  But for now I'm not running my 32-bit COM servers on the 64-bit machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115283997945851807?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115283997945851807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115283997945851807' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115283997945851807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115283997945851807'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/what-0x800700c1-is-going-on.html' title='What the 0x800700c1 is going on?'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115223158670198438</id><published>2006-07-06T16:45:00.000-07:00</published><updated>2006-07-06T17:23:30.836-07:00</updated><title type='text'>Crudely measuring the state of grid computing</title><content type='html'>Grid computing is a subject that has been talked about for years.  The benefits are huge: increased application scalability and reduced application run time.  For some companies the ability to run applications on a grid and reap those benefits is worth millions of dollars a year.  I’m not kidding.  So what kinds of companies are interested in grid computing?  What technologies are they using?  What is the general acceptance of grid computing?  How many grid computing solutions are home-built vs. bought?&lt;br /&gt;&lt;br /&gt;To get a crude estimate on the answer to those questions, I search job boards.  I find that job descriptions contain an incredible amount of information.  They’re ads from a company to a prospective employee; of course each company wants the best applicants they can get so they tend to pack a lot of valuable information into each posting.  And because of this, job posts are a great way to gather free information.&lt;br /&gt;&lt;br /&gt;Let’s do some searches:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.indeed.com/jobs?q=C%23&amp;l=&amp;radius=" target="_blank"&gt;C#&lt;/a&gt; =&gt; 33,945 hits&lt;br /&gt;&lt;a href="http://www.indeed.com/jobs?q=%22grid+computing%22&amp;l=&amp;radius=" target="_blank"&gt;"grid computing"&lt;/a&gt; =&gt; 398 hits&lt;br /&gt;&lt;a href="http://www.indeed.com/jobs?q=%22grid+computing%22+windows&amp;l=&amp;radius=" target="_blank"&gt;"grid computing" windows&lt;/a&gt; =&gt; 64 hits&lt;br /&gt;&lt;a href="http://www.indeed.com/jobs?q=%22windows+compute+cluster%22&amp;l=&amp;radius=" target="_blank"&gt;"windows compute cluster"&lt;/a&gt; =&gt; 5 hits&lt;br /&gt;&lt;br /&gt;Obviously there are a lot of folks doing C# development and &lt;em&gt;significantly&lt;/em&gt; fewer doing grid computing on Windows.  I often drill down on the search results to get a better feel for the development environment around the grid computing posts.  Run the ‘"grid computing" Windows’ search and drill down on some of the listings.  Pretty interesting reading. &lt;br /&gt;&lt;br /&gt;Are all of those C# folks potential grid customers?  No.  Grid computing is simply a tool and will only help those applications that have the right kind of performance and/or scalability problems.  Just like multithreading an application isn’t always the answer, neither is grid-enabling an application always the answer.  However, like multithreading, developers will find more uses for it than they initially expected. &lt;br /&gt;&lt;br /&gt;Traditionally grid computing has been hard.  Developers had to break their applications up into executable tasks (mytask.exe), worry about initializing each instance of mytask.exe, move the files (often requiring preinstallation on each node), worry about how to get the results back, build their own task recovery mechanisms, etc...  That is what made grid computing hard.  The Digipede Network has taken away a lot of that complexity by focusing on Windows, providing a GUI to define jobs (no more Perl scripts), taking care of all the plumbing (error handling, guaranteed completion of tasks, moving files, etc...), and most importantly providing an API that allows developers to distribute .NET objects from within their applications.  Once people start realizing that grid computing isn’t hard any more we’ll start seeing those numbers go up.&lt;br /&gt;&lt;br /&gt;I’ll try to collect these numbers from time to time, we’ll see if there are any changes as Microsoft and Digipede continue to push HPC on Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115223158670198438?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115223158670198438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115223158670198438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115223158670198438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115223158670198438'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/crudely-measuring-state-of-grid.html' title='Crudely measuring the state of grid computing'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115213935102489219</id><published>2006-07-05T15:41:00.000-07:00</published><updated>2006-07-05T15:42:31.043-07:00</updated><title type='text'>DotNet is....kicking!!!</title><content type='html'>As I mentioned &lt;a href="http://krgreenlee.blogspot.com/2006/07/digipede-manna-from-internet.html"&gt;earlier&lt;/a&gt; I just learned about &lt;a href="http://www.dotnetkicks.com"&gt;DotNetKicks&lt;/a&gt; today.  I’ve had a little time to play with it and I really like it.  I’ve used &lt;a href="http://www.digg.com/"&gt;Digg&lt;/a&gt; but I’ve been frustrated with it because all the technology stuff gets put into the same bin and most of the programming pieces out there are more for the open source folks.  Nothing wrong with that, those just aren’t the technologies that I use everyday.  &lt;br /&gt;&lt;br /&gt;With DotNetKicks I can quickly see content that is relevant to me.  This is a much needed tool and I wish the best of luck to the folks running the site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115213935102489219?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115213935102489219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115213935102489219' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115213935102489219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115213935102489219'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/dotnet-iskicking.html' title='DotNet is....kicking!!!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115212762742685598</id><published>2006-07-05T12:25:00.000-07:00</published><updated>2006-07-05T12:42:33.760-07:00</updated><title type='text'>Free .NET stuff</title><content type='html'>For all you .NET folks who like free stuff (and who doesn’t like free stuff?)  Larkware is having a &lt;a href="http://www.larkware.com/contest2006/contest1000-1.aspx"&gt;contest&lt;/a&gt;.  Go check it out and nominate some blog posts!&lt;br /&gt;&lt;br /&gt;And don't forget the Digipede Network Developer Edition is free also.  You can get that &lt;a href="http://www.digipede.net/products/dev-edition.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115212762742685598?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115212762742685598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115212762742685598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115212762742685598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115212762742685598'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/free-net-stuff.html' title='Free .NET stuff'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115212579864327716</id><published>2006-07-05T11:55:00.000-07:00</published><updated>2006-07-05T11:56:38.663-07:00</updated><title type='text'>Digipede: Manna from the Internet</title><content type='html'>I’ve written &lt;a href="http://krgreenlee.blogspot.com/2006/07/digipede-have-you-heard-of-us-yet.html"&gt;here&lt;/a&gt; and &lt;a href="http://krgreenlee.blogspot.com/2006_05_01_krgreenlee_archive.html"&gt;here&lt;/a&gt; about how hard it is to get momentum and visibility.  We’ve been working hard at it, but nothing beats those moments when you get "free stuff."  When I got to work today Dan was looking at our site stats.  We were getting a lot of hits from two sites we had never heard of before:  &lt;a href="http://www.dotnetkicks.com/"&gt;DotNetKicks&lt;/a&gt; and &lt;a href="http://www.larkware.com/"&gt;Larkware&lt;/a&gt;.  This is exciting.  Really exciting.  Many thanks to the unknown, unsung heroes who are helping to spread the word.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115212579864327716?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115212579864327716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115212579864327716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115212579864327716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115212579864327716'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/digipede-manna-from-internet.html' title='Digipede: Manna from the Internet'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115195395136336161</id><published>2006-07-03T12:08:00.000-07:00</published><updated>2006-07-03T12:12:31.380-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>Interview mentioning Microsofts’ enty into HPC</title><content type='html'>I ran across an interview today that I thought was interesting and I wanted to share it with you.  &lt;a href=http://www.hpcwire.com/hpc/707655.html&gt;A Conversation with Myricom’s Chuck Seitz&lt;/a&gt;, the question that caught my eye was, “HPCWire: How will Microsofts’ entry into HPC affect the cluster computing market?  More specifically, how will it affect Myricom?” Here is the part of his response that interested me, I’ve bolded and added reference numbers so that I can comment on what I thought was interesting:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"My views about the likely success of Windows CCS clusters for HPC are influenced by the experience that about 85 percent of Myricom's market (in dollars) is customers who have no interest in being software developers or system administrators, even though they are probably running Linux today. These are customers such as auto companies running LS-Dyna or Fluent, or Saudi Aramco running seismic and reservoir-modeling codes, or the chemistry department at the University of Anywhere. &lt;strong&gt;These customers don't operate giant clusters, but perhaps up to a few hundred nodes. This is the market that Microsoft has said that they are going after, clusters of limited size where the most important factor for customer satisfaction is that the installation and maintenance be turnkey. [1]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In the Linux world, licensed applications are distributed as binaries linked to specific libraries, such as specific MPI libraries. &lt;strong&gt;Each time Linux and the libraries change, the application vendors have to generate and test new binaries. [2]&lt;/strong&gt;  One very smart thing that Microsoft has done to reduce the logistical problems in operating a cluster and to make life easier for application developers is to standardize the APIs. For fast networks, the APIs for message passing employ Sockets (Winsock Direct). This approach gives up a very small amount in performance, but allows applications to be distributed as binaries, exactly fitting the Microsoft Windows world."&lt;/blockquote&gt;&lt;br /&gt;[1] It’s nice to see the words of our &lt;a href=http://powersunfiltered.com/2006/06/23/linux-community-notices-windows-ccs/&gt;CEO&lt;/a&gt; echoed by another CEO.  &lt;br /&gt;&lt;br /&gt;[2] I didn’t know this.  I wonder how often Linux administrators update stuff and how the application vendors manage versioning.  Anyone know how much of a problem this really is?&lt;br /&gt;&lt;br /&gt;Interesting interview, go check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115195395136336161?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115195395136336161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115195395136336161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115195395136336161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115195395136336161'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/interview-mentioning-microsofts-enty.html' title='Interview mentioning Microsofts’ enty into HPC'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115195273318237373</id><published>2006-07-03T11:50:00.000-07:00</published><updated>2006-07-03T11:52:13.196-07:00</updated><title type='text'>Just say no to splogs!</title><content type='html'>Every now and then I’ll do a blog search on "Digipede" and "grid computing" to see if anyone is talking about us or talking about grid computing on Windows.  I have come to find the &lt;a href="http://blogsearch.google.com/"&gt;Google blog search&lt;/a&gt; to be pretty useless.  Google doesn’t filter out splogs and there are a lot of folks out there hijacking content, not grabbing all of it, and not leaving a link to the full source.  Because Google’s blog search doesn’t filter out these splogs the search results contain an incredible amount of noise and I, the user, have to filter that myself.  This sucks.&lt;br /&gt;&lt;br /&gt;Today I discovered a blog search engine called &lt;a href="http://www.blogdigger.com/"&gt;Blogdigger&lt;/a&gt; which seems to do a good job of returning relevant content. (ie. no noise) &lt;a href="http://www.icerocket.com/"&gt;IceRocket&lt;/a&gt; also does a good job and I use that from time to time too.  One nice feature of Blogdigger and IceRocket is that the search results are returned sorted by date.  I think that is very handy way to eliminate old noise.  Additionally, I tried out Yahoo! search using, “blog: digipede” as my search and I was very pleased with the returned results.  This search did pick up some news results but very little noise.&lt;br /&gt;&lt;br /&gt;There has been so much talk and study done on how to raise rankings in Google that everyone knows how to increase page rank.  This makes it easy for sploggers to come up higher in the search than bloggers.  This is too bad because in their quest for free cash, they are skewing the results, annoying people, and probably turning customers away from Google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115195273318237373?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115195273318237373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115195273318237373' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115195273318237373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115195273318237373'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/just-say-no-to-splogs.html' title='Just say no to splogs!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115180016724740823</id><published>2006-07-01T17:27:00.000-07:00</published><updated>2006-07-01T17:29:27.260-07:00</updated><title type='text'>Digipede:  Have you heard of us yet?</title><content type='html'>During the SIA show I had several folks ask me, "Where did you guys come from?  I never heard of you before."  Digipede is a three year old company and our first product was released last year.  Creating name recognition and momentum is a struggle for most startups, the only ones that don’t struggle with this are the ones that have high profile employees or founders.  (I suspect that &lt;a href="http://www.podtech.net/"&gt;PodTech&lt;/a&gt; got a huge boost when they announced that Robert Scoble was joining the team.)  Someday someone will figure out how to jump start startups but for now we have to do it the old fashion way and that is to keep telling our story to anyone who will listen and to hunt high and low for anyone who will pass our story on for free.  &lt;br /&gt;&lt;br /&gt;Digipede is starting to get some recognition and it was great that we were the enablers for Microsoft and HP’s demo of the HP ProLiant Servers and Microsoft Windows CCS.  Being in the Microsoft/HP demo of their new technology releases is a great validation of the Digipede Network and let’s people know we exist, helps people feel more comfortable with our product and company, and clearly creates a powerful demonstration of what the potential is for Windows high performance computing in the business world.  &lt;br /&gt;&lt;br /&gt;In addition, the free Digipede Network Developer Edition was announced in last week’s MSDN Flash newsletter.  This was a great boost for us and it was wonderful that it came out right after SIA.  Dan’s DotNetRocks interview was delayed and actually came out this week too.  I’m hoping that this attention will get people talking.  Folks are downloading the Developer Edition and I’m hopeful that as people start using it they will also start talking about it.  But we still have to keep spreading the word and looking for people to help us do that.&lt;br /&gt;&lt;br /&gt;So, repeat after me, “With the Digipede Network...”:&lt;br /&gt;&lt;br /&gt;"grid computing is easy"&lt;br /&gt;"I can do grid computing on Windows"&lt;br /&gt;"I can develop grid applications using .NET"&lt;br /&gt;"I’m a rock star!"&lt;br /&gt;&lt;br /&gt;Pick your value-add and spread the word.&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/digipede" rel="tag"&gt;Digipede&lt;/a&gt;, &lt;a href="http://technorati.com/tag/grid%20computing" rel="tag"&gt;Grid Computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/distributed" rel="tag"&gt;Distributed&lt;/a&gt;, &lt;a href="http://technorati.com/tag/cluster%20computing" rel="tag"&gt;Cluster Computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115180016724740823?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115180016724740823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115180016724740823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115180016724740823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115180016724740823'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/digipede-have-you-heard-of-us-yet.html' title='Digipede:  Have you heard of us yet?'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115179793563331566</id><published>2006-07-01T16:35:00.000-07:00</published><updated>2006-07-01T16:55:06.466-07:00</updated><title type='text'>Spam Alert: New twist on an old game...</title><content type='html'>Today when I booted up my laptop I had a bunch of instant messages pop-up from kate_ross65.  I thought it was weird but just closed everything down.  Then I checked my Yahoo mail and found I had an email from Kate Ross.  This is the first time I’ve seen a scam that used both IM and email together.  I found references to this scam &lt;a href="http://scamdex.com/NSX/S/NSX11Feb20061712120800.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.fightidentitytheft.com/blog/?p=39"&gt;here&lt;/a&gt;.   The email was sent at 5:40 this morning and the subject was “GOD BLESS YOU”.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Here is the IM:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Sat Jul 01 &lt;br /&gt;[14:12] kate_ross65: HELLO [Offline Message (Sat Jul 01 05:44:13 2006)]&lt;br /&gt;[14:12] kate_ross65: HOW ARE YOU? [Offline Message (Sat Jul 01 05:44:17 2006)]&lt;br /&gt;[14:12] kate_ross65: I AM MOTHER KATE ROSS [Offline Message (Sat Jul 01 05:44:21 2006)]&lt;br /&gt;[14:12] kate_ross65: ARE YOU THERE? [Offline Message (Sat Jul 01 05:44:23 2006)]&lt;br /&gt;[14:12] kate_ross65: ding [Offline Message (Sat Jul 01 05:44:24 2006)]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Here is the email from mother_kate_1950@yahoo.com:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;HELLO DEAR,&lt;br /&gt; &lt;br /&gt;GREETINGS IN THE NAME OF OUR LORD JESUS CHRIST. I AM MRS KATE &lt;br /&gt;ROSS,A WIDOW TO LATE DAVID ROSS I AM 55 YEARS OLD, I AM NOW A &lt;br /&gt;NEW CHRISTAIN CONVERT, SUFFERING FROM LONG TIME CANCER OF THE &lt;br /&gt;BREAST, FROM ALL INDICATION MY CONDITIONS IS REALLY DETERIORATING &lt;br /&gt;AND IT IS QUITE OBVIOUS THAT I WON'T LIVE MORE THAN 2 MONTHS, &lt;br /&gt;ACCORDING TO MY DOCTORS, THIS IS BECAUSE THE CANCER STAGE HAS &lt;br /&gt;GOTTEN TO A VERY BAD STAGE. &lt;br /&gt; &lt;br /&gt;MY LATE HUSBAND KILLED DURING THE U.S. RAID AGAINST TERRORISM&lt;br /&gt;IN AFGHANISTAN, AND DURING THE PERIOD OF OUR MARRIAGE WE &lt;br /&gt;COULD'NT PRODUCE ANY CHILD..&lt;br /&gt; &lt;br /&gt;MY LATE HUSBAND WAS VERY WEALTHY AND AFTER HIS DEATH, I &lt;br /&gt;INHERITED ALL HIS BUSINESS AND WEALTH. THE DOCTORS HAS ADVISED &lt;br /&gt;ME THAT I MAY NOT LIVE FOR MORE THAN 2 MONTHS, SO I NOW DECIDED &lt;br /&gt;TO DEVIDE THE PART OF THIS WEALTH, TO CONTRIBUTE TO THE &lt;br /&gt;DEVELOPMENT OF THE CHURCH IN AFRICA, AMERICA ,ASIA, AND EUROPE. &lt;br /&gt;I SELECTED YOU AFTER VISITING THE WEBSITE AND I PRAYED OVER IT. &lt;br /&gt; &lt;br /&gt;I AM WILLING TO DONATE THE SUM OF $10,000.000.00U.USD (TEN &lt;br /&gt;MILLION UNITED STATES DOLLARS) TO THE LESS PRIVILEGED. PLEASE I &lt;br /&gt;WANT YOU TO NOTE THAT FUND IS LYING IN A SECURITY COMPANY IN &lt;br /&gt;GERMANY, AND UPON MY INSTRUCTION, MY ATTORNEY, WHO PRESENTLY IS &lt;br /&gt;IN LONDON WILL FILE IN AN APPLICATION FOR YOU FOR THE TRANSFER &lt;br /&gt;OF THE MONEY IN YOUR NAME.LASTLY, I HONESTLY PRAY THAT THIS &lt;br /&gt;MONEY WHEN TRANSFERRED WILL BE SURE FOR THE SAID PURPOSE, BECAUSE &lt;br /&gt;I HAVE COME TO FIND OUT THAT WEALTH ACQUISITION WITHOUT CHRIST &lt;br /&gt;IS VANITY. &lt;br /&gt; &lt;br /&gt;MAY THE GRACE OF OUR LORD JESUS THE LOVE OF GOD AND THE SWEET &lt;br /&gt;FELLOWSHIP OF GOD BE WITH YOU AND YOUR FAMILY &lt;br /&gt; &lt;br /&gt;I AWAIT URGENT REPLY. &lt;br /&gt;YOURS IN CHRIST. &lt;br /&gt;MOTHER KATE ROSS&lt;br /&gt; &lt;br /&gt;__________________________________________________&lt;br /&gt;Do You Yahoo!?&lt;br /&gt;Tired of spam? Yahoo! Mail has the best spam protection around &lt;br /&gt;http://mail.yahoo.com &lt;/pre&gt;&lt;br /&gt;There are a lot of themes here, cancer, terrorism, Afghanistan, Christianity, Jesus Christ, God, money, and greed. To many people it will be obvious that this person is trolling. I wonder how many folks he/she will catch and how much damage this thief will leave in his/her path.&lt;br /&gt;&lt;br /&gt;Though, I did find the use of the English language quite funny. For example:&lt;br /&gt;&lt;br /&gt;"LONG TIME CANCER OF THE BREAST" - Most of us call this breast cancer&lt;br /&gt;"COULD'NT PRODUCE ANY CHILD" - Most of us would have said "couldn't have a child"&lt;br /&gt;"TO DEVIDE THE PART OF THIS WEALTH" - Hmmm, do you mean "divide"?&lt;br /&gt;&lt;br /&gt;The language used here reminds me of my biological father, who is not a native English speaker. I don't think this guy is either. Did you see any other odd phrasings?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115179793563331566?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115179793563331566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115179793563331566' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115179793563331566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115179793563331566'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/07/spam-alert-new-twist-on-old-game.html' title='Spam Alert: New twist on an old game...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115168808527726348</id><published>2006-06-30T10:19:00.000-07:00</published><updated>2006-06-30T10:21:25.306-07:00</updated><title type='text'>Software: MSDN search tip</title><content type='html'>I really don’t like using Microsoft’s search engine to search MSDN.  I can’t ever seem to find what I’m looking for because the search engine always seems to return everything but what I want.  This is particularly a problem when I’m searching on something from a programming language reference or library.  Usually I’ll use Google to search the site, but today I made an interesting discovery that may end up making MSDN more useful to me.&lt;br /&gt;&lt;br /&gt;I wanted to find out what [Serializable] is in its relationship to a class.  My original search was:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[Serializable]&lt;/pre&gt;Which didn’t get me what I needed, I then tried: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[Serializable] C#&lt;/pre&gt;Again this failed to produce the results I wanted.  So then I remembered something I read yesterday and I tried this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;C# [Serializable]&lt;/pre&gt;And miracle of miracles...The first item that came up was what I was looking for.  So my new strategy for searching the MSDN site will be language first, then what I’m looking for.  And the answer to my question is that [Serializable] is an attribute.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115168808527726348?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115168808527726348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115168808527726348' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115168808527726348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115168808527726348'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/software-msdn-search-tip.html' title='Software: MSDN search tip'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115145709595752979</id><published>2006-06-27T18:06:00.000-07:00</published><updated>2006-06-27T18:12:27.986-07:00</updated><title type='text'>Software: Good old COM....</title><content type='html'>Today I’ve been working on a C++ COM sample for the Digipede Network and I ran into a &lt;a href="http://msdn2.microsoft.com/en-US/library/cddbs9aw.aspx"&gt;LNK1179 error, "invalid or corrupt file: duplicate COMDAT ‘_IID__ServerException’"&lt;/a&gt; error.&lt;br /&gt;&lt;br /&gt;LNK1179 is a very poorly defined error and the MSDN website is of little help.  There seem to be three different ways that this error message can manifest.  &lt;br /&gt;&lt;br /&gt;1. Variables or function names have the same first eight letters and compiler settings have been set such that the variables/function names are being truncated at 8, making it look like duplicates.&lt;br /&gt;&lt;br /&gt;2. You are using Visual Studio 6.0 C++ and there is a stl bug in your code.  There was a bug reported and probably fixed by now that produced this error if the user had templates with the same static variable names.&lt;br /&gt;&lt;br /&gt;3. (My problem)  .Thl files have duplicate IID values.&lt;br /&gt;&lt;br /&gt;I was able to determine that one place _IID__ServerException was being defined was in the Digipede.Framework.tlh file.  After playing around a bit I also found the IID_ServerException defined in MSCORLIB.tlh, which the Digipede.Framework.tlh includes.  MSCORLIB.tlh is inheriting the #import settings from the Digipede.Framework.dll.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;font size=1&gt;&lt;br /&gt;#import "Digipede.Framework.dll" raw_interfaces_only, raw_native_types, no_namespace, auto_search, named_guids&lt;br /&gt;&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here is my solution:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;font size=1&gt;&lt;br /&gt;#import "Digipede.Framework.dll" raw_interfaces_only, raw_native_types, no_namespace, auto_search&lt;br /&gt;&lt;br /&gt;extern "C" const GUID __declspec(selectany) LIBID_Digipede_Framework =&lt;br /&gt;    {0xa613b0f2,0xce0e,0x11d9,{0xa7,0xfa,0x00,0x11,0x43,0x75,0x5c,0x16}};&lt;br /&gt;&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Notice I removed the &lt;strong&gt;named_guids&lt;/strong&gt; from the #import statement and added a variable that defined my LIBID.  That got everything to compile.  I don’t like having the LIBID_Digipede_Framework value defined outside the Digipede.Framework.tlh file for obvious reasons and I’ve submitted a bug report on it.  Maybe we’ll come up with a cleaner solution that doesn’t require a name change, but for now, I’m using the work around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115145709595752979?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115145709595752979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115145709595752979' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115145709595752979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115145709595752979'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/software-good-old-com.html' title='Software: Good old COM....'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115108759530665096</id><published>2006-06-23T11:32:00.000-07:00</published><updated>2006-06-23T11:33:15.320-07:00</updated><title type='text'>Digipede: Back from SIA</title><content type='html'>We’re back from SIA.  Several of the attendees and a few of the vendors that I talked to said that SIA seemed less attended this year than in previous ones, but I had a good show.  It was great to be able to work on explaining grid computing and the Digipede Network to folks.  One thing I found myself repeating over and over again was how the Digipede Network is different from other grid computing solutions.  Being able to distribute .NET objects is huge and it completely simplifies the process of adding the power of grid computing to an application.  The fact that Windows developers can use programming methodologies they are already comfortable with is a huge time saver for our customers.  And we have all heard the adage that “Time is money”, and when engineers are able to complete a project faster the company they work for saves money.  &lt;br /&gt;&lt;br /&gt;Going through this explanation process over and over was good for me because I haven’t had as much opportunity as I would like to get out and talk about what we do.  And the few times I had, I found myself searching for words.  Having an intensive three day talk fest has really helped me clarify how I present our message.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115108759530665096?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115108759530665096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115108759530665096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115108759530665096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115108759530665096'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/digipede-back-from-sia.html' title='Digipede: Back from SIA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115086190098202826</id><published>2006-06-20T20:47:00.000-07:00</published><updated>2006-06-20T20:51:41.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><title type='text'>The Future of Grid Computing:  A look into my crystal ball</title><content type='html'>Grid computing is here to stay and I believe we are preparing for a tipping point.  The tipping point HAS NOT happened yet, but its coming.  When it happens there will be an explosion of new applications and the rewriting of old ones.  I believe this because we (computer users) have been demanding, getting, and using increased processor speed and more responsive operating system architectures.  The acceptance of grid computing will result in a new programming paradigm with developers creating grid-based products and using Grid Oriented Architecture (GOA) to develop them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 1&lt;/strong&gt;&lt;br /&gt;Grid Oriented Architecture starts with the high-level look at the product in question.  Architects identify what parts of the application can run in parallel and what parts can’t.  They then look at the parallel work and decided which work is best run in a thread and which work is best run on a grid.  Work that can run on a thread is work that has limited scaling requirements (remember that for optimal use of threads, there should be one processor per thread), and a very short execution time.  The other parallel work with be executed on the grid.  &lt;br /&gt;&lt;br /&gt;Historically grid solutions have distributed executables and scripts but with the new style of grid computing, grid solutions are able to distribute actual instantiated objects, i.e. the power of grid computing INSIDE your application.  .NET and XML serialization make this possible on networked Windows machines and Digipede is the first company to provide this capability.  Object distribution on a grid is a key enabler for grid computing acceptance among the development community because this technology allows the developer to approach grid problems in a manner similar to how they already approach threading problems, uses familiar object oriented techniques, and reduces the complexity of initializing the work and retrieving results. &lt;br /&gt;&lt;br /&gt;Because Digipede is the only grid solution that distributes objects, I’m going to discuss Digipede object distribution.  Here are some of the advantages to distributed objects:&lt;br /&gt;&lt;br /&gt;- Distributed objects are created by simply instantiating an object from a class—developers can use familiar object oriented methodologies.&lt;br /&gt;&lt;br /&gt;- Object initialization happens in the main code body.  When initializing distributed executables a developer is limited to the type of data that can be easily sent on the command-line, in an input file, or via a database.  For the average development problem this creates unnecessary complexity.  With distributed objects the developer sets the initialization properties in the object and the data elements can be any data type.  From a programming perspective this is also nice because it provides encapsulation.  Input files and databases can still be used, but being able to use OOP methodologies allows the developers to finish their work faster because they are able to use methodologies they already know.&lt;br /&gt;&lt;br /&gt;- Object results are returned to the main code body inside the distributed object.  With distributed executables a developer can return an integer on the command-line, a result file, or update a database.  With distributed objects the developer sets the results properties of the object on the compute node and the results are serialized back to the main application.  Again the data elements can be of any type.  &lt;br /&gt;&lt;br /&gt;- The distributed objects are returned to the main application when execution on the compute node finishes.  The main application is notified of the returned object via an event.  This serializes the parallelized work, which eliminates much of the complexity associated with threading.&lt;br /&gt;&lt;br /&gt;Distributing objects on the compute grid makes it very easy to add grid computing to any application.  It is this ease of use which will propel grid computing to general acceptance.  &lt;br /&gt;&lt;br /&gt;Digipede has provided other functionality geared toward making it easy on everyone and that is that the Digipede Network will automatically move dependent files.  The Digipede Network can automatically figure out what some of the files are and there are APIs available for the rest.  Many cluster and grid solutions require that the user preinstall the executables on the compute nodes.  (With the Digipede Network you will only have to preinstall software that requires an installation program.)  This allows newly added compute nodes to quickly and seamlessly contribute to the grid.  Eventually all grid computing solutions will provide this functionality simply because it makes it easier for the user, the developer, and the IT folks.&lt;br /&gt;&lt;br /&gt;The order of the day is ease of use.  That will gain grid computing full acceptance as a viable development tool.  Don’t make people invest precious time figuring out your grid infrastructure; instead give them the power of the grid in a manner they are already familiar with.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 2&lt;/strong&gt;&lt;br /&gt;More companies will grid-enable their applications using standard grid platforms.  We’ve already seen one partner do this, &lt;a href="http://www.4thstory.com/"&gt;4th Story&lt;/a&gt;.  4th Story’s application has a checkbox that enables the user to add the power of grid computing to the computations that 4th Story is running.  Customers have been excited about having this functionality available within the 4th Story product and they have also been excited about the fact that they can use that same grid for their own applications.  That grid is the Digipede Network and we will see more companies deciding that they need a grid solution and it really makes sense financially to use someone else’s.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 3&lt;/strong&gt;&lt;br /&gt;With the move toward mobile computing solutions, the ubiquitousness of the Internet, SOA, and the power of grid computing, we are also going to see more powerful mobile applications.  With a thin client or even just a browser, running on the mobile device and the core applications running on SOA on a grid, developers will unlock the opportunities inherent in powerful mobile devices.  Where in the past there was the client/server software approach we will see the same thing start to happen on hardware, with the device acting as the client and the SOA/grid acting as the server.  A fun area for this will be mobile gaming but I also think there will be applications in the areas of chemical sensors and monitoring, CAD and construction, medical, and security.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;Grid computing is on the rise and with the ease of use of the Digipede Network it’s only a matter of time until other grid providers drink the Kool-Aid and start making their solutions more accessible.  With the Digipede Network Windows application builders will have a leg up. &lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/digipede" rel="tag"&gt;Digipede&lt;/a&gt;, &lt;a href="http://technorati.com/tag/grid%20computing" rel="tag"&gt;Grid Computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/distributed" rel="tag"&gt;Distributed&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115086190098202826?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115086190098202826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115086190098202826' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115086190098202826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115086190098202826'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/future-of-grid-computing-look-into-my.html' title='The Future of Grid Computing:  A look into my crystal ball'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115086084284984258</id><published>2006-06-20T20:32:00.000-07:00</published><updated>2006-06-20T20:34:02.850-07:00</updated><title type='text'>Digipede: New whitepaper available</title><content type='html'>When you see things go quiet here it’s pretty safe to assume that I’m working on a white paper.  I just can’t seem to write for my blog while I’m working on a paper.  The paper is now completed and it’s up on the website.  The white paper is called &lt;a href="http://www.digipede.net/downloads/Digipede_CCS_Whitepaper.pdf"&gt;"Grid and Cluster Computing: Options for Improving Windows Application Performance"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of the things I like about Digipede is that there isn’t any internal competition.  Or at least it doesn’t feel like it.  For example most of the white paper was written by me, but Dan did two review passes, I then submitted it to John who did a pass, and then the final pass was done by Nathan.  This makes the paper much better than it would have been had it been only one person.  Each of us is focused on different parts of the company, we all have different strengths, and by putting that all together we end up with a document that is significantly stronger and I think move useful.&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/digipede" rel="tag"&gt;Digipede&lt;/a&gt;, &lt;a href="http://technorati.com/tag/grid%20computing" rel="tag"&gt;Grid Computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/distributed" rel="tag"&gt;Distributed&lt;/a&gt;, &lt;a href="http://technorati.com/tag/cluster%20computing" rel="tag"&gt;Cluster Computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115086084284984258?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115086084284984258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115086084284984258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115086084284984258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115086084284984258'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/digipede-new-whitepaper-available.html' title='Digipede: New whitepaper available'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115086031056806390</id><published>2006-06-20T20:21:00.000-07:00</published><updated>2006-06-20T20:25:10.586-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Out and About'/><title type='text'>Off to SIA</title><content type='html'>As I type this I’m on a plane flying into to JFK.  Tomorrow starts the &lt;a href="http://www.sia.com/tmc2006"&gt;SIA Management Technology&lt;/a&gt; conference.  If you’re in the NYC area, stop by.  We’ll be providing demos at the Digipede booth (#4506) and we’ll have representatives in the Microsoft booth (#2211).  Good times.  &lt;br /&gt;&lt;br /&gt;I’m really looking forward to talking to folks and finding out more about their specific types of problems.  I’m interested in finding out what they do (why they do it if they’ll tell me) and what types of products will make their lives easier and their work more productive.  I find this type of information fascinating.  Talking to people about these things makes Adam Smith’s invisible hand visible to me...if only for a brief time.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update: Internet connection has been...interesting.  The conference is going well and I'm enjoying talking to people.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/digipede" rel="tag"&gt;Digipede&lt;/a&gt;,  &lt;a href="http://technorati.com/tag/SIA" rel="tag"&gt;SIA&lt;/a&gt;,  &lt;a href="http://technorati.com/tag/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115086031056806390?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115086031056806390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115086031056806390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115086031056806390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115086031056806390'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/off-to-sia.html' title='Off to SIA'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-115014762535849372</id><published>2006-06-12T14:25:00.000-07:00</published><updated>2006-06-12T17:41:20.966-07:00</updated><title type='text'>I may be old but I can still hear!</title><content type='html'>A few months ago I heard about a product called Mosquito that emits a high-frequency sound that only young people can hear.  The idea is to install the Mosquito in locations where business owners don’t want teens to hang-out.  The sound is so annoying that eventually the teens will move on- but it can’t be heard by adults.  At that time I looked around for an mp3 of the sound to see if I could hear it, but I couldn’t find one.  Today I stumbled upon a New York Times &lt;a href="http://www.nytimes.com/2006/06/12/technology/12ring.html?_r=1&amp;oref=slogin"&gt;&lt;br /&gt;article&lt;/a&gt; that contains an MP3, apparently teens are now using the sound as a ring tone to get around adult phone rules.&lt;br /&gt;&lt;br /&gt;This was interesting to me because of a college physics experiment that I participated in many, many years ago.  We had a device that emitted a high-frequency sound and we were supposed to record the highest frequency we could hear.  I never did find out how high I could hear because my lab partner got bored.  Guess I can understand better now why he got bored!  But I’ve always been curious about it.  I suspect that my curiosity on this was fed by the fact that TRS-80s made me sick.  The machines made a high-pitch whining sound that made me nauseous.  I was in an experimental math class that was the first to use computers at my high school and I used to write my programs by hand and have the guys type them in (Thanks guys!) because if I stayed in the room too long I started getting ill.  Wasn’t much fun but I have always wondered.  I can also hear many types of electrical equipment from pretty far away; I’m a good person to send around the house to make sure everything is turned off!  &lt;br /&gt;&lt;br /&gt;Anyway, here is a direct link to the &lt;a href="http://graphics.nytimes.com/packages/audio/nyregion/20060610_RINGTONE.mp3"&gt;tone&lt;/a&gt;.  I may have to wear glasses now to read but at the ripe old age of 40 I can hear it...can you?&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/mosquito" rel="tag"&gt; mosquito &lt;/a&gt;, &lt;a href="http://technorati.com/tag/ring%20tone" rel="tag"&gt;ring tone&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-115014762535849372?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/115014762535849372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=115014762535849372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115014762535849372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/115014762535849372'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/i-may-be-old-but-i-can-still-hear.html' title='I may be old but I can still hear!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114989748724871575</id><published>2006-06-09T16:55:00.000-07:00</published><updated>2006-06-10T00:39:40.513-07:00</updated><title type='text'>Peter and the Wolf</title><content type='html'>Google, Google, Google.  We keep hearing about all the wonderful, half-assed products that Google keeps shipping.  Most of the products don’t seem to provide any obvious revenue streams for Google.  Which in one respect is part of the Web 2.0 philosophy, so good for Google.  But here’s the rub.  Google is no longer a startup.  It is a huge public company with a reputation to protect, a reputation that is worth a LOT of money.  Not just to the company but also to its shareholders.  &lt;br /&gt;&lt;br /&gt;Continuing to release unfinished products is, in my eyes, hurting Google’s reputation.  People have come to expect quality from Google, Google’s search engine is perceived to be the best in the world.  I can’t image life without it.  But the continued release of beta software that looks more like alpha software only leaves a negative impression behind.  If Google keeps this up someday they will release something new that is truly amazing and the world won’t notice.  &lt;br /&gt;&lt;br /&gt;Google needs to start managing expectations.  Sales and marketing folks are always trying to manage customer expectations while convincing the prospect that their products at the best in the world.  Google does not seem to be managing anything.  Forbes ran an interesting article &lt;a href="http://www.forbes.com/technology/2006/06/02/internet-microsoft-google_cz_ec_0605valleyletter.html"&gt;"Who’s Really Running Google?"&lt;/a&gt;  And the author suggests that it’s a good thing that Eric Schmidt keeps a hands-off approach and I can see the value in his approach, however, just because you hired smart people to build stuff doesn’t mean that those smart people know how to build and ship products.  &lt;br /&gt;&lt;br /&gt;If building and shipping quality products was so easy people wouldn’t waste so much time complaining about Microsoft.  Microsoft is a company that has been building software products for over twenty years and during that time has spent significant time and money perfecting the art of delivering products.  Yet Microsoft still doesn’t get it right all the time.  You may argue that Google has smarter people than Microsoft but I think you’d be wrong.  Both companies have actively recruited bright people and Microsoft has been at it much longer.&lt;br /&gt;&lt;br /&gt;When I look at the quality of Google’s recent releases, the lack of obvious revenue opportunities for many of those releases, and the fact that Blogger has been down more this week than up, I can’t help but think that someone needs to take control over there.  Process is not a bad word.  Project managers and Product managers are important.  Maybe Google should invest in a few of those types and put some processes in place before the market place stops taking them seriously.&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/Google" rel="tag"&gt;Google&lt;/a&gt;  &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114989748724871575?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114989748724871575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114989748724871575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114989748724871575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114989748724871575'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/peter-and-wolf.html' title='Peter and the Wolf'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114964160226468554</id><published>2006-06-06T17:52:00.000-07:00</published><updated>2006-06-06T17:53:22.343-07:00</updated><title type='text'>Digipede is Rockin!</title><content type='html'>Dan was interviewed today by the &lt;a href="http://www.dotnetrocks.com/"&gt;.NET Rocks!&lt;/a&gt; guys and the podcast will be available next week on June 13th.  Word is that it was a great conversation and I’m really looking forward to hearing it.  So don’t miss it, I’m sure that you will find it both enlightening and entertaining. We are talking about Dan here. :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/grid%20computing" rel="tag"&gt;grid computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Digipede" rel="tag"&gt;Digipede&lt;/a&gt;,  &lt;a href="http://technorati.com/tag/DotNetRocks" rel="tag"&gt; DotNetRocks &lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114964160226468554?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114964160226468554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114964160226468554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114964160226468554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114964160226468554'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/digipede-is-rockin.html' title='Digipede is Rockin!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114964078763926322</id><published>2006-06-06T17:35:00.000-07:00</published><updated>2006-06-06T17:39:58.526-07:00</updated><title type='text'>Having a bad hair day...</title><content type='html'>For the last two shopping trips I’ve been looking for conditioner.  I use Clairol Herbal Essences shampoo and conditioner and for the record I started using the products long before the tasteless commercials for it came out (the ones with the woman having a sexually charged experience getting her hair washed.)  Anyway, I haven’t been able to find the product at either Albertsons or Safeway.  So I started wondering if the product had been discontinued.  I really can’t tell.  &lt;br /&gt;&lt;br /&gt;I did a little Googling and found out that the products are made by &lt;a href="http://www.pg.com"&gt;Procter &amp; Gamble&lt;/a&gt;, searching through the site I ended up on a new site that seems to be just for the &lt;a href="http://www.herbalessences.com/us/"&gt;Herbal Essences&lt;/a&gt; products and wouldn’t it just figure that the site is a Flash presentation.  This is really annoying, quit f*cking with me and just tell me what is going on.  Why can’t I find the products I want?  What happened to them?  &lt;br /&gt;&lt;br /&gt;My shampoo and conditioner of choice has been Herbal Essences Normal Hair Moisture-Balancing Shampoo/Conditioner, wouldn’t it have been a lot more user friendly to just put up a chart that says, “If you were using this, then you’ll want to switch to this.”  But I suppose that would have been too easy to use and not flashy enough so I’m stuck with doing a stupid questionnaire that seemed totally irrelevant so that I can find out what new product replaces my older preferred product.  &lt;br /&gt;&lt;br /&gt;Here are the two irrelevant questions:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I am &lt;br /&gt;&lt;br /&gt;A) the girl-next-door&lt;br /&gt;B) far from perfect&lt;br /&gt;C) a diva, baby&lt;br /&gt;   &lt;br /&gt;I’m more likely to:&lt;br /&gt;&lt;br /&gt;A) gossip with my friends than about them&lt;br /&gt;B) sing in an elevator than in the shower&lt;br /&gt;C) I’ll never tell&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now, for the love of GOD!  Does anyone know what those questions have to do with selecting a shampoo?  And I can’t just by-pass the questionnaire; I have to answer ALL the questions.  Dumb, dumb, dumb. &lt;br /&gt;&lt;br /&gt;I’m informed that the new shampoo I want is Herbal Essences hello hydration.  Totally different scent and it says it’s for dry hair.  I don’t have dry hair.  &lt;br /&gt;&lt;br /&gt;I’m sooo not looking forward to finding a new shampoo that we can all be happy with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114964078763926322?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114964078763926322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114964078763926322' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114964078763926322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114964078763926322'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/having-bad-hair-day.html' title='Having a bad hair day...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114948740565783543</id><published>2006-06-04T23:00:00.000-07:00</published><updated>2006-06-04T23:03:31.083-07:00</updated><title type='text'>Looking for a new blogging tool</title><content type='html'>I finally did it and bought a domain name and got a hosting company.  My big plan for this weekend was to move my blog off of Blogger and onto WordPress.  But because my hosting company is GoDaddy and I have the Windows hosting option, this didn’t work.  The only way I could use WordPress to blog on GoDaddy would be to switch to the Unix hosting option and I want the ASP.NET 2.0 solution to play around with.  So WordPress isn’t going to happen for me.&lt;br /&gt;&lt;br /&gt;I then noticed that GoDaddy has a blogging tool called QuickBlog and I actually moved my blog over and I was getting really excited until I realized that I couldn’t access the template.  I sent an email to GoDaddy asking about that and they confirmed that there is no way for me to put any of my own code into the template.  This doesn’t work for me.  But I have to say that QuickBlog looked very good and I think for more casual bloggers it is an outstanding tool.  If I wasn’t so attached to some of the tools I’m using to monitor this blog, I would have made the move.&lt;br /&gt;&lt;br /&gt;My next attempt will have to wait for later in the week.  I just downloaded &lt;a href="http://www.dotnetnuke.com/"&gt;DotNetNuke 4.0.3&lt;/a&gt; and hopefully this experiment will work out.  Bill had &lt;a href="http://billcoupe.blogspot.com/2006/05/update-on-dotnetnuke-experiment.html"&gt;posted&lt;/a&gt; that he had a good experience with it, so I’m going to give it a shot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114948740565783543?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114948740565783543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114948740565783543' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114948740565783543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114948740565783543'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/looking-for-new-blogging-tool.html' title='Looking for a new blogging tool'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114948655293383620</id><published>2006-06-04T22:45:00.000-07:00</published><updated>2006-06-04T22:49:13.463-07:00</updated><title type='text'>Rejected!</title><content type='html'>I’ve been so busy this week that this is the first chance I’ve had to write for the blog.  On Tuesday or Wednesday I got a rejection letter from Haas.  At first I was a little stunned, "How COULD they reject me!"  Then I just started laughing.  While I was extremely enthusiastic about the school when I first decided to apply, later interactions with the school’s minions had left me concerned.  (I never did get a response from that &lt;a href="http://krgreenlee.blogspot.com/2006/05/devil-is-in-details.html"&gt;email&lt;/a&gt; I sent.)  And I had basically decided that if I got in great, but if I didn’t I would just pursue plan B, C, or D.  &lt;br /&gt;&lt;br /&gt;One of the funny things about this is the running dialog in my head.  Rejected.  REJECTED!  I keep hearing a male sports commentator’s voice...."Its Greenlee driving for the net...she makes her move, she's past Russell...she's driving for the net...jumpshot....REJECTED!...WHAT a play by Smith....."&lt;br /&gt;&lt;br /&gt;Haas is the highest ranking MBA program in the Oakland area that has an MBA program for the working people but after doing a little more research I’ve found that there are some other MBA options available.  I’m moving along on my statistics class with calculus to finish up by the end of August.  After that I’ll do a little refresher for the GMAT and see if I can’t get the score up.  Shouldn’t be a problem.  Of course I’ll have to suck up to John and Dan to get them to write me some more letters of recommendation.  Dan, I’m not getting your coffee.  ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114948655293383620?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114948655293383620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114948655293383620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114948655293383620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114948655293383620'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/06/rejected.html' title='Rejected!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114849428095217482</id><published>2006-05-24T11:10:00.000-07:00</published><updated>2006-05-24T11:11:20.953-07:00</updated><title type='text'>Legoland California’s Master Builder competition</title><content type='html'>has finished with Jason Poland winning the competition and the job of a life-time.  Congratulations to him.  CNET has some great coverage of this.  Here is a &lt;a href="http://news.com.com/2300-1043_3-6075942-1.html?part=rss&amp;tag=6075942&amp;subj=news"&gt;link&lt;/a&gt; to the page with the pictures.  That page also contains links to several articles.  Cool stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114849428095217482?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114849428095217482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114849428095217482' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114849428095217482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114849428095217482'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/05/legoland-californias-master-builder.html' title='Legoland California’s Master Builder competition'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114845674026964390</id><published>2006-05-24T00:37:00.000-07:00</published><updated>2006-05-24T00:47:35.806-07:00</updated><title type='text'>Why many women bloggers don't put up contact info...</title><content type='html'>&lt;em&gt;Hey Zig...this one is for you.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scobleizer.wordpress.com/"&gt;Robert Scoble&lt;/a&gt; often talks about why bloggers should make themselves accessible to their readers.  (He has his phone number and email address on his blog.)  This post is an example of why many women bloggers don’t.  &lt;br /&gt;&lt;br /&gt;I use Trillian to aggregate my IM accounts.  One of the great things about the product is that it logs every IM interaction.  So I went through my logs and I pulled out all the unsolicited IMs.  Now I &lt;strong&gt;don’t&lt;/strong&gt; mind work related questions from strangers.  But unsolicited messages to just talk are not welcome.  All of these came from Yahoo and I suspect it’s because Yahoo let’s people search for people.  In particular the &lt;a href="http://members.yahoo.com/"&gt;member page&lt;/a&gt; contains a dating type option and men may just assume that if they can find you...that you are interested.&lt;br /&gt;&lt;br /&gt;I’m not. &lt;br /&gt;&lt;br /&gt;Now some of these guys are probably just looking for some harmless conversation, so for those that still have an account, &lt;strong&gt;please don’t spam them&lt;/strong&gt;.  I’m just putting this up here as an example of what women have to put up with.  I find it intrusive and sometimes down right offensive.&lt;br /&gt;&lt;br /&gt;These are in chronological order. I've added comments to a few and you'll see the comments as bolded.&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;11/8/06 [15:09] windsurf510: good afternoon&lt;br /&gt;11/8/06 [15:13] kgreenlee11: Do I know you?&lt;br /&gt;11/8/06 [15:13] windsurf510: nope, just looking for a chat&lt;br /&gt;11/8/06 [15:14] kgreenlee11: Okay, I'm working so good luck with that.&lt;br /&gt;11/8/06 [15:14] windsurf510: bye&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;11/12/05 [21:15] mrniceguyinbayarea: hi there how are you&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;12/9/05 [09:42] aaron_the_baron12: Hey there  I was looking at yahoo  and i saw your page. anyway, you seem interesting ;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I am.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;12/12/05 [17:58] sweet_water33: hi there minor league baseball player in ca from seattle looking to meet or chat interested?&lt;br /&gt;&lt;br /&gt;12/23/05 [18:50] sweet_water33: hi there minor league baseball player looking to meet up or chat interested? &lt;br /&gt;&lt;br /&gt;1/21/06 [19:39] sweet_water33: hi there minor leauge baseball player from seattle in ca looking to meet up or chat interested? &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;This guy kept coming back.  I wonder if he realized he was using the same line?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;12/20/05 [11:02] dirty_daddy_2005: Hello there, miss&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hmmm, would I &lt;em&gt;really&lt;/em&gt; want to talk to someone calling himself Dirty Daddy?  I don’t think so.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;12/24/05 [10:32] mast_high: hi kim [Offline Message (Fri Dec 23 23:04:52 2005)]&lt;br /&gt;12/24/05 [10:32] mast_high: what is an evangelist? [Offline Message (Fri Dec 23 23:05:14 2005)]&lt;br /&gt;12/24/05 [10:39] kgreenlee11: A technical evangelist spreads the message about a new technology.  The idea of a technical evangelist was started at Apple and worked very well.  Since then many companies have incorporated evangelists into their marketing program.  Within a company evangelists bridge the knowledge gap between marketing and engineering and externally the evangelist teaches people about the new technology. One of the biggest barriers to adoption of new technology is helping people understand how the new technology will help them.  &lt;br /&gt;&lt;br /&gt;2/12/06 [13:28] mast_high: you have a lovely smile, kim&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;This guy started out strong and then blew it in a later session.  My smile is lovely because my picture is from a $500 headshot with professional touchups. You get what you pay for.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;1/8/06 [21:50] vampire9797: hey miss kim&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Again...what is a name?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;2/1/06  [17:11] clifford_clermont01: Hello my name is Clifford.. actually i was checking through members online at yahoo members people search. and i saw yours anyway i  hope am not disturbing you..anyway how are u doing?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;At least he was polite.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;3/12/06 [14:30] sfsailboy510: hi there&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;3/19/06 [23:16] michael_co192: Hi  I was checking out yahoo , i saw your ad.. anyway, you look interesting :P&lt;br /&gt;3/19/06 [23:16] michael_co192: would you like to check out my picture and profile?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Thanks for the invitation but...no.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;4/6/06 [21:26] cutypie103: hi there...i'm Alex, a 26 y.o. guy from San Fran...i was looking for profiles of women and found you...i've always fantasized about being a houseboy for a woman...my fantasy is to do house chores for you naked or jus be naked for your viewing pleasure...would you enjoy something like that?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;This has to be the most offensive thing I’ve ever seen.  Zig, this is the one I was telling you about.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;4/17/06 [21:37] hellcruiser79: hi&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;4/21/06 [15:40] smith_kenneth5222: hi&lt;br /&gt;4/21/06 [15:40] smith_kenneth5222: how are you doing ?&lt;br /&gt;4/21/06 [15:40] smith_kenneth5222: how was your day &lt;br /&gt;4/21/06 [15:40] smith_kenneth5222: are you there ?&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;4/27/2006 [14:20] gd4lifepapi61282: are you ablack women? Do you have a sister or famliy member name china&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;4/28/2006 [21:00] dadplusstwo: hi Kim  &lt;br /&gt;4/28/2006 [21:00] dadplusstwo: im Mark&lt;br /&gt;&lt;br /&gt;------------- &lt;br /&gt;&lt;br /&gt;5/10/06 [15:12] rohan4special1: hiii Kim&lt;br /&gt;5/10/06 [15:12] rohan4special1: how are you&lt;br /&gt;&lt;br /&gt;-----------------------------------------------  &lt;br /&gt;&lt;br /&gt;Okay guys, fess up.  Does this happen to you?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114845674026964390?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114845674026964390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114845674026964390' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114845674026964390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114845674026964390'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/05/why-many-women-bloggers-dont-put-up.html' title='Why many women bloggers don&apos;t put up contact info...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114843251581254966</id><published>2006-05-23T18:00:00.000-07:00</published><updated>2006-05-24T11:06:05.266-07:00</updated><title type='text'>Office 2007 Beta is available</title><content type='html'>You can find the Office 2007 beta &lt;a href="http://www.microsoft.com/office/preview/beta/getthebeta.mspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Prerelease documentation &lt;a href="http://msdn2.microsoft.com/en-us/microsoft.office.excel.server.webservices(office.12).aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Link to a prerelease book &lt;a href="http://spaces.msn.com/jaldous/Blog/cns!E96EF855D659204A!1350.entry"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And a look out below post &lt;a href="http://spaces.msn.com/gcoupe/blog/cns!6AA39937A982345B!2116.entry"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Update: Robert pointed out that if you're doing VSTO development you're going to have to wait for the new VSTO release. &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114843251581254966?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114843251581254966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114843251581254966' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114843251581254966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114843251581254966'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/05/office-2007-beta-is-available.html' title='Office 2007 Beta is available'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114834536503180131</id><published>2006-05-22T17:45:00.000-07:00</published><updated>2006-05-22T17:49:25.053-07:00</updated><title type='text'>Hey Microsoft!  Wow me!</title><content type='html'>I’ve been thinking a lot about Microsoft these last few months.  It seems like every single technology category has bloggers slamming some mistake Microsoft made...usually only from the perspective of that one sector.  Here’s a slam from &lt;a href="http://www.geeknewscentral.com/archives/006096.html"&gt;Geeks News Central&lt;/a&gt; about podcasting and Windows Media Player 11.  Now granted it looks like Microsoft has missed an opportunity here, but common on, Microsoft is huge and it’s likely that podcasting was not identified as a market for their Media Player.   And while there are some very vocal proponents of podcasting, the numbers I’ve seen so far aren’t showing that it’s really that big a market yet.  So if you were deciding on whether to release a product or hold it to add new (potentially unplanned) functionality what would you do?  Personally, I would ship and then go back through the product release cycle with the intention of getting a quick release out.  (If the feature was identified as critical.)  I think podcasting is an important new vehicle and to enhance Microsoft’s leap into the Internet, Microsoft must support it.  But does Microsoft need to support it today?&lt;br /&gt;&lt;br /&gt;I read this great &lt;a href="http://blogs.zdnet.com/SAAS/?p=162&amp;tag=nl.e539"&gt;article&lt;/a&gt; by Phil Wainewright and he really articulates a lot of my thoughts very well. Microsoft has the money and the people to make any undertaking revolutionary.  Personally I prefer it when Microsoft doesn’t play the "me to" game, even though it’s kicked me in the butt in the past.  While at Kaseworks (one of the first companies to have a code generator for Windows), one of our struggles was figuring out how to generate the code in a reusable way.  As much as I hate to say it, Microsoft’s way was significantly better than Kaseworks’.  (That and the fact that Microsoft had the compiler to put underneath it.)  They didn’t evolve our methodology but revolutionized it.  It helped put us out of business but it also helped an extremely large number of developers become more productive.  That’s what I want to see from Microsoft.  (It’s also what I want to see from Google and all the other big players with money and bright people.)  Don’t follow.  Lead.  Beat the many headed hydra that you call a company into submission, make the teams talk to each other, and figure out how to build innovation into your processes so you can &lt;a href="http://www.geeknewscentral.com/archives/006096.html"&gt;"stop missing the boat"&lt;/a&gt; and start wowing us.&lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Media%20Player" rel="tag"&gt;Media Player&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114834536503180131?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114834536503180131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114834536503180131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114834536503180131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114834536503180131'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/05/hey-microsoft-wow-me.html' title='Hey Microsoft!  Wow me!'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114833537394553447</id><published>2006-05-22T14:58:00.000-07:00</published><updated>2006-05-22T15:03:23.710-07:00</updated><title type='text'>Digipede: Website changes and marketing thoughts...</title><content type='html'>I haven’t blogged too much technical stuff lately because I’ve been focused on our website.  We’ve asked ourselves how we can help visitors to the &lt;a href="http://www.digipede.net"&gt;Digipede&lt;/a&gt; site more easily find what they are looking for.  A website for an emerging technology has to educate as well as provide a mechanism for the company to generate sales leads.  We watch how people move through the site and make guesses as to what they are looking for.  In that light we’ve made a good number of changes to the site with more in the works.  I’ve summarized below several of our changes:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Landing Pages and Webcasts&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We observed that people were clicking on our ads but not staying long or signing up for webcasts.  So we tightened up the messaging on each of the landing pages to help people zero in on the ideas we think they are looking for.  We also added the idea of ad echoing, which is to basically restate the words used in the ad.  I had never heard of the concept before but it’s an interesting idea and we’re trying it out.&lt;br /&gt;&lt;br /&gt;We also added a big fat webcast image link to almost every page on the site.  We want people to sign-up for webcasts because after our blogs, webcasts are our best tool for having a conversation with prospects.  After we made the changes to the landing pages and added the webcast button, we had an increase in the number of folks clicking through to the webcast page.  (Cool)&lt;br /&gt;&lt;br /&gt;But I want more of those folks to sign-up.  So I ask myself, why aren’t more people signing up?  One reason is probably the form, but we need the form for two reasons.  The first is that our Live Meeting account is currently limited to 15 participants per webcast, so we have to control the number of attendees.  The second reason is that we need to generate sales leads.  As a small but growing company our website is the most cost effective way to get those leads.&lt;br /&gt;&lt;br /&gt;I think a bigger reason that more folks aren’t signing up is the time the webcasts have been run at.  So Dan and I put together a new schedule that offers varying times.  (I will now be joining the webcast team!  And finally beginning to do more of the evangelizing part of my job.)  We are hoping by having times that work for the UK, US, Australia, and India we’ll see an increase in signups.  We’ll be updating the webcast page so that visitors can select time and topic.  Those changes will be up soon.  It will be interesting to see whether we guessed right.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;White Papers and Videos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We updated the white paper page to make it easier to identify how to link to the papers, added very short descriptions, and added video links.  We also removed the form requiring registration for the papers.  We have found that these changes have resulted in more white paper downloads (this is good) with the downside being the loss of sales leads (which is bad for us, but is it only bad for the short-term?  We’ll have to wait and see.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Case Studies&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We revamped the case studies index page making it cleaner to look at and having it highlight our case study customers.  And each of our case study pages is now easier to read through and pulls out quotes.  We hired a marketing guy to rewrite all of this material in a way that both readers and scanners can easily find what they are looking for.  We’ve also added .pdf files for each case study which is something I really like.  I like to download things to read offline later.  It will be interesting to see overtime how many other people do too.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Through-out this process we’ve been using the ideas described in Steve Krug’s book &lt;a href="http://www.amazon.com/gp/product/0321344758/sr=8-1/qid=1148334300/ref=pd_bbs_1/102-9565166-7608926?%5Fencoding=UTF8"&gt;"Don’t Make Me Think: A Common Sense Approach to Web Usability"&lt;/a&gt; and trying to help our visitors find what they are looking for.&lt;br /&gt;&lt;br /&gt;Marketing is sooo not like development.  There isn’t a compiler or profiler to tell me how things are working or if they are working at all.  While there are quantifiable data points, much of it seems very subjective.  We will continue to revamp the site with an eye towards making it easy for people to get the information they need and to help them take the next step in building a relationship with us.  (Moving toward KISS.)&lt;br /&gt;&lt;br /&gt;I want to thank the folks who read my comment on Kathy Sierra’s post &lt;a href="http://headrush.typepad.com/creating_passionate_users/2006/05/can_marketing_b.html"&gt;"Can marketing be honest AND motivating? "&lt;/a&gt;.  I had a few experienced marketing folks who went through the entire Digipede site and then sent me an email with their thoughts and suggestions.  I LOVE THE INTERNET!!!  This type of help is reflective of what makes the blogosphere such a great place to be.&lt;br /&gt;&lt;br /&gt;If you have thoughts, ideas, questions about our site or products please feel free to contact me.  Kim at Digipede dot Net.  I would love to hear from you.  &lt;br /&gt;&lt;br /&gt;We can also send speakers (me) to locations that are within easy driving distance of Oakland, CA or has affordable flights.  So if you represent a user group that would like to hear about grid computing and other technology related to grid computing I would be happy to talk to you about providing a presenation. &lt;br /&gt;&lt;br /&gt;&lt;div class="Tags"&gt;Technorati tags: &lt;a href="http://technorati.com/tag/grid%20computing" rel="tag"&gt;grid computing&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Digipede" rel="tag"&gt;Digipede&lt;/a&gt;,  &lt;a href="http://technorati.com/tag/marketing" rel="tag"&gt;marketing&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114833537394553447?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114833537394553447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114833537394553447' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114833537394553447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114833537394553447'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/05/digipede-website-changes-and-marketing.html' title='Digipede: Website changes and marketing thoughts...'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16735039.post-114833009219029340</id><published>2006-05-22T13:33:00.000-07:00</published><updated>2006-05-22T13:34:52.313-07:00</updated><title type='text'>Post office imponderable</title><content type='html'>Last week, on Thursday, I didn’t get any mail at my home.  This happens from time to time but I can usually count on some junk mail in my box.  Friday I didn’t get any mail either, so I called my neighbor across the street, (we always call each other when something odd is going on, Your power out?  You getting mail?  Do you smell smoke?)  and asked him if he had been getting his mail.  Yep.  Being the great neighbor that he is he called me on Saturday when the mail guy flew past my house without stopping.  So I went down to the street and waited for the mail carrier to come back up the other side so I could ask what was going on.&lt;br /&gt;&lt;br /&gt;The mail carrier informed me that I had called and put a hold on my mail and then proceeded to tell me that I shouldn’t call in holds but that I should fill out a postcard.  I informed the carrier that I had not called anything in and that I would like my mail.  I’ve been waiting for a package and I’m really not happy that they screwed up.  I told Mal about my conversation with the carrier and she informed me that our next door neighbor was out of town and it was likely that it was their mail which was supposed to be held.  &lt;br /&gt;&lt;br /&gt;So the post office probably wrote down the wrong house number and my neighbor’s box is full and mine is empty.  I did call the post office on Saturday; I got the number from the carrier and the name of his manager who told him about the hold.  I was supposed to get a call back today...but nothing.  I also told the carrier that I want my mail.  There better be a delivery today or I am going to be one very angry woman...and they won’t like me when I’m angry..... &lt;br /&gt;&lt;br /&gt;Note: I am not threatening the post office but if I don’t have mail today I will be calling and raising a stink.  A very stinky stink.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16735039-114833009219029340?l=krgreenlee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krgreenlee.blogspot.com/feeds/114833009219029340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16735039&amp;postID=114833009219029340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114833009219029340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16735039/posts/default/114833009219029340'/><link rel='alternate' type='text/html' href='http://krgreenlee.blogspot.com/2006/05/post-office-imponderable.html' title='Post office imponderable'/><author><name>Kim Greenlee</name><uri>http://www.blogger.com/profile/02308918449423809077</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_T0qvffyPWxQ/R4UzgwsqHwI/AAAAAAAAAB4/krKx-Xgpg08/S220/KimGreenlee_cropped.jpg'/></author><thr:total>0</thr:total></entry></feed>
