<?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-15629368</id><updated>2012-01-11T14:16:20.342-08:00</updated><category term='SharePoint'/><category term='PowerShell'/><category term='Methodology'/><category term='WebDeploy'/><category term='FAST'/><category term='Agile'/><category term='Evil'/><category term='SharePoint_2010'/><category term='TFS'/><title type='text'>Bored Geek</title><subtitle type='html'>Computers, Software development, etc. Stuff when I am bored</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default?start-index=101&amp;max-results=100'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>124</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15629368.post-8778676521899661319</id><published>2012-01-11T14:15:00.000-08:00</published><updated>2012-01-11T14:16:20.355-08:00</updated><title type='text'>My Powershell Profile</title><content type='html'>I updated my profile in .\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 to include SharePoint:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;function prompt {&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;$Host.UI.RawUI.WindowTitle=$(get-location)&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;"$ ";&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;#Set environment variables for Visual Studio Command Prompt&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;pushd 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;cmd /c "vcvarsall.bat&amp;amp;set" |&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;foreach {&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;if ($_ -match "=") {&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;$v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;popd&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;write-host "`nVisual Studio 2010 Command Prompt variables set." -ForegroundColor Yellow&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;&amp;amp; ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\POWERSHELL\Registration\\sharepoint.ps1'&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;span style="font-family: courier new;"&gt;write-host "`nSharePoint environment set." -ForegroundColor Yellow&lt;/span&gt;&lt;br style="font-family: courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8778676521899661319?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8778676521899661319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8778676521899661319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8778676521899661319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8778676521899661319'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2012/01/my-powershell-profile.html' title='My Powershell Profile'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7380517686985586721</id><published>2011-06-30T08:01:00.000-07:00</published><updated>2011-06-30T08:02:17.002-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><title type='text'>Kill Projects and Develop Agile Programs</title><content type='html'>http://ctotodevelopers.blogspot.com/2011/06/kill-projects-and-develop-agile.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7380517686985586721?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7380517686985586721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7380517686985586721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7380517686985586721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7380517686985586721'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/06/kill-projects-and-develop-agile.html' title='Kill Projects and Develop Agile Programs'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2273152712509286489</id><published>2011-06-29T12:36:00.000-07:00</published><updated>2011-06-29T12:41:49.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint_2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Evil'/><title type='text'>Best practices of the past</title><content type='html'>Looks like SharePoint faithfully following the best practices of 10 years ago. Lots of XML files, XSLT - some of younger developers don't remember the hype surrounding these at the turn of the millennium. When I experienced pain of setting up BCS in SharePoint 2010, it reminded me of EJB as they were around 2000: lots of duplication in various XML  and code files, typo-unforgiving environment, etc.&lt;br /&gt;&lt;br /&gt;Come on! It's 2011! Everyone is talking about "convention over configuration", "view engine", Razr, code-first Entity Framework, etc. Are we going to see these in SharePoint 2020?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2273152712509286489?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2273152712509286489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2273152712509286489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2273152712509286489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2273152712509286489'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/06/best-practices-of-past.html' title='Best practices of the past'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2178838777244211843</id><published>2011-06-28T19:45:00.000-07:00</published><updated>2011-06-28T19:47:42.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Evil'/><title type='text'>Evil security in Win2008R2</title><content type='html'>On Windows Server 2008 R2 there is no way to install assembly into GAC. Drag and drop - get "Access denied". Gacutil is not installed!&lt;br /&gt;&lt;br /&gt;Had to copy gacutil.exe and gacutil.exe.config from my Windows 7 workstation to the server, then can install assemblies without any problems. Evil security again???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2178838777244211843?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2178838777244211843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2178838777244211843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2178838777244211843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2178838777244211843'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/06/evil-security-in-win2008r2.html' title='Evil security in Win2008R2'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4220999371034336445</id><published>2011-06-28T14:05:00.001-07:00</published><updated>2011-06-28T14:07:20.591-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint_2010'/><title type='text'>Development experience in SharePoint still sucks!</title><content type='html'>Struggling through BDC Model creation in Visual Studio: what a tedious and unforgiving process. Almost no feedback or error messages...&lt;br /&gt;&lt;br /&gt;To create a List I have to edit an XML file...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4220999371034336445?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4220999371034336445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4220999371034336445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4220999371034336445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4220999371034336445'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/06/development-experience-in-sharepoint.html' title='Development experience in SharePoint still sucks!'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7887570182044635869</id><published>2011-03-23T10:43:00.000-07:00</published><updated>2011-03-23T10:48:11.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Methodology'/><title type='text'>Aspect-oriented programming</title><content type='html'>AOP and policy injection has low adoption because the use cases suggested are not that important. After all, security and logging has already pretty robust frameworks in both .Net and Java, and other use cases seem just lame...&lt;br /&gt;&lt;br /&gt;Instead, where AOP can actually help is to enforce the Open-Closed principle, because it gives you a better alternative to subclass the classes trying to avoid modification. Rather than create derived classes a developer can create aspects or policies that extend the behavior of the class without having to modify it or create a string dependency through rigid inheritance structure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7887570182044635869?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7887570182044635869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7887570182044635869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7887570182044635869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7887570182044635869'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/03/aspect-oriented-programming.html' title='Aspect-oriented programming'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5376617398510866039</id><published>2011-01-05T08:07:00.000-08:00</published><updated>2011-01-05T08:08:11.171-08:00</updated><title type='text'>SQL Sentry Plan Explorer</title><content type='html'>&lt;p class="MsoNormal"&gt;Really good tool for exploring SQL Server execution plans.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, sans-serif; font-size: 15px; color: rgb(31, 73, 125); "&gt;&lt;a href="http://sqlsentry.net/plan-explorer/sql-server-query-view.asp"&gt;http://sqlsentry.net/plan-explorer/sql-server-query-view.asp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:11.0pt;font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; color:#1F497D"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5376617398510866039?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5376617398510866039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5376617398510866039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5376617398510866039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5376617398510866039'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/01/sql-sentry-plan-explorer.html' title='SQL Sentry Plan Explorer'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7557087047071223294</id><published>2011-01-04T10:28:00.000-08:00</published><updated>2011-01-04T10:29:20.154-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAST'/><title type='text'>Free FAST Search for SharePoint training</title><content type='html'>http://msdn.microsoft.com/en-us/sharepoint/ff960976.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7557087047071223294?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7557087047071223294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7557087047071223294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7557087047071223294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7557087047071223294'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2011/01/free-fast-search-for-sharepoint.html' title='Free FAST Search for SharePoint training'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7329909659997358041</id><published>2010-10-11T08:40:00.000-07:00</published><updated>2010-10-11T08:41:29.805-07:00</updated><title type='text'>Two lessons</title><content type='html'>I learned two lessons last week:&lt;div&gt;1. Friends don't let friends use ASP.Net Login Control&lt;/div&gt;&lt;div&gt;2. JQuery is the best way to fix bugs in ASP.Net.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7329909659997358041?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7329909659997358041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7329909659997358041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7329909659997358041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7329909659997358041'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/10/two-lessons.html' title='Two lessons'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6553203463053644828</id><published>2010-09-22T16:15:00.000-07:00</published><updated>2010-09-22T16:16:03.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><title type='text'>Six Behaviors to Consider for an Agile Team</title><content type='html'>&lt;a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;amp;ObjectType=COL&amp;amp;ObjectId=16277&amp;amp;tth=DYN&amp;amp;tt=siteemail&amp;amp;iDyn=2"&gt;http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;amp;ObjectType=COL&amp;amp;ObjectId=16277&amp;amp;tth=DYN&amp;amp;tt=siteemail&amp;amp;iDyn=2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6553203463053644828?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6553203463053644828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6553203463053644828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6553203463053644828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6553203463053644828'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/09/six-behaviors-to-consider-for-agile.html' title='Six Behaviors to Consider for an Agile Team'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7211190520591120723</id><published>2010-08-11T17:05:00.000-07:00</published><updated>2010-08-11T17:09:29.085-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Visual Studio command prompt with Powershell</title><content type='html'>I updated my profile in .\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 to include VS2010 prompt:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;function prompt {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$Host.UI.RawUI.WindowTitle=$(get-location)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;"$ ";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#Set environment variables for Visual Studio Command Prompt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;pushd 'c:\Program Files\Microsoft Visual Studio 10.0\VC'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cmd /c "vcvarsall.bat&amp;amp;set" |&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;foreach {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  if ($_ -match "=") {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    $v = $_.split("="); set-item -force -path "ENV:\$($v[0])"  -value "$($v[1])"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;popd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;write-host "`nVisual Studio 2010 Command Prompt variables set." -ForegroundColor Yellow&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7211190520591120723?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7211190520591120723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7211190520591120723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7211190520591120723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7211190520591120723'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/08/visual-studio-command-prompt-with.html' title='Visual Studio command prompt with Powershell'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5203227787287606424</id><published>2010-08-05T06:45:00.000-07:00</published><updated>2010-08-05T06:48:32.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='WebDeploy'/><title type='text'>Good TFS! Bad WebDeploy!</title><content type='html'>Evil MsDeploy wiped out my SharePoint site that was used to support TFS projects. Luckily I am on TFS 2010, so eventually I managed to get the site back without doing some low-level XML editing. I have to admit Microsoft did a very good job in making TFS more manageable.&lt;br /&gt;&lt;br /&gt;I wish the next version of WebDeploy will be safer...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5203227787287606424?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5203227787287606424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5203227787287606424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5203227787287606424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5203227787287606424'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/08/good-tfs-bad-webdeploy.html' title='Good TFS! Bad WebDeploy!'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2816373026026284077</id><published>2010-08-04T11:21:00.000-07:00</published><updated>2010-08-04T11:24:17.604-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Comma in Powershell</title><content type='html'>Mmm Learned today the hard way that comma should not be used to separate parameters. That is, instead of:&lt;br /&gt;&lt;blockquote&gt;Encrypt-String "Alex", "089234kljhwsdf=", "98qasdlfkjhasdflkjh==&lt;/blockquote&gt;you should use&lt;br /&gt;&lt;blockquote&gt;Encrypt-String "Alex"  "089234kljhwsdf="  "98qasdlfkjhasdflkjh==&lt;/blockquote&gt;&lt;br /&gt;Great explanation &lt;a href="http://theessentialexchange.com/blogs/michael/archive/2008/02/08/Multivalued-Parameters-.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2816373026026284077?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2816373026026284077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2816373026026284077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2816373026026284077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2816373026026284077'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/08/comman-in-powershell.html' title='Comma in Powershell'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2810801945264265602</id><published>2010-08-02T16:38:00.001-07:00</published><updated>2010-08-02T16:38:52.485-07:00</updated><title type='text'>VS10 requires admin rights to use IIS</title><content type='html'>Isn't it ridiculous?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2810801945264265602?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2810801945264265602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2810801945264265602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2810801945264265602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2810801945264265602'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/08/vs10-requires-admin-rights-to-use-iis.html' title='VS10 requires admin rights to use IIS'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-751709747707890648</id><published>2010-07-28T15:56:00.001-07:00</published><updated>2010-07-28T15:56:28.331-07:00</updated><title type='text'>Reality programming</title><content type='html'>It is a reality that we have a huge army of programmers that do not care about the quality of the code they write. It’s the reality, and we should not really blame them: they are trying to put bread on the table, feed their kids, parents and possibly other relatives as well.&lt;br /&gt;&lt;br /&gt;So the reality should dictate different approach to programming. Rather than assuming that no code will be duplicated, we should assume that copy-paste will be the primary tool of development, and build our process around this. And when a programmer attempts to change some code that is also duplicated in 99 other places, the IDE should ask the programmer if he or she want also to modify the code in other 99 places, or maybe even give the programmer option to modify the code in 50  other places and leave the other 49 not modified. I know this is possible, because I am now checking out the tool called Atomiq that can find duplication in the code base.&lt;br /&gt;&lt;br /&gt;What about source code? Say, if we want to revert a changeset in one file, the IDE will prompt us to revert the changes to all the code that is duplicated? &lt;br /&gt;&lt;br /&gt;I know that most of developers will never write unit tests, but for the cases when their customers force them to do so what if the IDE will also duplicate unit tests to cover all duplicated code? &lt;br /&gt;&lt;br /&gt;I know that most of the customers never test, but for those whose process requires them to do so what if the IDE will tell them that if they write a test  case for a screen it will also work for 10 other screens that are duplicate of this one?&lt;br /&gt;&lt;br /&gt;The purpose of these enhancements is not to encourage poor code quality, but to reduce the effect of the inevitably poor quality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-751709747707890648?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/751709747707890648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=751709747707890648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/751709747707890648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/751709747707890648'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/07/reality-programming.html' title='Reality programming'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1065485895398139534</id><published>2010-07-28T15:55:00.001-07:00</published><updated>2010-07-28T15:55:32.394-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Generate encryption key (128-bit) for RijndaelManaged</title><content type='html'>$algorithm = [System.Security.Cryptography.SymmetricAlgorithm]::Create("Rijndael")&lt;br /&gt;$algorithm.set_keysize(128)&lt;br /&gt;$keybytes = $algorithm.get_Key()&lt;br /&gt;$ivbytes = $algorithm.get_IV()&lt;br /&gt;[System.Convert]::ToBase64String($keybytes)&lt;br /&gt;[System.Convert]::ToBase64String($ivbytes)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1065485895398139534?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1065485895398139534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1065485895398139534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1065485895398139534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1065485895398139534'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/07/generate-encryption-key-128-bit-for.html' title='Generate encryption key (128-bit) for RijndaelManaged'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5710745145074768842</id><published>2010-07-21T20:51:00.001-07:00</published><updated>2010-07-21T20:52:14.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>My profile</title><content type='html'>Create folder WindowsPowerShell in My Documents&lt;br /&gt;Create file Microsoft.PowerShell_profile.ps1&lt;br /&gt;Copy this into the file:&lt;br /&gt;&lt;br /&gt;function prompt {&lt;br /&gt;                $Host.UI.RawUI.WindowTitle=$(get-location)&lt;br /&gt;                "$ ";&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5710745145074768842?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5710745145074768842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5710745145074768842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5710745145074768842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5710745145074768842'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/07/my-profile.html' title='My profile'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4758131064910145963</id><published>2010-07-21T20:49:00.000-07:00</published><updated>2010-07-21T20:50:33.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Powershell command to get all the groups I belong to.</title><content type='html'>$ [Security.Principal.WindowsIdentity]::GetCurrent().Groups | % {$_.Translate([Security.Principal.NTAccount]) }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4758131064910145963?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4758131064910145963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4758131064910145963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4758131064910145963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4758131064910145963'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/07/powershell-command-to-get-all-groups-i.html' title='Powershell command to get all the groups I belong to.'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7037846133049300515</id><published>2010-05-05T13:25:00.000-07:00</published><updated>2010-05-05T13:30:16.647-07:00</updated><title type='text'>Посредственные программисты.</title><content type='html'>Засилию посредственных программистов способствует политика компаний, не желающий тратить деньги на тренинг своих сотрудников. Мол, хороший программист сам должен учиться, если хочет преуспеть как профессионал. Ха! Скажите это женщине с двумя маленькими детьми, или её мужу, работающему по 60 часов в неделю! Так многие программисты не поднимаются выше уровня, который они получили в институте.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7037846133049300515?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7037846133049300515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7037846133049300515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7037846133049300515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7037846133049300515'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/05/blog-post.html' title='Посредственные программисты.'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2619013045095522842</id><published>2010-05-03T14:46:00.000-07:00</published><updated>2010-05-03T14:48:25.179-07:00</updated><title type='text'>Serialize objects into C#</title><content type='html'>Am I the only crazy person who would like to serialize objects into C# code? Not binary or XML serialization. I want to take an object and generate C# code that will recreate all the public properties of this object and save the code to CS files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2619013045095522842?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2619013045095522842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2619013045095522842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2619013045095522842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2619013045095522842'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/05/serialize-objects-into-c.html' title='Serialize objects into C#'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4218793238360889124</id><published>2010-04-29T07:53:00.000-07:00</published><updated>2010-04-29T08:01:11.736-07:00</updated><title type='text'>MSDN and Offshore developer</title><content type='html'>Including TFS (and some other features) in MSDN Pro has another benefit: it makes it possible to use these features when working with offshore outsourcing partner. It is no secret, that offshore development is all about cost, so to keep the cost down the offshore partners limit the money they are willing to pay for development tools. Having extra $2000 per developer means extra 96c per hour, which can reach 5% of the hourly rate. Which means that either the company risk losing business or the developer will be underpaid. &lt;br /&gt;&lt;br /&gt;So this is really a smart move from Microsoft side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4218793238360889124?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4218793238360889124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4218793238360889124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4218793238360889124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4218793238360889124'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/04/msdn-and-offshore-developer.html' title='MSDN and Offshore developer'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2628043177241251757</id><published>2010-04-28T13:37:00.000-07:00</published><updated>2010-04-28T13:40:10.577-07:00</updated><title type='text'>Overheard today...</title><content type='html'>A manager about the consulting company he uses for software development:&lt;br /&gt;&lt;br /&gt;"I don't like them to be creative. We are not paying them to be creative."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2628043177241251757?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2628043177241251757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2628043177241251757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2628043177241251757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2628043177241251757'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/04/overheard-today.html' title='Overheard today...'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4790933847297370068</id><published>2010-04-27T19:47:00.000-07:00</published><updated>2010-04-27T19:48:47.260-07:00</updated><title type='text'>Why Non-broadcast Networks are not a Security Feature</title><content type='html'>http://technet.microsoft.com/en-us/library/bb726942.aspx&lt;br /&gt;&lt;br /&gt;Wireless security consists of two main elements: authentication and encryption. Authentication controls access to the network and encryption ensures that malicious users cannot determine the contents of wireless data frames. Although having users manually configure the SSID of a wireless network in order to connect to it creates the illusion of providing an additional layer of security, it does not substitute for either authentication or encryption.&lt;br /&gt;&lt;br /&gt;A non-broadcast network is not undetectable. Non-broadcast networks are advertised in the probe requests sent out by wireless clients and in the responses to the probe requests sent by wireless APs. Unlike broadcast networks, wireless clients running Windows XP with Service Pack 2 or Windows Server® 2003 with Service Pack 1 that are configured to connect to non-broadcast networks are constantly disclosing the SSID of those networks, even when those networks are not in range.&lt;br /&gt;&lt;br /&gt;Therefore, using non-broadcast networks compromises the privacy of the wireless network configuration of a Windows XP or Windows Server 2003-based wireless client because it is periodically disclosing its set of preferred non-broadcast wireless networks. When non-broadcast networks are used to hide a vulnerable wireless network—such as one that uses open authentication and Wired Equivalent Privacy—a Windows XP or Windows Server 2003-based wireless client can inadvertently aid malicious users, who can detect the wireless network SSID from the wireless client that is attempting to connect. Software that can be downloaded for free from the Internet leverages these information disclosures and targets non-broadcast networks.&lt;br /&gt;&lt;br /&gt;This behavior is worse for enterprise wireless networks because of the number of wireless clients that are periodically advertising the non-broadcast network name. For example, an enterprise wireless network consists of 20 wireless APs and 500 wireless laptops. If the wireless APs are configured to broadcast, each wireless AP would periodically advertise the enterprise’s wireless network name, but only within the range of the wireless APs. If the wireless APs are configured as non-broadcast, each of the 500 Windows XP or Windows Server 2003-based laptops would periodically advertise the enterprise’s wireless network name, regardless of their location (in the office, at a wireless hotspot, or at home).&lt;br /&gt;&lt;br /&gt;For these reasons, it is highly recommended that you do not use non-broadcast wireless networks. Instead, configure your wireless networks as broadcast and use the authentication and encryption security features of your wireless network hardware and Windows to protect your wireless network, rather than relying on non-broadcast behavior.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4790933847297370068?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4790933847297370068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4790933847297370068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4790933847297370068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4790933847297370068'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/04/why-non-broadcast-networks-are-not.html' title='Why Non-broadcast Networks are not a Security Feature'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4674289049864447408</id><published>2010-04-21T07:46:00.000-07:00</published><updated>2010-04-21T07:48:12.652-07:00</updated><title type='text'>MSDN</title><content type='html'>Am I the only one who is confused by MSDN download screen? I have two MSDN subscription on my email, and I have no idea which software belongs to which client. I hope I don't get punished by Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4674289049864447408?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4674289049864447408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4674289049864447408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4674289049864447408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4674289049864447408'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/04/msdn.html' title='MSDN'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5469931511619836552</id><published>2010-04-20T21:39:00.000-07:00</published><updated>2010-04-20T21:40:30.496-07:00</updated><title type='text'>UPS</title><content type='html'>Just connected my server to APC UPS I just received. I realized that WHS does not have USB support, and the server itself does not have COM ports, and APC does not have a server version of the software that take care of shutdown. Oops...&lt;br /&gt;&lt;br /&gt;This means I'll have to shutdown the server manually if I loose power for extended periods. Luckily that almost never happens. Most of the time I lose power for a few seconds, and the UPS should cover that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5469931511619836552?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5469931511619836552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5469931511619836552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5469931511619836552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5469931511619836552'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/04/ups.html' title='UPS'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-3351619907844360738</id><published>2010-03-09T14:51:00.000-08:00</published><updated>2010-03-09T14:52:49.165-08:00</updated><title type='text'>Variable naming...</title><content type='html'>How do you pronounce variable "contactus"? "Con-cactus"? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One more argument for correct variable casing...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-3351619907844360738?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/3351619907844360738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=3351619907844360738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3351619907844360738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3351619907844360738'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2010/03/variable-naming.html' title='Variable naming...'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6439165331270234792</id><published>2009-05-06T11:43:00.001-07:00</published><updated>2009-05-06T11:46:42.321-07:00</updated><title type='text'>Too many items</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QkncrsGlYSs/SgHamS3KAJI/AAAAAAAAACk/aa4wFSOQVG8/s1600-h/toomayitems.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 239px; height: 400px;" src="http://3.bp.blogspot.com/_QkncrsGlYSs/SgHamS3KAJI/AAAAAAAAACk/aa4wFSOQVG8/s400/toomayitems.png" alt="" id="BLOGGER_PHOTO_ID_5332783785216442514" border="0" /&gt;&lt;/a&gt;Our coding standards mandates we don't have more than 10 non-trivial members in a class. So I am doing some code review and for one of the classes there are so many members even ReSharper refuses to count them, just reports that there are too many of them (see picture on the right). I guess there are gonna be some rather serious refactoring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6439165331270234792?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6439165331270234792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6439165331270234792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6439165331270234792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6439165331270234792'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2009/05/too-many-items.html' title='Too many items'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QkncrsGlYSs/SgHamS3KAJI/AAAAAAAAACk/aa4wFSOQVG8/s72-c/toomayitems.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7037488755196675015</id><published>2009-04-15T08:32:00.000-07:00</published><updated>2009-04-15T08:42:10.306-07:00</updated><title type='text'>Boolean is difficult</title><content type='html'>Sometimes you see the C# code like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;if(isValid()) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     return true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     return false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or even "better":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;return (isValid()? true : false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I always wondered why not just write the code like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;return isValid()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Is the reason is that some of the younger developers don't have any background in C, C++ or any languages where the conditional statements return int, not bool? It is psychologically difficult for them to accept Boolean as the first class citizen - data type. For them Boolean cannot be separated from the if statements or "?" operator. Am I correct? What is your opinion?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7037488755196675015?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7037488755196675015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7037488755196675015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7037488755196675015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7037488755196675015'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2009/04/boolean-is-difficult.html' title='Boolean is difficult'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5205814882215354541</id><published>2009-04-14T11:41:00.000-07:00</published><updated>2009-04-14T11:43:42.699-07:00</updated><title type='text'>JavaFx installation</title><content type='html'>Oddly enough it did not prompt me to download and install JavaFx, it just showed me the small icon. When I clicked on the icon it prompted me to download the latest Java, and after 6 minutes (on high-speed connection) and two browser restarts I've got it up and running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5205814882215354541?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5205814882215354541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5205814882215354541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5205814882215354541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5205814882215354541'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2009/04/javafx-installation.html' title='JavaFx installation'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2480937953494143299</id><published>2009-04-06T11:37:00.000-07:00</published><updated>2009-04-06T11:48:16.263-07:00</updated><title type='text'>Fixing Outlook annoyancies</title><content type='html'>If a message comes as plain text, Outlook will use plain text format to reply to this message. As a result the signature gets messed up, etc. &lt;a href="http://www.abdn.ac.uk/outlook/tools/index.shtml"&gt;This article&lt;/a&gt; shows how to overcome this limitations. A simple macro can convert a received email from plain text to html:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Sub ConvertMessage() &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     Dim oMailItem As MailItem &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     Set oMailItem = Application.ActiveExplorer.Selection.Item(1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     oMailItem.BodyFormat = olFormatHTML &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     'oMailItem.HTMLBody = oMailItem.Body &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     oMailItem.Close (olSave) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     Set oMailItem = Nothing &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I commented out one of the lines because it works better for me this way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2480937953494143299?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2480937953494143299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2480937953494143299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2480937953494143299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2480937953494143299'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2009/04/fixing-outlook-annoyancies.html' title='Fixing Outlook annoyancies'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7596065710677069455</id><published>2009-03-31T15:29:00.000-07:00</published><updated>2009-03-31T15:30:59.397-07:00</updated><title type='text'>Anger-driven development</title><content type='html'>Being angry at the badly written code stimulated me to a few hours of very productive refactoring and bug fixing. Do I need to get angry to be productive?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7596065710677069455?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7596065710677069455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7596065710677069455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7596065710677069455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7596065710677069455'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2009/03/anger-driven-development.html' title='Anger-driven development'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-3600567705191330569</id><published>2009-03-16T05:12:00.000-07:00</published><updated>2009-03-16T05:15:48.560-07:00</updated><title type='text'>IOC container</title><content type='html'>I found a great idea in Dave Laribee's article in MSDN Vol 24 # 2: Don't use IOC containers for entities, only for services. I am saying this becase our team is practicing this for the last year or so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-3600567705191330569?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/3600567705191330569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=3600567705191330569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3600567705191330569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3600567705191330569'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2009/03/ioc-container.html' title='IOC container'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8169169508958919942</id><published>2008-12-08T12:56:00.000-08:00</published><updated>2008-12-08T13:04:40.588-08:00</updated><title type='text'>Silverlight instead of JavaScript?</title><content type='html'>I would not recommend anyone to use Silverlight instead of JavaScript, because of low tolerance of the former to browser differences. Besides, why would you trade your almost strongly typed JavaScript to weakly typed Silverlight syntax like:&lt;br /&gt;&lt;br /&gt;&lt;pre class="libCScode" style="white-space: pre-wrap;" id="ctl00_mainContentContainer_ctl12" space="preserve"&gt;HtmlElement label1 = HtmlPage.Document.GetElementById("Label1");&lt;br /&gt;label1.SetProperty("innerHTML", "Dino");&lt;br /&gt;&lt;/pre&gt;However there is one scenario that could provide a good case for using Silverlight in place of JavaScript, as described here: &lt;a href="http://msdn.microsoft.com/en-us/magazine/dd148642.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd148642.aspx&lt;/a&gt; . Look at this piece of code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="libCScode" style="white-space: pre-wrap;" id="ctl00_mainContentContainer_ctl14" space="preserve"&gt;HtmlElement button1;&lt;br /&gt;button1 = HtmlPage.Document.GetElementById("Button1");&lt;br /&gt;button1.AttachEvent("click", new System.EventHandler(Button1_Click));&lt;br /&gt;&lt;/pre&gt; You can attach a managed event handler to an HTML button!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8169169508958919942?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8169169508958919942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8169169508958919942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8169169508958919942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8169169508958919942'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/12/silverlight-instead-of-javascript.html' title='Silverlight instead of JavaScript?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1010449228313216469</id><published>2008-08-12T07:53:00.001-07:00</published><updated>2008-08-12T08:22:18.526-07:00</updated><title type='text'>How to fail the build if unit tests fail.</title><content type='html'>I just realized that the way TFS is architected is that it will mark the tests "Partially Succeeded" if the unit tests fail. This does not agree with out development process. Our development process prescribes that the build should fail if any of the unit tests fail. One way to deal with this problem is to edit C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets and set ContinueOnError to false.&lt;br /&gt;&lt;br /&gt;Another way of dealing with this was suggested in the blog entry &lt;a href="http://blogs.msdn.com/aaronhallberg/archive/2007/11/05/how-to-fail-a-build-when-tests-fail.aspx"&gt;http://blogs.msdn.com/aaronhallberg/archive/2007/11/05/how-to-fail-a-build-when-tests-fail.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I modified the code suggested there to make sure also that the files are not copied to the drop location if the unit tests fail.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size=2&gt;Target&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;Name&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;AfterTest&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;!--&lt;/font&gt;&lt;font color="#008000" size=2&gt; Refresh the build properties. &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;--&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size=2&gt;GetBuildProperties&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;TeamFoundationServerUrl&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;$(TeamFoundationServerUrl)&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;BuildUri&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;$(BuildUri)&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;Condition&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; '$(IsDesktopBuild)' != 'true' &lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size=2&gt;Output&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;TaskParameter&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;TestSuccess&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;PropertyName&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;TestSuccess&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size=2&gt;GetBuildProperties&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;!--&lt;/font&gt;&lt;font color="#008000" size=2&gt; Set CompilationStatus to Failed if TestSuccess is false. &lt;/font&gt;&lt;font color="#0000ff" size=2&gt;--&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size=2&gt;SetBuildProperties&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;TeamFoundationServerUrl&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;$(TeamFoundationServerUrl)&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;BuildUri&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;$(BuildUri)&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;CompilationStatus&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;Failed&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;Condition&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' &lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515" size=2&gt;SetBuildProperties&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; &lt;/font&gt;&lt;font color="#ff0000" size=2&gt;TeamFoundationServerUrl&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;$(TeamFoundationServerUrl)&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;BuildUri&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;$(BuildUri)&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;SkipDropBuild&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;true&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&lt;br /&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#ff0000" size=2&gt;Condition&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;=&lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt; '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' &lt;/font&gt;&lt;font size=2&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515" size=2&gt;Target&lt;/font&gt;&lt;font color="#0000ff" size=2&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1010449228313216469?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1010449228313216469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1010449228313216469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1010449228313216469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1010449228313216469'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/08/how-to-fail-build-if-unit-tests-fail.html' title='How to fail the build if unit tests fail.'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4323956412154739514</id><published>2008-07-17T09:47:00.001-07:00</published><updated>2008-07-17T09:50:12.338-07:00</updated><title type='text'>Mock object framework makes refactoring difficult</title><content type='html'>Probably unintended consequence of using a mock object framework is that it makes refactoring somewhat difficult if the method signature changes, or if methods are split/combined or rearranged to different interfaces. Sometimes I am having really hard time in getting the test back to the working condition, and often don't know why I need to do what I have to do to get it fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4323956412154739514?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4323956412154739514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4323956412154739514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4323956412154739514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4323956412154739514'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/07/mock-object-framework-makes-refactoring.html' title='Mock object framework makes refactoring difficult'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1270260884848910391</id><published>2008-07-15T14:41:00.001-07:00</published><updated>2008-07-15T14:43:10.416-07:00</updated><title type='text'>FxCop rigidness</title><content type='html'>What drives me really crazy in FxCop is that I cannot easily change the MessageLevel of the built-in rules. The XML file describing rules is compiled into the rule assemblies as an embedded resource, so the only option for me is to create a new rule assembly, copy the XML file, exclude the old rule and include the new rule. I'd rather change the MessageLevel using FxCop project files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1270260884848910391?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1270260884848910391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1270260884848910391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1270260884848910391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1270260884848910391'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/07/fxcop-rigidness.html' title='FxCop rigidness'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-858685545154653534</id><published>2008-07-14T12:23:00.000-07:00</published><updated>2008-07-14T12:44:37.184-07:00</updated><title type='text'>Misfeature of FxCop 1.36</title><content type='html'>When upgraded to version 1.36 I started getting the messages "Strong name doesn't match the reference", or "Could not resolve member reference".&lt;br /&gt;&lt;br /&gt;The solution can be found &lt;a href="http://davesbox.com/archive/2008/06/14/reference-resolutions-changes-in-code-analysis-and-fxcop-part-2.aspx"&gt;here&lt;/a&gt;. What worked for me is setting AssemblyReferenceResolveMode to None.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-858685545154653534?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/858685545154653534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=858685545154653534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/858685545154653534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/858685545154653534'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/07/nasty-misfeature-of-fxcop-136.html' title='Misfeature of FxCop 1.36'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6976678813032562515</id><published>2008-07-11T22:28:00.000-07:00</published><updated>2008-10-07T11:40:34.102-07:00</updated><title type='text'>Problem with CollabNet SVN 1.5</title><content type='html'>When I upgraded I started getting messages like this:&lt;br /&gt;&lt;br /&gt;Failed to load module for FS type 'bdb'&lt;br /&gt;&lt;br /&gt;Apparently bdb module is not working (or maybe they forgot to include it?) in the CollabNet distribution. I had to use the old binaries to migrate the repositories from bdb to fsfs like this:&lt;br /&gt;&lt;br /&gt;svnadmin create NEW_REPOSITORY&lt;br /&gt;svnadmin dump OLD_REPOSITORY | svnadmin load NEW_REPOSITORY&lt;br /&gt;&lt;br /&gt;where &lt;new&gt;&lt;new&gt;&lt;old&gt;&lt;new&gt; &lt;new&gt; &lt;/new&gt;&lt;/new&gt;&lt;/old&gt;&lt;/new&gt;&lt;/new&gt;NEW_REPOSITORY &lt;new&gt;&lt;new&gt;&lt;old&gt;&lt;new&gt;&lt;new&gt;is the file path to the new fsfs repository and &lt;/new&gt;&lt;/new&gt;&lt;/old&gt;&lt;/new&gt;&lt;old&gt;&lt;new&gt;&lt;old&gt;&lt;new&gt;&lt;new&gt;&lt;old&gt; &lt;/old&gt;&lt;/new&gt;&lt;/new&gt;&lt;/old&gt;&lt;/new&gt;&lt;/old&gt;&lt;/new&gt;OLD_REPOSITORY &lt;new&gt;&lt;old&gt;&lt;new&gt;&lt;old&gt;&lt;new&gt;&lt;new&gt;&lt;old&gt;is the file path to the old bdb repository.&lt;/old&gt;&lt;/new&gt;&lt;/new&gt;&lt;/old&gt;&lt;/new&gt;&lt;/old&gt;&lt;/new&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6976678813032562515?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6976678813032562515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6976678813032562515' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6976678813032562515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6976678813032562515'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/07/collabnet-svn-15-is-evil.html' title='Problem with CollabNet SVN 1.5'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7343962900110940769</id><published>2008-07-06T19:51:00.001-07:00</published><updated>2008-07-06T19:56:36.355-07:00</updated><title type='text'>BizTalk services let you expose stuff on internal network?</title><content type='html'>See &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc546613.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc546613.aspx&lt;/a&gt;. Using RelayedHttp you can expose the web service on your internal network to the internet.  But I wonder how this thing work? Is the service polling the BizTalk services all the time to check if there is any request?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7343962900110940769?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7343962900110940769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7343962900110940769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7343962900110940769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7343962900110940769'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/07/biztalk-services-let-you-expose-stuff.html' title='BizTalk services let you expose stuff on internal network?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-3150160052170462987</id><published>2008-05-19T14:13:00.000-07:00</published><updated>2008-05-19T14:14:36.299-07:00</updated><title type='text'>Process owner</title><content type='html'>Some people own the process they are using, the others are owned by the process. It is especially sad when the people who invented the process in the first place start being owned by it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-3150160052170462987?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/3150160052170462987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=3150160052170462987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3150160052170462987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3150160052170462987'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/05/process-owner.html' title='Process owner'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7078653340175832468</id><published>2008-05-12T12:07:00.000-07:00</published><updated>2008-05-12T12:08:45.765-07:00</updated><title type='text'>QTP license blues</title><content type='html'>After a few times when QTP refused to find a license server I finally found a solution: in Windows firewall you need to open UDP port 5093.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7078653340175832468?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7078653340175832468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7078653340175832468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7078653340175832468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7078653340175832468'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/05/qtp-license-blues.html' title='QTP license blues'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-9192723585525257768</id><published>2008-05-06T04:51:00.000-07:00</published><updated>2008-05-06T04:52:20.098-07:00</updated><title type='text'>Evangelists</title><content type='html'>There are so many Microsoft evangelists now, so I started wondering if there is also a Microsoft seminary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-9192723585525257768?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/9192723585525257768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=9192723585525257768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/9192723585525257768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/9192723585525257768'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/05/evangelists.html' title='Evangelists'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1627258984985753254</id><published>2008-04-28T13:56:00.000-07:00</published><updated>2008-04-28T13:59:35.165-07:00</updated><title type='text'>AquaLogic® BPM</title><content type='html'>&lt;a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/aqualogic/albpm/"&gt;AquaLogic&lt;span class="superscript"&gt;®&lt;/span&gt; BPM&lt;/a&gt; seems to be way more advanced workflow engine than Microsoft WF. In particular it is designed to work for human workflow, which Microsoft WF is not.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1627258984985753254?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1627258984985753254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1627258984985753254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1627258984985753254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1627258984985753254'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/04/aqualogic-bpm.html' title='AquaLogic® BPM'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4415145818320382567</id><published>2008-04-28T08:38:00.000-07:00</published><updated>2008-04-28T08:42:35.053-07:00</updated><title type='text'>Typemock</title><content type='html'>If you have $450 per developer to spare consider buying &lt;a href="http://www.typemock.com/index.html"&gt;TypeMock Isolator. &lt;/a&gt;It is especially useful when writing unit tests for a legacy system that is not well-designed. It is interesting to see how you can make sense of the spaghetti code by mocking everything: public methods, private methods, etc. Of course before that you should get &lt;a href="http://www.jetbrains.com/resharper/index.html"&gt;ReSharper &lt;/a&gt;for much cheaper...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4415145818320382567?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4415145818320382567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4415145818320382567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4415145818320382567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4415145818320382567'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/04/typemock.html' title='Typemock'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6775624921177635931</id><published>2008-04-16T11:58:00.001-07:00</published><updated>2008-04-16T11:58:59.155-07:00</updated><title type='text'>How to avoid session expiration</title><content type='html'>&lt;a href="http://www.codinghorror.com/blog/archives/001100.html"&gt;http://www.codinghorror.com/blog/archives/001100.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create a background JavaScript process in the browser that &lt;b&gt;sends regular heartbeats to the server&lt;/b&gt;. Regenerate a new cookie with timed expiration, say, every 5 or 10 minutes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6775624921177635931?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6775624921177635931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6775624921177635931' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6775624921177635931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6775624921177635931'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/04/how-to-avoid-session-expiration.html' title='How to avoid session expiration'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8514624467997803058</id><published>2008-04-14T12:14:00.000-07:00</published><updated>2008-04-14T12:15:16.210-07:00</updated><title type='text'>VS2008</title><content type='html'>How is Visual Studio 2008 improving developer's productivity if it is twice slower than Visual Studio 2005?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8514624467997803058?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8514624467997803058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8514624467997803058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8514624467997803058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8514624467997803058'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/04/vs2008.html' title='VS2008'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7065451895983065566</id><published>2008-04-07T15:16:00.000-07:00</published><updated>2008-04-07T15:19:26.974-07:00</updated><title type='text'>VS2008 web projects</title><content type='html'>I was so happy when in VS2005 the web projects did not require any virtual directory to be set up. This allowed me to be working on multiple branches of the same web applications. In VS2008 we are back to the old stuff of requiring that the physical directory should match the virtual directory specified in the project file. WHY? This thing does not make any sense to me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7065451895983065566?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7065451895983065566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7065451895983065566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7065451895983065566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7065451895983065566'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/04/vs2008-web-projects.html' title='VS2008 web projects'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8000681946438401626</id><published>2008-04-02T12:46:00.000-07:00</published><updated>2008-04-02T12:48:49.873-07:00</updated><title type='text'>Web Client Software Factory</title><content type='html'>&lt;a href="http://www.codeplex.com/websf"&gt;http://www.codeplex.com/websf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have an impression that this was called something like "Composite application block" or something, because I tried it a year ago. At that time it impressed me with complexity. Did not quite fit into what Microsoft is trying to sell as "Software Factories". We'll see if some of the shortcomings are addressed in this incarnation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8000681946438401626?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8000681946438401626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8000681946438401626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8000681946438401626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8000681946438401626'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/04/web-client-software-factory.html' title='Web Client Software Factory'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1565956094959166313</id><published>2008-03-27T10:14:00.000-07:00</published><updated>2008-03-27T10:17:41.635-07:00</updated><title type='text'>CI Factory</title><content type='html'>Wow! Continuous integration out of the box. Everything integrated! Just install and configure it! &lt;a href="http://www.cifactory.org/"&gt;CI Factory&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1565956094959166313?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1565956094959166313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1565956094959166313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1565956094959166313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1565956094959166313'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/03/ci-factory.html' title='CI Factory'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1051456899812912064</id><published>2008-03-13T20:11:00.000-07:00</published><updated>2008-03-13T20:13:31.248-07:00</updated><title type='text'>What is happening at Microsoft?</title><content type='html'>Microsoft promoting FireBug: extension to Firefox. Weird.&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/magazine/cc337891.aspx"&gt;http://msdn2.microsoft.com/en-us/magazine/cc337891.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1051456899812912064?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1051456899812912064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1051456899812912064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1051456899812912064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1051456899812912064'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/03/what-is-happening-at-microsoft.html' title='What is happening at Microsoft?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4696708073171177068</id><published>2008-03-05T08:09:00.000-08:00</published><updated>2008-03-05T08:14:46.901-08:00</updated><title type='text'>Why can't I throws an exception in .Net?</title><content type='html'>I used to belong to the camp that says that throwsing exception in Java is useless and you would rather not catch any exception until in the outer program catching all exceptions. Now working on the code I see a lot of random "catch all" statements that were originally meant to catch only OracleException or ParseException, but eventually that knowledge was forgotten and we started also swallowing other exceptions that we did not intend to do in the beginning. Thus if there is a problem in the code I cannot diagnose it until I start debugging it.&lt;br /&gt;&lt;br /&gt;Instead if, like in Java, the methods were throwsing the exceptions forcing the client methods to catch them or to throws them further the developer's task would be much easier figuring out what exceptions need to be caught or rethrown.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4696708073171177068?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4696708073171177068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4696708073171177068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4696708073171177068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4696708073171177068'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/03/why-cant-i-throws-exception-in-net.html' title='Why can&apos;t I throws an exception in .Net?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-9145614760613849647</id><published>2008-02-21T11:02:00.000-08:00</published><updated>2008-02-21T11:03:17.619-08:00</updated><title type='text'>Get Your Database Under Version Control</title><content type='html'>Great post:&lt;br /&gt;http://www.codinghorror.com/blog/archives/001050.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-9145614760613849647?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/9145614760613849647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=9145614760613849647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/9145614760613849647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/9145614760613849647'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/02/get-your-database-under-version-control.html' title='Get Your Database Under Version Control'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7286272326485165549</id><published>2008-01-18T10:58:00.000-08:00</published><updated>2008-01-18T11:03:48.375-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>TFS 2005 installation problems</title><content type='html'>While installing TFS 2005 you may get many error messages during the system health check. Some of the messages may be quite misleading. To find out more details you can open a file called hcpackage.xml (in the folders at, dt or atdt) and find the error message. The file also has WMI queries that are being executed to determine if an error condition exists. Sometimes there are multiple WMI queries that result in a single error message, so you have a much better chance to troubleshoot the problem and resolve the installation issue. You can also try to edit the file and remove the WMI if your environment cannot conform to the TFS 2005 requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7286272326485165549?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7286272326485165549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7286272326485165549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7286272326485165549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7286272326485165549'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/01/tfs-2005-installation-problems.html' title='TFS 2005 installation problems'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7111524705557535815</id><published>2008-01-10T14:40:00.000-08:00</published><updated>2008-01-10T14:45:15.560-08:00</updated><title type='text'>Unit test generator</title><content type='html'>Just an idea: what if we had the software that would automatically generate unit tests for all success scenarios? It would work like this:&lt;br /&gt;1. Attach to the running process as a debugger&lt;br /&gt;2. The user would use the application to test all success scenarios&lt;br /&gt;3. The generator program would record all the method invocations with all the parameters.&lt;br /&gt;4. After the application that is being debugged exits the generator program would use the information about methods invocation and generate  NUnit tests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7111524705557535815?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7111524705557535815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7111524705557535815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7111524705557535815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7111524705557535815'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2008/01/unit-test-generator.html' title='Unit test generator'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-25499687586682972</id><published>2007-12-10T14:35:00.000-08:00</published><updated>2007-12-10T14:40:19.445-08:00</updated><title type='text'>Object-oriented design</title><content type='html'>The goal of object-oriented design is not only to reduce dependency, but also to remove ambiguity.For example, using DataSet as a universal data transfer object definitely reduces dependency, but increases ambiguity a lot, requiring you to understand the non-documented contract of what data should be in the data set and what do they represent. By using strongly-typed objects you document the contract and reduce ambiguity.&lt;br /&gt;&lt;br /&gt;Here is the strong point of the strongly typed languages vs. dynamic languages. The contracts in the strongly typed languages are usually more pronounced. Unit tests can compensate for the missing contract details but cannot themselves become a part of the object contract.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-25499687586682972?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/25499687586682972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=25499687586682972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/25499687586682972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/25499687586682972'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/12/object-oriented-design.html' title='Object-oriented design'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4025205025771687631</id><published>2007-12-03T10:34:00.000-08:00</published><updated>2007-12-03T10:36:09.596-08:00</updated><title type='text'>Find all files that contain 'something'</title><content type='html'>In PowerShell&lt;br /&gt;&lt;br /&gt; ls -r | ? {select-string $_ -patt something}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4025205025771687631?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4025205025771687631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4025205025771687631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4025205025771687631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4025205025771687631'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/12/find-all-files-that-contain-something.html' title='Find all files that contain &apos;something&apos;'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-315246270258978740</id><published>2007-11-20T12:30:00.000-08:00</published><updated>2007-11-20T12:36:17.574-08:00</updated><title type='text'>Exam 70-529 training kit</title><content type='html'>The &lt;a href="http://www.amazon.com/MCTS-Self-Paced-Training-70-529-Pro-Certification/dp/0735623325/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1195590851&amp;amp;sr=8-1"&gt;training kit&lt;/a&gt; is written quite poorly with a lot of typos and mistakes. Some of the examples are only given in VB.Net. What is most exciting (and funny) are the "words of wisdom" of the book:&lt;br /&gt;&lt;br /&gt;"It is nearly impossible to write more than a few lines of code without there being some type of error in the execution of the code" (page 239)&lt;br /&gt;&lt;br /&gt;"You should always expect the unexpected" (page 242).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-315246270258978740?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/315246270258978740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=315246270258978740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/315246270258978740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/315246270258978740'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/11/exam-70-529-training-kit.html' title='Exam 70-529 training kit'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8102756665777188101</id><published>2007-11-19T14:18:00.000-08:00</published><updated>2007-11-19T14:20:36.237-08:00</updated><title type='text'>Delayed Load</title><content type='html'>Cool technique for delay loading is provided at &lt;a href="http://www.codeproject.com/Ajax/DelayedContentLoading.asp"&gt;http://www.codeproject.com/Ajax/DelayedContentLoading.asp&lt;/a&gt;. Just use UpdatePanel, Timer and MultiView controls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8102756665777188101?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8102756665777188101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8102756665777188101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8102756665777188101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8102756665777188101'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/11/delayed-load.html' title='Delayed Load'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2020852497271399728</id><published>2007-10-27T21:58:00.000-07:00</published><updated>2007-10-27T21:59:21.995-07:00</updated><title type='text'>PageDefrag</title><content type='html'>I must admit that PageDefrag does make a lot of difference in omputer performance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2020852497271399728?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2020852497271399728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2020852497271399728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2020852497271399728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2020852497271399728'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/10/pagedefrag.html' title='PageDefrag'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8253337302656477534</id><published>2007-09-27T15:52:00.000-07:00</published><updated>2010-07-21T20:51:14.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>grep replacement in PowerShell</title><content type='html'>ls -recurse -include *.sql | select-string -pattern ' rest'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8253337302656477534?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8253337302656477534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8253337302656477534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8253337302656477534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8253337302656477534'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/09/grep-replacement-in-powershell.html' title='grep replacement in PowerShell'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6038686263413393693</id><published>2007-09-21T08:13:00.000-07:00</published><updated>2007-09-21T08:14:16.205-07:00</updated><title type='text'>Runnint multiple versions of IE</title><content type='html'>http://tredosoft.com/Multiple_IE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6038686263413393693?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6038686263413393693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6038686263413393693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6038686263413393693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6038686263413393693'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/09/runnint-multiple-versions-of-ie.html' title='Runnint multiple versions of IE'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4254135237989847594</id><published>2007-09-04T12:58:00.001-07:00</published><updated>2007-09-04T13:00:24.153-07:00</updated><title type='text'>Manage ACL in ADAM</title><content type='html'>If you want to manage the access in ADAM the documented tool is dsacls. However this command-line tool is not very intuitive and easy-to-learn. There is an undocumented tool ldp in C:\Windows\ADAM directory that provides a GUI for security descriptors, i.e. DACL and SACL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4254135237989847594?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4254135237989847594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4254135237989847594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4254135237989847594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4254135237989847594'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/09/manage-acl-in-adam.html' title='Manage ACL in ADAM'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6314459246501101618</id><published>2007-08-30T14:56:00.000-07:00</published><updated>2007-08-30T15:05:22.526-07:00</updated><title type='text'>Totally backwards!</title><content type='html'>I just discovered that Upgrading VS 2005 Web Site Projects to be VS 2005 Web Application Projects is a totally backwards procedure, as described in this &lt;a href="http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx"&gt;blog&lt;/a&gt;. I just don't understand why this is so hard procedure, and why the "Convert to Web Application" context menu is available when you have already converted the project to web application, and it not an available menu for web sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6314459246501101618?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6314459246501101618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6314459246501101618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6314459246501101618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6314459246501101618'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/08/totally-backwards.html' title='Totally backwards!'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7328986001193047844</id><published>2007-08-07T13:26:00.000-07:00</published><updated>2007-08-07T13:28:04.631-07:00</updated><title type='text'>Migrating to ASP.NET 2.0... from a Class Library project</title><content type='html'>&lt;span style="text-decoration: underline;"&gt;&lt;a href="http://conceptdev.blogspot.com/2006/06/migrating-to-aspnet-20-from-class.html"&gt;See this blog post&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7328986001193047844?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7328986001193047844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7328986001193047844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7328986001193047844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7328986001193047844'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/08/migrating-to-aspnet-20-from-class.html' title='Migrating to ASP.NET 2.0... from a Class Library project'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-3410850884463174570</id><published>2007-08-06T14:50:00.000-07:00</published><updated>2007-08-06T14:52:56.885-07:00</updated><title type='text'>Failed installations</title><content type='html'>To cleanup after failed installations (especially C:\Windows\Installer) you can use&lt;br /&gt;&lt;br /&gt; MsiZap G!&lt;br /&gt;&lt;br /&gt;Or alternatively download &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;290301"&gt;"Windows Installer Cleanup Utility"&lt;/a&gt; to do that using GUI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-3410850884463174570?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/3410850884463174570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=3410850884463174570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3410850884463174570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/3410850884463174570'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/08/failed-installations.html' title='Failed installations'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7872632547069713804</id><published>2007-08-03T11:19:00.000-07:00</published><updated>2007-08-03T11:21:28.884-07:00</updated><title type='text'>MSBuild and Web Site projects</title><content type='html'>One of the developers found an interesting misfeature of the MSBuild. When you supply Project Name parameter it does not package the web site and does not create PrecompiledWeb folder. However as soon as you remove this parameter the folder gets created. Weird.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7872632547069713804?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7872632547069713804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7872632547069713804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7872632547069713804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7872632547069713804'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/08/msbuild-and-web-site-projects.html' title='MSBuild and Web Site projects'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5766852348497367002</id><published>2007-07-30T11:26:00.001-07:00</published><updated>2007-07-30T11:27:50.977-07:00</updated><title type='text'>AzMan group (2)</title><content type='html'>Unfortunately the approach I described in the previous post does not really works. The problem is that the AzMan.msc breaks if I do that. Probably it expects the groupType to be exactly 16 or 32 rather than what would be correct behaviour: apply a bitmap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5766852348497367002?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5766852348497367002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5766852348497367002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5766852348497367002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5766852348497367002'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/07/azman-group-2.html' title='AzMan group (2)'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2841397866362913164</id><published>2007-07-27T14:31:00.000-07:00</published><updated>2007-07-27T14:37:56.567-07:00</updated><title type='text'>AzMan groups</title><content type='html'>AzMan groups ain't security groups. If you check the groupType attribute of the Basic AzMan group it will be 16 (0x00000010). Now the security groupType normally is -2147483646 (0x80000002). &lt;a href="http://msdn2.microsoft.com/en-us/library/ms675935.aspx"&gt;This article&lt;/a&gt; deciphers the groupType values. Thus 0x80000002 really means global group that is also a security group. So if you want your Basic AzMan group to behave like a security group you should use group type 0x80000012 which will be -2147483630 in decimal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2841397866362913164?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2841397866362913164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2841397866362913164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2841397866362913164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2841397866362913164'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/07/azman-groups.html' title='AzMan groups'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8338467073091838268</id><published>2007-06-11T10:18:00.000-07:00</published><updated>2007-06-11T10:30:27.516-07:00</updated><title type='text'>ASP.NET AJAX performance problems</title><content type='html'>Look at this Fiddler capture: ScriptManager loads more than 400 MBytes of JavaScript code!&lt;br /&gt;&lt;br /&gt;WebResource.axd: 20 KB&lt;br /&gt;ScriptResource.axd: 260 KBytes&lt;br /&gt;ScriptResource.axd: 65 KBytes&lt;br /&gt;ScriptResource.axd: 22 KBytes&lt;br /&gt;ScriptResource.axd: 9 KBytes&lt;br /&gt;&lt;br /&gt;This will make people want to come back to plain old HTML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8338467073091838268?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8338467073091838268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8338467073091838268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8338467073091838268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8338467073091838268'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/06/aspnet-ajax-performance-problems.html' title='ASP.NET AJAX performance problems'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7324424097164562081</id><published>2007-05-08T16:09:00.000-07:00</published><updated>2007-05-08T16:10:05.107-07:00</updated><title type='text'>OO JavaScript</title><content type='html'>&lt;a href="http://www.newhorizonsmn.com/communities/Developer/Developer_Events.aspx"&gt;Good article!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7324424097164562081?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7324424097164562081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7324424097164562081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7324424097164562081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7324424097164562081'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/05/oo-javascript.html' title='OO JavaScript'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-8709852950648986888</id><published>2007-04-30T12:27:00.000-07:00</published><updated>2007-04-30T12:42:44.499-07:00</updated><title type='text'>Microsoft SQL Server management Studio</title><content type='html'>The management studio is a big disappointment for me, because I expected the tool that has the best features of Enterprise Manager and SQL Query Analyzer. Instead I found the combined tool where EM and SQA exist as independent units, so I don't have any of SQA features when I open the table from the object explorer, and when I use "New Query" I cannot edit results, nor use Query Designer. I can't believe Microsoft is selling the tool as a SQL 2005 "improvement".  :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-8709852950648986888?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/8709852950648986888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=8709852950648986888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8709852950648986888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/8709852950648986888'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/04/microsoft-sql-server-management-studio.html' title='Microsoft SQL Server management Studio'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-6635450639264407275</id><published>2007-03-13T10:59:00.000-07:00</published><updated>2007-03-13T11:01:59.472-07:00</updated><title type='text'>New syntax for NUnit 2.4</title><content type='html'>Check out the new syntax for NUnit 2.4 in &lt;a href="http://nunit.com/blogs/?p=44"&gt;this blog entry&lt;/a&gt;. Nunit will have more object-oriented syntax for assertions, allowing to encapsulate the complexity of unit tests in nice object model. I guess this is another reason to stick with NUnit rather than going to VSTS unit testing framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-6635450639264407275?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/6635450639264407275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=6635450639264407275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6635450639264407275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/6635450639264407275'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/03/new-syntax-for-nunit-24.html' title='New syntax for NUnit 2.4'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-2537890180435571035</id><published>2007-02-20T19:48:00.000-08:00</published><updated>2007-02-20T19:49:04.729-08:00</updated><title type='text'>Unofficial Windows 2000 DST patch</title><content type='html'>http://www.intelliadmin.com/blog/2007/01/unofficial-windows-2000-daylight.html&lt;br /&gt;&lt;br /&gt;I'll try to apply it today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-2537890180435571035?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/2537890180435571035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=2537890180435571035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2537890180435571035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/2537890180435571035'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/02/unofficial-windows-2000-dst-patch.html' title='Unofficial Windows 2000 DST patch'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1118256389132433970</id><published>2007-01-31T15:14:00.000-08:00</published><updated>2007-01-31T15:16:09.552-08:00</updated><title type='text'>QuickCounters</title><content type='html'>&lt;span class="ProjectHeader"&gt;&lt;/span&gt;&lt;a id="ctl00_ctl00_ctl00_PageHeader_ProjectTitleControl1_ProjectTitleLink" href="http://www.codeplex.com/quickcounters" style="text-decoration: none;"&gt;&lt;span id="ctl00_ctl00_ctl00_PageHeader_ProjectTitleControl1_titleLabel"&gt;QuickCounters&lt;/span&gt;&lt;/a&gt; is a library that will make  it easier to instrument  your .Net code with performance counters. It still requires you to  instrument the code through, which could make it quite messy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1118256389132433970?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1118256389132433970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1118256389132433970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1118256389132433970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1118256389132433970'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/01/quickcounters.html' title='QuickCounters'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-7389241883913385009</id><published>2007-01-02T15:28:00.000-08:00</published><updated>2007-01-02T15:43:03.887-08:00</updated><title type='text'>Agile Google</title><content type='html'>Well, &lt;a href="http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html"&gt;this blog&lt;/a&gt; says that Google represents &lt;span style="font-style: italic;"&gt;good Agile&lt;/span&gt;, while other agile processes are &lt;span style="font-style: italic;"&gt;bad agile&lt;/span&gt;. I agree with some points of the post, like if you have super developers the process does not help as much as if you have a mix of junior and medium level developers. But my personal experience does not confirm that no process is better than an agile process.&lt;br /&gt;&lt;br /&gt;An eye-opening experience report by Mark Striebeck on Agile 2006 conference confirmed my suspicions. His area of work is Ad Words system, which is different from other stuff Google develops in that it is quite complex and requires a release cycle and commitments (as a B2B system). When he joined he found a few problems that can be attributed to a lack of a process. First of all the development was always late. Worse off, the developers did not know how late they are until the last moment. The scope creep was more than 30%. Mark was invited to add a process into the Ad Words development, to help solve these problems. Now, according to Steve Yegge this is like adding bad agile to good agile. Probably smart people at Google think differently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-7389241883913385009?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/7389241883913385009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=7389241883913385009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7389241883913385009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/7389241883913385009'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2007/01/agile-google.html' title='Agile Google'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-5180127612716737925</id><published>2006-12-15T07:43:00.000-08:00</published><updated>2006-12-15T08:31:07.562-08:00</updated><title type='text'>The Cost of Code Quality</title><content type='html'>One of the most controversial event on the Agile 2006 conference was a paper by Yuri Khramov from Apple on the cost of code quality. It is to bad I did not have a chance to see the presentation :( . Let's see what he is writing about:&lt;br /&gt;&lt;br /&gt;"It is shown that a 'quick and dirty' approach is actually preferable in some situations"&lt;br /&gt;&lt;br /&gt;There are quite a few statements like this in the article, it is clear the guy is very emotional about the issue. Let's see what he says further on:&lt;br /&gt;&lt;br /&gt;"Code quality is not the ultimate goal of the development team, but rather one of the options considered for achievement of the real goal of the project, be it commercial success, timely solution of an important problem, or something else" &lt;br /&gt;&lt;br /&gt;Agreed&lt;br /&gt;&lt;br /&gt;"... there is no positive correlation between the quality of the code and the success of the product..." and also "If there is any correlation between code quality and the success, it is a negative one"&lt;br /&gt;&lt;br /&gt;He bases his research on the 80 projects he participated. My impressions that they were mostly not very big projects or the system he built are not very big. But I can also say that this is my experience too. The worst system I ever built (in Perl) was very successful. It had no design whatsoever, not even a procedural one. And in fact it did not have too many bugs, was in production for at least two years. One of the best systems we built never made it to production. Usually the most successful systems I built had moderate code quality, although some of them have excellent code quality.&lt;br /&gt;&lt;br /&gt;So anyway, the author says: "... most of the time the 'quick and dirty' approach delivers better return on investments" &lt;br /&gt;&lt;br /&gt;Probably the reason for this statement is that the code quality is too expensive but does not bring much benefit. But how about all the projects failures due to the poor code quality? The author argues that volatility of requirements "is the reason for most project failures". This is probably true, although he of course does not count the projects that did not even start because the code was too expensive and risky to modify. Anyway what does the author suggest to fight the volatility of requirements. I suspect that he recommends building a poor code quality system and rewrite it with any significant change of requirements. &lt;br /&gt;&lt;br /&gt;"High quality code performs correctly even on edge cases; quick and dirty solutions may work well only on the most frequent case". That's true. But the author argues that if the system will only be used in the most frequent case the quick and dirty solution is acceptable. I think this is more a design defect: why don't we design a system that will only have one or two use cases and remove all unnecessary alternative flows by not designing them into the system? For example, we don't need a breadcrumbs on the data entry applications. And what about all these "Home" buttons on the "wizard" pages? Do you really want the user to go back to the home page in the middle of transaction? &lt;br /&gt;&lt;br /&gt;"...high post-release defect density is often related to the high degree of product success". That's true, if the system was never used it has no bugs. &lt;br /&gt;&lt;br /&gt;"Despite the fact that several projects had failed, none of the failures was doe to high bug count" It depends how you define failure of the project. Some people define a project failure if it runs over budget or delivered with significant delays. Usually high bug count affects both cost and schedule.&lt;br /&gt;&lt;br /&gt;Now the author argues with the theory that it costs more to fix bugs in the later stages of the project. I always thought that the theory was incorrect, but I am using agile principles for 7 years already. He says that "relative costs of fixing a single defect after release decreased substantially since 1994". "In our data, the cost of addressing an issue is not higher in the projects with low code quality". This may be true, but the issues are usually different for the systems with high and low code quality. &lt;br /&gt;&lt;br /&gt;Now he says that there are many systems that are only in production for a few months, so why bothering with the code quality. I can agree with one exception: sometimes the business decides to keep the system longer than originally expected. We have one of the examples when a quick and dirty solution is in production already four time longer than originally anticipated. &lt;br /&gt;&lt;br /&gt;Very beautiful:&lt;br /&gt;"... a good project manager analyzes the project and designs the development process almost the same way as an architect designs the software."&lt;br /&gt;&lt;br /&gt;Very evil:&lt;br /&gt;"It is very natural to perceive the code written by another person as inferior..." But the point is clear: the developers don't enjoy working on the system with low code quality. For me low developer motivation is a project risk.&lt;br /&gt;&lt;br /&gt;Good observation about xUnit:&lt;br /&gt;"...xUnit approach means writing more code, and every line of code is a liability" Instead he suggests to use Design By Contract methodology where xUnit is too expensive. I think this is a good suggestion.&lt;br /&gt;&lt;br /&gt;Conclusion:&lt;br /&gt;"... experience demonstrates that the quest for the best code is not always justified."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-5180127612716737925?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/5180127612716737925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=5180127612716737925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5180127612716737925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/5180127612716737925'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/12/cost-of-code-quality.html' title='The Cost of Code Quality'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-1540343659821228098</id><published>2006-12-11T19:54:00.000-08:00</published><updated>2006-12-11T20:02:01.474-08:00</updated><title type='text'>KANO and Agile requirements</title><content type='html'>One thing the Agile methodlolgy is wrong is in insisting that all requirements must be explicit. Whereas from KANO methodology we know that the customer are explicit about only &lt;span style="font-style: italic;"&gt;satisfiers&lt;/span&gt; and are implicit about &lt;span style="font-style: italic;"&gt;dissatisfiers&lt;/span&gt;. Of course they don't even suspect about &lt;span style="font-style: italic;"&gt;delighters&lt;/span&gt;. Agile methodology is wrong in requiring to explicitly state the &lt;span style="font-style: italic;"&gt;dissatisfiers&lt;/span&gt;. This is quite irritating for the customers, and if they missed a &lt;span style="font-style: italic;"&gt;dissatisfier&lt;/span&gt; and it does not get implemented the customer satisfaction swings into negative territory. Good Agile methodology should always make sure the &lt;span style="font-style:italic;"&gt;dissatisfiers&lt;/span&gt; are implemented as a part of the solution. Correspondingly the customer should be aware that some of his money are going to maintain good standards of software, but he should be confident that all things he is taking for granted will be implemented in the system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-1540343659821228098?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/1540343659821228098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=1540343659821228098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1540343659821228098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/1540343659821228098'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/12/kano-and-agile-requirements.html' title='KANO and Agile requirements'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-687390517604765908</id><published>2006-11-14T10:14:00.000-08:00</published><updated>2006-11-14T10:18:19.993-08:00</updated><title type='text'>Test-driven writing of standards</title><content type='html'>We all know about test-driven development, and even test-driven management (which proves to be just setting goals and checking  them at the end of the year).&lt;br /&gt;&lt;br /&gt;Now I introduce &lt;span style="font-weight: bold;"&gt;Test-Driven Writing of Standards&lt;/span&gt;. Indeed you can start writing coding standards, but it is likely you will miss something, so when you see another ugliness in your code you need first to go and check if your standards cover the problem. If not you need to add it to the standards, and then raise a defect based on the newly added coding standard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-687390517604765908?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/687390517604765908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=687390517604765908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/687390517604765908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/687390517604765908'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/11/test-driven-writing-of-standards.html' title='Test-driven writing of standards'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4307283566872240937</id><published>2006-10-02T11:32:00.000-07:00</published><updated>2006-10-02T11:34:02.364-07:00</updated><title type='text'>Wiki and Blog in WSS 3.0!</title><content type='html'>This &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=393495CD-3474-4EAA-8F8B-7D8BAAFFA4F7&amp;displaylang=en"&gt;video &lt;/a&gt; shows how to use WSS to create a Wiki web or a blog. WSS also supports RSS. Very cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4307283566872240937?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4307283566872240937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4307283566872240937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4307283566872240937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4307283566872240937'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/10/wiki-and-blog-in-wss-30.html' title='Wiki and Blog in WSS 3.0!'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4465326184881622693</id><published>2006-09-20T21:16:00.000-07:00</published><updated>2006-09-20T21:17:30.275-07:00</updated><title type='text'>Meeting-driven development</title><content type='html'>Excellent &lt;a href="http://www.agileadvice.com/archives/2006/09/recepie_for_eff.html"&gt;article &lt;/a&gt;about meetings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4465326184881622693?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4465326184881622693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4465326184881622693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4465326184881622693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4465326184881622693'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/09/meeting-driven-development.html' title='Meeting-driven development'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-4285997590320031424</id><published>2006-09-20T14:15:00.000-07:00</published><updated>2006-09-20T14:16:01.822-07:00</updated><title type='text'>Standalone Wiki</title><content type='html'>I should try this: &lt;a href="http://www.tiddlywiki.com/"&gt;http://www.tiddlywiki.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-4285997590320031424?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/4285997590320031424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=4285997590320031424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4285997590320031424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/4285997590320031424'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/09/standalone-wiki.html' title='Standalone Wiki'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-9130309057740016574</id><published>2006-09-19T17:17:00.000-07:00</published><updated>2006-09-19T17:18:43.887-07:00</updated><title type='text'>DBCC MEMORYSTATUS</title><content type='html'>Whenever you suspect memory problems in SQL Server 2000 use  DBCC MEMORYSTATUS. Here is the &lt;a href="http://support.microsoft.com/?id=271624"&gt;KB article&lt;/a&gt; about how to interpret results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-9130309057740016574?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/9130309057740016574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=9130309057740016574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/9130309057740016574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/9130309057740016574'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/09/dbcc-memorystatus.html' title='DBCC MEMORYSTATUS'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-413384970984676101</id><published>2006-09-07T14:14:00.000-07:00</published><updated>2006-09-07T14:16:35.531-07:00</updated><title type='text'>TDD vs RAD</title><content type='html'>I think the incompatibility between TDD and RAD is artificial. RAD is very useful for interfacng the external systems, like databases, web services and the user (UI is also the part of the external interface). TDD is very useful for developing business logic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-413384970984676101?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/413384970984676101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=413384970984676101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/413384970984676101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/413384970984676101'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/09/tdd-vs-rad.html' title='TDD vs RAD'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-115713069539484152</id><published>2006-09-01T10:10:00.000-07:00</published><updated>2006-09-01T10:11:35.423-07:00</updated><title type='text'>First thing to do when the execution plan changes</title><content type='html'>I need to run for every database:&lt;br /&gt;&lt;br /&gt;EXEC sp_MSforeachtable "DBCC DBREINDEX ('?')"&lt;br /&gt;EXEC sp_MSforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-115713069539484152?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/115713069539484152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=115713069539484152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115713069539484152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115713069539484152'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/09/first-thing-to-do-when-execution-plan.html' title='First thing to do when the execution plan changes'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-115697473181045436</id><published>2006-08-30T14:47:00.000-07:00</published><updated>2006-08-30T14:52:11.833-07:00</updated><title type='text'>So why does SQL server change execution plan?</title><content type='html'>Well, some hypotheses:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;SQL Server has artificial intelligence built in and wants to annoy the developers and DBAs by randomly changing execution plans for the query to make it slow and have developers and DBAs spend extra hours trying to optimize it.&lt;/li&gt;   &lt;li&gt;SQL Server has artificial intelligence built in and has a bias toward SQL Server performance ocnsulting. Since the rates dropped somewhat it decided it will torture full-time employees until they will hire a consultant with a decent rate.&lt;/li&gt;   &lt;li&gt;This behaviour was a part of SP4 and was designed to annoy developers and DBAs so they will upgrade to SQL Server 2005 as soon as possible, thus generating much-needed revenue for Microsoft.&lt;br /&gt;  &lt;/li&gt; &lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-115697473181045436?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/115697473181045436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=115697473181045436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115697473181045436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115697473181045436'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/08/so-why-does-sql-server-change.html' title='So why does SQL server change execution plan?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-115654369187886868</id><published>2006-08-25T15:04:00.000-07:00</published><updated>2006-08-25T15:08:11.893-07:00</updated><title type='text'>Why does SQL server always change execution plan?</title><content type='html'>I just don't get it why does SQL server always changes execution plan.&lt;br /&gt;&lt;br /&gt;I run&lt;br /&gt;&lt;br /&gt;EXEC sp_MSforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'&lt;br /&gt;&lt;br /&gt;and still cannot get the same execution plan as the last time. I don't think any data were changed since a few weeks ago. And why does the SQL server all the sudden start usign hash or merge joins and try to use parallelism? I worked a couple of days ago to optimize the query and I've got it down to 71 milliseconds. Today it is back to 600 ms. Is the solution to use the real database, for example Oracle?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-115654369187886868?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/115654369187886868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=115654369187886868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115654369187886868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115654369187886868'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/08/why-does-sql-server-always-change.html' title='Why does SQL server always change execution plan?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-115438074877431273</id><published>2006-07-31T14:06:00.000-07:00</published><updated>2006-07-31T14:19:08.793-07:00</updated><title type='text'>Maybe I start coding in Ruby?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://thinkchiro.com/images/header-text.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px;" src="http://thinkchiro.com/images/header-text.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;http://thinkchiro.com/ -&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-115438074877431273?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/115438074877431273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=115438074877431273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115438074877431273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115438074877431273'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/07/maybe-i-start-coding-in-ruby.html' title='Maybe I start coding in Ruby?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-115272796847038514</id><published>2006-07-12T11:11:00.000-07:00</published><updated>2006-07-12T11:12:48.483-07:00</updated><title type='text'>buildix</title><content type='html'>&lt;a href="http://buildix.thoughtworks.com/"&gt;Buildix&lt;/a&gt; : this is so cool! Now set up an agile project in no time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-115272796847038514?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/115272796847038514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=115272796847038514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115272796847038514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/115272796847038514'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/07/buildix.html' title='buildix'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114962013435115490</id><published>2006-06-06T11:53:00.000-07:00</published><updated>2006-06-06T11:55:34.380-07:00</updated><title type='text'>Evil empire...</title><content type='html'>Just found in my code:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;using System.Globalization;&lt;/span&gt;&lt;br /&gt;I did not know we are using evil system of globalization. Gess what, the globalists are sitting in the ambush in all unlikely places...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114962013435115490?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114962013435115490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114962013435115490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114962013435115490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114962013435115490'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/06/evil-empire.html' title='Evil empire...'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114851276564624602</id><published>2006-05-24T16:18:00.000-07:00</published><updated>2006-05-24T16:19:25.656-07:00</updated><title type='text'>Architecture Journal useless?</title><content type='html'>I found Microsoft Architecture Journal utterly useless for containing lengthy articles with only general statements and no strategic vision.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114851276564624602?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114851276564624602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114851276564624602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114851276564624602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114851276564624602'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/05/architecture-journal-useless.html' title='Architecture Journal useless?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114807519355914483</id><published>2006-05-19T14:44:00.000-07:00</published><updated>2006-05-19T14:46:33.570-07:00</updated><title type='text'>Can't spend 25 hours a week blogging?</title><content type='html'>Steve Rubel spends 21-25 hours a week blogging while also having a full time job as senior VP at Edelman. I realize I am just too lazy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114807519355914483?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114807519355914483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114807519355914483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114807519355914483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114807519355914483'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/05/cant-spend-25-hours-week-blogging.html' title='Can&apos;t spend 25 hours a week blogging?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114478434283123034</id><published>2006-04-11T12:38:00.000-07:00</published><updated>2006-04-11T12:39:02.843-07:00</updated><title type='text'>Why?</title><content type='html'>Now why does my company block http://www.bbc.co.uk?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114478434283123034?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114478434283123034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114478434283123034' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114478434283123034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114478434283123034'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/04/why.html' title='Why?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114444129063049006</id><published>2006-04-07T13:20:00.000-07:00</published><updated>2006-04-07T13:21:30.653-07:00</updated><title type='text'>Thinking about getting fired</title><content type='html'>Not really, but in case I start thinking I can use &lt;a href="http://www.informationweek.com/blog/main/archives/2006/04/how_to_implemen.html"&gt;this advise&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114444129063049006?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114444129063049006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114444129063049006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114444129063049006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114444129063049006'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/04/thinking-about-getting-fired.html' title='Thinking about getting fired'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114322866949761822</id><published>2006-03-24T11:29:00.000-08:00</published><updated>2006-03-24T11:31:09.516-08:00</updated><title type='text'>60% of Windows rewritten!</title><content type='html'>Microsoft will rewrite 60% of Windows according to this &lt;a href="http://www.smarthouse.com.au/Computing/Platforms?Article=/Computing/Platforms/R7G5G6U4"&gt;article.&lt;/a&gt;&lt;br /&gt;Ouch! That hurts!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114322866949761822?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114322866949761822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114322866949761822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114322866949761822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114322866949761822'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/03/60-of-windows-rewritten.html' title='60% of Windows rewritten!'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-114065429695629616</id><published>2006-02-22T16:21:00.000-08:00</published><updated>2006-02-22T16:24:56.990-08:00</updated><title type='text'>Luck-driven development</title><content type='html'>I found a term "opportunistic development" (Research Directions of Microsoft, November 2005) referring to writing a VB program in debugger and tweaking it to get desired results. This was referred to as Programming by Accident by the Pragmatic Programmers. But in line with XYZ-Driven Development pattern I decided to introduce a new term: Luck-Driven Development (LDD).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-114065429695629616?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/114065429695629616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=114065429695629616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114065429695629616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/114065429695629616'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/02/luck-driven-development.html' title='Luck-driven development'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-113837577005662235</id><published>2006-01-27T07:28:00.000-08:00</published><updated>2006-01-27T07:29:30.073-08:00</updated><title type='text'>I thought they were serious?</title><content type='html'>http://www.waterfall2006.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-113837577005662235?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/113837577005662235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=113837577005662235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113837577005662235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113837577005662235'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/01/i-thought-they-were-serious.html' title='I thought they were serious?'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-113821615609951108</id><published>2006-01-25T11:08:00.000-08:00</published><updated>2006-01-25T11:09:16.156-08:00</updated><title type='text'>Nice article about test-driven development</title><content type='html'>http://www.darrenhobbs.com/archives/2006/01/agile_answers.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-113821615609951108?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/113821615609951108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=113821615609951108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113821615609951108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113821615609951108'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/01/nice-article-about-test-driven.html' title='Nice article about test-driven development'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-113812445137724869</id><published>2006-01-24T09:38:00.000-08:00</published><updated>2006-01-24T09:42:37.436-08:00</updated><title type='text'>FreeMind</title><content type='html'>Mind Mapping (a.k.a. Thought Mapping) is such a great idea. I only started using it, perhaps, because I am backwards. I am using FreeMind, and it seems to be an OK tool, but I have not figured out yet how do I print from that tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-113812445137724869?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/113812445137724869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=113812445137724869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113812445137724869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113812445137724869'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/01/freemind.html' title='FreeMind'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-113778726574983798</id><published>2006-01-20T11:42:00.000-08:00</published><updated>2006-01-20T12:01:05.836-08:00</updated><title type='text'>Windows Messenger</title><content type='html'>Why in the world I still need to have Windows Messenger on my machine when I already have MSN messenger and  Microsoft Office Communicator? Anyone here designed Windows XP?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-113778726574983798?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/113778726574983798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=113778726574983798' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113778726574983798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113778726574983798'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2006/01/windows-messenger.html' title='Windows Messenger'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15629368.post-113510545150407209</id><published>2005-12-20T11:02:00.000-08:00</published><updated>2005-12-20T11:04:11.633-08:00</updated><title type='text'>Re-distribute a user control!</title><content type='html'>Finally, you can re-distribute a user control without having to create a custom control, which is explained in &lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/customcontrolfromusercontrol.asp"&gt;this article&lt;/a&gt;.  VERY COOL!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15629368-113510545150407209?l=boredgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://boredgeek.blogspot.com/feeds/113510545150407209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15629368&amp;postID=113510545150407209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113510545150407209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15629368/posts/default/113510545150407209'/><link rel='alternate' type='text/html' href='http://boredgeek.blogspot.com/2005/12/re-distribute-user-control.html' title='Re-distribute a user control!'/><author><name>Bored Geek</name><uri>http://www.blogger.com/profile/13696382817137526144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
