<?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-22622316</id><updated>2012-01-28T16:19:13.725-06:00</updated><category term='visual studio'/><category term='school'/><category term='coding utilities'/><category term='bitcoin'/><title type='text'>Joseph Fluckiger's Blog</title><subtitle type='html'>Cranking out good code</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default?start-index=101&amp;max-results=100'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>103</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22622316.post-4801641039179477662</id><published>2012-01-22T10:47:00.002-06:00</published><updated>2012-01-28T16:13:39.216-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='school'/><title type='text'>University of Texas Software Engineering Master's Degree - My favorite Classes</title><content type='html'>&lt;div style="text-align: left" dir="ltr" trbidi="on"&gt;I hope this ranking of my favorite classes is helpful to other students trying to schedule their classes. I am currently attending the University of Texas Masters Degree program in Software Engineering. When you pay for the program out of your own pocket like I did, it becomes very important to get the most out of each class. I have little enthusiasm for spending 3,500 dollars for a course and not getting much value. Note that this is my opinion.   &lt;br /&gt;    &lt;br /&gt;&amp;#160; &lt;br /&gt;    &lt;table&gt;&lt;tbody&gt;       &lt;tr style="height: 30.75pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Course&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;my ranking&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom-style: none; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;time commitment&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom-style: none; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; height: 30.75pt; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;comments&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom-style: none; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; height: 30.75pt; border-top: #a3a3a3 1pt solid; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Professor&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 105.75pt; mso-yfti-irow: 1"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Communication Networks&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;1&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; height: 105.75pt; border-left-color: #a3a3a3; border-top: #a3a3a3 1pt solid; border-left-width: 1pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; height: 105.75pt; border-left-color: #a3a3a3; border-top: #a3a3a3 1pt solid; border-left-width: 1pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Bard is great. In an Internet world, this is very relevant &lt;span class="GramE"&gt;information,&lt;/span&gt; it answered many long time questions that I have had about how the Internet works. Workload is high. Bard is entertaining. He is an &lt;span class="SpellE"&gt;ex marine&lt;/span&gt; and prides himself in the difficulty of tests. Sometimes his tangents are more interesting than the lectures. He is full of interesting information. He helped build UT's network so he has quite a bit of experience.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; height: 105.75pt; border-left-color: #a3a3a3; border-top: #a3a3a3 1pt solid; border-left-width: 1pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Bard&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30.75pt; mso-yfti-irow: 2"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Software Architecture&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;-&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;light&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Would have liked to taken instead of requirements. Barber teaches both classes.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Barber&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 15.75pt; mso-yfti-irow: 3"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Distributed Security&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;-&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Would like to have taken.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Bard&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 45.75pt; mso-yfti-irow: 4"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Embedded Systems&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;5&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;medium-heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Bard is awesome. We had a guest speaker from ARM which was enlightening. In general, I wish the program had more guest speakers.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Bard&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30.75pt; mso-yfti-irow: 5"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Mobile Computing&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;3&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;medium-heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Julian is &lt;span class="SpellE"&gt;&lt;span class="GramE"&gt;a&lt;/span&gt;&lt;/span&gt; energetic teacher, and includes humor along with interesting information.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Julien&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 90.75pt; mso-yfti-irow: 6"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Distributed systems&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;2&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="SpellE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Garg&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt; is awesome. I was skeptical about this subject, but it was eye opener to learn about the world of distributed systems. With Google and other cloud architectures becoming increasingly important, this is a very relevant topic. This course was a mix of theory and current industry applications. Course load was heavy.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="SpellE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Garg&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 15.75pt; mso-yfti-irow: 7"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Data Engineering&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;-&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;-&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;I didn't take but I hear that prof is a bit disorganized.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="SpellE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Miranker&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 45.75pt; mso-yfti-irow: 8"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Software Metrics&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;6&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;light&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Krasner is a dynamic guy, very entertaining. He was a VP at Lockheed &lt;span class="SpellE"&gt;Martain&lt;/span&gt; and has many good stories to tell. He brings in more interesting guest speakers than any other professor.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 45.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Krasner&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 60.75pt; mso-yfti-irow: 9"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 60.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Engineering Lifecycle&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 60.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;7&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 60.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;medium&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 60.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Summer course, I enjoyed the architecture conference at the end of the course. The course requires writing several papers. If you know your master's report topic, you can write papers regarding your master's report topic.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 60.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Krasner, Julien,                &lt;br /&gt;&lt;span class="SpellE"&gt;Khursid&lt;/span&gt;, Barber&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30.75pt; mso-yfti-irow: 10"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Program Management&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;-&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;light&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="GramE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;would&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt; like to have taken. I hear the professor is dynamic and the workload is light&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;McCann&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 105.75pt; mso-yfti-irow: 11"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Requirements&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;8&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;light&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;I did not enjoy the topic and feel like Professor Barber lacked enthusiasm at times. But I did very much appreciate the relatively light workload. :). For those who write requirements, this may be quite valuable. Professor Barber definitely knows what she is talking about. I would have liked to see more agile practices integrated. I felt her toolset is a bit antiquated. (It is obvious that she hasn't updated her materials in years)&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 105.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Barber&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30.75pt; mso-yfti-irow: 12"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Advanced Software Tools&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;-&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;I didn’t take it, but I hear that some people like it and others did not as it was not well organized. This is a java-centric tools class.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 30.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="SpellE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Miranker&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 15.75pt; mso-yfti-irow: 13"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Masters Report&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;n/a&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;_&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 15.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;n/a&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 90.75pt; mso-yfti-irow: 14"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Data Mining&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;4&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;heavy&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Very interesting and relevant topic. &lt;span class="SpellE"&gt;Ghosh&lt;/span&gt; is a genius and a genuinely nice guy. He has taken out &lt;span class="SpellE"&gt;Mathematica&lt;/span&gt; in order to focus on more practical topics (I appreciate this). The workload is definitely high. I will know more by the end of the semester, but so far I am convinced this will be useful in my current job and in our information age.&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="SpellE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Ghosh&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 90.75pt; mso-yfti-irow: 15; mso-yfti-lastrow: yes"&gt;         &lt;td style="border-bottom: #a3a3a3 1pt solid; border-left: #a3a3a3 1pt solid; padding-bottom: 0in; border-top-color: #a3a3a3; padding-left: 5.4pt; width: 137pt; padding-right: 5.4pt; border-top-width: 1pt; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="183"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Validation&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 56pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="75"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;9&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 82pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="109"&gt;           &lt;div style="text-align: center; line-height: normal; margin-bottom: 0pt" class="MsoNormal" align="center"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;medium-light&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 312pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="416"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Professor &lt;span class="SpellE"&gt;Khursid&lt;/span&gt; was not as engaging as other professors. It seemed that he focused a bit too much on topics from his own thesis and his graduate professor, rather than the larger Validation industry. The textbook did not do a good job of selling me on why validation is important or getting me excited about the topic (like the other courses did). Other students have expressed similar sentiment. &lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td style="border-bottom: #a3a3a3 1pt solid; padding-bottom: 0in; border-left-style: none; padding-left: 5.4pt; width: 86pt; padding-right: 5.4pt; border-top-style: none; height: 90.75pt; border-right: #a3a3a3 1pt solid; padding-top: 0in" width="115"&gt;           &lt;div style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span class="SpellE"&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;Khursid&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: calibri; mso-bidi-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri"&gt;&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4801641039179477662?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4801641039179477662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4801641039179477662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4801641039179477662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4801641039179477662'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2012/01/university-of-texas-software_22.html' title='University of Texas Software Engineering Master&amp;#39;s Degree - My favorite Classes'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6290182193245682235</id><published>2011-12-01T20:20:00.001-06:00</published><updated>2011-12-01T20:20:06.831-06:00</updated><title type='text'>Security with Visual Understanding – A Kinect Project</title><content type='html'>&lt;p&gt;I gave a presentation today in my Embedded Systems class titled: “Seeing Machines”. The presentation describes my project in which I created a security camera which leverages the skeletal recognition capabilities of the Kinect to detect when someone walks in view of the Kinect camera, upon which it takes pictures and uploads them to a private Picasa library. If 10 seconds passes without receiving authentication from the person who set the alarm off, an audible alarm will sound, and an SMS text message will be sent to notify the owner that an intrusion has been detected. &lt;/p&gt;  &lt;p&gt;The Kinect represents some amazing technology. I predict some really interesting technology coming out in the next 5 years which leverages the depth data and skeletal tracking capabilities of Kinect.&lt;/p&gt;  &lt;p&gt;My paper can be downloaded at this link: &lt;a href="https://docs.google.com/a/fluckiger.org/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B4S2QMZFfsHaYTYyYTFmMjItOGNiMC00NTAwLWFmZjYtOTBlODQ2NmNkNGI3&amp;amp;hl=en_US"&gt;Seeing Machines, a paper by Joseph Fluckiger&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note: view the speaker notes to see links to some of the amazing Kinect projects I found during my research.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6290182193245682235?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6290182193245682235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6290182193245682235' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6290182193245682235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6290182193245682235'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/12/security-with-visual-understanding.html' title='Security with Visual Understanding – A Kinect Project'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3634600129303768572</id><published>2011-11-09T00:44:00.001-06:00</published><updated>2011-11-09T00:46:39.279-06:00</updated><title type='text'>Narcotic Pain Killers are Overprescribed</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I am a Software Architect for a Fortune 500 company. My job is to take large amounts of information, filter through it and find the important facts, trends, techniques, subtleties, and truths. Let me take a moment to talk about a truth of the US Medical system. &lt;/p&gt;  &lt;p&gt;1) The US Healthcare system over prescribes narcotic pain killers.&lt;/p&gt;  &lt;p&gt;I broke my collar bone on Friday while playing soccer and had surgery this morning to have a plate implanted over the two pieces of my collar bone. After the surgery the nurses insisted that I take narcotic pain killers to for the unbearable pain they described I would have once the local block wore off. They even convinced my wife who is a fan of natural foods and medicines that I absolutely had to have narcotic pain killers. All the way to the car the nurse pleaded to my wife to make sure that I took them. I didn’t because I value my brain cells. Guess what, I was fine. I was uncomfortable for 4 hours between 8pm and 12am, but I used ice which eased the pain just as well as a narcotic drug could have. Ice does not have harmful side effects and is not addictive. It is also harder for insurance companies, doctors and pharmacies to make healthy margins on. So that is why doctors prescribe narcotic pain killers. First, they have a monopoly on being able to prescribe them, and secondly, they are a great source of recurring revenue.&lt;/p&gt;  &lt;p&gt;Before I sound disgruntled, let me say that I am very happy with my orthopedic surgeon. I think he did a good job. He was helpful and friendly, skillful and most importantly didn’t cut any of my arteries while installing hardware in my shoulder. I will be forever grateful to him and his staff for fixing me. However, I hope that you will share this truth with your doctor and start a grass roots effort to help our HealthCare system focus on wellness and not profit margins which will save the great US of A from exploding Healthcare costs while improving personal health, and happiness.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next time: How healthcare providers and insurance companies collude to overbill patients…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-3634600129303768572?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3634600129303768572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3634600129303768572' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3634600129303768572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3634600129303768572'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/11/narcotic-pain-killers-are.html' title='Narcotic Pain Killers are Overprescribed'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-5672811182741515081</id><published>2011-10-29T07:17:00.001-05:00</published><updated>2011-10-29T07:34:27.689-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coding utilities'/><title type='text'>SmartStepsUtil - A Utility Class for WinForms</title><content type='html'>&lt;p&gt;I’ve been using a utility class I wrote called “SmartStepsUtil” since 2007.&amp;#160; I’ve decided to share it with the world. It turns your WinForms app into a “Console” simply helping you to write colored text to a RichTextBox.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-E7ogyVeLb3E/Tqvy0PxYWTI/AAAAAAAAOZM/3afQ1aYJVbg/s1600-h/image%25255B11%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-y4PFuNE1GiM/Tqvy0WwxmbI/AAAAAAAAOZU/cLgTIZYx7gE/image_thumb%25255B4%25255D.png?imgmax=800" width="696" height="246" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ve used SmartStepsUtil on a few applications including &lt;a href="http://sushi.codeplex.com"&gt;SharePoint SUSHI&lt;/a&gt;. It makes it easy to quickly give feedback to the user about what is going on. It is thread safe, so you can call it from a background thread. Feel free to change it as needed.&lt;/p&gt;  &lt;p&gt;It just amazes me how many applications don’t give feedback to the user. Or they have complex UIs with textboxes all over the place. SmartSteps util brings the best of a Console application (simple UI, live feedback) into a Winforms app. To use SmartStepsUtil, copy into your application&lt;/p&gt;  &lt;p&gt;Methods:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- AddtoRichTextBox()      &lt;br /&gt;- ScrollToBottom()       &lt;br /&gt;- ClearRichTextBox()&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Preset Styles to choose from to write to console:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;public enum StyleType      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyBlack,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyBlackBold,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyBlue,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyBlueBold,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyChocolate,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyChocolateBold,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bodyDarkGray, &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; …      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Applications I’ve written using SmartStepsUtil:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sushi.codeplex.com"&gt;SharePoint SUSHI&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-FUZSN4eTD9c/Tqvu1sn63xI/AAAAAAAAOYs/rj8Fys5P7hA/s1600-h/SNAGHTML55ade1a%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML55ade1a" border="0" alt="SNAGHTML55ade1a" src="http://lh3.ggpht.com/-tWpzpfxVH8c/Tqvu2FeD06I/AAAAAAAAOY0/yMFyg9Am_Nw/SNAGHTML55ade1a_thumb%25255B1%25255D.png?imgmax=800" width="783" height="377" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;BearWarePro Load Tester (affectionately called “The Punisher” &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh5.ggpht.com/-vB4O7Zm5WsU/Tqvy01oy68I/AAAAAAAAOZc/gvWCTrtc56g/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /&gt;)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Source for SmartStepsUtil:&lt;/p&gt;    &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; Written by Joseph Fluckiger, 2007&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; Home page: http://josephfluckiger.blogspot.com/&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Drawing;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; SmartStepsUtility&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SmartStepUtil&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Singleton Reference to RichTextBoxInstance. Set this Instance on application startup.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; RichTextBox RichTextBoxInstance { get; set; }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Add to RichTextBox with Style&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRichTextBox(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText, StyleType style)&lt;br /&gt;        {&lt;br /&gt;            AddToRichTextBox(strText, style, EnumIcon.no_icon);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRichTextBox(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText, StyleType style, EnumIcon icon)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;switch&lt;/span&gt; (style)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyBlack:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Black, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyBlackBold:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Black, 8, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyBlue:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Blue, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyBlueBold:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Blue, 8, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyChocolate:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Chocolate, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyChocolateBold:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Chocolate, 8, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyDarkGray:&lt;br /&gt;                    AddToRichTextBox(strText, Color.DarkGray, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyOrange:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Orange, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodyRed:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Red, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodySeaGreen:&lt;br /&gt;                    AddToRichTextBox(strText, Color.SeaGreen, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.bodySeaGreenBold:&lt;br /&gt;                    AddToRichTextBox(strText, Color.SeaGreen, 8, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.titleBlack:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Black, 14, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.titleBlue:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Blue, 14, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.titleChocolate:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Chocolate, 14, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; StyleType.titleSeagreen:&lt;br /&gt;                    AddToRichTextBox(strText, Color.SeaGreen, 14, &lt;span class="kwrd"&gt;true&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;br /&gt;                    AddToRichTextBox(strText, Color.Black, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, icon);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRichTextBox(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText)&lt;br /&gt;        {&lt;br /&gt;            AddToRichTextBox(strText, Color.Black, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, EnumIcon.no_icon);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRTBnl(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText)&lt;br /&gt;        {&lt;br /&gt;            AddToRichTextBox(strText + &lt;span class="str"&gt;&amp;quot;\r\n&amp;quot;&lt;/span&gt;, Color.Black, 8, &lt;span class="kwrd"&gt;false&lt;/span&gt;, EnumIcon.no_icon);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRichTextBox(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText, Color textColor, &lt;span class="kwrd"&gt;float&lt;/span&gt; fontSize, &lt;span class="kwrd"&gt;bool&lt;/span&gt; bold)&lt;br /&gt;        {&lt;br /&gt;            AddToRichTextBox(strText, textColor, fontSize, bold, EnumIcon.no_icon);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRichTextBox(Exception ex)&lt;br /&gt;        {&lt;br /&gt;            AddToRichTextBox(ex + &lt;span class="str"&gt;&amp;quot;\r\n&amp;quot;&lt;/span&gt;, StyleType.bodyRed, EnumIcon.no_icon);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Delagate for thread safely adding to Richtextbox&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; delAddToRTB(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText, Color color, &lt;span class="kwrd"&gt;float&lt;/span&gt; fontSize, &lt;span class="kwrd"&gt;bool&lt;/span&gt; bold, EnumIcon icon);&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Threadsafe call to add to Richtexbox &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddToRichTextBox(&lt;span class="kwrd"&gt;string&lt;/span&gt; strText, Color textColor, &lt;span class="kwrd"&gt;float&lt;/span&gt; fontSize, &lt;span class="kwrd"&gt;bool&lt;/span&gt; bold, EnumIcon icon)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (RichTextBoxInstance.InvokeRequired)&lt;br /&gt;            {&lt;br /&gt;                RichTextBoxInstance.BeginInvoke(&lt;span class="kwrd"&gt;new&lt;/span&gt; delAddToRTB(AddToRichTextBox), &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt;[] { strText, textColor, fontSize, bold, icon });&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            FontStyle style1 = bold ? FontStyle.Bold : FontStyle.Regular;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (fontSize &amp;lt;= 0)&lt;br /&gt;            {&lt;br /&gt;                fontSize = 8;&lt;br /&gt;            }&lt;br /&gt;            var font1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; Font(&lt;span class="str"&gt;&amp;quot;Courier New&amp;quot;&lt;/span&gt;, fontSize, style1, GraphicsUnit.Point, 0);&lt;br /&gt;            RichTextBoxInstance.SelectionStart = RichTextBoxInstance.TextLength;&lt;br /&gt;            RichTextBoxInstance.SelectionFont = font1;&lt;br /&gt;            RichTextBoxInstance.SelectionColor = textColor;&lt;br /&gt;            RichTextBoxInstance.SelectedText = strText;&lt;br /&gt;            AddIcon(icon);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ScrollToBottom()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (RichTextBoxInstance.InvokeRequired)&lt;br /&gt;            {&lt;br /&gt;                RichTextBoxInstance.BeginInvoke(&lt;span class="kwrd"&gt;new&lt;/span&gt; Action(ScrollToBottom));&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            RichTextBoxInstance.Focus();&lt;br /&gt;            RichTextBoxInstance.Select(RichTextBoxInstance.Text.Length, 0);&lt;br /&gt;            RichTextBoxInstance.ScrollToCaret();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ClearRichTextBox()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (RichTextBoxInstance.InvokeRequired)&lt;br /&gt;            {&lt;br /&gt;                RichTextBoxInstance.BeginInvoke(&lt;span class="kwrd"&gt;new&lt;/span&gt; Action(ClearRichTextBox));&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            RichTextBoxInstance.Clear();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddIcon(EnumIcon icon)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (icon != EnumIcon.no_icon)&lt;br /&gt;            {&lt;br /&gt;                var font1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; Font(&lt;span class="str"&gt;&amp;quot;Wingdings&amp;quot;&lt;/span&gt;, 10f, FontStyle.Regular, GraphicsUnit.Point, 0);&lt;br /&gt;                RichTextBoxInstance.SelectionStart = RichTextBoxInstance.TextLength;&lt;br /&gt;                RichTextBoxInstance.SelectionFont = font1;&lt;br /&gt;                &lt;span class="kwrd"&gt;switch&lt;/span&gt; (icon)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; EnumIcon.brown_arrow:&lt;br /&gt;                        RichTextBoxInstance.SelectionColor = Color.Brown;&lt;br /&gt;                        RichTextBoxInstance.SelectedText = AsciiToStringUtil(182);&lt;br /&gt;                        &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; EnumIcon.green_check:&lt;br /&gt;                        RichTextBoxInstance.SelectionColor = Color.Green;&lt;br /&gt;                        RichTextBoxInstance.SelectedText = AsciiToStringUtil(252);&lt;br /&gt;                        &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; EnumIcon.orange_dotdotdot:&lt;br /&gt;                        RichTextBoxInstance.SelectionColor = Color.Orange;&lt;br /&gt;                        RichTextBoxInstance.SelectedText = AsciiToStringUtil(160) + AsciiToStringUtil(160) + AsciiToStringUtil(160);&lt;br /&gt;                        &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; EnumIcon.red_x:&lt;br /&gt;                        RichTextBoxInstance.SelectionColor = Color.Red;&lt;br /&gt;                        RichTextBoxInstance.SelectedText = AsciiToStringUtil(251);&lt;br /&gt;                        &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; AsciiToStringUtil(&lt;span class="kwrd"&gt;int&lt;/span&gt; asciiCode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; ((&lt;span class="kwrd"&gt;char&lt;/span&gt;)asciiCode).ToString();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; EnumIcon&lt;br /&gt;        {&lt;br /&gt;            brown_arrow,&lt;br /&gt;            green_check,&lt;br /&gt;            no_icon,&lt;br /&gt;            orange_dotdotdot,&lt;br /&gt;            red_x&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; StyleType&lt;br /&gt;    {&lt;br /&gt;        bodyBlack,&lt;br /&gt;        bodyBlackBold,&lt;br /&gt;        bodyBlue,&lt;br /&gt;        bodyBlueBold,&lt;br /&gt;        bodyChocolate,&lt;br /&gt;        bodyChocolateBold,&lt;br /&gt;        bodyDarkGray,&lt;br /&gt;        bodyOrange,&lt;br /&gt;        bodyRed,&lt;br /&gt;        bodySeaGreen,&lt;br /&gt;        bodySeaGreenBold,&lt;br /&gt;        titleChocolate,&lt;br /&gt;        titleSeagreen,&lt;br /&gt;        titleBlue,&lt;br /&gt;        titleBlack&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-5672811182741515081?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/5672811182741515081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=5672811182741515081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5672811182741515081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5672811182741515081'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/10/utility-class-for-winforms.html' title='SmartStepsUtil - A Utility Class for WinForms'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-y4PFuNE1GiM/Tqvy0WwxmbI/AAAAAAAAOZU/cLgTIZYx7gE/s72-c/image_thumb%25255B4%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2103409821299400513</id><published>2011-09-01T17:54:00.000-05:00</published><updated>2011-09-01T17:54:45.754-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><title type='text'>Visual Studio Shortcuts</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div closure_uid_6kpjw1="103"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;Revisiting Visual Studio keyboard shortcuts is always a good investment of time for any serious Visual Studio developer. Here is a nice list to hang on your wall: &lt;a href="https://docs.google.com/a/fluckiger.org/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0BwDxeVBK-9JKNTM4NzMyZWQtMTEzZC00N2JhLWJkMzQtZTI4YjU5MGIwYzZj&amp;amp;hl=en"&gt;Most Useful Keyboard Shortcuts for .NET Developers&lt;/a&gt;.&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;This list was created by &lt;a href="http://mahdi.mp/the-most-useful-keyboard-shortcuts-for-net-developers/"&gt;Mahdi Taghizadeh&lt;/a&gt;.&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_6kpjw1="103"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2103409821299400513?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2103409821299400513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2103409821299400513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2103409821299400513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2103409821299400513'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/09/visual-studio-shortcuts.html' title='Visual Studio Shortcuts'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4830263695645093900</id><published>2011-07-04T16:41:00.000-05:00</published><updated>2011-07-04T16:41:34.288-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitcoin'/><title type='text'>Bitcoin does have intrinsic value</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In response to an article which states that &lt;a href="http://globalguerrillas.typepad.com/globalguerrillas/2011/06/the-bitcoin-bubble.html#tpe-action-resize-408"&gt;bitcoin has no intrinsic value&lt;/a&gt;, here are my thoughts.&lt;br /&gt;&lt;br /&gt;Bitcoin does have characteristics which make it&amp;nbsp;potentially more userful than than existing mediums of exchange. It is has near-zero transaction costs. Compare this with Visa/MasterCard. And try sending gold in the mail.&lt;br /&gt;&lt;br /&gt;Bitcoin also has real intrinsic value because it is more secure than Visa/MasterCard in that the recipient of payment cannot extract from your account more than you intended them to. When you give someone your credit card number, they can then use that number to take any amount of money they want from you. When you send money via bitcoin, they can’t because you aren’t sending your private key. With Visa/MasterCard we are&amp;nbsp;giving our private key to a merchant. Bitcoin is not a crazy idea, Visa/MasterCard is!&lt;br /&gt;&lt;br /&gt;By reducing cost of money exchange world-wide, Bitcoin has huge potential economic benefits for the world economy.&lt;br /&gt;&lt;br /&gt;Who is a potential customer for Bitcoin? Everyone in the world. Not one country, not one language, or one demographic. Everyone. Talk about market potential. If you thought the China market was big …&lt;br /&gt;&lt;br /&gt;The biggest threat to Bitcoin, in my opinion,&amp;nbsp;is that early adopters include shady folks and bitcoin could potentially get a bad reputation because of it. But look back at the Internet, the most profitable business in the early days included a larger proportion of shady uses (pornography). The Internet got a bad reputation because of it. However, as the masses of people adopted the Internet, more honest/legitimate people became the majority and look how many good/legitimate things happen on the Internet today. &lt;a href="http://gavinthink.blogspot.com/2011/06/proactive-engagement.html"&gt;Gavin Andresen&lt;/a&gt; has an interesting post suggesting folks contact their local representatives pointing out that bitcoin will create jobs in order to boost the chances of bitcoin being&amp;nbsp;legitamized in the eyes of government.&lt;br /&gt;&lt;br /&gt;I must state that bitcoin is not something I recommend as an investment. It is currently in early infancy and has a few years yet&amp;nbsp;before the bitcoin ecosystem&amp;nbsp;will be&amp;nbsp;robust enough to support the hundreds of millions of dollars currently in circulation. A bitcoin today, honestly is not worth the $15-30 dollars they have been trading for for the past 30 days. The current price is the product of hype and speculation.&amp;nbsp;&amp;nbsp;However, as a software engineer, and an Economics major, the technical and economical foundations of bitcoin are potentially quite sound. I have read all the &lt;a href="https://en.bitcoin.it/wiki/Category:Technical"&gt;technical posts&lt;/a&gt; on the bitcoin wiki and &lt;a href="https://en.bitcoin.it/wiki/Category:Technical"&gt;Satoshi's paper&lt;/a&gt;, and I am impressed. On the other hand, I am not impressed with the &lt;a href="http://www.bitcoin.org/"&gt;bitcoin client&lt;/a&gt;, &lt;a href="https://mtgox.com/"&gt;mtgox &lt;/a&gt;or &lt;a href="https://www.mybitcoin.com/"&gt;mybitcoin&lt;/a&gt;. It is almost emarrassing how poorly written these sites are,&amp;nbsp;and they all need to be dramatically improved before millions of dollars of value is entrusted to them. This is why I don't recommend bitcoin as an investment. These sites are in early beta and are not ready for prime time use. However, give these sites a year or so and I am&amp;nbsp;hopeful they will dramatically improve.&lt;br /&gt;&lt;br /&gt;I think competition is good. Vista/mastercard and baking currently have little competition. Banks and national currencies are currently much more stable, safe and predictable than bitcoin. However Bitcoin has some very clever ideas on making transaction costs lower, reducing fraud and identity theft, and reducing costs of exchanging money internationally. People need to demand that banks find better ways than exchanging credit card numbers which is really quite silly. Bitcoin may give&amp;nbsp;banks a few ideas, or else it will replace them. I am confident that banks and credit cards and their employees will rise to the occasion and come up with some clever solutions of their own. The biggest threat to bitcoin is not goverments declaring it illegal, but bank innovation. In either case if banks or bitcoins win&amp;nbsp;the battle of innovation, quality of life&amp;nbsp;is the winner.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4830263695645093900?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4830263695645093900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4830263695645093900' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4830263695645093900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4830263695645093900'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/07/bitcoin-does-have-intrinsic-value.html' title='Bitcoin does have intrinsic value'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4074386383656901087</id><published>2011-06-06T08:20:00.001-05:00</published><updated>2011-06-06T08:21:18.941-05:00</updated><title type='text'>Awesome plugin for Visual Studio 2010</title><content type='html'>&lt;blockquote&gt;   &lt;p&gt;This is a great extension for VS 2010 released last month: &lt;a href="http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;Productivity Power Tools&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you’ve used Resharper, this brings several of its great features right into VS 2010.&lt;/p&gt;  &lt;p&gt;- Quick Find &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-zoy-yUzlDZU/TezUEC9cicI/AAAAAAAANg4/DNror9EhmHw/s1600-h/clip_image002%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh5.ggpht.com/-BOHGeCjg2RI/TezUEr5SF7I/AAAAAAAANg8/HShIne6pF2w/clip_image002_thumb.jpg?imgmax=800" width="244" height="51" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Remove and Sort Imports (they stole this one wholesale from Resharper)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-8_SQ-fMXfhM/TezUE5X93qI/AAAAAAAANhA/sWRDYvsa7N4/s1600-h/clip_image003%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh6.ggpht.com/-N4PYDEOH8Vo/TezUFRyEuII/AAAAAAAANhE/e02102OApU4/clip_image003_thumb.jpg?imgmax=800" width="244" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Solution Navigator: very cool - Solution Explorer on steroids (legal ones of course)&lt;/p&gt;  &lt;p&gt;- Enhanced Scrollbar – red dots are breakpoints, dark blue dots is the carrot location.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-XlssYUuSIGg/TezUFqwZgYI/AAAAAAAANhI/GyFXVBiNQa8/s1600-h/clip_image005%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh6.ggpht.com/-07MySTXCXJ0/TezUGQY8SJI/AAAAAAAANhM/_PPImTUzWXs/clip_image005_thumb.jpg?imgmax=800" width="35" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Etc..&amp;#160; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;read more&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4074386383656901087?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4074386383656901087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4074386383656901087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4074386383656901087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4074386383656901087'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/06/awesome-plugin-for-visual-studio-2010.html' title='Awesome plugin for Visual Studio 2010'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-BOHGeCjg2RI/TezUEr5SF7I/AAAAAAAANg8/HShIne6pF2w/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-9022483098201331010</id><published>2011-02-04T11:52:00.001-06:00</published><updated>2011-02-04T11:52:18.741-06:00</updated><title type='text'>Outlook tip: Turn off Email Contact Pictures</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Many people find the photos in the window border to be a little distracting. It is easy to turn them off by adding a registry key.&amp;#160; Follow these simple steps:&lt;/p&gt;  &lt;p&gt;1) Save the text below between the lines into a text file and rename the file “dontShowContactPicture.reg”.&lt;/p&gt;  &lt;p&gt;------&lt;/p&gt;  &lt;p&gt;Windows Registry Editor Version 5.00&lt;/p&gt;  &lt;p&gt;[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Options\Mail]   &lt;br /&gt;&amp;quot;ShowContactPicture&amp;quot;=dword:00000000&lt;/p&gt;  &lt;p&gt;------&lt;/p&gt;  &lt;p&gt;2) Double click the file and you will be prompted:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_qBelXjxITtI/TUw8y3ePwZI/AAAAAAAAMzY/7uslJYn6Two/s1600-h/SNAGHTML51847e3%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML51847e3" border="0" alt="SNAGHTML51847e3" src="http://lh6.ggpht.com/_qBelXjxITtI/TUw8zI8xwII/AAAAAAAAMzg/dXCULDoYCh4/SNAGHTML51847e3_thumb%5B1%5D.png?imgmax=800" width="430" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3) Restart Outlook.&lt;/p&gt;  &lt;p&gt;4) See the result:&lt;/p&gt;  &lt;p&gt;Before:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/TUw8zg0tg2I/AAAAAAAAMzo/SMvrgEywVhs/s1600-h/image%5B11%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_qBelXjxITtI/TUw8z9ePoOI/AAAAAAAAMzw/rIhJo0zdPg8/image_thumb%5B5%5D.png?imgmax=800" width="488" height="105" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_qBelXjxITtI/TUw80EMyV0I/AAAAAAAAMz4/j8jHMYpRHy4/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_qBelXjxITtI/TUw80jQ1PcI/AAAAAAAAM0A/SYElKXVCEVM/image_thumb%5B1%5D.png?imgmax=800" width="492" height="81" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5) To undo this change and turn pictures back on, simply edit the file and change “dword:00000000” to “dword:00000001”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;More information can be found in this related&lt;a href="http://serverfault.com/questions/26452/how-do-i-remove-the-contact-photo-from-the-window-of-received-mail-in-outlook-200"&gt; article on stackoverflow.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-9022483098201331010?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/9022483098201331010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=9022483098201331010' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9022483098201331010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9022483098201331010'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/02/outlook-tip-turn-off-email-contact.html' title='Outlook tip: Turn off Email Contact Pictures'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_qBelXjxITtI/TUw8zI8xwII/AAAAAAAAMzg/dXCULDoYCh4/s72-c/SNAGHTML51847e3_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2316945645034774659</id><published>2011-01-17T09:15:00.009-06:00</published><updated>2011-03-22T22:17:07.683-05:00</updated><title type='text'>PowerShell ABC's - P is for Parameters</title><content type='html'>Here is a great PowerShell tips article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devcentral.f5.com/weblogs/Joe/archive/2009/01/13/powershell-abcs---p-is-for-parameters.aspx"&gt;PowerShell A-B-Cs&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2316945645034774659?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2316945645034774659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2316945645034774659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2316945645034774659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2316945645034774659'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/01/powershell-abcs-p-is-for-parameters_17.html' title='PowerShell ABC&apos;s - P is for Parameters'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-8028490510690254787</id><published>2011-01-13T14:20:00.000-06:00</published><updated>2011-01-13T14:20:30.935-06:00</updated><title type='text'>User Experience</title><content type='html'>&lt;p&gt;Excellent presentation on User Experience:&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.dallasasp.net/downloads/hfe_tobiask.pdf" href="http://www.dallasasp.net/downloads/hfe_tobiask.pdf"&gt;http://www.dallasasp.net/downloads/hfe_tobiask.pdf&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-8028490510690254787?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/8028490510690254787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=8028490510690254787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8028490510690254787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8028490510690254787'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2011/01/user-experience.html' title='User Experience'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4740867048885333445</id><published>2010-12-24T06:59:00.001-06:00</published><updated>2010-12-24T06:59:13.296-06:00</updated><title type='text'>Lightswitch</title><content type='html'>&lt;p&gt;Its finally here!&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Follow the announcement of&amp;#160; &lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;Lightswitch&lt;/a&gt;. The public beta is going to be available on late August,&amp;#160;&amp;#160; I suggest you try it out.&lt;/p&gt;  &lt;p&gt;LightSwitch is the simplest way to build business applications for the cloud and the desktop.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4740867048885333445?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4740867048885333445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4740867048885333445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4740867048885333445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4740867048885333445'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/12/lightswitch.html' title='Lightswitch'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7744336800844634294</id><published>2010-12-12T22:13:00.001-06:00</published><updated>2010-12-12T22:13:31.708-06:00</updated><title type='text'>Which Way Is Faster – Windows Phone 7 App</title><content type='html'>&lt;div class="ExternalClass76517ED3EB6B463E92E12D9BF04489C0"&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;I am working on a Windows Phone 7 application, so that I can learn about development on the Windows Phone 7, so far it is a really great experience. I love using Linq, Xml serialization, extension methods, Visual Studio 2010, Silverlight, XAML, and all the technologies I am so familiar with.&lt;/p&gt;    &lt;p&gt;I wrote a paper about the phone application which is called &amp;quot;Which Way Is Faster&amp;quot;: A Mobile Phone Application Leveraging Location Tracking to Determine Which Commonly Traveled Routes are Faster. &lt;/p&gt;    &lt;p&gt;The presentation and paper can be viewed here: &lt;/p&gt;    &lt;p&gt;&lt;a href="https://docs.google.com/present/edit?id=0AcSpsqVup0QkZGRwcHdmZmpfNDE3ODNqOGJkOQ&amp;amp;hl=en&amp;amp;authkey=CJDlnq0D"&gt;presentation&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="https://docs.google.com/document/d/131rYBjgbGAA5vX_cz1qNuHV6XKBKH5j5A5J_WyuK0xs/edit?hl=en&amp;amp;authkey=CKSYzpUI"&gt;paper&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7744336800844634294?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7744336800844634294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7744336800844634294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7744336800844634294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7744336800844634294'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/12/which-way-is-faster-windows-phone-7-app.html' title='Which Way Is Faster – Windows Phone 7 App'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2810403589184389847</id><published>2010-12-08T13:01:00.001-06:00</published><updated>2010-12-08T13:02:23.132-06:00</updated><title type='text'>Debugging SharePoint Code With a Console Application</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is my SharePoint tip of the day. This is a helpful technique for debugging/testing SharePoint methods without having to fire up IIS. In my SharePoint code, I write my methods as public static methods that take an SPList or SPWeb object as a parameter. This may seem weird since you could just get these from SPContext.Current.Web. The reason for this is that this is a functional style programming technique where we don’t have class level variables. Instead the method takes in everything they need via parameters. The advantage of this is that I can write a console application and reference my SharePoint project and test my EventReceiver method (or Feature Receiver or WebPart or whatever) without having to deploy my SharePoint solutions, fire up IIS, etc. etc. It makes debugging and setting through code much quicker.&amp;#160; Of course once I have tested it in my console app, then I need to test it in the browser.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sample Console Application. &lt;/strong&gt;Note that I create my SPWeb object and list object using the non-SPContext way and pass them into my method which is contained in the referenced SharePoint project.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;static void Main(string[] args)&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;try&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; SPSite site = new SPSite(&amp;quot;http://localdev/en-US/egs/contact/requestinformation&amp;quot;);&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; SPWeb currentWeb = site.OpenWeb();&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; SPList ciList = currentWeb.Lists[&amp;quot;CustomerInquiry&amp;quot;];&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; SPList cirList = currentWeb.Lists[&amp;quot;Customer Inquiry Routing&amp;quot;];&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; SPList ciSettingsList = currentWeb.Lists[&amp;quot;CustomerInquirySettings&amp;quot;];&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; CustomerInquiryBL.Execute(cirList, ciList.Items[0], ciSettingsList, currentWeb);&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;catch (Exception ex)&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; Console.WriteLine(ex);&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;    &lt;p&gt;Console.WriteLine(&amp;quot;Press Any Key to Continue.&amp;quot;);&lt;/p&gt;    &lt;p&gt;Console.ReadKey();&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2810403589184389847?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2810403589184389847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2810403589184389847' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2810403589184389847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2810403589184389847'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/12/debugging-sharepoint-code-with-console.html' title='Debugging SharePoint Code With a Console Application'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-8402288109880929993</id><published>2010-07-18T09:41:00.001-05:00</published><updated>2010-07-18T09:41:22.002-05:00</updated><title type='text'>OneNote is an extension of my brain</title><content type='html'>&lt;p&gt;OneNote 2010 is a great product. I have been using OneNote daily for a couple years now. It has become my default repository for important information.    &lt;br /&gt;- Tasks lists    &lt;br /&gt;- Design before I build software solutions for work     &lt;br /&gt;- Meeting notes    &lt;br /&gt;- Class notes &lt;/p&gt;  &lt;p&gt;The great thing about OneNote is that it is a three dimensional space (notebooks, sections, pages) instead of a one dimensional space in a product like MS Word. Also, you spend much less time worry about formatting details, and more time getting your ideas and thoughts recorded. &lt;/p&gt;  &lt;p&gt;OneNote is almost an extension of my brain.&amp;#160; Now with OneNote online, I use one note to plan with friends and family. I like the rich client with offline synchronization which makes OneNote a more productive experience than Google Docs.&amp;#160; I am on the road and often have a slow internet connection, so with offline sync, a slow connection doesn’t slow me down.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-8402288109880929993?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/8402288109880929993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=8402288109880929993' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8402288109880929993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8402288109880929993'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/07/onenote-is-extension-of-my-brain.html' title='OneNote is an extension of my brain'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1559286040751358990</id><published>2010-07-10T13:34:00.001-05:00</published><updated>2010-07-10T13:34:31.991-05:00</updated><title type='text'>Software Measurement - We Are Like Eskimos</title><content type='html'>&lt;p&gt;I forget at times that Software Engineering is a young discipline. At times I am frustrated that it is not easier to measure good software and good software developers. The following gives some insightful perspective:&lt;/p&gt;  &lt;p&gt;--------------------   &lt;br /&gt;Measurement can progress from lower to higher scales as societies, organizations, and practices mature. An illuminating example:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;br /&gt;We can imagine, for example, that certain Eskimos might speak of      &lt;br /&gt;temperature only as freezing or not freezing and, thereby, place it on a      &lt;br /&gt;nominal scale. Others might try to express degrees of warmer and colder,      &lt;br /&gt;perhaps in terms of some series of natural events, and thereby achieve an      &lt;br /&gt;ordinal scale. As we all know, temperature became an interval scale with the      &lt;br /&gt;development of thermometry, and, after thermodynamics had used the      &lt;br /&gt;expansion ratio of gases to extrapolate to zero, it became a ratio scale.&amp;quot;      &lt;br /&gt;— S. Stevens, 1956      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;There is an important lesson here for software engineers and managers—do not expect that everything you will want to measure can be expressed with ratio scales today. Software engineering is a young discipline. Just as with Stevens's Eskimos, it may take us time to evolve to where our measurement practices become comparable with those of other disciplines. Be willing to start with nominal and ordinal scales, just to get measurement started. But be mindful of the limitations of the computations and interpretations that you can make with the kinds of data you collect, and look for opportunities to evolve your measurement practices toward scales that provide greater information.&lt;/p&gt;  &lt;p&gt;----------------------&lt;/p&gt;  &lt;p&gt;The above is taken from&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Goal-Driven Software Measurement —A Guidebook by Robert E. Park&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1559286040751358990?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1559286040751358990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1559286040751358990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1559286040751358990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1559286040751358990'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/07/software-measurement-we-are-like.html' title='Software Measurement - We Are Like Eskimos'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3903692086933932483</id><published>2010-05-22T08:15:00.001-05:00</published><updated>2010-06-16T20:51:45.092-05:00</updated><title type='text'>Channel 9 - RAM Disks speed up Visual Studio is a Vicious Rumor</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It was cool to discover that &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/This-Week-Joe-Nalewabau-Red-Nose-Day-Windows-7-NET-wrappers-free-MVC-chapter/"&gt;Channel 9 linked&lt;/a&gt; to my blog post on how &lt;a href="http://josephfluckiger.blogspot.com/2009/02/speed-up-visual-studio-with-ram-disk.html"&gt;RAM disks do not speed up Visual Studio&lt;/a&gt;: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/S_fYzMoEklI/AAAAAAAALE4/hhSHb2BDSrQ/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_qBelXjxITtI/S_fY0bl4XXI/AAAAAAAALE8/OaQMInvAtzo/image_thumb%5B1%5D.png?imgmax=800" width="357" height="89" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Joe Nalewabau and Dan Fernandez talk about my blog. Starting at minute 19:50, Dan says:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Dan: &amp;quot;Joseph Fluckiger&amp;quot;, I hope I am pronouncing that right.&amp;#160; &lt;/p&gt;    &lt;p&gt;Joe: &amp;quot;I'll let you handle that one&amp;quot;. &lt;/p&gt;    &lt;p&gt;Dan: &amp;quot;Probabaly for the better.&amp;quot;&amp;#160; :)&lt;/p&gt;    &lt;p&gt;Dan: “We talked about this at our 1 year anniversary with Scott Hansleman using RAM disks to speed up Visual Studio. Joseph actually went through and did a test of RAM disk vs. no RAM disk. And he actually shows that RAM disks aren’t worth it. They are only a few milliseconds faster and you have to copy files into the RAM disk which is a pain.”&lt;/p&gt;    &lt;p&gt;Dan: &amp;quot;Thank you Joseph for actually doing the work and verifying that it is a vicious rumor.&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/S_gEVdwKkcI/AAAAAAAALFI/dLX0PfVgwCA/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/S_gEWNApHsI/AAAAAAAALFM/uHtClCSqFPo/image_thumb%5B8%5D.png?imgmax=800" width="429" height="390" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I found the Channel 9 reference because I was looking through my blog stats and saw that the RAM disk post is the most popular. Here are my blog stats:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_qBelXjxITtI/S_fY4V7xOCI/AAAAAAAALFA/DdX5IbDI1Tg/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/S_fY6P9iWwI/AAAAAAAALFE/COzWhM9U9n4/image_thumb%5B4%5D.png?imgmax=800" width="369" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-3903692086933932483?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3903692086933932483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3903692086933932483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3903692086933932483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3903692086933932483'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/05/channel-9-links-to-my-blog.html' title='Channel 9 - RAM Disks speed up Visual Studio is a Vicious Rumor'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_qBelXjxITtI/S_fY0bl4XXI/AAAAAAAALE8/OaQMInvAtzo/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2200177376353369009</id><published>2010-05-22T06:58:00.001-05:00</published><updated>2010-05-22T06:58:22.259-05:00</updated><title type='text'>LINQPad – A Must-Have Tool</title><content type='html'>&lt;p&gt;I discovered a great little .NET developer tool yesterday: &lt;a href="http://www.linqpad.net/"&gt;LINQPad&lt;/a&gt;. I needed to write a LINQ statement with a Group By and was having trouble figuring it out. While poking around on &lt;a href="http://stackoverflow.com/questions/830581/resources-for-learning-linq"&gt;stack overflow&lt;/a&gt;, someone suggested this tool.&lt;/p&gt;  &lt;p&gt;But even better, the most useful application of this little application is the ability to quickly write pieces of code. It has a nice little interface which applies indentation and colors to your code, but is also very light weight and fast. It even allows you to quickly execute your code and display the results with a nice little .Dump() utility. My Visual Studio has been quite slow lately since my project has hundreds of thousands of lines and I am also running Resharper.&lt;/p&gt;  &lt;p&gt;Write snippets of Code quickly with LINQPad:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_qBelXjxITtI/S_fG0bVN3xI/AAAAAAAALEo/bkJUcL1M2Ew/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/S_fG1GdGARI/AAAAAAAALEs/KeKCEj3RorA/image_thumb%5B5%5D.png?imgmax=800" width="390" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Learning LINQ:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_qBelXjxITtI/S_fG2ma0dzI/AAAAAAAALEw/k8zqnB7tX-c/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/S_fG3K86-wI/AAAAAAAALE0/NY6pIF7as-w/image_thumb%5B3%5D.png?imgmax=800" width="555" height="357" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2200177376353369009?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2200177376353369009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2200177376353369009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2200177376353369009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2200177376353369009'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/05/linqpad-must-have-tool.html' title='LINQPad – A Must-Have Tool'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_qBelXjxITtI/S_fG1GdGARI/AAAAAAAALEs/KeKCEj3RorA/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7586759569101821901</id><published>2010-04-11T23:29:00.001-05:00</published><updated>2010-04-11T23:29:44.619-05:00</updated><title type='text'>Should I Get a Graduate Degree in Software Engineering?</title><content type='html'>&lt;p&gt;I recently decided to go back to school to get a degree in software engineering from the &lt;a href="http://lifelong.engr.utexas.edu/degree/se-overview.cfm"&gt;University Of Texas at Austin&lt;/a&gt; attending the executive format offered by the engineering department. Is it worth it? What is it like? You can read more on the UT website, but below I will give you my personal perspective, the answers to the questions I had when deciding whether to pursue the degree.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;First question: Are the topics covered relevant?&lt;/font&gt;&lt;/strong&gt;&amp;#160; I am a consultant software developer working for Catapult Systems working on enterprise software development. Am I going to learn things which I can apply? I don’t want academic fluff. I am a working professional and need real application. I am currently in my first semester and so far the material has been very interesting and I have been able to apply much of the material learned to my current projects at work. I’ve even integrated some of the code written for projects into projects at work. Below is a list of the courses offered. Here is a &lt;a href="http://lifelong.engr.utexas.edu/degree/se-calendar.cfm"&gt;course list&lt;/a&gt; on the CLEE site. Of the 16 courses offered, students will be able to take 8 courses over the two year program. I have some detail on the first two classes since those are the two so far that I have taken.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Computer networks      &lt;ul&gt;       &lt;li&gt;Learn how the Internet works from the lowest layers, up to the applications you use on a daily basis including DNS, TCP, the OSI model, Shannon channel theorem (determines the bandwidth of a wire). &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Software Validation      &lt;ul&gt;       &lt;li&gt;Formal methods for verifying software. I honestly have not enjoyed this class as much as my computer networking class, but it has given me exposure to Java, Alloy, JPF and several other diverse languages which is interesting since I have lived mostly in the Microsoft/Visual Studio world for the last 9 years.The quizzes involve writing code with a pencil and solving algorithms which leaves my head hurting but it is good practice to write keyboardless code. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Security &lt;/li&gt;    &lt;li&gt;Distributed Systems &lt;/li&gt;    &lt;li&gt;Mobile computing &lt;/li&gt;    &lt;li&gt;Software Architecture and Software Engineering Processes and Requirements Engineering &lt;/li&gt;    &lt;li&gt;Data engineering and Data mining &lt;/li&gt;    &lt;li&gt;Methodologies for Hardware/Software Co-design &lt;/li&gt;    &lt;li&gt;Real Time Systems &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Second Question: What is the Format? &lt;/font&gt;&lt;/strong&gt;The executive format executive degree classes meet once per month on Friday and Saturday for a total of 16 class hours per month. One four hour class in the morning from 8am-12, and one four hour class from 1-5PM with 3 breaks in each class. I live in Dallas so I drive down to Austin once per month which works well. I looked at the SMU and UTD and several online degree offerings.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Which School Should I Choose?&lt;/font&gt;&lt;/strong&gt; I researched several schools and I attended a class at UTD, SMU and a class at UT. I noticed that the demographic at UTD was younger and the class was less interactive. The demographic at UT was more similar to my own: experienced professionals. The class asked many questions and made comments based on their experience which were as interesting as the comments of the professor. SMU was my 2nd choice, but UT has a better national ranking as is well known nationally. It is worth the extra 3 hour drive.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;What is the Work Load Like?&lt;/font&gt;&lt;/strong&gt; A full load in the executive program is two classes for a semester. Right now I have a Network Communications and a Validation class. For example, in March 2010 I had this workload. One professor said that expected work load outside of class per hour of class is 3-1. So for 8 hours of classes per months students would spend 24 hours outside of class. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;One networks homework assignment with 12 problems. – 3 hrs &lt;/li&gt;    &lt;li&gt;Two chapters in my networks book to read. – 8 hrs &lt;/li&gt;    &lt;li&gt;One validation homework assignment using Java JPF which generated unit tests.&amp;#160; - 3 hrs &lt;/li&gt;    &lt;li&gt;One 12 page paper to write on a technical networks topic. - 7 hrs &lt;/li&gt;    &lt;li&gt;One networks quiz to study for. - 3 hrs &lt;/li&gt;    &lt;li&gt;Group report and presentation for my validation class. We are building a validation framework called &lt;a href="http://easyval.codeplex.com/"&gt;easyval&lt;/a&gt;.&amp;#160; - 6 hrs &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For April, I have this work load:(this is the last month of the semester.)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Individual research paper on a networking topic of my choice and a presentation to prepare for. (I am going to build a simple browser for my project and measure where the bottlenecks are in web applications.) &lt;/li&gt;    &lt;li&gt;Group report for my validation class. &lt;/li&gt;    &lt;li&gt;One networking quiz to study for. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;What Are the Benefits? &lt;/strong&gt;&lt;/font&gt;If you’ve read Seven Habits of Highly effective people then you’ve heard the phrase “Sharpen the Saw”. One of the most valuable thing we have as programmers is our algorithm solving capability. Grad school keeps you on your toes. It expands your mental ability to solve algorithms because you are required to solve many difficult problems in homework and quizzes. Being tested so frequently expands your mental capabilities just like a hard workout expands your muscles and VO2.&lt;/p&gt;  &lt;p&gt;Also, a graduate degree gives you a broader perspective of the software development world because of the variety of languages, and technologies that you get exposed to. But my favorite part of grad school is talking to my classmates and learning about what interesting software projects they work on. There are so many interesting companies represented: Samsung, IBM, FreeScale, Verizon Wireless, ATT, Oil and Gas, National Instruments, etc. It is a chance to rub shoulders with some of the best software developers around. Today at lunch I learned about the robots used in making flash memory at Samsung which has the largest microprocessor fabrication plant in the US here in Round Rock TX. He told a story of a programming error a couple months ago that caused erroneous wafers to be sent down the pipeline costing Samsung 10 million dollars and as a result no one in the Austin fab site got a bonus that month. Ouch, I'd hate to be the guy that wrote that bug. Yesterday at lunch a guy from National Instruments told us about developing Zigbee devices and using tools which detect conflicts between Zigbee devices at 3.4 MHz and Wi-Fi also in that same band. He showed us a &lt;a href="http://www.metageek.net/"&gt;cool graph&lt;/a&gt; of all the spectrums being broadcast. It is amazing how much invisible electromagnetic broadcasts are in the air around us. He explained some of the National Instruments products (which I used in my college Physics class). They use C, C++ and are now looking at using C#. Even though C# is 10 years old, they are just now starting to use it!&lt;/p&gt;  &lt;p&gt;For myself, a graduate degree in software engineering is particularly useful because I am currently a non-formally educated software developer. My undergraduate degree was in Economics with a minor in Physics. This degree is giving me a feel for what an undergraduate software engineering degree is like and helping to fill in the gaps.&lt;/p&gt;  &lt;p&gt;I must say that my current employer Catapult Systems has been very supportive, which is great. It is a bit of sacrifice for them since I don’t have as many overtime hours to work. I hope it is a good investment for Catapult as much as I think it will be for me personally.&lt;/p&gt;  &lt;p&gt;If you are a software developer that wants to fundamentally improve your knowledge and understanding of software engineering and you are tough enough to handle the extra hours, I definitely recommend an executive format degree. It is not easy, you’ll give up a lot of free time and your load at work will not get any easier, but it is worth it. I see it is a 2 year investment with a 30+ year return. It is also an item I can mark off my &lt;a href="http://celestinechua.com/blog/my-bucket-list/"&gt;bucket list&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7586759569101821901?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7586759569101821901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7586759569101821901' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7586759569101821901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7586759569101821901'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/04/should-i-get-graduate-degree-in_11.html' title='Should I Get a Graduate Degree in Software Engineering?'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4511025239022886151</id><published>2010-04-11T22:58:00.001-05:00</published><updated>2010-04-11T22:59:12.415-05:00</updated><title type='text'>SSD Performance Test</title><content type='html'>&lt;p&gt;I’ve been running an SSD as my primary drive for a few weeks now and it performs quite well. Outlook doesn’t hang, and Visual Studio build times are cut way down. Boot up and shut down are much better. Total cost: $260 + $50 = 310. &lt;/p&gt;  &lt;p&gt;Using winsat tool:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820220390&amp;amp;cm_re=patriot_torqx-_-20-220-390-_-Product"&gt;Patriot Torqx SSD&lt;/a&gt; 64 GB, as primary drive in laptop &lt;/b&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Sequential read: 116 MB/s (3 x faster)&lt;/li&gt;      &lt;li&gt;Random read: 39 MB/s (35 x faster)&lt;/li&gt;      &lt;li&gt;Sequential write: 90 MB/s (2.5 x faster)&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_qBelXjxITtI/S8KaSLBrqGI/AAAAAAAAK7A/M_IKcf81Cew/s1600-h/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh5.ggpht.com/_qBelXjxITtI/S8KaTnx8BFI/AAAAAAAAK7E/0JNaYYr9H34/clip_image002_thumb%5B1%5D.jpg?imgmax=800" width="425" height="313" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;7200 RPM 100 GB in &lt;a href="http://newmodeus.com/shop/index.php?main_page=product_info&amp;amp;products_id=148"&gt;expansion slot&lt;/a&gt;:&lt;/b&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Sequential read: 40 MB/s&lt;/li&gt;      &lt;li&gt;Random read: 1.11 MB/s&lt;/li&gt;      &lt;li&gt;Sequential write: 34.7 MB/s&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/S8KaUC-Ba1I/AAAAAAAAK7I/VHFRrTIPGE4/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_qBelXjxITtI/S8KaUsVqLvI/AAAAAAAAK7M/ma0lbEZkLQs/image_thumb%5B1%5D.png?imgmax=800" width="431" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4511025239022886151?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4511025239022886151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4511025239022886151' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4511025239022886151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4511025239022886151'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/04/ssd-performance-test.html' title='SSD Performance Test'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_qBelXjxITtI/S8KaTnx8BFI/AAAAAAAAK7E/0JNaYYr9H34/s72-c/clip_image002_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7025306506897403822</id><published>2010-02-03T07:45:00.001-06:00</published><updated>2010-02-03T07:45:10.055-06:00</updated><title type='text'>StackOverflow.com - Give It a Try</title><content type='html'>&lt;p&gt;&lt;a href="http://stackoverflow.com/about"&gt;Stackoverflow.com&lt;/a&gt; is a fantastic online resource for answers to technical questions. There are several reasons that Stackoverflow.com is better than other sites. Jeff Atwood, who is the founder of stack overflow described the site succinctly as &amp;quot;expertsexchange.com without the evil. :)&amp;quot; The Webster's type definition would be:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Stack Overflow is a programming Q &amp;amp; A site collaboratively built and maintained by your fellow programmers. It is unique in that it uses aspects of wikis, blogs, digg, and forums to allow the best answers float to the top rather than stay buried somewhere among other less useful answers.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I loved &lt;a href="http://www.experts-exchange.com/"&gt;experts exchange&lt;/a&gt;. It was the site that helped me get started in programming back when I was learning Perl. I was amazed at how quickly people would give of their time to answer my questions. Now I am glad to see an even better resource called stack overflow. Give it a try. You'll find higher quality answers than any other online Q&amp;amp;A site.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7025306506897403822?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7025306506897403822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7025306506897403822' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7025306506897403822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7025306506897403822'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2010/02/stackoverflowcom-give-it-try.html' title='StackOverflow.com - Give It a Try'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4858999594857722714</id><published>2009-11-29T17:15:00.001-06:00</published><updated>2009-11-29T17:26:44.502-06:00</updated><title type='text'>Embed Silverlight in your blog using Windows Live Writer</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is amazing. You can embed a Silverlight app in your blog using Windows Live Writer and &lt;a href="http://blogs.msdn.com/luc/archive/2009/11/19/windows-live-writer-silverlight-app-plugin.aspx"&gt;this plug-in&lt;/a&gt;. For example, here is the Silverlight showcase application from the home page of &lt;a href="http://silverlight.net"&gt;http://silverlight.net&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="611" height="355" autoupdate="true"&gt; &lt;param name="source" value="http://silverlight.net/clientBin/showcasenav/ShowcaseNav.xap" /&gt; &lt;param name="minRuntimeVersion" value="3.0.40624.0" /&gt; &lt;param name="background" value="White" /&gt; &lt;param name="autoUpgrade" value="true" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=3.0.40624.0" style="text-decoration:none"&gt;          			  &lt;img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4858999594857722714?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4858999594857722714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4858999594857722714' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4858999594857722714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4858999594857722714'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/11/test-silverlight-post.html' title='Embed Silverlight in your blog using Windows Live Writer'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-385214490575685234</id><published>2009-10-13T21:09:00.001-05:00</published><updated>2009-10-13T21:10:41.470-05:00</updated><title type='text'>Death to Visual Source Safe! ... TFS 2010 Basic</title><content type='html'>&lt;p&gt;The biggest &lt;a href="http://blogs.msdn.com/jasonz/archive/2009/10/02/announcing-tfs-basic.aspx"&gt;announcement&lt;/a&gt; about TFS 2010:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;Price&lt;/strong&gt; – We’re not quite ready to announce the pricing and licensing for 2010 yet but I can tell you that it will be at least as easy and cost effective to get as SourceSafe has been.&amp;#160; Stay tuned for more info on this.&amp;quot; &lt;a href="http://blogs.msdn.com/bharry/archive/2009/10/01/tfs-2010-for-sourcesafe-users.aspx"&gt;great post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That means that instead of $20,000 for licensing (current cost of TFS for a small development team), I am speculating that it &lt;em&gt;might&lt;/em&gt; be included with license of Visual Studio/MSDN Universal License. &lt;/p&gt;  &lt;p&gt;Visual Source safe was the most popular source control system in the world in the 90s. Now it is the most hated source control system in the world (for good reasons.) I hate it when VSS asks me: &amp;quot;Would you like to run the analyze utility to make sure your files are not corrupt?&amp;quot; But the one thing that VSS had/has is it is easy to set up and use. TFS 2010 Basic aims to make setup easy (no SharePoint dependency). &lt;/p&gt;  &lt;p&gt;Screenshot of&amp;#160; TFS Basic Configuration Wizard (easy easy):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_qBelXjxITtI/StUy7_wGI2I/AAAAAAAAJ_U/1DoPn_qzQ8o/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_qBelXjxITtI/StUy8WRaFrI/AAAAAAAAJ_Y/L6NVvEUl5tI/image_thumb%5B2%5D.png?imgmax=800" width="542" height="415" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;TFS is awesome. I fell in love with it while using it for free at &lt;a href="http://codeplex.com"&gt;codeplex&lt;/a&gt; building &lt;a href="http://sushi.codeplex.com/"&gt;SharePoint SUSHI&lt;/a&gt;. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-385214490575685234?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/385214490575685234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=385214490575685234' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/385214490575685234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/385214490575685234'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/10/death-to-visual-source-safe-tfs-2010.html' title='Death to Visual Source Safe! ... TFS 2010 Basic'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_qBelXjxITtI/StUy8WRaFrI/AAAAAAAAJ_Y/L6NVvEUl5tI/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7741576505737402440</id><published>2009-10-06T11:44:00.001-05:00</published><updated>2009-10-06T11:44:28.065-05:00</updated><title type='text'>JQuery popularity</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Some interesting statistics about the popularity of JQuery from the &lt;a href="http://ejohn.org/blog/talks-at-the-2009-jquery-conference/"&gt;JQuery conference&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;- Microsoft.com uses Jquery!&lt;/p&gt;  &lt;p&gt;- 21% of all sites on the Internet use JQuery!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/Sstz3kWaeII/AAAAAAAAJ-s/OlW-XuI_KgE/s1600-h/clip_image004%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/_qBelXjxITtI/Sstz4CZOJOI/AAAAAAAAJ-w/sm3-cKRYrwE/clip_image004_thumb.jpg?imgmax=800" width="244" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/Sstz4aww51I/AAAAAAAAJ-0/GTrWiP0sTsQ/s1600-h/clip_image010%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh3.ggpht.com/_qBelXjxITtI/Sstz4iYFvyI/AAAAAAAAJ-4/XQLNziEd37Y/clip_image010_thumb.jpg?imgmax=800" width="244" height="189" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/Sstz5MF1KpI/AAAAAAAAJ-8/7uluZRALyXU/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This research is done by Google: &lt;a href="http://google.com/trends?q=jquery+javascript%2C+prototype+javascript%2C+dojo+javascript%2C+mootools+javascript%2C+yui+javascript&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0"&gt;graph&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/Sstz5f_UmGI/AAAAAAAAJ_A/qTT0U7i3LSU/s1600-h/clip_image008%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh5.ggpht.com/_qBelXjxITtI/Sstz53G2MYI/AAAAAAAAJ_E/-vBh4RcOuzo/clip_image008_thumb.jpg?imgmax=800" width="244" height="151" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/Sstz5MF1KpI/AAAAAAAAJ-8/7uluZRALyXU/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_qBelXjxITtI/Sstz6OEsSgI/AAAAAAAAJ_I/eEhdXjUYImU/clip_image002_thumb.jpg?imgmax=800" width="244" height="181" /&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/Sstz4aww51I/AAAAAAAAJ-0/GTrWiP0sTsQ/s1600-h/clip_image010%5B3%5D.jpg"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_qBelXjxITtI/Sstz6dQe7QI/AAAAAAAAJ_M/HfA2AZwqOD0/s1600-h/clip_image006%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh6.ggpht.com/_qBelXjxITtI/Sstz6-y37FI/AAAAAAAAJ_Q/f1Z8HdZzvdk/clip_image006_thumb.jpg?imgmax=800" width="244" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7741576505737402440?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7741576505737402440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7741576505737402440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7741576505737402440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7741576505737402440'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/10/jquery-popularity.html' title='JQuery popularity'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_qBelXjxITtI/Sstz4CZOJOI/AAAAAAAAJ-w/sm3-cKRYrwE/s72-c/clip_image004_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-9148051622662656946</id><published>2009-09-26T10:36:00.001-05:00</published><updated>2009-09-26T10:38:53.037-05:00</updated><title type='text'>DataGeneral: Lightweight ADO.NET wrapper replacing Enterprise Library Data Access Application Block</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The DataGeneral class provides access to the most often used features of ADO.NET in a simple-to-use class boosting developer productivity.&lt;/p&gt;  &lt;p&gt;DataGeneral is lightweight for maximum performance. It employs Microsoft best practices. DataGeneral provides the best features of Enterprise Libraries Data Application block. In my experience, I like the Enterprise libraries Application Blocks to learn what features of the .NET framework are available , and best practice coding techniques (hence the name patterns and practices). But I don't like the weight of the enterprise libraries, and the random errors I get when versions are out of sync across environments. That is why I wrote DataGeneral which is just a single wrapper class. With DataGeneral you will have less lines of code to debug. DataGeneral is specific to Microsoft Sql Server. &lt;/p&gt;  &lt;p&gt;For example, one of the features of the Data Access Block is stated as: &amp;quot;By changing the settings in the configuration file, developers can use their applications with different database configurations without recompiling their code.&amp;quot; This makes me laugh: What application can have its most major component ripped out and replaced without recompiling the code? I would state that this feature is useless as are many of the other features in the Data Access block. However Enterprise library has many good features like saving you lines of code when building a SqlCommands with SqlParameters. That's why I wrote DataGeneral: All the good parts without all the useless parts. &lt;/p&gt;  &lt;p&gt;DataGeneral has been used in several enterprise applications currently in production. On each project it has been further refined and perfected.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Example 1) DataGeneral Source Code:&lt;/p&gt;  &lt;pre class="brush:csharp"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;&lt;br /&gt;namespace DataAccess&lt;br /&gt;{&lt;br /&gt;    public class DataGeneral&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        private static SqlConnection createConnection()&lt;br /&gt;        {&lt;br /&gt;            string sqlCn = System.Configuration.ConfigurationManager.ConnectionStrings[&amp;quot;ConnectionString&amp;quot;].ConnectionString;&lt;br /&gt;            SqlConnection cn = new SqlConnection(sqlCn);&lt;br /&gt;            cn.Open();&lt;br /&gt;            return cn;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Wraps the SqlCommand.ExecuteReader() method. &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;procedureNameOrSql&amp;quot;&amp;gt;Stored procedure name or a Sql statement.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;parameters&amp;quot;&amp;gt;List of SqlParameter. Set to null if no parameters.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;isStoredProcedure&amp;quot;&amp;gt;True if the procedureNameOrSql is a stored procedure, false if it is a SQL statement.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;Returns a SqlDataReader which MUST be wrapped in a using statement so that its SqlConnecion is closed as soon as the SqlDataReader is disposed.&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static SqlDataReader ExecuteReader(string procedureNameOrSql, List&amp;lt;SqlParameter&amp;gt; parameters, bool isStoredProcedure)&lt;br /&gt;        {&lt;br /&gt;            //IMPORTANT: make sure you wrap the returned SqlDataReader in a using statement so that it is closed. (You do not need to close the SqlConnection object.)&lt;br /&gt;            SqlConnection cn = createConnection();&lt;br /&gt;&lt;br /&gt;            SqlCommand cmd = new SqlCommand(procedureNameOrSql, cn);&lt;br /&gt;&lt;br /&gt;            if (isStoredProcedure)&lt;br /&gt;                cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;            if (parameters != null)&lt;br /&gt;                cmd.Parameters.AddRange(parameters.ToArray());&lt;br /&gt;            return cmd.ExecuteReader(CommandBehavior.CloseConnection);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Wraps the SqlCommand.ExecuteScalar() method. &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;procedureNameOrSql&amp;quot;&amp;gt;Stored procedure name or a Sql statement.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;parameters&amp;quot;&amp;gt;List of SqlParameter. Set to null if no parameters.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;isStoredProcedure&amp;quot;&amp;gt;True if the procedureNameOrSql is a stored procedure, false if it is a SQL statement.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;Returns the first value of the first row of the Sql Statement.&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static object ExecuteScalar(string procedureNameOrSql, List&amp;lt;SqlParameter&amp;gt; parameters, bool isStoredProcedure)&lt;br /&gt;        {&lt;br /&gt;            object scalarValue;&lt;br /&gt;            using (SqlConnection cn = createConnection())&lt;br /&gt;            {&lt;br /&gt;                SqlCommand cmd = new SqlCommand(procedureNameOrSql, cn);&lt;br /&gt;                if (isStoredProcedure)&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;                if (parameters != null)&lt;br /&gt;                    cmd.Parameters.AddRange(parameters.ToArray());&lt;br /&gt;                scalarValue = cmd.ExecuteScalar();&lt;br /&gt;            }&lt;br /&gt;            return scalarValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Wraps the SqlCommand.ExecuteNonQuery() method. &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;procedureNameOrSql&amp;quot;&amp;gt;Stored procedure name or a Sql statement.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;parameters&amp;quot;&amp;gt;List of SqlParameter. Set to null if no parameters.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;isStoredProcedure&amp;quot;&amp;gt;True if the procedureNameOrSql is a stored procedure, false if it is a SQL statement&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;Returns the number of rows affected by ExecuteNonQuery().&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static int ExecuteNonQuery(string procedureNameOrSql, List&amp;lt;SqlParameter&amp;gt; parameters, bool isStoredProcedure)&lt;br /&gt;        {&lt;br /&gt;            int rowsAffected;&lt;br /&gt;            using (SqlConnection cn = createConnection())&lt;br /&gt;            {&lt;br /&gt;                SqlCommand cmd = new SqlCommand(procedureNameOrSql, cn);&lt;br /&gt;                if (parameters != null)&lt;br /&gt;                    cmd.Parameters.AddRange(parameters.ToArray());&lt;br /&gt;                if (isStoredProcedure)&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                rowsAffected = cmd.ExecuteNonQuery();&lt;br /&gt;            }&lt;br /&gt;            return rowsAffected;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public class ParamBuilder&lt;br /&gt;        {&lt;br /&gt;            private readonly List&amp;lt;SqlParameter&amp;gt; _parameters = new List&amp;lt;SqlParameter&amp;gt;();&lt;br /&gt;            public List&amp;lt;SqlParameter&amp;gt; Parameters&lt;br /&gt;            {&lt;br /&gt;                get&lt;br /&gt;                {&lt;br /&gt;                    return _parameters;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            public void AddParam(SqlDbType sqlDbType, string paramName, object paramVal)&lt;br /&gt;            {&lt;br /&gt;                SqlParameter p = new SqlParameter(paramName, sqlDbType);&lt;br /&gt;                p.Value = paramVal ?? DBNull.Value;&lt;br /&gt;                _parameters.Add(p);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            public SqlParameter AddOutputParam(SqlDbType sqlDbType, string paramName)&lt;br /&gt;            {&lt;br /&gt;                SqlParameter p = new SqlParameter(paramName, sqlDbType);&lt;br /&gt;                p.Direction = ParameterDirection.Output;&lt;br /&gt;                _parameters.Add(p);&lt;br /&gt;                return p;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Example 2) Sample Usage of ExecuteReader()&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note you should wrap the ExecuteReader() in a using statement.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:csharp"&gt;public static Address GetAddressByID(int addressID)&lt;br /&gt;{&lt;br /&gt;    Address address = null;&lt;br /&gt;&lt;br /&gt;    DataGeneral.ParamBuilder paramBuilder = new DataGeneral.ParamBuilder();&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.Int, &amp;quot;@AddressID&amp;quot;, addressID);&lt;br /&gt;&lt;br /&gt;    using (SqlDataReader sqlDataReader = DataGeneral.ExecuteReader(&amp;quot;Location_Address_GetByID&amp;quot;, paramBuilder.Parameters, true))&lt;br /&gt;    {&lt;br /&gt;        if (sqlDataReader.Read())&lt;br /&gt;        {&lt;br /&gt;            address = PopulateAddressFromReader(sqlDataReader);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return address;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static Address PopulateAddressFromReader(SqlDataReader sqlDataReader)&lt;br /&gt;{&lt;br /&gt;    Address address = new Address();&lt;br /&gt;&lt;br /&gt;    address.AddressID = (int)sqlDataReader[&amp;quot;AddressID&amp;quot;];&lt;br /&gt;    address.AddressLine1 = sqlDataReader[&amp;quot;AddressLine1&amp;quot;] as string;&lt;br /&gt;    address.AddressLine2 = sqlDataReader[&amp;quot;AddressLine2&amp;quot;] as string;&lt;br /&gt;    address.AddressLine3 = sqlDataReader[&amp;quot;AddressLine3&amp;quot;] as string;&lt;br /&gt;    address.City = sqlDataReader[&amp;quot;City&amp;quot;] as string;&lt;br /&gt;    address.Zipcode = sqlDataReader[&amp;quot;ZipCode&amp;quot;] as string;&lt;br /&gt;    address.CountryRefID = (int)sqlDataReader[&amp;quot;CountryRefID&amp;quot;];&lt;br /&gt;    address.CityLatitude = sqlDataReader[&amp;quot;CityLatitude&amp;quot;] as float?;&lt;br /&gt;    address.CityLongitude = sqlDataReader[&amp;quot;CityLongitude&amp;quot;] as float?;&lt;br /&gt;    address.ZipcodeLatitude = sqlDataReader[&amp;quot;ZipcodeLatitude&amp;quot;] as float?;&lt;br /&gt;    address.ZipcodeLongitude = sqlDataReader[&amp;quot;ZipcodeLongitude&amp;quot;] as float?;&lt;br /&gt;&lt;br /&gt;    return address;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Example 3) Sample usage of ExecuteNonQuery()&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note, that both inline sql and stored procedures are supported. This example also demonstrates output parameters. For example, if you are inserting in to a table with an identity column and want to return the newly created identity value.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This example also demonstrates wrapping a call with TransactionScope() which is another great feature of the .NET framework.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:csharp"&gt;public static void AddAddress(Address address)&lt;br /&gt;{&lt;br /&gt;    DataGeneral.ParamBuilder paramBuilder = new DataGeneral.ParamBuilder();&lt;br /&gt;    SqlParameter paramNewAddressId = paramBuilder.AddOutputParam(SqlDbType.Int, &amp;quot;@NewAddressID&amp;quot;);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@AddressLine1&amp;quot;, address.AddressLine1);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@AddressLine2&amp;quot;, address.AddressLine2);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@AddressLine3&amp;quot;, address.AddressLine3);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@City&amp;quot;, address.City);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@StateProvinceRefID&amp;quot;, address.StateProvinceRefID);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@ZipCode&amp;quot;, address.Zipcode);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.VarChar, &amp;quot;@CountryRefID&amp;quot;, address.CountryRefID);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.Float, &amp;quot;@CityLatitude&amp;quot;, address.CityLatitude);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.Float, &amp;quot;@CityLongitude&amp;quot;, address.CityLongitude);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.Float, &amp;quot;@ZipcodeLatitude&amp;quot;, address.ZipcodeLatitude);&lt;br /&gt;    paramBuilder.AddParam(SqlDbType.Float, &amp;quot;@ZipcodeLongitude&amp;quot;, address.ZipcodeLongitude);&lt;br /&gt;&lt;br /&gt;    const string sql =&lt;br /&gt;@&amp;quot;    INSERT Address &lt;br /&gt;    ( AddressLine1, AddressLine2, AddressLine3, City, StateProvinceRefID, ZipCode, CountryRefID,&lt;br /&gt;    CityLatitude,  CityLongitude, ZipcodeLatitude, ZipcodeLongitude, AddressPhoneID,AddressFaxPhoneID,&lt;br /&gt;    CreatedDate, CreatedBy, UpdatedDate, UpdatedBy) &lt;br /&gt;&lt;br /&gt;    VALUES                          &lt;br /&gt;    (@AddressLine1,@AddressLine2,@AddressLine3,@City,@StateProvinceRefID,@ZipCode,@CountryRefID,&lt;br /&gt;    @CityLatitude,@CityLongitude,@ZipcodeLatitude,@ZipcodeLongitude)&lt;br /&gt;    &lt;br /&gt;    SET @NewAddressID=SCOPE_IDENTITY();&amp;quot;;&lt;br /&gt;&lt;br /&gt;    using (TransactionScope transactionScope = new TransactionScope())&lt;br /&gt;    {&lt;br /&gt;        DataGeneral.ExecuteNonQuery(sql, paramBuilder.Parameters, false);&lt;br /&gt;        transactionScope.Complete();&lt;br /&gt;    }&lt;br /&gt;    address.AddressID = (int) paramNewAddressId.Value;&lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-9148051622662656946?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/9148051622662656946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=9148051622662656946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9148051622662656946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9148051622662656946'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/09/datageneral-lightweight-adonet-wrapper_26.html' title='DataGeneral: Lightweight ADO.NET wrapper replacing Enterprise Library Data Access Application Block'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2753505368152508811</id><published>2009-08-05T10:24:00.001-05:00</published><updated>2009-08-05T10:24:17.510-05:00</updated><title type='text'>Sticky Notes in Windows 7</title><content type='html'>&lt;p&gt;It’s the little things that are big. I found a new feature in Windows 7 that I really like: &lt;a href="http://windows.microsoft.com/en-us/windows7/products/features/sticky-notes"&gt;Sticky Notes&lt;/a&gt;. They look and behave a lot like real sticky notes. I used to use real sticky notes like crazy. At the beginning of each day I would write all my tasks down on those notes helping me, as Stephen Covey would say: keep first things first. Lately I've been using OneNote and/or notepad. OneNote is a great app but like any good thing, too much of it is bad. I'll still keep using OneNote every day, but for task lists and quick notes, Windows 7 Sticky Notes is definitely my new friend.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/SnGO9NPHBFI/AAAAAAAAJlg/SIpA4pFm7Mw/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/SnGO9S7vq1I/AAAAAAAAJlk/GZ_FjMrTipI/image_thumb.png?imgmax=800" width="244" height="190" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The leap to Windows 7&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A month ago I took a risk and installed Windows 7 as my primary OS. Installing a beta version of an OS on a laptop which is critically important for my job is not something I usually do but fortunately it has paid off. My favorite Windows 7 features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The performance is good (even though my laptop hardware is seriously lacking for a developer). &lt;/li&gt;    &lt;li&gt;Reboot time is fantastic. &lt;/li&gt;    &lt;li&gt;Stability has been good. (I got a video driver failure yesterday than didn't crash my machine, instead the screen flickered and then Windows 7 gave me a message that the video driver restarted.. Hold the applause please..) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/SnGO-KALynI/AAAAAAAAJmI/mMzMMQ-Enps/s1600-h/clip_image002%5B7%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_qBelXjxITtI/SnGO-SVljSI/AAAAAAAAJmM/c-Y0R9RutjA/clip_image002_thumb%5B4%5D.jpg?imgmax=800" width="292" height="79" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Windows Key+P for switching from one to two monitors. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/SnGO-5E0dUI/AAAAAAAAJlw/1ym9hrQL3xQ/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_qBelXjxITtI/SnGO_PaN1xI/AAAAAAAAJl0/FqV3aHS1SNI/image_thumb%5B1%5D.png?imgmax=800" width="244" height="58" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Accessible volume and network connections in the bottom right hand corner. I open and close VPN constantly so having this quickly accessible will delay my carpal tunnel. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/SnGO_VGqr9I/AAAAAAAAJl4/fK5GUUbrN_M/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/SnGO_ozKRzI/AAAAAAAAJl8/IxqSZFqSTqM/image_thumb%5B2%5D.png?imgmax=800" width="163" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The new &lt;a href="http://blogs.zdnet.com/Bott/?p=1195"&gt;task bar UI&lt;/a&gt; is sweet. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/SnGPAKNnk0I/AAAAAAAAJmA/ZKG0aq-CAr8/s1600-h/image%5B13%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_qBelXjxITtI/SnGPAVihAAI/AAAAAAAAJmE/jr2hH3jgAcw/image_thumb%5B5%5D.png?imgmax=800" width="428" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Dragging windows from one monitor to another without having to double-click to resize and then re-maximize. We all have two monitors now so this saves a lot of click-click-click once again delaying my carpal tunnel.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_qBelXjxITtI/SnmkH0Co1YI/AAAAAAAAJm4/NsnYBDbzctw/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_qBelXjxITtI/SnmkIFuM-wI/AAAAAAAAJm8/lQvfrwqmeF8/image_thumb%5B1%5D.png?imgmax=800" width="244" height="47" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2753505368152508811?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2753505368152508811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2753505368152508811' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2753505368152508811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2753505368152508811'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/08/sticky-notes-in-windows-7.html' title='Sticky Notes in Windows 7'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_qBelXjxITtI/SnGO9S7vq1I/AAAAAAAAJlk/GZ_FjMrTipI/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1515748696768584343</id><published>2009-07-30T07:34:00.001-05:00</published><updated>2009-07-30T07:34:50.981-05:00</updated><title type='text'>Catapult Kids Day</title><content type='html'>&lt;p&gt;I work for a consulting company which is big on providing a great place to work. Catapult Systems was ranked #2 &lt;a href="http://www.catapultsystems.com/News/PastNews/Pages/BestTexas_2008.aspx"&gt;best place to work&lt;/a&gt; in all of Texas last year and also received the same impressive rank in 2006. Examples: Last weekend we had a Catapult kids day when all the employees got to bring their kids into work. &lt;a href="http://www.thefluckigerfamily.blogspot.com/"&gt;My 4 year old son&lt;/a&gt; had a blast. Granted, now his impression is that I play mini-golf, watch movies, and shoot Nerf guns all day. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_qBelXjxITtI/SnGTZ5oWY_I/AAAAAAAAJmY/3fnmrM1r2X4/s1600-h/clip_image001%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh4.ggpht.com/_qBelXjxITtI/SnGTaj_8LiI/AAAAAAAAJmc/neO2_m03kzo/clip_image001_thumb.png?imgmax=800" width="244" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My son is the one in front making the funny face. I so proud of my little goofball :).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1515748696768584343?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1515748696768584343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1515748696768584343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1515748696768584343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1515748696768584343'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/07/catapult-kids-day.html' title='Catapult Kids Day'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_qBelXjxITtI/SnGTaj_8LiI/AAAAAAAAJmc/neO2_m03kzo/s72-c/clip_image001_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2278310113528964148</id><published>2009-07-08T16:37:00.001-05:00</published><updated>2009-07-08T16:56:23.272-05:00</updated><title type='text'>DIVs not Tables</title><content type='html'>&lt;p&gt;My brother-in-law is an HTML extraordinaire and has been telling me for years that DIVs are just better than tables. I never believed him. I though this was just inherited open source community hatred towards Microsoft’s server controls that spit out tables everywhere. But I have been convinced! There is actually a simple demonstrable, measurable benefit to using DIVs over tables. A common scenario is displaying two columns of information with the label in the left and the value in the right column. See the code below, the DIV option is definitely cleaner and results in 7 tags while the table version results in 11. The &amp;lt;label&amp;gt; tag is also more descriptive than a &amp;lt;td&amp;gt; tag.&lt;/p&gt;  &lt;p&gt;Granted, in order to make your DIVs line up correctly, you have to use styles, while tables do this by default.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;Div version: (7 tags required)&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;scrollTop:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;scrollLeft:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;targetContainer&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Apply to:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; window&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; document&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; test subject&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;table version: (11 tags required)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tbody&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    scrollTop:&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt;  &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    scrollLeft:&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt;  &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    Apply to:&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt;  &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                    window&lt;br /&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt;  &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                    document&lt;br /&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;radio&amp;quot;&lt;/span&gt;  &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                    test subject&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tbody&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2278310113528964148?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2278310113528964148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2278310113528964148' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2278310113528964148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2278310113528964148'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/07/divs-not-tables.html' title='DIVs not Tables'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2703907926438848042</id><published>2009-07-04T10:09:00.001-05:00</published><updated>2009-07-04T10:09:12.016-05:00</updated><title type='text'>Enable JQuery intellisense in Visual Studio 2008</title><content type='html'>&lt;p&gt;Steps to Enable jQuery Intellisense in VS 2008   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Install VS 2008 SP1    &lt;br /&gt;Link: &lt;a href="http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx"&gt;http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx&lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: Install VS 2008 Patch KB958502 to Support &amp;quot;-vsdoc.js&amp;quot; Intellisense Files    &lt;br /&gt;Link: &lt;a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736"&gt;http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736&lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Download the jQuery-vsdoc.js file    &lt;br /&gt;Link: &lt;a href="http://docs.jquery.com/Downloading_jQuery#Download_jQuery"&gt;http://docs.jquery.com/Downloading_jQuery#Download_jQuery&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Full story with details can be found here:   &lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx"&gt;Scott Guthrie announcement&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2703907926438848042?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2703907926438848042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2703907926438848042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2703907926438848042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2703907926438848042'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/07/enable-jquery-intellisense-in-visual.html' title='Enable JQuery intellisense in Visual Studio 2008'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6197694746438423565</id><published>2009-06-28T22:42:00.001-05:00</published><updated>2009-06-28T22:42:17.034-05:00</updated><title type='text'>Codeplex changes it’s policy based on my suggestion</title><content type='html'>&lt;blockquote&gt;   &lt;p&gt;This is pretty cool. This week Codeplex changed it’s &lt;a href="http://codeplex.codeplex.com/Wiki/View.aspx?title=Start%20a%20Project#Donate"&gt;Start a Project page&lt;/a&gt; and added a section which I had suggested. I guess they are listening to me. :) You can read &lt;a href="http://codeplex.codeplex.com/WorkItem/View.aspx?WorkItemId=4909&amp;amp;ProjectName=CodePlex"&gt;my suggestion&lt;/a&gt; I made back in Dec 2008 in the discussion forums to . You can also &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/This-week-on-C9-Get-paid-for-open-source-Azure-for-dating-debugging-and-naming-lore/"&gt;watch a Channel 9 video &lt;/a&gt;describing the feature starting at 5min. The suggestion was simply to allow donation links on Codeplex project sites.&lt;/p&gt;    &lt;p&gt;My Codeplex project SharePoint SUSHI has been on Codeplex since November 2007 and was one of the early projects posted on Codeplex. It has been downloaded 17,000 times. I love the comments on the latest version, they are awesome:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#808080"&gt;Probably the most useful free SharePoint tool out there! Saved me hours of work many many times. Some really innovative features (e.g. copy list view). Great stuff! Please keep it up. Thanks for sharing the results of your hard work!. Greg        &lt;br /&gt;by &lt;/font&gt;&lt;a href="http://www.codeplex.com/site/users/view/Greg_O"&gt;&lt;font color="#808080"&gt;Greg_O&lt;/font&gt;&lt;/a&gt;&lt;font color="#808080"&gt; on Mar 9 at 7:22 AM&lt;abbr&gt;&lt;/abbr&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#808080"&gt;Some great functions. Definitely going to use that tool often in the future.        &lt;br /&gt;by &lt;/font&gt;&lt;a href="http://www.codeplex.com/site/users/view/Dublette"&gt;&lt;font color="#808080"&gt;Dublette&lt;/font&gt;&lt;/a&gt;&lt;font color="#808080"&gt; on Mar 2 at 2:19 AM&lt;abbr&gt;&lt;/abbr&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#808080"&gt;God bless you, Joseph. You may just get that Wikipedia page after all. :)        &lt;br /&gt;by &lt;/font&gt;&lt;a href="http://www.codeplex.com/site/users/view/panoone"&gt;&lt;font color="#808080"&gt;panoone&lt;/font&gt;&lt;/a&gt;&lt;font color="#808080"&gt; on Feb 4 at 8:24 PM&lt;abbr&gt;&lt;/abbr&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It is good to see all those hours spent building SUSHI having some positive benefit for the community. I know that I have benefited enormously from blog posts and free utilities so it is good to give a little something back.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6197694746438423565?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6197694746438423565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6197694746438423565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6197694746438423565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6197694746438423565'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/06/codeplex-changes-its-policy-based-on-my.html' title='Codeplex changes it’s policy based on my suggestion'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7761637471634755432</id><published>2009-06-25T07:51:00.001-05:00</published><updated>2009-06-25T07:51:37.046-05:00</updated><title type='text'>Float vs. Decimal data types in Sql Server</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is an excellent article describing &lt;a href="http://sqlblog.com/blogs/hugo_kornelis/archive/2007/10/17/so-called-exact-numerics-are-not-at-all-exact.aspx"&gt;when to use float and decimal&lt;/a&gt;. Float stores an approximate value and decimal stores an exact value.&lt;/p&gt;  &lt;p&gt;In summary, exact values like money should use decimal, and approximate values like scientific measurements should use float. &lt;/p&gt;  &lt;p&gt;Here is an interesting example that shows that both float and decimal are capable of losing precision. When adding a number that is not an integer and then subtracting that same number&amp;#160; float results in losing precision while decimal does not:&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;DECLARE @Float1 float, @Float2 float, @Float3 float, @Float4 float;      &lt;br /&gt;SET @Float1 = 54;       &lt;br /&gt;SET @Float2 = 3.1;       &lt;br /&gt;SET @Float3 = 0 + @Float1 + @Float2;       &lt;br /&gt;SELECT @Float3 - @Float1 - @Float2 AS &amp;quot;Should be 0&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#008080"&gt;Should be 0        &lt;br /&gt;----------------------         &lt;br /&gt;1.13797860024079E-15&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;When multiplying a non integer and dividing by that same number, decimals lose precision while floats do not.&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;DECLARE @Fixed1 decimal(8,4), @Fixed2 decimal(8,4), @Fixed3 decimal(8,4);      &lt;br /&gt;SET @Fixed1 = 54;       &lt;br /&gt;SET @Fixed2 = 0.03;       &lt;br /&gt;SET @Fixed3 = 1 * @Fixed1 / @Fixed2;       &lt;br /&gt;SELECT @Fixed3 / @Fixed1 * @Fixed2 AS &amp;quot;Should be 1&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#008080"&gt;Should be 1        &lt;br /&gt;---------------------------------------         &lt;br /&gt;0.99999999999999900&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7761637471634755432?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7761637471634755432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7761637471634755432' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7761637471634755432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7761637471634755432'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/06/float-vs-decimal-data-types-in-sql_25.html' title='Float vs. Decimal data types in Sql Server'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1033719522093797255</id><published>2009-06-16T08:51:00.001-05:00</published><updated>2009-06-16T08:51:05.577-05:00</updated><title type='text'>Trancender vs. Measureup – Tips for Microsoft Certification Tests</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I've been going certification crazy this year as I've passed 5 certification tests so far. Along the way I've picked up a few tips that might be of interest to someone looking to study for and take a Microsoft Certification exam. &lt;/li&gt;    &lt;li&gt;Trancender is a win forms app installed locally, so don't need to be connected to internet. &lt;/li&gt;    &lt;li&gt;Measure up is a web app.&lt;/li&gt;    &lt;li&gt;Both Measureup and Trancender are seriously out-of-date applications. It is embarrassing that they test your .NET skills and yet the skills of the programmers who wrote these tools is seriously lacking/out-of date.&lt;/li&gt;    &lt;li&gt;No cut and paste available in Trancender. This makes it hard to try out source code contained in the practice questions and descriptions are more generic than Measureup. For each question Measureup tells you why the right answer is right and the wrong answer is wrong, which helps you understand the way the question asker is thinking and what they are trying to teach or the point they are trying to assess.&lt;/li&gt;    &lt;li&gt;Both Measureup and Trancender tests are a little harder than the real tests. On a measure up test all the answers usually at least are not nonsensical, they represent valid .NET names, classes etc. On the actual test, you can often eliminate several wrong answers just by being familiar with correct syntax. &lt;/li&gt;    &lt;li&gt;Measureup allows you to take a short test, and see the answer after each question. This is my favorite way to study for a test: in small chunks. I take a short 10 question test whenever I get a chance to study and dig into any questions I didn't get right. With Trancender you have to take a 30 question test, and can't see the answers until the end. &lt;/li&gt;    &lt;li&gt;Note that In my experience there are not very many interactive format questions. These are questions that have drag drop functionality. All the questions are multiple choice in which you choose 1 answer. A few questions have two or three right answers. &lt;/li&gt;    &lt;li&gt;Overall I like Measureup better. It is easier to study on-the-fly, and can be used from any machine without going through an install program most likely written in 1994 using VB6. :)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;MCP Testing Tips:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I didn't use any practice tests that are actually just copies of the real tests posted on the Internet (brain dumps), that is just plain cheating and Microsoft has clearly stated this. Measureup and Trancender tests however are sanctioned by Microsoft and are linked from their &lt;a href="http://www.microsoft.com/learning/en/us/exams/70-561.mspx"&gt;certification website&lt;/a&gt;. Measureup and Trancender use similar questions without using the actual questions from the real test. They are good preparation materials because they are a fast way to give you a feel for which concepts will be tested and the types of questions that will be asked. They also get you used to the testing format. I think that in addition to testing your .NET skills, the MCP exams test your pattern recognition and reading compression skills and so practice tests help you sharpen these skills as well. The other thing I like about these practice tests is that there is just a huge amount of features to a given technology (WCF, ADO.NET, Win Forms, etc) and a practice test is a good way to get a feel for what the most important features of that technology are. You may not know every detail about that feature after the practice test but at least down the road when you have a business need for that feature you know where to start looking. I would borrow a phrase from a favorite childhood cartoon GI-JOE.       &lt;blockquote&gt;       &lt;h3&gt;If GI-JOE were a .NET programmer he would have said: &amp;quot;Knowing &lt;em&gt;where to look in the .NET Framework&lt;/em&gt; is half the battle.” MCP Certification tests are a great way to quickly learn where to look.&lt;/h3&gt;     &lt;/blockquote&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1033719522093797255?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1033719522093797255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1033719522093797255' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1033719522093797255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1033719522093797255'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/06/trancender-vs-measureup-tips-for.html' title='Trancender vs. Measureup – Tips for Microsoft Certification Tests'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6714207576595594300</id><published>2009-06-05T07:35:00.001-05:00</published><updated>2009-06-13T07:51:50.648-05:00</updated><title type='text'>Stored Procedures versus Ad-hoc SQL</title><content type='html'>&lt;p&gt;Have you ever worked on a system where someone decreed that all database calls must be Stored Procedures, and ad-hoc SQL is strictly forbidden? I have and it leads to incredible development pain.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Let me first say that I have written many awesome 100+ line stored procedures. Stored procedures are definitely a good thing when writing complex queries. TSQL and Stored Procedures are fantastic. However, I think that the optimal decision is to use a mix of both ad-hoc sql and stored procedures rather than just stored procedures.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Reasons that are given for the above decree and why they are no longer true:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Security:      &lt;ul&gt;       &lt;li&gt;SQL injection: Resolved by using parameterized SQL which eliminate SQL injection possibility.&lt;/li&gt;        &lt;li&gt;Granular security: If the app pool account is dbowner, then there is no additional security from applying security to each stored procedure (execute only privileges). &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Performance:&amp;#160; (see performance testing section below for test results)      &lt;ul&gt;       &lt;li&gt;Execution plan Caching: In SQL Server 2005 and later, SQL server caches the execution plan based on tokenized versions of queries so performance of parameterized ad-hoc SQL is close to stored procedures.(see John Lam's comment below) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Maintenance      &lt;ul&gt;       &lt;li&gt;Changing Stored procedures doesn’t require recompiling code: With agile development and continuous integration, code is easy to change and deploy. Advantage of ad-hoc SQL: fewer lines of code overall because you don’t have to declare stored procedure signature. Fewer lines of code means risk of errors goes down, and maintenance cost goes down. Easier to refactor code with inline SQL because able to use &amp;quot;find and replace&amp;quot; in Visual Studio when renaming a column or changing a data type. Also, using a mix of stored procedures and ad-hoc SQL keeps the database cleaner. When using all stored procedures you quickly have 100s to keep track of and inevitably stored procedures get lost and a significant effort must be devoted to maintaining and auditing them all. &lt;/li&gt;        &lt;li&gt;Faster coding, don't have to switch between sql server and Visual Studio. (Jeff Atwood also makes this point). &lt;/li&gt;        &lt;li&gt;Better documentation: When TSQL code is in data layer, able to look at it in one place. (Jeff Atwood also makes this point) &lt;/li&gt;        &lt;li&gt;Debugging faster, easier. Cumbersome to set breakpoints in stored procedures. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Transactions      &lt;ul&gt;       &lt;li&gt;It used to be possible to do transactions only in stored procedures and not in .NET. But now with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.transactions.aspx"&gt;System.Transactions&lt;/a&gt; namespace it is easy. This is really great stuff. If you haven't used it, it is so awesome and clean. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Comments:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I am not anti-stored procedure. I have used them quite a bit and they are incredibly powerful. TSQL is just gorgeous when it comes to performance. When you have complex queries, they become good candidates for stored procedures because you can leverage temporary tables, common table expressions, etc.&lt;/p&gt;  &lt;p&gt;Note ORMs like Entity Framework (the future of data access) uses parameterized sql, so if developers are willing to use those frameworks they are already using parameterized sql. For some reason developers are willing to use those frameworks but not inline SQL, even though they talk to the database in the same way.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;What others are saying:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Jeff Atwood puts in eloquently in his blog post: &lt;a href="http://www.codinghorror.com/blog/archives/000117.html"&gt;who needs stored procedures anyway&lt;/a&gt;?.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And who can argue with the great John Lam? He says:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;As a guy who dabbles in low-level bit twiddling stuff from time-to-time, the performance claims are quite interesting to me. The new (as of SQL Server 7.0) &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_sa_4azp.asp"&gt;cached execution plan optimization&lt;/a&gt; in SQL Server looks to me a lot like JIT compilation. If this is, in fact, the case it seems to me that the only overhead that would be associated with dynamic SQL would be: &lt;/i&gt;&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;The amount of bandwidth + time it takes to transmit the dynamic SQL text to the database. &lt;/li&gt;      &lt;li&gt;The amount of time it takes to calculate the hash of the dynamic SQL text to look up the cached execution plan. &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;I can imagine quite a few scenarios where the above overhead would disappear into the noise of the network roundtrip. What upsets me are the folks who spout forth anecdotal arguments that claim stored procedures have &amp;quot;much better&amp;quot; performance than dynamic SQL. &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Conclusion&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I cringe when I see an architectural decision which tries to make it easy for the server which is a $4000 resource over two years at the cost of making it harder for the developer which is a $400,000 resource (over two years).&lt;/p&gt;  &lt;p&gt;A question from personal experience: I recently saw a 10 million dollar software project go over-budget and lose a ton of money. Why did the project fail? Using ad-hoc sql may not have saved the project but making similar productivity enhancing decisions like allowing ad-hoc SQL when it makes sense and is not a security or performance compromise, might just have tipped the project from red to black. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Performance Testing&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I always have to test performance claims for myself. So I wrote a small console application to put the execution caching plan to the test. A method using a stored procedure was called 1000 times. A method using the same sql as paramaterized, ad-hoc SQL was called 1000 times. The times were about equal, actually they where slightly faster for the ad-hoc sql :).&lt;/p&gt;  &lt;p&gt;Results (milliseconds):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/SikTXYk1txI/AAAAAAAAIWc/jR8yf1Ysurk/s1600-h/clip_image001%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh4.ggpht.com/_qBelXjxITtI/SikTXsH04GI/AAAAAAAAIWg/5FU70pJ2mmk/clip_image001_thumb.png?imgmax=800" width="199" height="37" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_qBelXjxITtI/SikTX3zVj9I/AAAAAAAAIWk/joI6wvuJw6o/s1600-h/clip_image002%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/_qBelXjxITtI/SikTYANNUpI/AAAAAAAAIWo/bCkW3orPM-E/clip_image002_thumb.png?imgmax=800" width="202" height="39" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_qBelXjxITtI/SikTYRs8lyI/AAAAAAAAIWs/PoA6OuNUf7Y/s1600-h/clip_image003%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh6.ggpht.com/_qBelXjxITtI/SikTYk_CcdI/AAAAAAAAIWw/kHfB8Y079Ao/clip_image003_thumb.png?imgmax=800" width="198" height="37" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;static void Main(string[] args)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;//--warm up&lt;/p&gt;  &lt;p&gt;SelectContactStoredProc();&lt;/p&gt;  &lt;p&gt;SelectContactParamaterizedSql();&lt;/p&gt;  &lt;p&gt;//--&lt;/p&gt;  &lt;p&gt;Stopwatch sw = new Stopwatch();&lt;/p&gt;  &lt;p&gt;sw.Start();&lt;/p&gt;  &lt;p&gt;for (int i = 1; i &amp;lt;= 1000; i++)&lt;/p&gt;  &lt;p&gt;SelectContactStoredProc();&lt;/p&gt;  &lt;p&gt;sw.Stop();&lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Elapsed StoredProc:&amp;quot; + sw.ElapsedMilliseconds);&lt;/p&gt;  &lt;p&gt;//--&lt;/p&gt;  &lt;p&gt;sw.Reset();&lt;/p&gt;  &lt;p&gt;sw.Start();&lt;/p&gt;  &lt;p&gt;for (int i = 1; i &amp;lt;= 1000; i++)&lt;/p&gt;  &lt;p&gt;SelectContactParamaterizedSql();&lt;/p&gt;  &lt;p&gt;sw.Stop();&lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Elapsed ParmSQL:&amp;quot; + sw.ElapsedMilliseconds);&lt;/p&gt;  &lt;p&gt;Console.ReadLine();&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;public static void SelectContactParamaterizedSql()&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;DataGeneral.ParamBuilder pb = new DataGeneral.ParamBuilder();&lt;/p&gt;  &lt;p&gt;pb.AddParam(SqlDbType.Int, &amp;quot;@contactGroupId&amp;quot;, 11);&lt;/p&gt;  &lt;p&gt;string sql = @&amp;quot;select ContactID,ContactGroupID,ContactTypeRefCode,FirstName,LastName,Prefix,Suffix,Email,Phone,PhoneExt,AltPhone,AltPhoneExt,MobilePhone,FaxPhone&lt;/p&gt;  &lt;p&gt;from Contact where contactGroupId = @contactGroupId&amp;quot;;&lt;/p&gt;  &lt;p&gt;object ret = DataGeneral.GetScalar(sql, pb.Parameters, false);&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;public static void SelectContactStoredProc()&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;DataGeneral.ParamBuilder pb = new DataGeneral.ParamBuilder();&lt;/p&gt;  &lt;p&gt;pb.AddParam(SqlDbType.Int, &amp;quot;@contactGroupId&amp;quot;, 11);&lt;/p&gt;  &lt;p&gt;object ret = DataGeneral.GetScalar(&amp;quot;General_Contact_GetByContactGroupID&amp;quot;, pb.Parameters, true);&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6714207576595594300?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6714207576595594300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6714207576595594300' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6714207576595594300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6714207576595594300'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/06/stored-procedures-versus-ad-hoc-sql.html' title='Stored Procedures versus Ad-hoc SQL'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_qBelXjxITtI/SikTXsH04GI/AAAAAAAAIWg/5FU70pJ2mmk/s72-c/clip_image001_thumb.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3045770852683106730</id><published>2009-04-08T17:01:00.001-05:00</published><updated>2009-04-09T10:00:00.375-05:00</updated><title type='text'>Rename a SharePoint Server Machine Name</title><content type='html'>&lt;p&gt;I often need to rename a machine running SharePoint. I was afraid this would be terribly difficult because there are several places in SharePoint that the machine name is stored, but it was actually pretty easy.&lt;/p&gt;  &lt;p&gt;Here is a good article which worked for me: &lt;a href="http://www.sharepointblogs.com/nrdev/archive/2008/07/15/tip-how-to-rename-a-sharepoint-server-machine-name.aspx"&gt;rename SharePoint server&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Rename the SharePoint server using the STSADM command. (-o renameserver) &lt;/li&gt;    &lt;li&gt;Add alternate access mapping for central admin to the new name &lt;/li&gt;    &lt;li&gt;rename the machine to match &lt;/li&gt;    &lt;li&gt;reboot &lt;/li&gt;    &lt;li&gt;If you get a “Some or all identity references could not be translated. when navigating to Central Admin”, run this command: &lt;strong&gt;stsadm.exe -o updatefarmcredentials -userlogin &amp;lt;login&amp;gt; –password &amp;lt;pass&amp;gt;&lt;/strong&gt; . &lt;a href="http://coolsubhash-tech.blogspot.com/2007/05/some-or-all-identity-references-could.html"&gt;detailed instructions.&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Post-configuration: alternate access mapping changes, User ID changes, etc.&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/22622316-3045770852683106730?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3045770852683106730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3045770852683106730' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3045770852683106730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3045770852683106730'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/04/rename-sharepoint-server-machine-name.html' title='Rename a SharePoint Server Machine Name'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2106796732677474463</id><published>2009-03-27T15:36:00.001-05:00</published><updated>2009-03-27T15:36:26.194-05:00</updated><title type='text'>The fluckiger.org guestbook is back, new and improved!</title><content type='html'>&lt;p&gt;After a 5 year outage, the &lt;a href="http://fluckiger.org"&gt;fluckiger.org guestbook&lt;/a&gt; is back!Please feel free to leave your thoughts, hellos, ideas, comments, poems, rants etc. &lt;/p&gt;  &lt;p&gt;Check this out, I just used internet archive to retrieve &lt;a href="http://web.archive.org/web/20050206203926/http://fluckiger.org/guestbook/guestbook.asp"&gt;messages left on the old fluckiger guestbook&lt;/a&gt;. The old guestbook was up between 2002 and 2004. It is fun to see the comments, back then having a guestbook was a really cool impressive thing!&lt;/p&gt;  &lt;p&gt;I know a guestbook is an old fashioned thing. Old fashioned in Internet years which means anything over 5 years old. In 2002 I built a guestbook using asp.net 1.1 and an Microsoft Access database. My original guestbook at fluckiger.org was pretty popular. This was before facebook and blog comments which make having your own guestbook seem kind of pointless. &lt;/p&gt;  &lt;p&gt;But this guestbook gave me a chance to flex my Silverlight muscles and is just the mustard seed. There is a lot of potential in Silverlight to bring back richness to human-computer interaction. We've been suffering through painful primitive UI and slow response times for quite a while now. Silverlight has the potential to bend the computer to the needs of people rather than what we've been doing over the past decade which is bending people to use the HTML in the browser just because that was the easiest and most secure way to deploy applications. &lt;/p&gt;  &lt;p&gt;My guestbook is using some pretty cool technology. It is written in Silverlight 2.0 which is delivered from IIS 7 on a virtual Windows Server 2008 instance which is hosted in a 64 bit Windows Server 08 Hypervisor. The physical machine is a box I got off of Craig’s List for only $1500. It has 8 cores, 22 gigs of memory, and a 300 GB Velociraptor hard drive. This gives me plenty of room to run multiple virtuals. I am currently running: a project server farm, an Ubuntu Linux box, a Windows 7 box, and my SUSHI development environment which also hosts this guestbook. Sweet! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2106796732677474463?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2106796732677474463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2106796732677474463' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2106796732677474463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2106796732677474463'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/fluckigerorg-guestbook-is-back-new-and.html' title='The fluckiger.org guestbook is back, new and improved!'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7424010656285220020</id><published>2009-03-20T14:30:00.001-05:00</published><updated>2009-03-21T15:55:35.730-05:00</updated><title type='text'>Snapshots in Windows Server 2008 Hypervisor</title><content type='html'>&lt;p&gt;I recently installed Windows Server 2008 with Hypervisor. I was a little confused by the Snapshot options. But after reading &lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2008/01/16/managing-snapshots-with-hyper-v.aspx"&gt;this post&lt;/a&gt;, and a little trial and error, I figured it out…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_qBelXjxITtI/ScVTEqlMLxI/AAAAAAAAIA0/9SYxKKt6E_I/s1600-h/snapshots%5B4%5D.png"&gt;&lt;img title="snapshots" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="197" alt="snapshots" src="http://lh6.ggpht.com/_qBelXjxITtI/ScVTFPhcLzI/AAAAAAAAIA4/xx-wcr38wIU/snapshots_thumb%5B2%5D.png?imgmax=800" width="475" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;i&gt;&lt;/i&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Apply…&lt;/strong&gt;&lt;/font&gt; results in &lt;u&gt;losing&lt;/u&gt; your changes since the snapshot. This applies the state stored in the snapshot to the current state of the machine. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Delete Snapshot…&lt;/font&gt;&lt;/strong&gt; results in &lt;u&gt;keeping&lt;/u&gt; your changes since the snapshot. This causes the AVHD (differencing disk) files to be merged into the parent VHD or AVHD files. Note that if the virtual machine is running the merge will not happen until the guest machine is shut down.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Revert&lt;/font&gt;&lt;/strong&gt; does the same thing as Apply&lt;em&gt; &lt;/em&gt;for the most recent snapshot.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Additional Notes from my experience: When you create multiple snapshots you’ll see that Hypervisor creates a hierarchy of snapshot nodes. This hierarchy is important. The green arrow is also important. I made the mistake at first of thinking that the green arrow and the snapshot were the same thing, but the green arrow represents the current state and all changes that have happened since its parent snapshot. Once I understood this, it was much more clear to me why &lt;strong&gt;apply&lt;/strong&gt; resulted in losing my current changes and &lt;strong&gt;delete &lt;/strong&gt;resulted in keeping my current changes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7424010656285220020?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7424010656285220020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7424010656285220020' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7424010656285220020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7424010656285220020'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/snapshots-in-windows-server-2008.html' title='Snapshots in Windows Server 2008 Hypervisor'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_qBelXjxITtI/ScVTFPhcLzI/AAAAAAAAIA4/xx-wcr38wIU/s72-c/snapshots_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-669217926697926548</id><published>2009-03-19T21:56:00.001-05:00</published><updated>2009-03-19T21:56:33.870-05:00</updated><title type='text'>Johnny Lee on Channel9</title><content type='html'>&lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Glucose/Hanselminutes-on-9-Johnny-Lee-on-Computer-Vision/"&gt;Scott Hanselman interviews Johnny Lee&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Excellent topics of this video: Why can’t a computer’s see? Why does the academic world reward writing papers instead of producing useful technology? (Johnny Lee inspired millions of people with his revolutionary use of the Wiimote and yet got no academic credit from Carnegie Mellon which he was attending at the time). &lt;/p&gt;  &lt;p&gt;-Joseph&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-669217926697926548?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/669217926697926548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=669217926697926548' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/669217926697926548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/669217926697926548'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/johnny-lee-on-channel9.html' title='Johnny Lee on Channel9'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3850923091776432166</id><published>2009-03-15T19:43:00.001-05:00</published><updated>2009-03-15T19:43:32.719-05:00</updated><title type='text'>SUSHI has 5 star rating on Codeplex</title><content type='html'>&lt;p&gt;Writing free software for the community often come with little reward. But it is great to get positive feedback. I can’t help but smile at the &lt;a href="http://sushi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22248"&gt;feedback&lt;/a&gt; that &lt;a href="http://www.codeplex.com/sushi"&gt;SUSHI&lt;/a&gt; has gotten:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Probably the most useful free SharePoint tool out there! Saved me hours of work many many times. Some really innovative features (e.g. copy list view). Great stuff! Please keep it up. Thanks for sharing the results of your hard work!. Greg &lt;/h4&gt;  &lt;h4&gt;&lt;font face="Tunga" color="#ffff00" size="3"&gt;&lt;strong&gt;by &lt;/strong&gt;&lt;/font&gt;&lt;a href="http://www.codeplex.com/site/users/view/Greg_O"&gt;&lt;font face="Tunga" color="#ffff00" size="3"&gt;&lt;strong&gt;Greg_O&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font face="Tunga"&gt;&lt;font color="#ffff00"&gt;&lt;strong&gt; on Mar 9 at 7:22 AM&lt;abbr&gt;&lt;/abbr&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;Some great functions. Definitely going to use that tool often in the future.&lt;/h4&gt;  &lt;h4&gt;&lt;font color="#ffff00"&gt;by &lt;/font&gt;&lt;a href="http://www.codeplex.com/site/users/view/Dublette"&gt;&lt;font color="#ffff00"&gt;Dublette&lt;/font&gt;&lt;/a&gt;&lt;font color="#ffff00"&gt; on Mar 2 at 2:19 AM&lt;/font&gt;&lt;/h4&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;God bless you, Joseph. You may just get that Wikipedia page after all. :)    &lt;br /&gt;&lt;font color="#ffff00"&gt;by &lt;/font&gt;&lt;a href="http://www.codeplex.com/site/users/view/panoone"&gt;&lt;font color="#ffff00"&gt;panoone&lt;/font&gt;&lt;/a&gt;&lt;font color="#ffff00"&gt; on Feb 4 at 8:24 PM&lt;abbr&gt;&lt;/abbr&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The last comment is the funniest of all. I hope he is right! SUSHI has had 13,000 downloads today and is in the top 25 downloads in the category of SharePoint over the last 7 days.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-3850923091776432166?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3850923091776432166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3850923091776432166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3850923091776432166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3850923091776432166'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/sushi-has-5-star-rating-on-codeplex.html' title='SUSHI has 5 star rating on Codeplex'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4345717840076966268</id><published>2009-03-10T22:37:00.001-05:00</published><updated>2009-03-10T22:37:17.919-05:00</updated><title type='text'>Super fast drive</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is hilarious, and awesome at the same time.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=96dWOEa4Djs&amp;amp;fmt=22&amp;amp;annotation_id=annotation_196657&amp;amp;feature=iv"&gt;Drive that gets 2 GIGbits per second transfer rates&lt;/a&gt;. I bought a 300 gig raptor for $250 at Fry’s electronics and I love it. It is very fast, but my office is now a sauna and it is only Spring. I noticed that a 64 gig Solid State Disk cost $199. Can’t wait to get one of those. The future of computing, starting in 2009? SSD, SSD, SSD. Performance and low power consumption.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4345717840076966268?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4345717840076966268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4345717840076966268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4345717840076966268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4345717840076966268'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/super-fast-drive.html' title='Super fast drive'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7348821044040551898</id><published>2009-03-03T16:59:00.001-06:00</published><updated>2009-03-03T16:59:29.951-06:00</updated><title type='text'>Tech Tip: Set up Remote Desktop on 443 to Get Through a Restrictive Firewall</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I often connect to the Internet through a guest wireless account. These guest wireless networks are typically very restrictive and block all ports except for 80 (http) and 443 (https) .&amp;#160; This is a big pain when I need to remote desktop into a remote machine, or perform other tasks which also might be restricted by the firewall like accessing my online email, searching the Internet for helpful blog posts, etc.&lt;/p&gt;  &lt;p&gt;Here is an awesome tip to get to the resources you need: Set up a remote machine and change the Remote desktop port from the default of 3389 to 443. To do this just change a registry key and then reboot your machine. See this Microsoft &lt;a href="http://support.microsoft.com/kb/306759"&gt;KB article&lt;/a&gt; for details. You will also need to configure your router to forward inbound traffic for 443 to your machine. &lt;a href="http://video.google.com/videosearch?q=linksys+port+forwarding&amp;amp;rls=com.microsoft:en-US:IE-SearchBox&amp;amp;oe=UTF-8&amp;amp;sourceid=ie7&amp;amp;rlz=1I7GGIH_en&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;ei=JLWtSZOHMMi4-Qb8zI3OBg&amp;amp;sa=X&amp;amp;oi=video_result_group&amp;amp;resnum=4&amp;amp;ct=title"&gt;Instructional videos on port forwarding&lt;/a&gt; with a Linksys router.&lt;/p&gt;  &lt;p&gt;Another benefit of this approach is that the traffic between you and the website is not exposed to the guest network which is usually a low security, public network and vulnerable to packet sniffing. The guest network only sees RDP packets being passed between your laptop and your remote machine.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7348821044040551898?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7348821044040551898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7348821044040551898' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7348821044040551898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7348821044040551898'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/tech-tip-set-up-remote-desktop-on-443.html' title='Tech Tip: Set up Remote Desktop on 443 to Get Through a Restrictive Firewall'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3977757762895859042</id><published>2009-03-01T16:42:00.001-06:00</published><updated>2009-03-02T14:35:07.804-06:00</updated><title type='text'>SharePoint and Project Server Download Links</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Common download links for MOSS and Project Server 2007:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Patches     &lt;ul&gt;       &lt;li&gt;SP1         &lt;ul&gt;           &lt;li&gt;WSS 3.0 &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=4191A531-A2E9-45E4-B71E-5B0B17108BD2&amp;amp;displaylang=en"&gt;link&lt;/a&gt;&lt;/li&gt;            &lt;li&gt;Office Servers &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AD59175C-AD6A-4027-8C2F-DB25322F791B&amp;amp;displaylang=en"&gt;link&lt;/a&gt;&lt;/li&gt;            &lt;li&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/03/07/moss-2007-with-sp1-slipstream-officeserverwithsp1-exe-released.aspx"&gt;MOSS with SP1 slipstreamed&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Infrastructure          &lt;ul&gt;           &lt;li&gt;(The infrastructure is now included in the Dec CU, no need to install it separately)&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;December Cumulative Update &lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/12/17/announcing-december-cumulative-update-for-office-sharepoint-server-2007-and-windows-sharepoint-services-3-0.aspx"&gt;description&lt;/a&gt;          &lt;ul&gt;           &lt;li&gt;WSS 3.0 &lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=960010&amp;amp;kbln=en-us#step1"&gt;link&lt;/a&gt;&lt;/li&gt;            &lt;li&gt;SharePoint Server 2007 &lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=960011"&gt;link&lt;/a&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Help: Version numbers lookup &lt;a href="http://www.mindsharpblogs.com/penny/articles/481.aspx"&gt;link&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;Help: Deploy Project Server 2007 Tips &lt;a href="http://technet.microsoft.com/en-us/library/cc197653.aspx"&gt;link&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;Help: Deploy WSS 3.0 Tips &lt;a href="http://technet.microsoft.com/en-us/library/cc288269.aspx"&gt;link&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;Help: Master blog post on SharePoint service packs and updates. &lt;a href="http://technet.microsoft.com/en-us/office/sharepointserver/bb735839.aspx"&gt;link&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I always lose these links, so I’ve decided to maintain a blog post with these common links. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-3977757762895859042?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3977757762895859042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3977757762895859042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3977757762895859042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3977757762895859042'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/03/sharepoint-and-project-server-download.html' title='SharePoint and Project Server Download Links'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-503458842493380435</id><published>2009-02-21T11:17:00.001-06:00</published><updated>2009-02-21T13:07:47.681-06:00</updated><title type='text'>RAM Disks do not speed up Visual Studio</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The limiting factor for Visual Studio is disk IO. I got a tip to speed up Visual Studio from &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/This-Week-on-C9-1-year-anniversary-cake-champagne-and-Scott-Hanselman/"&gt;Channel 9&lt;/a&gt; by creating a RAM disk which sounded like a great idea. However, when I ran a thorough set of tests, I found that the performance difference between the Ram disk and the hard disk were not appreciably different. This was a big surprise since &lt;a href="http://josephfluckiger.blogspot.com/2007/05/computer-speed-statistics.html"&gt;RAM is 240,000 times faster than disk&lt;/a&gt; (see my previous blog post). But the reason is because Visual Studio and Vista do a lot of caching. So compile times for the same project in RAM disk and on hard disk were pretty similar. I also tested the time it took to search the entire solution for a word, and times to open a solution. There was no discernable difference!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you still want to try it out and create your own RAM disk, you can download a simple &lt;a href="http://www.mydigitallife.info/2007/05/27/free-ramdisk-for-windows-vista-xp-2000-and-2003-server/"&gt;RAMDISK.EXE utility&lt;/a&gt; to create a RAM disk in just a few minutes. &lt;strong&gt;What is a RAM Disk ?&lt;/strong&gt;&amp;#160; Ramdisk is a virtual drive created in RAM. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Performance Analysis&lt;/h4&gt;  &lt;p&gt;Creating files was an average of 1.5 times faster on the RAM disk. reading files was pretty much the same between the two disks. Copying a file was actually slightly slower on the RAM disk. All three visual studio tests were pretty much the same between the two.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;What is the downside of a RAM disk?&lt;/h5&gt;  &lt;p&gt;Running drivers always give the chance of a blue-screen, and I did have one blue screen when I was first setting up the RAMDISK. (My guess is that I chose a non-default RAMDISK size at first. I typed in 200 instead of selecting 256 MB.) So save your stuff before you run the setup.&lt;/p&gt;  &lt;p&gt;If your battery falls out or runs out of juice you will loose everything on your RAMDISK, but this rarely happens to my laptop. I always sleep my laptop instead of shutdown, so my data was always there when I woke my laptop up.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Performance Tests&lt;/h5&gt;  &lt;p&gt;So how much faster is a RAM disk than a standard 5,400 laptop hard disk? I used a simple utility &lt;a href="http://www.softpedia.com/progDownload/Disk-Bench-Download-791.html"&gt;DiskBench&lt;/a&gt; to measure disk performance.&amp;#160; The RAM Disk was 1.5 times faster creating files. But very surprisingly, for all other tests, the RAM disk and the hard disk were pretty much the same.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Conclusion&lt;/h5&gt;  &lt;p&gt;Sorry, a RAM disk isn’t going to help you out much. It doesn’t beat the natural caching of Visual Studio and Vista. Stick to the hard disk. Also, the pain of having to constantly copy a VS solution from the hard disk to the RAM disk means that it is definitely more pain than it is worth. Perhaps moving your temporary IE files folder would be a good application since it creates a lot of files.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Raw performance data.&lt;/h5&gt;  &lt;p&gt;Note R is the Ramdisk and C is the hard disk. During my test I tried various file sizes ranging from 50 MB to 180 MB. I performed file creation, file reading, and file writing tests. I ran one test against my C drive and then one test against my R drive (ram disk). I shut down all other programs that could potentially compete for IO.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="420" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="157"&gt;&lt;font color="#808000"&gt;Create File&lt;/font&gt;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="114"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 60 MB&lt;/td&gt;        &lt;td width="46"&gt;272&lt;/td&gt;        &lt;td width="49"&gt;425&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="113"&gt;(milliseconds)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 60 MB&lt;/td&gt;        &lt;td width="46"&gt;273&lt;/td&gt;        &lt;td width="49"&gt;412&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="113"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 60 MB&lt;/td&gt;        &lt;td width="46"&gt;206&lt;/td&gt;        &lt;td width="49"&gt;419&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="112"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;average:&lt;/td&gt;        &lt;td width="46"&gt;250.3&lt;/td&gt;        &lt;td width="49"&gt;418.7&lt;/td&gt;        &lt;td width="52"&gt;1.7&lt;/td&gt;        &lt;td width="112"&gt;times faster&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 180 MB&lt;/td&gt;        &lt;td width="46"&gt;978&lt;/td&gt;        &lt;td width="49"&gt;1345&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="112"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 180 MB&lt;/td&gt;        &lt;td width="46"&gt;870&lt;/td&gt;        &lt;td width="49"&gt;1283&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="111"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 180 MB&lt;/td&gt;        &lt;td width="46"&gt;945&lt;/td&gt;        &lt;td width="49"&gt;1344&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="111"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;average:&lt;/td&gt;        &lt;td width="46"&gt;931.0&lt;/td&gt;        &lt;td width="49"&gt;1324.0&lt;/td&gt;        &lt;td width="52"&gt;1.4&lt;/td&gt;        &lt;td width="111"&gt;times faster&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 192 MB&lt;/td&gt;        &lt;td width="46"&gt;1034&lt;/td&gt;        &lt;td width="49"&gt;1484&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 192 MB&lt;/td&gt;        &lt;td width="46"&gt;1002&lt;/td&gt;        &lt;td width="49"&gt;1427&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create file 192 MB&lt;/td&gt;        &lt;td width="46"&gt;904&lt;/td&gt;        &lt;td width="49"&gt;1334&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;average:&lt;/td&gt;        &lt;td width="46"&gt;980.0&lt;/td&gt;        &lt;td width="49"&gt;1415.0&lt;/td&gt;        &lt;td width="52"&gt;1.4&lt;/td&gt;        &lt;td width="110"&gt;times faster&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;create overall average:&lt;/td&gt;        &lt;td width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="49"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="52"&gt;1.5&lt;/td&gt;        &lt;td width="110"&gt;times faster&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="49"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&lt;font color="#808000"&gt;Read File&lt;/font&gt;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;read file 201 MB&lt;/td&gt;        &lt;td width="46"&gt;255&lt;/td&gt;        &lt;td width="49"&gt;272&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;(milliseconds)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;read file 201 MB&lt;/td&gt;        &lt;td width="46"&gt;269&lt;/td&gt;        &lt;td width="49"&gt;249&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;read file 201 MB&lt;/td&gt;        &lt;td width="46"&gt;268&lt;/td&gt;        &lt;td width="49"&gt;419&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;read overall average:&lt;/td&gt;        &lt;td width="46"&gt;264.0&lt;/td&gt;        &lt;td width="49"&gt;313.3&lt;/td&gt;        &lt;td width="52"&gt;1.2&lt;/td&gt;        &lt;td width="110"&gt;times faster&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="49"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&lt;font color="#808000"&gt;Copy File&lt;/font&gt;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;144&lt;/td&gt;        &lt;td width="49"&gt;143&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;(milliseconds)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;150&lt;/td&gt;        &lt;td width="49"&gt;119&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;169&lt;/td&gt;        &lt;td width="49"&gt;135&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;118&lt;/td&gt;        &lt;td width="49"&gt;121&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;129&lt;/td&gt;        &lt;td width="49"&gt;125&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;117&lt;/td&gt;        &lt;td width="49"&gt;121&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy 50 MB to same dir&lt;/td&gt;        &lt;td width="46"&gt;138&lt;/td&gt;        &lt;td width="49"&gt;121&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;copy overall average:&lt;/td&gt;        &lt;td width="46"&gt;138&lt;/td&gt;        &lt;td width="49"&gt;126.4&lt;/td&gt;        &lt;td width="52"&gt;0.92&lt;/td&gt;        &lt;td width="110"&gt;times faster (slower)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="49"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&lt;strong&gt;&lt;font color="#808000"&gt;Visual Studio Test&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;open solution with 100 files&lt;/td&gt;        &lt;td width="46"&gt;5&lt;/td&gt;        &lt;td width="49"&gt;3&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;(seconds)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;5&lt;/td&gt;        &lt;td width="49"&gt;6&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;average:&lt;/td&gt;        &lt;td width="46"&gt;5&lt;/td&gt;        &lt;td width="49"&gt;4.5&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;(pretty much the same)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="49"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&lt;strong&gt;&lt;font color="#808000"&gt;Find word in VS&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;4&lt;/td&gt;        &lt;td width="49"&gt;4&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;(seconds)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;5&lt;/td&gt;        &lt;td width="49"&gt;5&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;average:&lt;/td&gt;        &lt;td width="46"&gt;4.5&lt;/td&gt;        &lt;td width="49"&gt;4.5&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;(pretty much the same)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="49"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&lt;strong&gt;&lt;font color="#808000"&gt;Run VS project&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="46"&gt;R:&lt;/td&gt;        &lt;td width="49"&gt;C:&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;5&lt;/td&gt;        &lt;td width="49"&gt;6&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="46"&gt;7&lt;/td&gt;        &lt;td width="49"&gt;5&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="110"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="157"&gt;average:&lt;/td&gt;        &lt;td width="46"&gt;6&lt;/td&gt;        &lt;td width="49"&gt;5.5&lt;/td&gt;        &lt;td width="52"&gt;&amp;#160;&lt;/td&gt;        &lt;td width="111"&gt;(pretty much the same)&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-503458842493380435?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/503458842493380435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=503458842493380435' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/503458842493380435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/503458842493380435'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/02/speed-up-visual-studio-with-ram-disk.html' title='RAM Disks do not speed up Visual Studio'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2212177137785614306</id><published>2009-02-12T21:22:00.001-06:00</published><updated>2009-02-12T21:22:40.896-06:00</updated><title type='text'>Highpoint Games</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;My friend has just started his own board game company, and has released his first game “Greedy Greedy”. &lt;a href="http://www.highpointgames.com"&gt;www.highpointgames.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Check it out, this is a game that we had a lot of fun playing many times while in Florida.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2212177137785614306?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2212177137785614306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2212177137785614306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2212177137785614306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2212177137785614306'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/02/highpoint-games.html' title='Highpoint Games'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-8568814116311386286</id><published>2009-01-30T07:21:00.001-06:00</published><updated>2009-01-30T07:21:26.824-06:00</updated><title type='text'>SUSHI Version 3.4 Released</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/sushi/Release/ProjectReleases.aspx?ReleaseId=22248"&gt;SUSHI Version 3.4&lt;/a&gt; includes the following improvements:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Important Improvement&lt;/b&gt;: Security Report: The logic for looking up Active Directory Groups that a User is a member of has been improved so that users with read-only privileges to Active Directory can successfully query group membership. &lt;/li&gt;    &lt;li&gt;Delete old documents: This feature is now asynchronous and includes a cancel so that the action can be canceled after it has started but before it is finished. This is useful when archiving a large number of documents. &lt;/li&gt;    &lt;li&gt;Bulk List Creation: Tips for bulk deleting lists and renaming list URLs added. &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-8568814116311386286?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/8568814116311386286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=8568814116311386286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8568814116311386286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8568814116311386286'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/01/sushi-version-34-released.html' title='SUSHI Version 3.4 Released'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6215774198806600626</id><published>2009-01-30T07:18:00.001-06:00</published><updated>2009-01-30T07:18:32.836-06:00</updated><title type='text'>Check for Memory Leaks in your SharePoint API Code</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Microsoft has just released a &lt;a href="http://blogs.msdn.com/pandrew/archive/2009/01/29/spdisposecheck-v1-3-1-is-released.aspx"&gt;memory leak checker for SharePoint code&lt;/a&gt;. Not sure if all your SPWeb and SPSite objects have been properly disposed? Use this tool to discover which lines of your code are not properly disposing of those objects. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Each SPWeb and SPSite object takes 1-2 megs of unmanaged memory. So no properly disposing of them causes major memory leaks. However, (this is important) if you dispose of a SPSite object that you get from SPContext.Current, you will crash your SharePoint site. So having a tool that you can run to definitively determine if your production code is good, is a big help.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-Joseph&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6215774198806600626?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6215774198806600626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6215774198806600626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6215774198806600626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6215774198806600626'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/01/check-for-memory-leaks-in-your.html' title='Check for Memory Leaks in your SharePoint API Code'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-9081816037232585537</id><published>2009-01-24T09:51:00.001-06:00</published><updated>2009-01-24T09:54:12.066-06:00</updated><title type='text'>SharePoint SUSHI Version 3.3 Released</title><content type='html'>&lt;p&gt;I am pleased to announce the release of &lt;a href="http://www.codeplex.com/sushi/Release/ProjectReleases.aspx?ReleaseId=21182"&gt;SUSHI, version 3.3&lt;/a&gt;.&amp;#160; About &lt;a href="http://www.codeplex.com/sushi"&gt;SharePoint SUSHI.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/sushi/Release/ProjectReleases.aspx?ReleaseId=21182"&gt;&lt;img alt="sushi_homepage4.png" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=sushi&amp;amp;DownloadId=56139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;New Features, Improvements and Bug Fixes &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Delete old documents: Copy documents older than a specified date to an archive folder and then delete them from SharePoint.&lt;/li&gt;    &lt;li&gt;Security Report: User can type and also select from the list. As the user types, the name of the SharePoint User is found. &lt;/li&gt;    &lt;li&gt;Awesome new screenshot on the Codeplex SUSHI home page. :) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I would like to thank the community for all the great feedback. I am working to incorporate your ideas as quickly as possible. Knowing which features you are using is helpful to know which features to prioritize.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thank you to all who have donated to SUSHI. This is always a very big help. You are welcome to &lt;a href="http://www.codeplex.com/sushi/Wiki/View.aspx?title=donate"&gt;make a small donation to SUSHI&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-Joseph Fluckiger&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-9081816037232585537?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/9081816037232585537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=9081816037232585537' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9081816037232585537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9081816037232585537'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/01/sushi-version-33-released.html' title='SharePoint SUSHI Version 3.3 Released'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-45871717233143224</id><published>2009-01-24T08:41:00.001-06:00</published><updated>2009-01-24T20:08:16.471-06:00</updated><title type='text'>Scripted SharePoint Install</title><content type='html'>&lt;p&gt;Doing a scripted install of MOSS can save a lot of time, and can also ensure that your installs are consistent.&lt;/p&gt;  &lt;p&gt;Below is a sample scripted install of MOSS. (I have changed sensitive information like passwords, emails and URLS.)&lt;/p&gt;  &lt;p&gt;I have found that it works best to execute these commands one at a time, rather than as a single script. If you are unlike me and never make mistakes, then feel free to run them all at once. Another added benefit is that this provides very nice documentation of your install for future posterity. And for someone who understands windows scripts can teach quite effectively what it takes to install MOSS, surely much more effectively than the beastly 30 page install instructions on MSDN.&lt;/p&gt;  &lt;p&gt;One of my favorite benefits of a scripted install is that you can choose a name for the Central admin content database instead of getting stuck with the ugly content database name the includes a Guid. Some of the setproperty statements at the end are optional, but they give you an idea of how you can customize this script to make sure the same policies are applied across environments.&lt;/p&gt;  &lt;p&gt;Credit for these scripts go to &lt;a href="http://mindsharpblogs.com/ben/archive/2008/08/23/7737.aspx"&gt;Ben Curry&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;------------------------------ &lt;/p&gt;  &lt;p&gt;@echo off    &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;REM // script farm -- creating dbs and setting sites /     &lt;br /&gt;REM //&amp;#160; sharepoint farm.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /     &lt;br /&gt;REM ////////////////////////////////////////////////// &lt;/p&gt;  &lt;p&gt;REM //////////////////////////////////////////////////    &lt;br /&gt;REM // applications     &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;set s=&amp;quot;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe&amp;quot;     &lt;br /&gt;set ps=&amp;quot;c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe&amp;quot; &lt;/p&gt;  &lt;p&gt;REM //////////////////////////////////////////////////    &lt;br /&gt;REM // your enterprise SQL server     &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;set sql=TOPDEV &lt;/p&gt;  &lt;p&gt;REM //////////////////////////////////////////////////    &lt;br /&gt;REM // account vars     &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;set mossfarm=dev\mossfarm     &lt;br /&gt;set mosscrawler=dev\mosscrawler     &lt;br /&gt;set sspapid=dev\mosswebapp     &lt;br /&gt;set myapid=dev\mosswebapp     &lt;br /&gt;set sspservice=dev\mossfarm     &lt;br /&gt;set portalapid=dev\mosswebapp     &lt;br /&gt;set mossservice=dev\mossfarm &lt;/p&gt;  &lt;p&gt;REM //////////////////////////////////////////////////    &lt;br /&gt;REM // password     &lt;br /&gt;REM //&amp;#160;&amp;#160; NOTE:if using a % sign in password you must     &lt;br /&gt;REM //&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; escape it with a % sign 'iuyOP%%$#@!11'     &lt;br /&gt;REM //&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; is interpreted as 'iuyOP%$#@!11'     &lt;br /&gt;REM //&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;set p=MyPasswordIsSomething &lt;/p&gt;  &lt;p&gt;REM //////////////////////////////////////////////////    &lt;br /&gt;REM // additional settings     &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;set sspportalurl=&lt;a href="http://ssp.catapultdemo.com:81"&gt;http://ssp.catapultdemo.com:81&lt;/a&gt;     &lt;br /&gt;set mysiteurl=&lt;a href="http://my.catapultdemo.com:81"&gt;http://my.catapultdemo.com:81&lt;/a&gt;     &lt;br /&gt;set portalurl=&lt;a href="http://catapultdemo.com:81"&gt;http://catapultdemo.com:81&lt;/a&gt;     &lt;br /&gt;set owneremail=&amp;quot;joseph at email.com&amp;quot;     &lt;br /&gt;set ownername=&amp;quot;Joseph Fluckiger&amp;quot;     &lt;br /&gt;set ownerlogin=&amp;quot;dev\josephf&amp;quot; &lt;/p&gt;  &lt;p&gt;REM //////////////////////////////////////////////////    &lt;br /&gt;REM // start work here     &lt;br /&gt;REM ////////////////////////////////////////////////// &lt;/p&gt;  &lt;p&gt;GOTO CURRENTSPOT    &lt;br /&gt;:CURRENTSPOT &lt;/p&gt;  &lt;p&gt;Echo ===============================    &lt;br /&gt;Echo == Creating Farm     &lt;br /&gt;Echo ===============================     &lt;br /&gt;:: Creating Farm via populating the ConfigDB. Set SQL Servername, configDB name, Central Admin ContentDB, and Farm Account.     &lt;br /&gt;@pause     &lt;br /&gt;%ps% -cmd configdb -create -server %sql% -database SharePoint_Config_TOPDEV -user %mossfarm% -password %p% -admincontentdatabase SharePoint_Content_CentralAdmin     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Provision Central Admin     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Provision Central Admin Application on this server. Uses configDB and ContentDB above. Set port number to suit your requirements.     &lt;br /&gt;@pause     &lt;br /&gt;%ps%&amp;#160; -cmd adminvs -provision -port 5000 -windowsauthprovider onlyusentlm     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Install all Services     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Install all services on machine     &lt;br /&gt;@pause     &lt;br /&gt;%ps% -cmd services install     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Securing File System and Registry Keys     &lt;br /&gt;Echo ======================     &lt;br /&gt;:: Set Security on File System and Registry Keys     &lt;br /&gt;@pause     &lt;br /&gt;%ps% -cmd secureresources     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Starting MOSS Search     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Start SharePoint Server Search Service.Verify database and services names. Change role to Index, Query, or IndexQuery, depending on your farm topology.     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o osearch -action start -role Indexquery -farmcontactemail %owneremail% -farmperformancelevel PartlyReduced -farmserviceaccount %mossservice% -farmservicepassword %p%     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Starting WSS Search     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Start WSS Search. Verify database and service names.     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o spsearch -action start -farmserviceaccount %mossservice% -farmservicepassword %p% -farmcontentaccessaccount %mosscrawler% -farmcontentaccesspassword %p% -databaseserver %sql% -databasename SharePoint_WSS_Search     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Installing all Features     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Install all features on machine     &lt;br /&gt;@pause     &lt;br /&gt;%ps% -cmd installfeatures     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Creating My Sites Web     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Create My Site Web application. Verify database name and administrator's names.     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o extendvs -url %mysiteurl% -ownerlogin &amp;quot;%mossfarm%&amp;quot; -owneremail %owneremail% -exclusivelyusentlm -ownername &amp;quot;mossAdmin&amp;quot; -databaseserver %sql% -databasename SharePoint_Content_MySite -sitetemplate spsmsitehost -description &amp;quot;My Site Host&amp;quot; -sethostheader -apidname MySiteAppPool -apidtype configurableid -apidlogin %myapid% -apidpwd %p%     &lt;br /&gt;iisreset     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Enabling Self Service Site Management for %mysiteurl%     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Enable Self Service Site Management (Creation) on %mysiteurl%     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o enablessc -url %mysiteurl%     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Creating SSP Web     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Create SSP Web application. Verify database and apid names. (APID = Application Pool Identity)     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o extendvs -url %sspportalurl% -exclusivelyusentlm -databaseserver %sql% -databasename SharePoint_Content_SSP -donotcreatesite -description &amp;quot;SSP Admin Host&amp;quot; -sethostheader -apidname &amp;quot;SSP1&amp;quot; -apidtype configurableid -apidlogin %sspapid% -apidpwd %p%     &lt;br /&gt;::&amp;#160; We must reset IIS before building the SSP. If you are local on the box, you can check all services are created before creating SSP.     &lt;br /&gt;iisreset     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Creating SSP     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Create SSP. Verify all names and URLs.     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o createssp -title &amp;quot;SSP1&amp;quot; -url %sspportalurl% -mysiteurl %mysiteurl% -ssplogin %sspservice% -indexserver topdev -indexlocation &amp;quot;C:\Program Files\Microsoft Office Servers\12.0\Indexes&amp;quot; -ssppassword %p% -sspdatabaseserver %sql% -sspdatabasename SharePoint_SSP1_Config -searchdatabaseserver %sql% -searchdatabasename SharePoint_SSP1_Search -ssl no     &lt;br /&gt;Echo ======================     &lt;br /&gt;Echo Creating Portal     &lt;br /&gt;Echo ======================     &lt;br /&gt;::&amp;#160; Creating Portal.     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o extendvs -url %portalurl% -ownerlogin %ownerlogin% -owneremail %owneremail% -ownername %ownername% -exclusivelyusentlm -databaseserver %sql% -databasename SharePoint_Content_catapultdemo -sitetemplate STS#1 -description &amp;quot;Catapult Demo Portal&amp;quot; -sethostheader -apidname &amp;quot;MossWebAppPool&amp;quot; -apidtype configurableid -apidlogin %portalapid% -apidpwd %p%     &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;REM // POST BUILD     &lt;br /&gt;REM //////////////////////////////////////////////////     &lt;br /&gt;Echo ========================     &lt;br /&gt;Echo Modifying Logging level     &lt;br /&gt;Echo and Outbound Smtp     &lt;br /&gt;Echo ================calling setlogs.cmd====see premium content for xlsx source file=======     &lt;br /&gt;REM&amp;#160; or just set the logging levels in this script     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o setlogginglevel -category general -tracelevel unexpected -windowslogginglevel error     &lt;br /&gt;%s% -o email -outsmtpserver topdev -fromaddress %owneremail% -replytoaddress %owneremail% -codepage 65001 &lt;/p&gt;  &lt;p&gt;Echo ========================    &lt;br /&gt;Echo Setting Application Settings     &lt;br /&gt;Echo Setting Recycle Bin Settings     &lt;br /&gt;Echo ========================     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o setproperty -pn recycle-bin-enabled -pv yes -url %portalurl%     &lt;br /&gt;%s% -o setproperty -pn recycle-bin-enabled -pv yes -url %mysiteurl%     &lt;br /&gt;%s% -o setproperty -pn recycle-bin-retention-period -pv 180 -url %portalurl%     &lt;br /&gt;%s% -o setproperty -pn recycle-bin-retention-period -pv 180 -url %mysiteurl%     &lt;br /&gt;%s% -o setproperty -pn second-stage-recycle-bin-quota -pv 20 -url %portalurl%     &lt;br /&gt;%s% -o setproperty -pn second-stage-recycle-bin-quota -pv 20 -url %mysiteurl% &lt;/p&gt;  &lt;p&gt;Echo ========================    &lt;br /&gt;Echo Setting Maximum Upload     &lt;br /&gt;Echo File Size     &lt;br /&gt;Echo ========================     &lt;br /&gt;@pause     &lt;br /&gt;%s% -o setproperty -pn max-file-post-size -pv 200 -url %portalurl%     &lt;br /&gt;%s% -o setproperty -pn max-file-post-size -pv 200 -url %mysiteurl%&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-45871717233143224?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/45871717233143224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=45871717233143224' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/45871717233143224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/45871717233143224'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2009/01/scripted-sharepoint-install.html' title='Scripted SharePoint Install'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7228136558123234051</id><published>2008-11-01T21:31:00.002-05:00</published><updated>2008-11-01T21:32:12.761-05:00</updated><title type='text'>SharePoint SUSHI version 3.1 released</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After a long delay, a new release of SUSHI has been published. This version includes the following:&lt;/p&gt;  &lt;h5&gt;Improvements &lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Improved &amp;quot;Select A Site&amp;quot; functionality. &lt;/li&gt;    &lt;li&gt;Updated Documentation. &lt;/li&gt;    &lt;li&gt;Bulk List creation updated. &lt;/li&gt;    &lt;li&gt;Profile picture import feature improved. &lt;/li&gt;    &lt;li&gt;Bulk site creation includes both user site templates and system site templates. &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Stable Release &lt;/h5&gt; This release has been tested in multiple SharePoint environments and used in many production environments as well. Stability and Security are SUSHI's highest priorities.  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Future Releases&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I already have another release with some nice graphics improvements which improve the look and user experience of SUSHI. I have enlisted a couple programmers to help with testing, and graphics work. The are quite helpful and good to work with so hopefully we can make SUSHI even better. I have lots of ideas but just not enough hours in the day to turn all my ideas into reality. I'd love to improve the backup/restore (I haven't touched that in about a year. I'd like to improve the security reports and add a few new security reports.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Statistics&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SharePoint SUSHI has been &lt;a href="http://www.codeplex.com/sushi/stats"&gt;downloaded 8,500 times!&lt;/a&gt;&amp;#160; Not bad, I never thought SUSHI would be so popular. But I find myself using it often so I guess the thousands of other SharePoint administrators out there are using it as well.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7228136558123234051?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7228136558123234051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7228136558123234051' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7228136558123234051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7228136558123234051'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/11/sharepoint-sushi-version-31-released.html' title='SharePoint SUSHI version 3.1 released'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1347582730340720988</id><published>2008-08-14T12:48:00.001-05:00</published><updated>2008-10-29T13:18:57.030-05:00</updated><title type='text'>Naming a SharePoint Site</title><content type='html'>&lt;p&gt;A few thoughts on picking a URL name for the a SharePoint Intranet site: The URL name is one of the most central branding pieces of the site. From my experience, this is a tough decision for organizations because a corporate Intranet is so many things and (will become many things that are not even conceived yet). Nevertheless, it is an very important one and one that needs to be made at the beginning of the Intranet build. &lt;/p&gt;  &lt;p&gt;- The URL name needs to be easy to remember, be consistent with company branding, represent the content it delivers but also not be so specific that it can&amp;#8217;t be flexible and grow and deliver new functionality. &lt;/p&gt;  &lt;p&gt;- I would not vote for the name &amp;#8220;sharepoint.mycompany.com&amp;#8221; because users shouldn&amp;#8217;t have to care what technology is being used to deliver functionality. We aren&amp;#8217;t selling sharepoint to employees. We&amp;#160; are delivering company content and the company brand to employees.&lt;/p&gt;  &lt;p&gt;- Many companies use their company name along with a generic word like &amp;#8220;web&amp;#8221; or &amp;#8220;net&amp;#8221;. This is because the name should represent the company, and the content it contains, but also be general enough so that you can add content to it in the future that is still described by the URL name. For example Microsoft uses &amp;#8220;&lt;a href="http://msweb"&gt;http://msweb&lt;/a&gt;&amp;#8221;.&lt;/p&gt;  &lt;p&gt;Here is what some other companies are naming their Corporate Intranets. Some of these are projects I&amp;#8217;ve worked on, and some are from research:&lt;/p&gt;  &lt;p&gt;Microsoft uses&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msweb"&gt;http://msweb&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Home Security Company uses&lt;/p&gt;  &lt;p&gt;&lt;a href="http://compannamenet"&gt;http://compannamenet&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;McKinney ISD uses &lt;/p&gt;  &lt;p&gt;&lt;a href="http://moss.mckinneyisd.net"&gt;http://moss.mckinneyisd.net&lt;/a&gt; (I think this is a bad name, it was decided on in a hurry)&lt;/p&gt;  &lt;p&gt;DELL:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://inside.dell.com"&gt;http://inside.dell.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bank ONE&lt;/p&gt;  &lt;p&gt;&lt;a href="http://intranet.bankone.com"&gt;http://intranet.bankone.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Yahoo&lt;/p&gt;  &lt;p&gt;&lt;a href="http://backyard.yahoo.com"&gt;http://backyard.yahoo.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sprint &lt;/p&gt;  &lt;p&gt;&lt;a href="http://iconnect"&gt;Http://iconnect&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Catapult:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://home.companydomain.com"&gt;http://home.companydomain.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On other projects where I haven&amp;#8217;t pressed my client to come up with a good URL name for their Intranet, we end up using a name that no one likes and then we get stuck with it. Note it is relatively technologically simple to change the URL name (DNS entry change and a SharePoint setting), but it is difficult to change user habits once a name has been chosen.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1347582730340720988?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1347582730340720988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1347582730340720988' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1347582730340720988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1347582730340720988'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/08/naming-sharepoint-site.html' title='Naming a SharePoint Site'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6273318076302143908</id><published>2008-07-19T10:15:00.001-05:00</published><updated>2008-07-19T10:15:54.390-05:00</updated><title type='text'>ISO extraction utility</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I just found this great lightweight &lt;a href="http://www.extractnow.com/"&gt;ISO extraction utility&lt;/a&gt;. I don't need anything fancy, just something to read the ISO. I need:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;reliably extract an ISO image&lt;/li&gt;    &lt;li&gt;lightweight /fast install&lt;/li&gt;    &lt;li&gt;free&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I've found the tool I've been looking for. So cool. Find out more and download here: &lt;a href="http://www.extractnow.com/"&gt;Extract Now&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;-Joseph &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6273318076302143908?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6273318076302143908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6273318076302143908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6273318076302143908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6273318076302143908'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/07/great-iso-extraction-utility.html' title='ISO extraction utility'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2889511806639991484</id><published>2008-05-14T09:36:00.001-05:00</published><updated>2008-05-14T10:48:22.625-05:00</updated><title type='text'>Cool new idea for SharePoint Development</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I am a big fan of the SharePoint API and I was thrilled to see this MSDN article suggesting many great uses of the SharePoint API that you might not have thought about:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc507633.aspx"&gt;May 2008 MSDN magazine article on MOSS&lt;/a&gt; is a &lt;b&gt;must read &lt;/b&gt;for SharePoint developers. It summarizes all the options, and also has a really innovative and I think great way to roll out changes to multiple environments and that is to &amp;#8220;script&amp;#8221; those changes using the SharePoint API in a console app, and run it in both dev, staging and production. SharePoint API requires just a few lines of code for most tasks and is easy to log, debug etc. You can do almost everything with the API: site navigation changes, webpart customizations, Web.config changes, create web app, create site, create list, create a publishing page from a layout. The one thing you can&amp;#8217;t do with the API, is create site and list definitions.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Comments on Site Templates vs. Site Definitions:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Using Site Templates has performance costs as SharePoint stores the parent list definition on disk and all variances in the content DB. Also if you have data in your list, it is lost or has to be migrated to the new list that you create from the template. With Site Definitions you can make changes to multiple sites or lists without loosing data. The only good thing about Site Templates is they are very easy and require no coding.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There are &lt;i&gt;list definitions &lt;/i&gt;and&lt;i&gt; site definitions&lt;/i&gt; and this is the Microsoft recommended approach because you can roll these out as features and they perform well because they live on the Web Front End file system. And most importantly you can roll out changes to a list or site without losing the data in existing sites and lists. Good article on &lt;a href="http://dotnet.sys-con.com/read/48162.htm"&gt;Creating custom site and list definitions&lt;/a&gt;. &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3E1DCCCD-1CCA-433A-BB4D-97B96BF7AB63&amp;amp;displaylang=en"&gt;MS tool to make it easier&lt;/a&gt;. (Unfortunately this tool from Microsoft is not supported on VS 2008 until June, so you'll have to use VS 2005.)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-Joseph&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2889511806639991484?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2889511806639991484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2889511806639991484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2889511806639991484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2889511806639991484'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/05/cool-new-idea-for-sharepoint.html' title='Cool new idea for SharePoint Development'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3482619499269874108</id><published>2008-04-28T18:55:00.001-05:00</published><updated>2008-04-28T18:55:28.906-05:00</updated><title type='text'>Extensions for stsadm.exe</title><content type='html'>&lt;p&gt;Thanks to Peter Brunone for this post. Peter pointed out that you can extend SharePoint stsadm.exe command line tool and that there are lots of free extensions already out there to download, plug and play.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Peter writes:&lt;/p&gt;  &lt;p&gt;&amp;quot;I just came across this concept and was floored by it (maybe I&amp;#8217;m just a pushover).&amp;#160; With a strong-named assembly and an XML file for description, you can add your own operations to the STSADM utility.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sharepointsolutions.blogspot.com/2006/09/extending-stsadmexe-with-custom.html"&gt;http://sharepointsolutions.blogspot.com/2006/09/extending-stsadmexe-with-custom.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Gary Lapointe has a few too many (you can download his 100-command extension from the blog):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://stsadm.blogspot.com/"&gt;http://stsadm.blogspot.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That&amp;#8217;s all. &amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Good tip!&lt;/p&gt;  &lt;p&gt;-Joseph Fluckiger&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-3482619499269874108?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3482619499269874108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3482619499269874108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3482619499269874108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3482619499269874108'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/04/extensions-for-stsadmexe.html' title='Extensions for stsadm.exe'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1562898406656091269</id><published>2008-03-24T14:01:00.001-05:00</published><updated>2008-03-25T09:47:27.589-05:00</updated><title type='text'>Coveo Search vs. Ontolica Search for SharePoint</title><content type='html'>&lt;ul&gt;   &lt;p&gt;Coveo vs. Ontolica.&lt;/p&gt;    &lt;p&gt;Search is very important part of a corporate Intranet portal or Internet site. Choosing the right search engine is critical, but can also be a difficult process because the most important questions like &amp;quot;is this search engine scalable, reliable and secure&amp;quot; take the longest to answer. I've worked with two of the more popular search engines for SharePoint over the past 6 months and have gathered enough data on the two to make some valuable, well-tested observations. Below I will compare Coveo and Ontolica. &lt;/p&gt;    &lt;li&gt;Both Ontolica and Coveo are very good products. I have really been impressed with both. They offer fantastic, have-to-have features over out-of-the-box SharePoint. After you have used either Ontolica or Coveo, you will not want to go back to native SharePoint Search. &lt;/li&gt;    &lt;li&gt;About Ontolica      &lt;ul&gt;       &lt;li&gt;Ontolica uses the SharePoint native search engine. Note that the native SharePoint search engine is included with the purchase of WSS 3.0 and MOSS. &lt;/li&gt;        &lt;li&gt;Ontolica is installed as 4 SharePoint features and is administered through SharePoint application pages &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;About Coveo      &lt;ul&gt;       &lt;li&gt;Coveo has its own search index engine, and its own administrative interface. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Cost estimate for Ontolica:      &lt;ul&gt;       &lt;li&gt;Costs about $9,000 per production WFE (Web Front End) and an additional $4,500 for all development environments. So for example if you have a production farm with 2 WFE and a staging and a development environment and a VPC on your laptop, the cost would be 9k+9k + 4k = ~$20k. &lt;/li&gt;        &lt;li&gt;Coveo offers two trial license options: either 1) you can have only two uses access the search index at a time and the license does not expire, or 2)you can have unlimited users use Ontolica for a limit of 30 days. Not that it is easy to add or remove a license without having to reinstall Ontolica. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Cost estimate for Coveo      &lt;ul&gt;       &lt;li&gt;Coveo licenses based on total documents indexed. They have a 100k document license, a 10k document license, 1M license etc. For example, a 100k document license is about $12k cost for the primary indexer which would run on the first WFE and the cost for a mirror is 60% of the primary indexer which would run on the 2nd WFE = $7k in our example. Development environment costs %50 of primary indexer = $6. $12k + $7k + $6k = ~$25k. This includes an annual support license. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Index browser      &lt;ul&gt;       &lt;li&gt;Coveo comes with an index browser, Ontolica does not have an index browser. &lt;/li&gt;        &lt;li&gt;This is quite significant because it allows you to see what is in the index. It helps for troubleshooting and development purposes. &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Customer Support      &lt;ul&gt;       &lt;li&gt;Customer support for Coveo is very responsive. They send you a livemeeting link and stay on the phone until the issue is resolved. I called support at least 15 times over the past two months, and they were very helpful each time. I actually have the direct phone number to the support rep that I use most frequently. Also, emails are acknowledged immediately and most often responded to within a few hours. &lt;/li&gt;        &lt;li&gt;Ontolica support was slow to get back to me. When you call, you only get a receptionist. (granted my client had not purchased the product yet so the experience may be different after you have purchased the product and have a support license) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Administration interface      &lt;ul&gt;       &lt;li&gt;Coveo has a rich administration and configuration interface, with more options and quick, responsive navigation. It does take some getting used to, and is a lot to learn, but when you have learned it, it is very powerful and much more logical layout than MOSS native Search, in my opinion. &lt;/li&gt;        &lt;li&gt;Ontolica uses the SharePoint infrastructure for its admin interface so if you are used to this interface, you will feel comfortable with the admin and configuration Ontolica interfaces. But there are fewer options available to you. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Search Results interface.      &lt;ul&gt;       &lt;li&gt;The single most important feature of both Ontolica and Coveo is results filtering. These allow the user to further filter results with a few single clicks. It also gives some great information about the result set by grouping results into categories like document Type, Author, SharePoint site, and displaying how many documents are in each group. (see screenshot) &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;Screenshot of Coveo search result filtering user interface:&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://lh5.google.com/jfluckiger/R-f6TwXGq3I/AAAAAAAADY4/E6u2UcIb_e0/clip_image002%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="clip_image002[4]" src="http://lh4.google.com/jfluckiger/R-f6UgXGq4I/AAAAAAAADZA/2w8Yf2A-ZVk/clip_image002%5B4%5D_thumb.png" width="146" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;Screenshot of Ontolica search result filtering:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://lh5.google.com/jfluckiger/R-f6UwXGq5I/AAAAAAAADZI/oO9JANHo2kg/clip_image003%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="clip_image003[4]" src="http://lh3.google.com/jfluckiger/R-f6VQXGq6I/AAAAAAAADZQ/cPsXUOKZ1dY/clip_image003%5B4%5D_thumb.png" width="170" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;Coveo uses a nice Ajax interface which searches as you type. This provides a superior user experience. Instead of having to press enter to navigate to the results page, the user is able to see the results in a dropdown and click directly to the result. &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh4.google.com/jfluckiger/R-f6VgXGq7I/AAAAAAAADZY/sE_HRcyETmg/clip_image004%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="147" alt="clip_image004[4]" src="http://lh6.google.com/jfluckiger/R-f6WAXGq8I/AAAAAAAADZg/YwYwIOriXRs/clip_image004%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Security Trimming:      &lt;p&gt;○ both Ontolica and Coveo do security trimming. (not showing results for documents and items you don't have permissions to view.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Transferring settings from one SharePoint environment to another      &lt;ul&gt;       &lt;li&gt;For Coveo there is a single config.txt file which holds all configuration settings. So moving settings from Dev to Stage to Prod is simply a matter of copying that file from one environment to another. &lt;/li&gt;        &lt;li&gt;With Ontolica you have settings both MOSS search configuration and in Ontolica search configuration. If you backup a content database from dev to another environment, Ontolica configuration will be included, but MOSS search configuration (managed properties for example) will not be included and Microsoft does not provide a good tool that I know of to move those settings between environments, although there are some tools on codeplex.com that do this. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Index Crawler Performance:      &lt;ul&gt;       &lt;li&gt;Ontolica and MOSS native search have supported 64 bit platform since RTM of MOSS 2007. &lt;/li&gt;        &lt;li&gt;Coveo crawler is faster than Ontolica crawler, as of version 5.1.2960 Coveo supports the 64 bit platform. &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;- Results Settings &lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;Coveo offers many more settings for results customization without having to write code          &lt;ul&gt;           &lt;li&gt;Options include turning off the advanced search panel, highlighting the title, displaying or hiding RSS feeds, etc. &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;&lt;a href="http://lh5.google.com/jfluckiger/R-f6WwXGq9I/AAAAAAAADZo/J83_51H8JiA/clip_image005%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="187" alt="clip_image005[4]" src="http://lh3.google.com/jfluckiger/R-f6XQXGq-I/AAAAAAAADZw/U_TWIOiNyjI/clip_image005%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Results presentation - Complete Customization of      &lt;ul&gt;       &lt;li&gt;Ontolica: XSLT results customization          &lt;ul&gt;           &lt;li&gt;Ontolica uses XSTL templates to control how results are displayed. If you do not have remote desktop access to the Web Front end servers, then Ontolica is probably the choice for you because all you need is a web browser to customize the display format of search results. There is one Ontolica Styles library per site collection. &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;Screenshot of Ontolica Styles Library. This library contains XSLT templates which you can use to affect how search results are displayed.&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://lh5.google.com/jfluckiger/R-f6XwXGq_I/AAAAAAAADZ4/m5yjMGmtHik/clip_image006%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="214" alt="clip_image006[4]" src="http://lh4.google.com/jfluckiger/R-f6YgXGrAI/AAAAAAAADaA/hEkfmHnBYlg/clip_image006%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Coveo: custom ASCX files          &lt;ul&gt;           &lt;li&gt;Coveo uses custom ascx files (asp.net user controls) to allow you to customize search results. &lt;/li&gt;            &lt;li&gt;Ultimately this ASCX technique will be more powerful for customizing search results because you can do server side scripting as well as client side scripting. &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;If you are more comfortable with ASP.NET development than with XSLT development, Coveo may be your best choice. &lt;/li&gt;        &lt;li&gt;Note that with Coveo you need to have remote desktop access to the box to add an ascx file. But once that file is uploaded, it is available to all SharePoint sites in the Farm. &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://lh6.google.com/jfluckiger/R-f6ZAXGrBI/AAAAAAAADaI/OQhVh2OkwNo/clip_image007%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="190" alt="clip_image007[4]" src="http://lh3.google.com/jfluckiger/R-f6ZQXGrCI/AAAAAAAADaQ/eXAG3LiPeEg/clip_image007%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;User interface for search results.      &lt;ul&gt;       &lt;li&gt;Both Coveo and Ontolica have an clean results page. However, the Coveo search results returns a larger set of metadata and the layout is cleaner. The coveo results also display how many of each item per result group are contained in the result set. &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;Coveo results:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://lh6.google.com/jfluckiger/R-f6aAXGrDI/AAAAAAAADaY/gi-n9i7b88Y/clip_image008%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="151" alt="clip_image008[4]" src="http://lh5.google.com/jfluckiger/R-f6awXGrEI/AAAAAAAADag/fDAnGpXtGsg/clip_image008%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Ontolica results:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://lh3.google.com/jfluckiger/R-f6bQXGrFI/AAAAAAAADao/SQpz-3QoXOE/clip_image009%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="155" alt="clip_image009[4]" src="http://lh5.google.com/jfluckiger/R-f6bwXGrGI/AAAAAAAADaw/PC5wB4opc10/clip_image009%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Managed Properties      &lt;ul&gt;       &lt;li&gt;Setting up managed properties is easier in Coveo than in MOSS/Ontolica Search. For example, you have to scroll though many pages to get to the managed property in MOSS, which is inconvenient. MOSS does have a &amp;quot;search crawled properties&amp;quot; which is helpful, but there is no &amp;quot;search managed properties&amp;quot;. &lt;/li&gt;        &lt;li&gt;Also in MOSS/Ontolica, you have to set up the properties in two places: once as a managed property in MOSS, and once in Ontolica. &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;Setting up properties in Coveo:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://lh3.google.com/jfluckiger/R-f6cQXGrHI/AAAAAAAADa4/72O1MKY99zE/clip_image010%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="188" alt="clip_image010[4]" src="http://lh4.google.com/jfluckiger/R-f6cgXGrII/AAAAAAAADbA/cCfVWxwAACo/clip_image010%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Setting up properties in MOSS/Ontolica:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://lh6.google.com/jfluckiger/R-f6dAXGrJI/AAAAAAAADbI/C6QNfBYQmaE/clip_image011%5B4%5D%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="105" alt="clip_image011[4]" src="http://lh4.google.com/jfluckiger/R-f6dgXGrKI/AAAAAAAADbQ/cMTWiSN92UQ/clip_image011%5B4%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Troubleshooting tools      &lt;ul&gt;       &lt;li&gt;The Coveo console is a nice real-time peek at what the index is doing. It allows you to view the indexer as it crawls and if any errors occur, you can see in real time what is going on. &lt;/li&gt;        &lt;li&gt;MOSS/Ontolica view of current progress. Very bare bones. It only tells you the status of the crawler, and does not update real time. &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;&lt;a href="http://lh6.google.com/jfluckiger/R-f6eAXGrLI/AAAAAAAADbY/C41eBnYzfeA/clip_image012%5B3%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="66" alt="clip_image012" src="http://lh3.google.com/jfluckiger/R-f6eQXGrMI/AAAAAAAADbg/dK4ztTLvUEM/clip_image012_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Scopes      &lt;ul&gt;       &lt;li&gt;Controlling and building Scopes is easier in Coveo. Moving between screens is faster, &lt;/li&gt;        &lt;li&gt;MOSS prohibits two different content sources from pointing to the same URL. This is inconvenient for search engine tuning and testing when you want to index a subset of information (for example a particular document library) In MOSS because of this limitation you are forced to redraw the entire site collection each time you make a change instead of being able to crawl just the library you are working on. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Custom scripts      &lt;ul&gt;       &lt;li&gt;Both Coveo and MOSS/Ontolica offer scripts for customizing search result ranking. &lt;/li&gt;        &lt;li&gt;Coveo offers the ability to write and run VB scripts which modify index content and ranking.          &lt;ul&gt;           &lt;li&gt;For example if you want to strip out the pound sign from a metadata value, or you want to boost the search index ranking for items that have a metadata value set to &amp;quot;premium=true&amp;quot;. &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Modifying the MOSS index involves using the SharePoint API. Using the SharePoint API is generally easy and powerful, but note that I have not yet used it to modify index content so I cannot comment on how easy or hard this would be with MOSS/Ontolica. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Misc      &lt;ul&gt;       &lt;li&gt;Coveo Webparts &lt;/li&gt;        &lt;li&gt;&lt;a href="http://lh4.google.com/jfluckiger/R-f6egXGrNI/AAAAAAAADbo/RYOlCCNFAcE/clip_image013%5B3%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="142" alt="clip_image013" src="http://lh6.google.com/jfluckiger/R-f6fAXGrOI/AAAAAAAADbw/x19P2oqI_bU/clip_image013_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1562898406656091269?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1562898406656091269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1562898406656091269' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1562898406656091269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1562898406656091269'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/03/coveo-search-vs-ontolica-search-for.html' title='Coveo Search vs. Ontolica Search for SharePoint'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-8858217239330200138</id><published>2008-03-21T22:58:00.004-05:00</published><updated>2008-03-22T15:31:11.933-05:00</updated><title type='text'>Donate to SUSHI</title><content type='html'>&lt;p&gt;If you would like to make a donation to the SharePoint SUSHI project, click the donate link below.&lt;/p&gt;  &lt;br /&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;&lt;br /&gt;&lt;input type="hidden" name="cmd" value="_donations"&gt;&lt;br /&gt;&lt;input type="hidden" name="business" value="joseph@fluckiger.org"&gt;&lt;br /&gt;&lt;input type="hidden" name="item_name" value="SharePoint SUSHI"&gt;&lt;br /&gt;&lt;input type="hidden" name="item_number" value="456"&gt;&lt;br /&gt;&lt;input type="hidden" name="no_shipping" value="0"&gt;&lt;br /&gt;&lt;input type="hidden" name="no_note" value="1"&gt;&lt;br /&gt;&lt;input type="hidden" name="currency_code" value="USD"&gt;&lt;br /&gt;&lt;input type="hidden" name="tax" value="0"&gt;&lt;br /&gt;&lt;input type="hidden" name="lc" value="US"&gt;&lt;br /&gt;&lt;input type="hidden" name="bn" value="PP-DonationsBF"&gt;&lt;br /&gt;&lt;input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but11.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"&gt;&lt;br /&gt;&lt;img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-8858217239330200138?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/8858217239330200138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=8858217239330200138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8858217239330200138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8858217239330200138'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/03/donate-to-sushi.html' title='Donate to SUSHI'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1483651187085607106</id><published>2008-03-15T07:07:00.001-05:00</published><updated>2008-03-15T07:07:23.532-05:00</updated><title type='text'>SUSHI's popularity</title><content type='html'>&lt;p&gt;&lt;a href="http://codeplex.com/sushi"&gt;SUSHI&lt;/a&gt; has become more popular than I had ever imagined. Codeplex has just added a fantastic &lt;a href="http://codeplex.com/sushi/stats/view"&gt;statistics page&lt;/a&gt; which shows exactly how popular it is. The stats include number of downloads, visits and referring sites. SUSHI has been downloaded over 2000 times! &lt;/p&gt;  &lt;p&gt;Figure 1: Downloads since the project began in November 2007:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/sushi/stats/view"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="257" alt="image" src="http://lh3.google.com/jfluckiger/R9u7-aZ2-DI/AAAAAAAADXY/qOh0-YiYR2g/image%5B13%5D" width="515" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It is interesting to see where most of my traffic comes from, and read the reviews on those sites. My favorite review is from a &lt;a href="http://www.scolab.ch/tools-sushi-for-sharepoint.html"&gt;this German site&lt;/a&gt;: &amp;quot;&lt;strong&gt;Send a Test Email &lt;/strong&gt;&amp;#8211; Um die outbound Mail Funktion zu testen ist dieses Tool super handy.&amp;quot; :) It looks like &lt;a href="http://www.wssdemo.com/Lists/Resources/DispForm.aspx?ID=1591"&gt;wssdemo.com&lt;/a&gt; has brought me a lot of traffic and of course google.&lt;/p&gt;  &lt;p&gt;Figure 2: Top Referring Sites over last 30 days:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/sushi/stats/view"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="144" alt="image" src="http://lh5.google.com/jfluckiger/R9u7-6Z2-EI/AAAAAAAADXg/hbHKCCeQlxA/image%5B18%5D" width="529" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Final Comments&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SUSHI fills a need for SharePoint in a way that very few other tools do and it is much more user friendly than command lines, or SharePoint features. But it is not yet finished. I still have a lot of additions to make. I would love to have community help with building SUSHI. If anyone is interested in contributing to SUSHI by writing code, testing code or suggesting features, I would love to hear from you. Please post&amp;#160; a comment on the SUSHI discussion boards, or contact shoot me an email at &lt;a href="mailto:home@ fluckiger.org"&gt;home@ fluckiger.org&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1483651187085607106?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1483651187085607106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1483651187085607106' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1483651187085607106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1483651187085607106'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/03/sushi-popularity.html' title='SUSHI&amp;#39;s popularity'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-589433103447369703</id><published>2008-03-10T19:57:00.001-05:00</published><updated>2008-03-10T19:57:51.108-05:00</updated><title type='text'>SUSHI Version 2.22 Released!</title><content type='html'>&lt;p&gt;You can download the latest version of SUSHI &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=sushi&amp;amp;ReleaseId=10948"&gt;here&lt;/a&gt;. Improvements in this version include:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;*Improvements to the &amp;quot;Copy a view&amp;quot; feature.&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Change copy a view so it doesn't require all fields to be present. &lt;b&gt;This is a nice improvement!&lt;/b&gt; so that this feature can be used without having to have &lt;i&gt;all&lt;/i&gt; the columns of the view present in the destination list. &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;**More tab for less popular features, click on the More tab to open up these features.   &lt;br /&gt;BugFix: For Import Documents feature, Upload button was disabled after pressing the validate. button. This is fixed now.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;version 2.23 is in the works:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I've been working on improvements to the security report in SUSHI so that the report will also take into consideration active directory group membership in determining if a user has access to a site. To accomplish this, I've had to brush up on the System.DirectoryServices namespace used to access Active directory.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-Joseph&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-589433103447369703?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/589433103447369703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=589433103447369703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/589433103447369703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/589433103447369703'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/03/sushi-version-222-released.html' title='SUSHI Version 2.22 Released!'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6712974793320520091</id><published>2008-03-04T20:26:00.001-06:00</published><updated>2008-03-04T20:26:25.581-06:00</updated><title type='text'>XSLT</title><content type='html'>&lt;p&gt;I never thought that I would like XSLT and I hoped that I wouldn't have to learn this &amp;quot;wimpy web language&amp;quot; which is how I &lt;em&gt;used to&lt;/em&gt; see it. But after this weekend, I am a big XSLT fan.&amp;#160; Which is appropriate because this month marks the &lt;a href="http://blogs.msdn.com/xmlteam/archive/2008/02/12/happy-10th-anniversary-xml.aspx"&gt;10 year anniversary of XML&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So why is XSLT so cool? I think I would have embraced it much sooner had someone made this simple comparison for me: XSTL is like TSQL. I love TSQL: it is so powerful for getting and manipulating data. It is blazing fast and it takes way way fewer lines of code than it would take in .NET. XSLT is similar because both TSQL and XSTL are declarative languages: they focus on saying what do do rather than how to do it. When writing TSQL or XSLT I only have to say what I want done, and the parsing engine is responsible for figuring out how to do it. &lt;/p&gt;  &lt;p&gt;Another way to look at these two languages is that they do one thing really really well: TSQL manipulates data in a database, and XSLT transforms XML.&lt;/p&gt;  &lt;p&gt;I strongly recommend the Wrox XML book: &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470114878.html"&gt;Beginning XML&lt;/a&gt;. I spent most of my Saturday looking at other XML books, but I always seem to come back to Wrox. They are just so so much better than everything else. Some of the other XML books are just embarrassing and it is a shame that bookstores sell them to poor unsuspecting victims who read them and end up being more confused than when they started reading those horrible books. My advice: stick with Wrox.&lt;/p&gt;  &lt;p&gt;&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;   &lt;br /&gt;&amp;#160; &amp;lt;html&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;body&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;h3&amp;gt;I love XSLT&amp;lt;/h3&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/body&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/html&amp;gt;    &lt;br /&gt;&amp;lt;/xsl:template&amp;gt; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6712974793320520091?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6712974793320520091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6712974793320520091' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6712974793320520091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6712974793320520091'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/03/xslt.html' title='XSLT'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4082727465057641545</id><published>2008-02-16T14:11:00.001-06:00</published><updated>2008-02-22T05:41:34.257-06:00</updated><title type='text'>What is great about Windows Server 2008?</title><content type='html'>&lt;p&gt;What are my favorite features of Windows Server 2008?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Install experience is way faster. You don't even enter a name for the machine until &lt;em&gt;after&lt;/em&gt; the install is complete. This is huge since virtualization is so big and installing Windows Server is happening more and more. This will save the IT industry hundreds of thousands of cumulative man hours.&lt;/li&gt;    &lt;li&gt;Windows Server 2008 is built for performance, not beauty. This is what I don't like about Vista. It is pretty but terribly slow. I hate when Vista's wastes my time. Windows Server 2008 is focused on performance. Perhaps I'll install Windows Server 2008 on my laptop..&lt;/li&gt;    &lt;li&gt;Event Viewer is much improved.&lt;/li&gt;    &lt;li&gt;Interface is written by a non-developer and it is helpful. This is so nice that each tab and button is much more clearly described exactly what the feature does and what will happen when I hit the OK button. This will make me much less nervous about making changes on a production server.&lt;/li&gt;    &lt;li&gt;The interface is Humane. I read a book a few years ago that influenced me &amp;quot;Humane Interface&amp;quot;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Now you know how some things are just engrained in your brain like they have to be that way and they will never change, and one day someone crazy changes that thing and you realize it really didn't have to be that way. Well that is how I would describe the install of Windows Server 2008: crazy easy. You don't even have to choose a name for the machine until after the OS is installed! woah, who would have ever thought that was possible? You don't select a password until after the install either so, you save so much time installing because you can stick the install disk in and do all the configuration after the OS is installed.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The upgrade from Windows XP to Windows Vista was an un-breathtaking experience, but not this upgrade, I can't breath.. Ok, so a little dramatic there, but man I'm thinking about all the hours of time that I've wasted over the past year that could have been saved if I'd this cool new stuff. I think I'll install Windows Server 2008 on my laptop because it is optimized for performance, now beauty like Windows Vista is. When you accumulating hours of wasted time each week waiting for beautiful windows explorer to load, you don't care about beauty...&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The event log is great, no more modal dialogs. We are finally out of the 90's modal dialog boxes. (See Figure 1)&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.google.com/jfluckiger/R7dJZ7y14II/AAAAAAAAC_s/pF-jWJuqMoU/image%5B6%5D"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="image" src="http://lh6.google.com/jfluckiger/R7dJaby14JI/AAAAAAAAC_0/qi-tSnkhaak/image_thumb%5B2%5D" width="375" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;em&gt;Figure 1&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;The default install comes with a shortcut to server manager. Oh, that is beautiful. That alone will save years of my life not having to click on start-&amp;gt;program files-&amp;gt;admin tools-&amp;gt;manage my computer each time I open up a clean image of Windows Server. (see Figure 2)&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.google.com/jfluckiger/R7dJary14KI/AAAAAAAAC_8/tRHXmMhJO7o/image%5B5%5D"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="41" alt="image" src="http://lh3.google.com/jfluckiger/R7dJbry14LI/AAAAAAAADAE/-ArBzWOEdoQ/image_thumb%5B1%5D" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;em&gt;Figure 2&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Adding Windows Features is much improved. again no modal dialog boxes, much more descriptive, helpful interface and much more efficient because you can turn on all the features from one place at once, instead of drilling down into window after window.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/jfluckiger/R76067y14MI/AAAAAAAADAQ/ufok5GuAqUQ/image%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="173" alt="image" src="http://lh5.google.com/jfluckiger/R7607by14NI/AAAAAAAADAY/iE-PvK0Q5OQ/image_thumb" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Figure 3: The old way to add windows features. Tons of nested modal dialog boxes: yuck! &lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4082727465057641545?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4082727465057641545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4082727465057641545' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4082727465057641545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4082727465057641545'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/02/i-real-man-now-i-installed-windows.html' title='What is great about Windows Server 2008?'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4870844239073901677</id><published>2008-02-01T16:50:00.001-06:00</published><updated>2008-02-01T16:50:59.125-06:00</updated><title type='text'>Enabling IntelliSense in Visual Studio - Feature in SharePoint</title><content type='html'>&lt;p&gt;&lt;strong&gt;I've been trying to figure out for a while how to turn on intellisense in visual studio for feature.xml files. Here is the trick, thanks to &lt;a href="http://vivekthangaswamy.blogspot.com/2007/10/enabling-intellisense-in-visual-studio.html"&gt;this post&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Inside the TEMPLATE directory there is a directory named XML that contains several XML schemas, including one named wss.xsd. If you associate this schema file with feature files such as feature.xml and elements.xml, Visual Studio will provide IntelliSense, which makes it much easier to author a custom feature. You may also copy these XSD files into C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas\.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4870844239073901677?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4870844239073901677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4870844239073901677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4870844239073901677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4870844239073901677'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/02/enabling-intellisense-in-visual-studio.html' title='Enabling IntelliSense in Visual Studio - Feature in SharePoint'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7926872843689762124</id><published>2008-02-01T10:49:00.001-06:00</published><updated>2008-02-01T10:49:56.110-06:00</updated><title type='text'>Can't install MOSS on a different drive than C:</title><content type='html'>&lt;p&gt;In production environments, my clients often want to put as little as possible on the C: drive. This is a very good idea for performance reasons. Unfortunately, I confirmed today that you can&amp;#8217;t install all the MOSS files on a drive other than the C drive. &lt;/p&gt;  &lt;p&gt;During install, WSS/MOSS asks you where you want to install MOSS. Even when you specify a drive other than C during the install most of the files end up on C:. For example I chose the &amp;#8220;I:&amp;#8221; drive for the install path, but all my &amp;#8220;12 hive&amp;#8221; files still showed up on the C drive. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is my 12 hive on C: even though I installed MOSS on the I: drive.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/jfluckiger/R6NNroBDU0I/AAAAAAAAC6s/121RTMD1GmE/clip_image002%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="91" alt="clip_image002" src="http://lh6.google.com/jfluckiger/R6NNr4BDU1I/AAAAAAAAC60/Nv-wBoia6Xw/clip_image002_thumb" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The one folder that does obey my wishes is the &amp;#8220;Microsoft Office Servers&amp;#8221; folder. Which is 381 megs and as you can see is on the I: drive. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.google.com/jfluckiger/R6NNsYBDU2I/AAAAAAAAC68/IeNS9ShmEhk/clip_image004%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="40" alt="clip_image004" src="http://lh5.google.com/jfluckiger/R6NNsoBDU3I/AAAAAAAAC7E/Y1vul70GeZE/clip_image004_thumb" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So it does save you 381 megs that would have gone on the C drive, but you can&amp;#8217;t prevent most of the MOSS install files from ending up on the C: drive.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7926872843689762124?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7926872843689762124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7926872843689762124' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7926872843689762124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7926872843689762124'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/02/can-install-moss-on-different-drive.html' title='Can&amp;#39;t install MOSS on a different drive than C:'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2166449894635673443</id><published>2008-02-01T07:56:00.001-06:00</published><updated>2008-02-01T07:56:56.681-06:00</updated><title type='text'>A look under the hood, using Reflector to explore Microsoft.SharePoint.dll</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We've all used Reflector to open up a .NET assembly and look at the code. But did you ever think of doing this to the core SharePoint assemblies? I had never thought of it until last week at Sleepless in Dallas, Nadeem Mitha of Infusion suggested it. It is quite instructive, and reveals a couple very important nuances that if you don't understand can make your code very slow.&amp;#160; For example, looking at the SPList.Items property you can see that this property simply calls the GetItems() method to retrieve all items for that list. So here is the kicker, any time you call the Items property it is retrieving all the items in the SharePoint list, even if you just call the &lt;strong&gt;Items[0] , SharePoint retrieves all the items in a list and &lt;em&gt;then &lt;/em&gt;peels off the first one and gives it to you, very inefficient&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.google.com/jfluckiger/R6MlI4BDUwI/AAAAAAAAC6M/7m5ZWa-cv4M/image%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="191" alt="image" src="http://lh3.google.com/jfluckiger/R6MlJIBDUxI/AAAAAAAAC6U/k8WMjfloZ6E/image_thumb%5B1%5D" width="407" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Other classes to look at are&amp;#160; &lt;b&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint:12.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.SPList/GetItemByUniqueId(System.Guid):Microsoft.SharePoint.SPListItem"&gt;GetItemByUniqueId&lt;/a&gt;&lt;/b&gt;(&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.Guid"&gt;Guid&lt;/a&gt; uniqueId). You can see that behind the scenes, Microsoft is creating a CAML query and retrieving items. Why Microsoft insists on throwing an exception when no results are found, is beyond me. A simple null would have sufficed, thank you very much!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/jfluckiger/R6MlJoBDUyI/AAAAAAAAC6c/drDglXgRCIg/image%5B7%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="165" alt="image" src="http://lh6.google.com/jfluckiger/R6MlJ4BDUzI/AAAAAAAAC6k/5vwPhl5t00s/image_thumb%5B3%5D" width="415" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I always thought the assemblies would have been obfuscated, but surprisingly, and to our benefit, they aren't. Hope this gives you some idea, but I think this is a great tip! It takes a lot of the mystery out of SharePoint, and also shows what the heck Microsoft was thinking.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2166449894635673443?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2166449894635673443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2166449894635673443' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2166449894635673443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2166449894635673443'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/02/look-under-hood-using-reflector-to.html' title='A look under the hood, using Reflector to explore Microsoft.SharePoint.dll'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-5249016929360021790</id><published>2008-01-28T09:23:00.002-06:00</published><updated>2008-02-16T07:01:20.037-06:00</updated><title type='text'>Sleepless in Dallas done</title><content type='html'>&lt;p&gt;Sleepless in Dallas is over and what a whirlwind weekend! My brain is still swimming from all the SharePoint knowledge jammed in over the past two days. At 11pm Sat night they gave us our overnight assignment. It was to create something to include in the CKS (Community Kit for SharePoint). For my team&amp;#8217;s project we worked on adding functionality to SUSHI, which is the SharePoint utility that I&amp;#8217;ve been working on for almost a year now and have made available to the SharePoint community for free on CodePlex &lt;a href="http://www.codeplex.com/sushi"&gt;http://www.codeplex.com/sushi&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Unfortunately for me, the rules of the contest say that you can&amp;#8217;t use what you&amp;#8217;ve already built, so the only item that was entered into the contest was a couple small features that we added to SUSHI that night. However, they wanted to present special recognition for SUSHI and gave me the Community award for having created a utility for the SharePoint community. So far, the CodePlex sushi page has gotten 6,000 page views, and over 600 downloads.&lt;/p&gt;  &lt;p&gt;My team narrowly got 2&lt;sup&gt;nd&lt;/sup&gt; place of 4 teams for the overnight competition so unfortunately I won&amp;#8217;t get to fly to San Jose for the OBA conference, but I think our team fought a good honorable fight and I hope that I represented Catapult Systems well. &lt;/p&gt;  &lt;p&gt;During training Saturday we would get quiz questions after each presentation, and I answered 4 out of 9 questions so I won some books and copies of SharePoint Search Edition. &lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;Here is a &lt;a href="http://www.adventuresinsoftware.com/blog/?p=202"&gt;blog post&lt;/a&gt; from Michael who was on the winning team. He actually has posted an &lt;a href="http://media.libsyn.com/media/ais/AiS39.mp3"&gt;audio MP3 podcast&lt;/a&gt; with some of the greatest highlights from the event which is very cool. Listening to this brought back some great memories of a crazy crazy 30 hours of SharePoint madness! &lt;a href="http://chriscatto.blogspot.com/2008/01/sleepless-in-dallas-sharepoint-weekend.html"&gt;Chris Catto&lt;/a&gt; also blogged on the event.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-Joseph&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-5249016929360021790?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/5249016929360021790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=5249016929360021790' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5249016929360021790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5249016929360021790'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/01/sleepless-in-dallas-done.html' title='Sleepless in Dallas done'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-8760324334153323603</id><published>2008-01-21T16:55:00.001-06:00</published><updated>2008-01-22T16:23:45.240-06:00</updated><title type='text'>I got accepted to the Sleepless in Dallas SharePoint event</title><content type='html'>&lt;p&gt;Hey great news, I found that I am a final candidate fro Sleepless &lt;a href="http://www.infusion.com/sleepless/Home.aspx"&gt;in Dallas&lt;/a&gt;! Sweetness! The event is billed as the ultimate SharePoint developer's conference and put on by Infusion Development. Post by &lt;a href="http://blogs.msdn.com/chkoenig/archive/2008/01/08/attention-insomniacs.aspx"&gt;Chris Koenig&lt;/a&gt; on the event. Andrea from Infusion who interviewed me said that my application caught her attention because I mentioned that I had won the grand prize in a programming contest in the 8th grade, that she thought that the most successful programmers were people who had programmed all their lives and who were passionate about programming. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For the record, the programming contest involved using Apple IIe Basic to create an animated face that could express various emotions: happy, sad, angry, etc. This was part of the Odessy of the Mind contest and the challenge was to incorporate a robot that expressed emotion into a skit. So we perched our monitor on a cart and dressed it up with clothes. Our robot was a brilliant actor, let me tell you what! :) It was the cheesiest program ever, but let me tell you at the time it was way cool seeing an animated computer screen show &amp;quot;emotion&amp;quot;, and I loved building it, I remember being so excited to work on that program, programming tedious PLOT command coordinates to make the face come to life. And when it won the grand prize I was thrilled. But I never knew it would get me into a programming contest 18 years later.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So wish me luck in the contest. Hopefully I can come up with another victory! Hopefully I can leverage my SharePoint experience and come up with something cool.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-8760324334153323603?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/8760324334153323603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=8760324334153323603' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8760324334153323603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/8760324334153323603'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/01/i-got-accepted-to-sleepless-in-dallas.html' title='I got accepted to the Sleepless in Dallas SharePoint event'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-9137343686715489269</id><published>2008-01-10T07:30:00.001-06:00</published><updated>2008-01-10T07:30:10.165-06:00</updated><title type='text'>Version 2.18 of SharePoint SUSHI Released!</title><content type='html'>&lt;p&gt;The latest version of SharePoint SUSHI has been released!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codeplex.com/sushi"&gt;SharePoint SUSHI version 2.18&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This version includes the new treeview SharePoint browser. This makes it easier to find a site on your local farm by browsing, rather than having to type it in. Click the &amp;quot;select a site&amp;quot; link button to use this new feature. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-9137343686715489269?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/9137343686715489269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=9137343686715489269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9137343686715489269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/9137343686715489269'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2008/01/version-218-of-sharepoint-sushi.html' title='Version 2.18 of SharePoint SUSHI Released!'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-809468245078338541</id><published>2007-11-27T07:20:00.001-06:00</published><updated>2007-11-27T07:21:28.956-06:00</updated><title type='text'>Error during install of MOSS 2007 - The process does not possess the 'SeSecurityPrivilege' privilege.</title><content type='html'>&lt;p&gt;I got a strange error while installing MOSS 2007 yesterday at a client. I've installed MOSS a hundred times, so I knew everything was ok. The error I was getting was &amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;11/26/2007 16:20:47&amp;#160; 7&amp;#160; ERR&amp;#160; Failed to create the configuration database. An exception of type System.Security.AccessControl.PrivilegeNotHeldException was thrown.&amp;#160; Additional exception information: The process does not possess the 'SeSecurityPrivilege' privilege which is required for this operation.&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.eggheadcafe.com/software/aspnet/30517642/reinstalling-moss2007-a.aspx"&gt;This post&lt;/a&gt; I read pointed out that&amp;#160; the user running the install needs to have the &amp;#8220;manage auditing and security log&amp;#8221; privilege. You can see below that even though I was a local admin, I didn't have that privilege. The permission was changed, I logged out and back in, and the install worked fine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/jfluckiger/R0wZmnDqTMI/AAAAAAAAC0s/6s8GToQn6xM/image%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="308" alt="image" src="http://lh4.google.com/jfluckiger/R0wZnXDqTNI/AAAAAAAAC00/qAMwoc_la9g/image_thumb%5B1%5D" width="537" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-809468245078338541?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/809468245078338541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=809468245078338541' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/809468245078338541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/809468245078338541'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/11/error-during-install-of-moss-2007.html' title='Error during install of MOSS 2007 - The process does not possess the &amp;#39;SeSecurityPrivilege&amp;#39; privilege.'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7044121727656693562</id><published>2007-11-25T21:19:00.001-06:00</published><updated>2007-11-25T21:28:23.546-06:00</updated><title type='text'>Windows Vista and Windows Live Blogger</title><content type='html'>&lt;p&gt;This post was made by Windows Live Blogger. Very nice. So much easier to post pictures and rich content. I'm loving it. No more uploading image, and editing HTML. ug. Freedom from the tyranny of the web browser.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/jfluckiger/R0o7pnDqTII/AAAAAAAAC0Y/tjEaMMzhSOA/Green%20Sea%20Turtle%5B2%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="Green Sea Turtle" src="http://lh4.google.com/jfluckiger/R0o7p3DqTJI/AAAAAAAAC0g/8sDbL774K6A/Green%20Sea%20Turtle_thumb" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;-Joseph&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7044121727656693562?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7044121727656693562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7044121727656693562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7044121727656693562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7044121727656693562'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/11/test-blog-from-windows-live-blogger.html' title='Windows Vista and Windows Live Blogger'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-5242436871765732213</id><published>2007-11-04T20:34:00.000-06:00</published><updated>2007-11-21T12:34:15.672-06:00</updated><title type='text'>SharePoint Sushi has a new permanent home</title><content type='html'>The SharePoint utility that I've built called &lt;strong&gt;SharePoint SUSHI&lt;/strong&gt; and made available for free to the SharePoint community has a new permantent home at &lt;a href="http://www.codeplex.com/sushi"&gt;http://www.codeplex.com/sushi&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This site will contain help documentation, the latest release and source code, and FAQ. Please drop by, download SharePoint SUSHI and take it for a spin and send me any added feature requests or suggestions to improve SUSHI that you have.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;&lt;br /&gt;-Joseph Fluckiger&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-5242436871765732213?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/5242436871765732213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=5242436871765732213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5242436871765732213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5242436871765732213'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/11/sharepoint-sushi-has-new-permanent-home.html' title='SharePoint Sushi has a new permanent home'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7935655478847679715</id><published>2007-10-28T09:34:00.000-05:00</published><updated>2007-10-28T16:33:03.261-05:00</updated><title type='text'>Mashups with Popfly</title><content type='html'>&lt;a href="http://www.popfly.com/"&gt;Popfly&lt;/a&gt; is an ubelievably cool new tool to build mashups in silverlight. If silverlight wasn't cool enough already, this seals the deal. &lt;br /&gt;&lt;br /&gt;Let me demonstrate: 20 mintues ago I signed up for popfly. And in that 20 minutes I figured out how to use popfly and built this, a little tile image display of Monet images from the web. Sweet! More to come..&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;iframe style='width:300px; height:400px;' src='http://www.popfly.ms/users/josephfluckiger/Mone%20Photos.small' frameborder='no'&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7935655478847679715?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7935655478847679715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7935655478847679715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7935655478847679715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7935655478847679715'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/10/mashups-with-popfly.html' title='Mashups with Popfly'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1235885498679873746</id><published>2007-10-22T13:50:00.001-05:00</published><updated>2007-10-22T13:51:38.426-05:00</updated><title type='text'>Apply a theme to all new sharepoint sites</title><content type='html'>This blog post shows how to apply a corporate theme to all newly created sites. Very handy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://grahamsibley.typepad.com/thoughtfactory/2007/06/index.html"&gt;http://grahamsibley.typepad.com/thoughtfactory/2007/06/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1235885498679873746?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1235885498679873746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1235885498679873746' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1235885498679873746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1235885498679873746'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/10/apply-theme-to-all-new-sharepoint-sites.html' title='Apply a theme to all new sharepoint sites'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4918659436008770745</id><published>2007-10-11T14:53:00.000-05:00</published><updated>2007-10-11T14:55:15.240-05:00</updated><title type='text'>Authorization vs. Authentication</title><content type='html'>I was asked the following question today about MOSS: Can MOSS manage passwords? Can I store service account passwords someway in MOSS securely? &lt;br /&gt;&lt;br /&gt;Here is an important point about MOSS security:&lt;br /&gt;&lt;br /&gt;MOSS does not provide authentication, it only provides authorization. (very important distinction) It relys on either Active Directory or forms authentication to validate passwords. Once AD says yup this person is who they say they are, then Sharepoint takes over. Nowhere in the sharepoint databases will you find a user's password. What you will find in the sharepoint databases is the roles and permissions that a user has.&lt;br /&gt;&lt;br /&gt;-Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4918659436008770745?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4918659436008770745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4918659436008770745' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4918659436008770745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4918659436008770745'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/10/authorization-vs-authentication.html' title='Authorization vs. Authentication'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7964183279235993175</id><published>2007-10-05T02:50:00.000-05:00</published><updated>2007-10-05T02:52:22.846-05:00</updated><title type='text'>move documents in SharePoint without losing metadata</title><content type='html'>Here is a great SharePoint trick. Need to move documents from one library to another without losing metadata?&lt;br /&gt;&lt;br /&gt;With the "Content and Structure" section under site administration, you can!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sphelpdesk.spaces.live.com/blog/cns!D9676F3678CF7BE7!173.entry"&gt;instructions for moving documents without losing metadata&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7964183279235993175?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7964183279235993175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7964183279235993175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7964183279235993175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7964183279235993175'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/10/move-documents-in-sharepoint-without.html' title='move documents in SharePoint without losing metadata'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2273355608099618981</id><published>2007-08-10T14:51:00.000-05:00</published><updated>2007-08-10T14:54:11.180-05:00</updated><title type='text'>Open ISO Images</title><content type='html'>Frequently I will need to open an ISO image on a remote machine, this is a tool from Microsoft which I recommend for opening ISO images. It works with Windows XP and Windows Server 2003.&lt;br /&gt;&lt;br /&gt;Here is a &lt;a href="http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe"&gt;link directly to Microsoft to download the utillity&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is an &lt;a href="http://articles.techrepublic.com.com/5100-10879_11-6135435.html"&gt;article describing how to use the ISO reader&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2273355608099618981?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2273355608099618981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2273355608099618981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2273355608099618981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2273355608099618981'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/08/open-iso-images.html' title='Open ISO Images'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-3195910969838125527</id><published>2007-08-01T12:53:00.000-05:00</published><updated>2007-08-01T13:02:42.700-05:00</updated><title type='text'>A great tool for working with documents in Sharepoint: Colligo</title><content type='html'>I've started using &lt;a href="http://www.colligo.com/"&gt;Colligo for SharePoint&lt;/a&gt; which makes opening, editing, adding and savings documents to a SharePoint document library much easier. I've used Groove and Outlook, but Colligo is better. The main reason, it is more stable. Outlook kept crashing on me when I would preview a document, and it would slow my Outlook down. If you are like me, your email is critical, and so anything that slows it down or makes it crash doesn't work. Also with Outlook you can't add documents to a document library by drag and dropping them from windows explorer (major feature gap if you ask me). This is where Colligo drag-and-drop shines. Simple and reliable, I like it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.colligo.com/"&gt;Colligo&lt;/a&gt; offers a free version which gives you read-only access to a document library and a contributor version which they charge $125 for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-3195910969838125527?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/3195910969838125527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=3195910969838125527' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3195910969838125527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/3195910969838125527'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/08/ive-started-using-colligo-for.html' title='A great tool for working with documents in Sharepoint: Colligo'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-2815787551722895284</id><published>2007-07-23T15:21:00.001-05:00</published><updated>2007-07-23T15:29:46.270-05:00</updated><title type='text'>I've created my own search engine!</title><content type='html'>&lt;a href="http://gooooooooooooogle.net"&gt;http://gooooooooooooogle.net&lt;/a&gt;&lt;br /&gt;It's alive! (evil laugh) I've created my own search engine. Ok so I cheated a bit by using the Microsoft SharePoint Server 2007 as the crawl engine and simply put a pretty face in front of it, but hey, it's a real live search engine. And I've actually found out a few useful things, for example, I searched through Cameron's blog for the word "fluckiger" and discovered I'm meantioned 3 times, including being given credit for an XML recommendation. (I'm really big-time now). &lt;br /&gt;&lt;br /&gt;I'm currently indexing &lt;a href="http://josephfluckiger.blogspot.com"&gt;my blog&lt;/a&gt;, &lt;a href="http://cameronfuller.spaces.live.com"&gt;Cameron Fuller's blog&lt;/a&gt;, and 1 layer deep of links from directory.google.com.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cameron pointed out that there is an easier, (though not as fun) way to search a blog using &lt;a href="http://blogsearch.google.com/blogsearch?hl=en&amp;tab=wb&amp;ie=UTF-8&amp;q=joseph+blogurl%3Ahttp%3A%2F%2Fjosephfluckiger.blogspot.com"&gt;google blog search&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-2815787551722895284?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/2815787551722895284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=2815787551722895284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2815787551722895284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/2815787551722895284'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/07/ive-created-my-own-search-engine.html' title='I&apos;ve created my own search engine!'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1295746648148997833</id><published>2007-07-13T11:17:00.000-05:00</published><updated>2007-07-13T11:19:11.037-05:00</updated><title type='text'>Twitter</title><content type='html'>I'm trying out twitter, a microblog. What I think is interesting about the service is how simple the user interface is. Elegant, powerful, simple. No wonder it has been so popular. Here is a &lt;a href="http://twitter.com/josephfluckiger"&gt;link to my twitter blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1295746648148997833?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1295746648148997833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1295746648148997833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1295746648148997833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1295746648148997833'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/07/twitter.html' title='Twitter'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6860962646865709256</id><published>2007-06-27T16:52:00.000-05:00</published><updated>2008-01-13T01:40:42.612-06:00</updated><title type='text'>SUSHI - SharePoint Utility with a Smart, Helpful Interface</title><content type='html'>Note, the SUSHI project has now moved to codeplex at &lt;a href="http://codeplex.com/sushi"&gt;http://codeplex.com/sushi&lt;/a&gt;&lt;br /&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px;" src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=sushi&amp;DownloadId=22431" border="0" alt="" /&gt;&lt;br /&gt;I proudly announce the public release of &lt;a href="http://codeplex.com/sushi"&gt;SUSHI&lt;/a&gt; (SharePoint Utility with a Smart, Helpful Interface). This Smart Client Utility offers powerful tools for common SharePoint management tasks with refreshing ease-of-use.&lt;br /&gt;&lt;br /&gt;Documentation for the utility and downloads can be found here:&lt;br /&gt;&lt;a href="http://wiki.catapultdemo.com"&gt;http://wiki.catapultdemo.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The SharePoint document utility is in use at several large clients that I have worked at, and several other consultants at my company have worked at.&lt;br /&gt;&lt;br /&gt;This utility is free and the source code has also been posted for free download. The documentation site is a public wiki, so I hope to build a community around SUSHI and get lots of participation. I hope that fellow SharePoint administrators will add their own features and improve existing features so that the utility matures and increases in usefulness.&lt;br /&gt;&lt;br /&gt;-Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6860962646865709256?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6860962646865709256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6860962646865709256' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6860962646865709256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6860962646865709256'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/06/sharepoint-document-utility.html' title='SUSHI - SharePoint Utility with a Smart, Helpful Interface'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1125790737787732918</id><published>2007-06-15T11:25:00.000-05:00</published><updated>2007-06-15T11:26:21.048-05:00</updated><title type='text'>Google code search</title><content type='html'>Ever used &lt;a href="http://www.google.com/codesearch"&gt;Google code search&lt;/a&gt;? I’ve found a lot of good SharePoint code. Just searching for the Sharepoint namespace “using Microsoft.SharePoint;” you get lots of good practical examples.&lt;br /&gt;&lt;br /&gt;Sometimes a line of code is worth a thousand MSDN explanations.&lt;br /&gt;&lt;br /&gt;Here is a &lt;a href="http://www.google.com/codesearch?hl=en&amp;q=+Microsoft.SharePoint.WebPartPages.WebPart+CreateChildControls+show:FJ88RvJCS6A:0kqtOnDLx5w:bRaurkVGGGY&amp;sa=N&amp;cd=2&amp;ct=rc&amp;cs_p=http://download.microsoft.com/download/7/9/8/79802a44-7903-402c-a1a7-e7442aa29382/NET8_p73_77_SharePoint.zip&amp;cs_f=NetMagazineSearchLibrary/WebPartSearchWebservice.cs#a0"&gt;great example of rendering a SharePoint webpart&lt;/a&gt; by overriding the CreateChidControls() and RenderWepPart() methods.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1125790737787732918?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1125790737787732918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1125790737787732918' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1125790737787732918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1125790737787732918'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/06/google-code-search.html' title='Google code search'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7078967491517656151</id><published>2007-06-13T09:30:00.000-05:00</published><updated>2007-06-13T10:18:57.888-05:00</updated><title type='text'>Developing WebParts for SharePoint</title><content type='html'>Here are the tips I wish I had known before this week and this is what I learned so that you won't have to go throught the same pain when learning to build Webparts in SharePoint.&lt;br /&gt;&lt;br /&gt;-Ted Pattison has the &lt;a href="http://tedpattison.net/screencasts.aspx"&gt;best screencasts on SharePoint&lt;/a&gt; that I have found. He is also very funny. I insist that you watch the "Building ASP.NET Web Parts for Windows SharePoint Services 3.0" as your first step to learning how to build a SharePoint webpart! Setup your environment as detailed below, and then walk through Ted's demo with him. IMPORTANT TIP. Make sure you DOWNLOAD the screencast (right click and save target as) so that you can pause and &lt;em&gt;rewind&lt;/em&gt; the video as he walks through it. This video is the key to the difference between frustration and success!&lt;br /&gt;&lt;br /&gt;-Download The latest &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=05e0dd12-8394-402b-8936-a07fe8afaffd&amp;displaylang=en"&gt;SDK for Sharepoint WSS 3.0&lt;/a&gt;. Open up the help file WSS3sdk.chm, and start with the "Walkthrough: Creating a Basic SharePoint Web Part" (After you've gone through Ted Pattison's Screencast). The corresponding article online at MSDN appears to have lots of errors, so I recomment opening the one in the WSS3sdk.chm.&lt;br /&gt;&lt;br /&gt;-For debugging webparts, make sure you have customerrors=off in your web.config file. The key to debugging webparts is having Visual studio installed on the same machine as Sharepoint, so that you can set breakpoints and actively debug your code. Copying the Sharepoint DLLs isn't enough, that will at least let you compile and use intellisense, but to debug, VS and Sharepoint have to be on the same box. You may need to set up a virtual machine since you probabaly don't have sharepoint set up on your laptop and you don't have a spare $2,000 to buy a physical server.&lt;br /&gt; +another tip from Ted Pattison: set your Visual Studio project so that the output builds to the bin directory of your sharepoint website. for example:&lt;br /&gt;C:\Inetpub\wwwroot\wss\VirtualDirectories\50000\bin&lt;br /&gt; However, if you are building a webpart that needs elevated trust, you have to deploy it to the GAC. Here is a nifty trick to automatically deploy to the gac using a post-build script (project properties withing Visual Studio)&lt;br /&gt;&lt;em&gt;C:\WINDOWS\system32\dllcache\gacutil.exe /i I:\VSSworking\I.root\timelineXmlWebpart\bin\Debug\timelineXmlWebpart.dll&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7078967491517656151?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7078967491517656151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7078967491517656151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7078967491517656151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7078967491517656151'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/06/developing-webparts-for-sharepoint.html' title='Developing WebParts for SharePoint'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6608313953665436958</id><published>2007-06-07T08:43:00.000-05:00</published><updated>2007-06-07T10:14:51.903-05:00</updated><title type='text'>Tips for making your Virtual Machine run faster</title><content type='html'>Here is a wonderful, concise article on making your Virtual Machine run faster. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hanselman.com/blog/VMPerformanceChecklistBeforeYouComplainThatYourVirtualMachineIsSlow.aspx"&gt;http://www.hanselman.com/blog/VMPerformanceChecklistBeforeYouComplainThatYourVirtualMachineIsSlow.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ever considered turning OFF your page file. This option blew my mind. That sounded to me like someone saying "have you ever tried removing your processor". But I'm going to try it..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6608313953665436958?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6608313953665436958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6608313953665436958' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6608313953665436958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6608313953665436958'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/06/tips-for-making-your-virtual-machine.html' title='Tips for making your Virtual Machine run faster'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-155045054811941744</id><published>2007-06-04T22:04:00.001-05:00</published><updated>2007-06-05T08:30:10.050-05:00</updated><title type='text'>create a windows service</title><content type='html'>If you&amp;#8217;ve ever wanted to create a windows service. Don&amp;#8217;t go to MSDN, go to &lt;a href="http://www.codeproject.com/dotnet/simplewindowsservice.asp"&gt;this post&lt;/a&gt; at codeproject.com. The post was written in 2003, but nothing has changed as of today using Visual Studio 2005. It is very straightforward, and in the case of setup projects, a picture is worth a 1000 words. You'll have created your own windows service in just a few minutes. Cool. Lots of applications for services..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-155045054811941744?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/155045054811941744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=155045054811941744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/155045054811941744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/155045054811941744'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/06/create-windows-service.html' title='create a windows service'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7405734241147882163</id><published>2007-06-02T15:03:00.000-05:00</published><updated>2007-06-02T15:04:47.452-05:00</updated><title type='text'>Ruby</title><content type='html'>Even if you don't care a lick about &lt;a href="http://ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, you should read &lt;a href="http://poignantguide.net/ruby/"&gt;Why’s (Poignant) Guide to Ruby&lt;/a&gt;. It is by far the most facinating (and freaky) technical book I've ever read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7405734241147882163?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7405734241147882163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7405734241147882163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7405734241147882163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7405734241147882163'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/06/ruby.html' title='Ruby'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4018387838044109716</id><published>2007-05-25T15:35:00.000-05:00</published><updated>2007-06-02T22:20:56.110-05:00</updated><title type='text'>DevCares presentation on Visual Studio Orcas and Linq</title><content type='html'>Today I presented at the Microsoft DevCares event at the InfoMart in Dallas. As promised I have made available the powerpoints and the VS solutions that I used for the demo.&lt;br /&gt;&lt;br /&gt;Here are the contents for Microsoft DevCares sponsored by Tekfokus:&lt;br /&gt;&lt;br /&gt;1) Lap around Visual Studio Orcas Powerpoint&lt;br /&gt;2) Linq and Data Access in Visual Studio Orcas Powerpoint&lt;br /&gt;3) solution containing demos for ASP.NET&lt;br /&gt;4) solution containing demos for LINQ&lt;br /&gt;&lt;br /&gt;These documents can be found in this direcotry&lt;br /&gt;&lt;a href="http://fluckiger.org/joeblogpics/2007-05-25_devCares/"&gt;http://fluckiger.org/joeblogpics/2007-05-25_devCares/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It was a great presentation today at DevCares and a good turnout with 31 developers in attendance. It is amazing how many new great features are being released in this version of Visual Studio.&lt;br /&gt;&lt;br /&gt;Note you will need to make one modification to the LINQ solution demo, you will need to change the SQL connection string to (insert your path):&lt;br /&gt;-pass in the filename using a "user instance" connection in your sql connection string like so:&lt;br /&gt;"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\joeDev\JoeOrcasTest\Data\NORTHWND.MDF;Integrated Security=True;User Instance=True"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are some of the best sessions from MIX available online for free:&lt;br /&gt;&lt;a href="http://sessions.visitmix.com/upperlayer.asp?event=&amp;session=&amp;id=1513"&gt;Anders Hejslberg on Linq&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sessions.visitmix.com/upperlayer.asp?event=&amp;session=&amp;id=1523"&gt;ASP.NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sessions.visitmix.com/upperlayer.asp?event=&amp;session=&amp;id=1532 "&gt;Scott Guthrie keynote at Mix&lt;/a&gt; (you can skip the last 10 mins)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=304637#304637"&gt;Scott Guthrie on Silverlight&lt;/a&gt; (channel 9)&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;Recommended Reading:&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/"&gt;MSDN article on LINQ &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Additional Code examples&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;class Program&lt;br /&gt;    {&lt;br /&gt;        //--This example demonstrates that Lambda expressions are just an abbreviated syntax for anonmymous delegates&lt;br /&gt;&lt;br /&gt;        public delegate bool MyDelegate(Customer c);&lt;br /&gt;&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            Customer cust = new Customer { Name = "Fred"};&lt;br /&gt;&lt;br /&gt;            //--old .NET 2.0 way, handle with an anonymous delegate &lt;br /&gt;            MyDelegate del = new MyDelegate(delegate(Customer c) &lt;br /&gt;                {&lt;br /&gt;                    return c.Name == "Fred"; &lt;br /&gt;                });&lt;br /&gt;            Console.WriteLine("old way:" + del.Invoke(cust));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            //--new 3.5 way, handle with elegant Lamba expression&lt;br /&gt;            MyDelegate del2 = new MyDelegate(c =&gt; c.Name == "Fred");&lt;br /&gt;            Console.WriteLine("new way:" + del2.Invoke(cust));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Console.ReadLine();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class Customer&lt;br /&gt;    {&lt;br /&gt;        public string Name { get; set; }&lt;br /&gt;        public int ZipCode { get; set; }&lt;br /&gt;    }&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;note: have to perform a fix to get the CSS properties window to work in ASP.NET. The fix, which consists of simply copying a certain file into the right directory can be found here:&lt;br /&gt;http://forums.asp.net/p/1108360/1701353.aspx#1701353&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;Guess what, good news you can take advantage of AJAX in Visual Studio 2005 using &lt;a href="http://ajax.asp.net"&gt;Ajax extentions for VS 2005&lt;/a&gt;. This includes the update panel control which I demoed and is very easy to use (drag and drop easy).&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;note: I have installed Visual Studio Orcas on my primary work laptop and so far I haven't had any problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4018387838044109716?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4018387838044109716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4018387838044109716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4018387838044109716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4018387838044109716'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/05/devcares-presentation-on-visual-studio.html' title='DevCares presentation on Visual Studio Orcas and Linq'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7493684131146840559</id><published>2007-05-16T08:30:00.001-05:00</published><updated>2007-05-16T08:30:48.083-05:00</updated><title type='text'>computer speed statistics</title><content type='html'>Here are some useful numbers for relative data retrieval speeds:&lt;p&gt;&lt;br&gt;Data that lives here... ...will take this long to access &lt;br&gt;CPU Register &amp;lt; 1 nanosecond &lt;br&gt;CPU cache 2 nanoseconds &lt;br&gt;RAM 50 nanoseconds &lt;br&gt;Disk 12,000,000 nanoseconds &lt;br&gt;Somewhere in that pile of paper on your desk 42,000,000,000 nanoseconds &lt;p&gt;(Note that a nanosecond is 1 billionth of a second.)&lt;p&gt;&lt;p&gt;This was taken from a blog by mozy:&lt;br&gt;&lt;a href="http://mozy.com/blog/2006/06/13/defrag-the-mozy-way"&gt;http://mozy.com/blog/2006/06/13/defrag-the-mozy-way&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7493684131146840559?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7493684131146840559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7493684131146840559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7493684131146840559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7493684131146840559'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/05/computer-speed-statistics.html' title='computer speed statistics'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-5587092317091629277</id><published>2007-05-04T12:17:00.000-05:00</published><updated>2007-05-17T06:50:08.635-05:00</updated><title type='text'>VMware vs. Virtual Machine</title><content type='html'>Virtualization is becomming very popular. The benefits are many and there are two leading products: VMware GSX and Microsoft Virtual PC, but which is faster? I ran some performance tests using passmark performance tester 6.1.&lt;br /&gt;&lt;br /&gt;VMware GSX is WAY faster than Microsoft virtual PC. Look at the processor and disk marks, they are twice as high for VMware GSX!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Microsoft VM = &lt;br /&gt;  Operating system  is Windows server 2003&lt;br /&gt;  diskmark =246&lt;br /&gt;  processor test= 316&lt;br /&gt;  memory =356&lt;br /&gt;Vmware : &lt;br /&gt;  Opperating system is Windows server 2003&lt;br /&gt;  disk=791&lt;br /&gt;  processor test = 690&lt;br /&gt;  memory=414&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Both virtual hard disks are on the same M drive. The M drive consists of 2 10k Raptor drives in a RAID0 (sriped) configuration. My host box is a Dell Precision 690 and the processor is a dual core Pentium, and 2 gigs of ram.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-5587092317091629277?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/5587092317091629277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=5587092317091629277' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5587092317091629277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/5587092317091629277'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/05/vmware-vs-virtual-machine.html' title='VMware vs. Virtual Machine'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7383031891796805470</id><published>2007-05-03T09:26:00.001-05:00</published><updated>2007-05-04T12:16:35.785-05:00</updated><title type='text'>remote desktop into multiple machines on your home network</title><content type='html'>I&amp;#8217;ve been wanting to do this for a long long time, and finally I have figured it out. My perfect network is coming together!&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;The key was given to me, as frequently is, by some smart folks at experts-exchange.com in this question: &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;a href="http://www.experts-exchange.com/Networking/Windows_Networking/Q_22548593.html"&gt;http://www.experts-exchange.com/Networking/Windows_Networking/Q_22548593.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7383031891796805470?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7383031891796805470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7383031891796805470' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7383031891796805470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7383031891796805470'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/05/remote-desktop-into-multiple-machines.html' title='remote desktop into multiple machines on your home network'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-673256503843981917</id><published>2007-04-30T11:01:00.000-05:00</published><updated>2007-04-30T11:05:44.179-05:00</updated><title type='text'>sharepoint tip - page views via query strings</title><content type='html'>I found a useful post which gives you "secret" access to sharepoint. By directly editing the query strings at the end of the URL (behind the ? ) you can gain direct access to sharepoint views and features without having to use the builtin navigation links. This can save you some clicking when the site is slow and also give you new, hidden functionality in sharepoint.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/danielmcpherson/archive/2004/10/11/240863.aspx"&gt;http://blogs.msdn.com/danielmcpherson/archive/2004/10/11/240863.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-673256503843981917?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/673256503843981917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=673256503843981917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/673256503843981917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/673256503843981917'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/04/sharepoint-tip-page-views-via-query.html' title='sharepoint tip - page views via query strings'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4500435992712545649</id><published>2007-02-14T06:53:00.001-06:00</published><updated>2007-02-14T07:06:18.947-06:00</updated><title type='text'>Posting from Word 2007</title><content type='html'>&lt;p&gt;This is a test Blog from Word 2007. Word has definitely been at the top of my worst software list (along with powerpoint and project) but this blog feature in 2007 definitely gives it a demotion in the worst catgory. &lt;br /&gt;- You have the advantages of a local editor, including fast and personalized spell checking, full screen editing with complete hot-keys, etc. And you don't have to open up yet another browser window to get lost among the tabs! &lt;br /&gt;-Then with one click you can publish, and it remembers your login/password. viola! a new post. &lt;br /&gt;&lt;br /&gt;Posting using email is is a pretty cool option as well. All you do is send an email to joseph.someemail@blogspot.com and blogger creates a post for me. The drawback is that it does a really poor job of formatting. You'll notice some of my posts have random line breaks, these are posts I have made by sending an email. I'm expecting that Word will do a better job. Another fear was that Word would create some crazy HTML, but it seems to have kept its nose clean so far. It created clean, simple HTML. Kudos to Word 2007. &lt;br /&gt;&lt;br /&gt;And hats of to Microsoft's efforts to be a friendly citizen: Within Word, when you choose from a list of blog sites to publish to, blogger which is owned by Google, is one of the choices. A tough choice I'm sure for Microsoft to list since they are an arch rival, but none-the-less, the right choice since blogger is one of the most popular blog providers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-Blogger Joe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4500435992712545649?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4500435992712545649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4500435992712545649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4500435992712545649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4500435992712545649'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/02/posting-from-word-2007.html' title='Posting from Word 2007'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6978815910968256669</id><published>2007-01-08T14:39:00.000-06:00</published><updated>2007-01-08T14:48:13.175-06:00</updated><title type='text'>Build a Robot to scale everest</title><content type='html'>I just had a great idea. I want to build a robot that can scale everest and clean off all the disposed compressed air canisters.&lt;br /&gt;&lt;br /&gt;I watched a special this week on Discovery channel: "Everest, Beyond the Limit". It was a great show, but the most dramatic moment of the show was when the expedition passed an injured and dying climber and they just had to leave him on the side of the mountain, because the air is so thin and the terrain so rugged that it is pretty much impossible to pull a man down from the mountain. And lots of people have died up there and there are all these dead bodies on the trail up the mountain. There are also lots of disposed air cannisters laying around. &lt;br /&gt;&lt;br /&gt;And it is never going to get any easier or any more possible for humans or hellicopters to get up there. But a robot could do it. A robot could bring home those discarded cannisters. There is just something about knowing the top of the world is clean. And then it could also rescue people who couldn't get down the mountain themselves.&lt;br /&gt;&lt;br /&gt;I'd better hurry up and sharpen my AI and my robotic skills.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6978815910968256669?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6978815910968256669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6978815910968256669' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6978815910968256669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6978815910968256669'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2007/01/build-robot-to-scale-everest.html' title='Build a Robot to scale everest'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4767408623307036680</id><published>2006-12-10T19:36:00.001-06:00</published><updated>2007-07-21T10:40:24.071-05:00</updated><title type='text'>Eureka, Faith is a degree of Enthusiasm</title><content type='html'>Faith is beautifully defined by Alma as a belief in something which is not seen but which is true. It is also defined as a seed which grows, and takes root because of truth and faith. However I learned something new about faith tonight. I was listening to Glenn Beck give a fireside to our the youth of our stake, and while i was listening I had one of those eureka moments. And this is it: &amp;quot;Faith is a degree of enthusiasm in something.&amp;quot; To have faith in something is to be enthusiastic about it. To believe in something, one is moved to act and direct decisions in accordance to faith in a principle. Enthusiasm is both the affect and the effect. So faith is not a passive principle, it is one which requires our activity, else it is not. Faith without works is dead, Faith without enthusasm will never have works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4767408623307036680?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4767408623307036680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4767408623307036680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4767408623307036680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4767408623307036680'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/12/eureka-faith-is-degree-of-enthusasim.html' title='Eureka, Faith is a degree of Enthusiasm'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-778385786416813575</id><published>2006-12-02T10:35:00.001-06:00</published><updated>2006-12-02T10:35:52.888-06:00</updated><title type='text'>The best decade ever</title><content type='html'>I was talking to some 15 year old  kids  the other day and it is weird to&lt;br&gt;think they were born in 1990. They never even knew the 80s! What a shame,&lt;br&gt;what a gold age. Rockin time the 80s, and the 90s even better, too bad for&lt;br&gt;them they couldn&amp;#39;t have grown up in the best two decades ever!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-778385786416813575?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/778385786416813575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=778385786416813575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/778385786416813575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/778385786416813575'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/12/best-decade-ever.html' title='The best decade ever'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-7466252047496258701</id><published>2006-11-03T08:46:00.000-06:00</published><updated>2006-11-03T08:53:52.733-06:00</updated><title type='text'>The String is both a reference type and a value type in .NET</title><content type='html'>In .NET the string class is a special type. It is a hybrid of both a value&lt;br&gt;type and a reference type.&lt;p&gt;A typical reference type is stored on the heap, and a typical value type is&lt;br&gt;stored on the stack. &lt;br&gt;Classes are reference types, for example, Windows.Forms.Textbox&lt;br&gt;Numbers are value types, for example, Integer and Double.&lt;p&gt;Value types are able to be stored on the stack because they have a finite&lt;br&gt;length. Reference types have variable length. So for reference types, .NET&lt;br&gt;keeps a memory reference on the stack to a location on the heap where the&lt;br&gt;actual value is stored. This allows the stack to be very fast and compact&lt;br&gt;while still being able to store large values like a string variable that&lt;br&gt;contains the preamble to the Constitution.&lt;p&gt;An analogy:  A comparison to Sqlserver variables is the difference betwnee&lt;br&gt;the char and the varchar data types. The char always has a fixed length, the&lt;br&gt;varchar does not.&lt;br&gt; &lt;br&gt;So the string is a special animal. You can use it without always having to&lt;br&gt;use a constructor. Good thing, it would be a real pain to have to write:&lt;br&gt;String myStringVar1 = new(&amp;quot;hello &amp;quot;);&lt;br&gt;String myStringVar2 = new(&amp;quot;world&amp;quot;);&lt;br&gt;String myStringVar3 = myStringVar1 + myStringVar2;&lt;p&gt;Instead, because string is a special case in .NET we can just write:&lt;br&gt;String myStringVar3 = &amp;quot;hello &amp;quot; + &amp;quot;world&amp;quot;;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-7466252047496258701?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/7466252047496258701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=7466252047496258701' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7466252047496258701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/7466252047496258701'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/11/string-is-both-reference-type-and-value.html' title='The String is both a reference type and a value type in .NET'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-4572540742960810522</id><published>2006-11-01T07:45:00.000-06:00</published><updated>2006-11-01T07:51:39.367-06:00</updated><title type='text'>Donate to the Joseph Fluckiger blog!</title><content type='html'>I read a post that had a great idea! This post requested donations to help pay for the blog. I thought sure, why not and I donated a buck and it took less than two minutes to make the donation via my paypal account. Well I thought I'd try it. So here it is my request for donations:&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;To help pay for the Joseph Fluckiger blog, world peace and the unification of string theory, click the "make donation" button below.&lt;br /&gt;&lt;br /&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;&lt;br /&gt;&lt;input type="hidden" name="cmd" value="_xclick"&gt;&lt;br /&gt;&lt;input type="hidden" name="business" value="joseph@fluckiger.org"&gt;&lt;br /&gt;&lt;input type="hidden" name="item_name" value="Donate to the Joseph Fluckiger blog"&gt;&lt;br /&gt;&lt;input type="hidden" name="amount" value="1.00"&gt;&lt;br /&gt;&lt;input type="hidden" name="no_shipping" value="2"&gt;&lt;br /&gt;&lt;input type="hidden" name="no_note" value="1"&gt;&lt;br /&gt;&lt;input type="hidden" name="currency_code" value="USD"&gt;&lt;br /&gt;&lt;input type="hidden" name="tax" value="0"&gt;&lt;br /&gt;&lt;input type="hidden" name="lc" value="US"&gt;&lt;br /&gt;&lt;input type="hidden" name="bn" value="PP-DonationsBF"&gt;&lt;br /&gt;&lt;input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"&gt;&lt;br /&gt;&lt;img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-4572540742960810522?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/4572540742960810522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=4572540742960810522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4572540742960810522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/4572540742960810522'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/11/donate-to-joseph-fluckiger-blog.html' title='Donate to the Joseph Fluckiger blog!'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-846689694738265598</id><published>2006-11-01T07:17:00.001-06:00</published><updated>2006-11-01T07:28:19.349-06:00</updated><title type='text'>Have the unique name Fluckiger has a very unforseen, positive benefit in the present internet age</title><content type='html'>It’s amazing what you can find by typing in your name on google. Especially if your name is as unique as Joseph Fluckiger. Of 7 billion people on the planet, there are only a handful of Joseph Fluckigers. By searching on google, you can find, interestingly enough an archive of my race histories throughout my life, including my all-time favorite: a posting of the 1993 state championship team, Mesquite Poteet. Ah the glory days.  I think my time was a 16:20 for a distance of  5 kilometers. My best race ever for sure.&lt;br /&gt;&lt;br /&gt;Scrolling through the results of the search "Joseph Fluckiger" brings up the following:&lt;br /&gt;&lt;br /&gt;1993 texas state championship:&lt;br /&gt;&lt;a href="http://www.uil.utexas.edu/athletics/archives/cross_country/playoff_text/93at_bcc.html"&gt;http://www.uil.utexas.edu/athletics/archives/cross_country/playoff_text/93at_bcc.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1999 BYU Rex Lee Memorial Run:&lt;br /&gt;&lt;a href="http://www.runnercard.com/Results/1999/RexLee/RES-MEN.TXT"&gt;http://www.runnercard.com/Results/1999/RexLee/RES-MEN.TXT&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2004, Tripple threat:&lt;br /&gt;&lt;a href="http://www.redtrailracing.com/TTT2004_final.html"&gt;http://www.redtrailracing.com/TTT2004_final.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2006: Venice triathalon&lt;br /&gt;&lt;a href="http://www.altavistasports.com/results/2006results/venicetriathlon090206.html"&gt;http://www.altavistasports.com/results/2006results/venicetriathlon090206.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-846689694738265598?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/846689694738265598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=846689694738265598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/846689694738265598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/846689694738265598'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/11/thing-you-can-find-by-searching-on.html' title='Have the unique name Fluckiger has a very unforseen, positive benefit in the present internet age'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-6495357846377343234</id><published>2006-11-01T07:09:00.001-06:00</published><updated>2006-11-01T07:09:58.953-06:00</updated><title type='text'>shuttle launches</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;I finally found a reliable, concise list of future shuttle launches and their statuses.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;a href="http://www.spaceflightnow.com/shuttle/sts116/fdf/manifest.html"&gt;http://www.spaceflightnow.com/shuttle/sts116/fdf/manifest.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;It also shows how is on the mission and what is being done.&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style='font-family:"Courier New"'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-6495357846377343234?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/6495357846377343234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=6495357846377343234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6495357846377343234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/6495357846377343234'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/11/shuttle-launches.html' title='shuttle launches'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-1636647072268924266</id><published>2006-10-31T08:06:00.001-06:00</published><updated>2006-10-31T08:06:47.414-06:00</updated><title type='text'>A bug in the Microsoft ReportViewer control </title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;I found a bug in the Microsoft Report Viewer 2005 control. When used in LocalMode in an application that does not have a strongName signature, the reportViewer control saves temporary files to IsolatedStorage folder and does not ever delete the temporary files that it creates. So the result of this is that it takes up a lot of harddrive space, about 240k per page of the report. And when a report has 900 pages, this is a problemo. The problem is solved simply by making sure that your application has a strong name key (see the &amp;#8220;signing&amp;#8221; tab of project properties). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Nevertheless, this untidy habit of not cleaning up after itself caused me a lot of problems, several customer servers where this application is installed almost ran out of hard drive space because of this bug. Not good!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;-Joseph&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-1636647072268924266?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/1636647072268924266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=1636647072268924266' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1636647072268924266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/1636647072268924266'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/10/bug-in-microsoft-reportviewer-control.html' title='A bug in the Microsoft ReportViewer control '/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-116200730344326436</id><published>2006-10-27T22:39:00.000-05:00</published><updated>2006-10-27T22:48:53.326-05:00</updated><title type='text'>Joseph's programming tidbit #1 - scope in .NET</title><content type='html'>No, I'm not talking about mouthwash.&lt;br /&gt;&lt;br /&gt;There are five scopes in Visual Basic.NET&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Private&lt;/li&gt;&lt;li&gt;Friend&lt;/li&gt;&lt;li&gt;Protected&lt;/li&gt;&lt;li&gt;Public&lt;/li&gt;&lt;li&gt;Protected Friend&lt;/li&gt;&lt;/ol&gt;An important thing that I learned about scope in the context of inheritance:It is important that the parent class of a child class be public, otherwise the child class won't be able to be instantiated. There is however, an instance when this is Ok. And that is when a class factory method is available to instantiate the class. A factory method is a static method that instantiates members of a separate class.&lt;br /&gt;&lt;br /&gt;Another sly nuance exception to scope arrises from nested classes. Private class level variables of a class that is nested within another can be accessed by the parent class. Ah ha! There not so private after all! Kinda like the neighbor who has a view into your living room from theirs. Like my neighbor for example.&lt;br /&gt;&lt;br /&gt;Singelton class: A class designed such that only one instance of that class exists at any one time. I typically accomplish this in my code with a DefInstance static method which hold the one instance of the class that I want the rest of the project to access.&lt;br /&gt;-Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-116200730344326436?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/116200730344326436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=116200730344326436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/116200730344326436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/116200730344326436'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/10/josephs-programming-tidbit-1-scope-in.html' title='Joseph&apos;s programming tidbit #1 - scope in .NET'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-116082189198607935</id><published>2006-10-14T05:21:00.000-05:00</published><updated>2006-10-27T22:48:53.270-05:00</updated><title type='text'>I've started creating an artificially intelligent program.</title><content type='html'>I've always wanted to create an artificially intelligent software application. So today I have begun this endevor. I have affectionatly named it HAL, after the 2001 Space Odessy HAL.&lt;br /&gt;&lt;br /&gt;So far it can answer questions like "What will the weather be today." and "Am I pregnant?"&lt;br /&gt;&lt;br /&gt;My goals in building this program are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a program that is intelligent. The criteria for success is that my friend Ilijits Bos will judge this program to be intelligent. If he uses it, interacts with it and after using it says "it is intelligent", then I will have achieved this goal. He will determine his criteria for success at his sole discretion. The only caveat is that I can't bribe him to say yes, or drug him or blackmail him into saying yes.&lt;/li&gt;&lt;li&gt;learn new programming techniques&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;In the near future, you will be able to download HAL from Fluckiger.org.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HAL will be written in C# .NET, deployed via click-once, and will run as a low-permissions desktop application (security friendly) and will access a knowledge database via webservices.&lt;br /&gt;&lt;br /&gt;-Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-116082189198607935?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/116082189198607935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=116082189198607935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/116082189198607935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/116082189198607935'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/10/ive-started-creating-artificially.html' title='I&apos;ve started creating an artificially intelligent program.'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-115951415697432631</id><published>2006-09-29T02:14:00.000-05:00</published><updated>2006-10-27T22:48:53.216-05:00</updated><title type='text'></title><content type='html'>Durring my road-ride today I bunny-hopped a 3.5 ft black snake.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-115951415697432631?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/115951415697432631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=115951415697432631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/115951415697432631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/115951415697432631'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/09/durring-my-road-ride-today-i-bunny.html' title=''/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-115781358227714066</id><published>2006-09-09T09:52:00.000-05:00</published><updated>2006-10-27T22:48:53.159-05:00</updated><title type='text'>China log number 1</title><content type='html'>This is Joseph’s first travel China log from, er Tampa. I was quite heart-broken to arrive and find out that they changed the flight to 6am instead of 10am. I didn’t realized how excited I was to get to China until I heard I was going to have to wait a whole additional day to go to China and see my fam.&lt;br /&gt;&lt;br /&gt;The other funny thing, is that I will miss my birthday. I will cross the international date line while flying to China, so I will skip ahead 24 hours on September 11th thereby mostly missing my birthday. I leave Detroit at 2:25 pm Central Time Sept 10th and arrive at 8:45 pm Sept 11. Crazy. I guess I’ll just stay 30. I thought it was only possible to miss your birthday if your birthday was on February 29th. But I have now, by fortunate misfortune, found a new way. I will start a stay-young-by-skipping-your-birthday airline. Well, maybe at least they’ll give me special treatment on the flight.&lt;br /&gt;&lt;br /&gt;One question I hope to answer while I am in China. Perhaps one of the most important questions I’ve had in my life. Does Chinese food actually taste like Chinese food. AND does American food served in China actually taste American? I also want to see Chinese kids pee on their mom’s queue as described in Sarah’s 2nd travel log. That sound pretty impressive. Maybe Michael can learn that trick.&lt;br /&gt;&lt;br /&gt;You know I should have told them I was going to my wedding reception in Shanghi. It worked for me and Sarah when we were flying back from our honeymoon to make our Dallas reception. We got to cut in front of everyone, (and got a free bottle of Champaign).&lt;br /&gt;One thing that did give me a quite a bit of cheer after the bad news: On my way home from the airport I almost ran over a turtle. He was crossing a 4 lane highway. I was curious if he would make it, so I stopped on the shoulder and watched that little turtle. (He was a snapping turtle with a long neck). Trucks and cars and semi trucks all swerved and drove over and around him. Each time a car passed I expected to see a turtle pancake. But each time I didn’t, and low and behold that little lucky turtle made it all the way across 4 busy lanes of traffic.&lt;br /&gt;&lt;br /&gt;So the things I learned today are 1) check your flight times 2) If you are trying to walk across 4 busy lanes of traffic, you just might make it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;-Joseph&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-115781358227714066?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/115781358227714066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=115781358227714066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/115781358227714066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/115781358227714066'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/09/china-log-number-1.html' title='China log number 1'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-114400688393486083</id><published>2006-04-02T13:20:00.000-05:00</published><updated>2006-10-27T22:48:52.974-05:00</updated><title type='text'>Identity Theft</title><content type='html'>&lt;span style="font-size:85%;"&gt;A relative asked me if I was concerned about identity theft. Anyone in the world can access my blog which has pictures and descriptions of my life. &lt;/span&gt;&lt;span style="font-size:85%;"&gt;So, I have decided to post this agreement which you must accept before continuing:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;font-size:180%;"&gt;I promise not to use any information on this blog to steal Joseph Fluckiger's Identity.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:180%;"&gt;[I accept] [I decline]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Ok, so that's probably as effective as the Microsoft software agreement which no one I know has ever read, not even my dad who is a lawyer.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Seriously, identity theft is real and I don't want it to happen to me or you. So I'll tell you what I know about it and how to prevent it and also identify it early so you can mitigate the consequences if it does happen.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Identity theft I think can be summed up as: &lt;strong&gt;&lt;span style="color:#000000;"&gt;Someone taking out a loan with your social security number&lt;/span&gt;&lt;/strong&gt;. &lt;/span&gt;&lt;span style="font-size:85%;"&gt;That's it, that is what identity theft is. If someone has a picture of me, or knows what my son's name, or knows that I used WD-40 over a camp fire last summer, it doesn't help an identity thief. Because when you take out a loan, they don't ask those things. They main thing they want to know is your social security number. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Never-the-less I do use caution in what I post to my blog. I won't post my birthday, or my address or my home computer's IP address for example. &lt;/span&gt;&lt;span style="font-size:85%;"&gt;So I will be careful not to post those things on my site. But by far the main thing is the Social Security Number (SSN).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;These are steps I take to protect myself:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;I cancelled my extra credit cards. I only have one, and it is an ATM/Visa card. I audit the trasactions several times each week.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;I don't fall for phishing scams. "Phishing" is when you get an email that looks like it is from a legitimate source and it really isn't, and they ask you to enter in your password or other sensitive information into their fake website. Always check the domain name after the "http://" if it says &lt;a href="http://bankofamerica.com"&gt;http://bankofamerica.com&lt;/a&gt;, &lt;/span&gt;you are ok, if it says &lt;a href="http://bankofamerica.somefakedomain.com"&gt;http://bankofamerica.somefakedomain.com&lt;/a&gt; you are &lt;strong&gt;not&lt;/strong&gt; ok.&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;I use paypal instead of a credit card as much as possible. With a credit card, anyone with your credit card number can take your money, with Paypal you have to send money to the merchant.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;****&lt;strong&gt;important&lt;/strong&gt;: check your credit report regularly. Watch for suspicous activity. They changed the rules specifically because of identity theft so that now it is free to get your own credit report once per year. This is how you will identify identity theft, it will show up as new loans/credit cards on your credit report, followed by lots of bad ratings.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;My password that I use for every website and bank account is "doublecheeseholdtheonions", which no one would ever guess. Ok, joking aside, I use punctuation in my passwords and that's all I'll tell you about my passwords because this is a public forum. Call me and we can chat about password strategies. More and more passwords are your identity.&lt;/li&gt;&lt;li&gt;I use biometric authentication for my computers. That's a fancy word for fingerprint reader. It is reliable, and it works only for my finger. (I think we'll see bio-id built into most computers and electronic devices in the future. Your voice, fingerprint and passwords, and behavior will contribute to "evidence" which can reliably establish identity and flag impostors)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;The dependency we have in the US on the Social Security number is seriously flawed. Lots of organizations use your SSN to identify you because it is easy. &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Your health insurance company uses it. (They are trying to shift away from SSN, but legacy systems still use it heavily) F&lt;/span&gt;&lt;span style="font-size:85%;"&gt;unny story: my first BYU ID in 1998 had my SSN posted on the front of it for anyone to see, they have changed this practice fortunately. So these are the places you need to worry about your SSN being stolen from, because there are a lot of hands through which your SSN will pass. I know, because at a previous job, I had a database of SSNs. There really isn't anything you can do to prevent these things, so that's why step 4 above is important.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;Interesting story: Sarah's classmate had her identity stolen. Someone was able to get her social security number. And they were able to take out several loans and credit cards. Sarah's class-mate didn't find out what had happened until she went to take out a credit card and it got denied because her credit was bad. So now she is having to go through this long, painful, paperwork intensive process of verifying her identity, and cleaning up bogus activity. Meanwhile, they are not going to restore her credit because they are trying to watch to see if the thief is going to make a move and get caught.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;The research I did for this blog was really interesting, and I feel empowered against an otherwise fuzzy, ominous, evil concept. My conclusion is that blogging is safe. If I were running for govenor, I might be wary of arming my advesaries with incriminating evidence, but I don't plan on that. I have an action plan, so identity thieves, you'd better pick on someone else because this the the blog of Fort Knox.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;-Joseph Ft. Knox Fluckiger&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22622316-114400688393486083?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/114400688393486083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=114400688393486083' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/114400688393486083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/114400688393486083'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/04/identity-theft.html' title='Identity Theft'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22622316.post-114271634771916942</id><published>2006-03-18T14:58:00.000-06:00</published><updated>2006-10-27T22:48:52.917-05:00</updated><title type='text'>I passed a Microsoft Certification Test!</title><content type='html'>&lt;p&gt;I passed the first test of 3 for my Microsoft MCAD Certification! I passed the test called "Developing Windows Based Applications with Microsoft Visual Basic.NET and Microsoft Visual Studio"&lt;/p&gt;&lt;p&gt;yippeee!yahooooo!&lt;/p&gt;&lt;p&gt;It has been a longtime goal of mine to get the Microsoft Certification for Programmers, so it is a great personal victory for me to have passed the first test. I didn't actually think that I would pass it, I was taking it to see how hard the test was and how hard I would have to study to pass it because I got a take-it-again-for-free coupon. :) But I did in fact pass it on my first try. I scored a 775, while the minimum score to pass is a 700, so I passed by a margin of 3 questions on a 38 question test. I was certainly happy coming out of the test. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Now I think I will stop having those nagging nightmares where I'm in school again and can't find my class. Something that didn't bother me conciously, but something - perhaps in retrospect humerously - that bugged me subconsiously. So it's a great personal victory for me. In addition to a great professional affirmation of my skillsets, it's proof to myself that I haven't lost my academic touch. &lt;/p&gt;&lt;p&gt;Gotta go celebrate!&lt;/p&gt;&lt;p&gt;-Joseph&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;(added 3/19/2005) &lt;/span&gt;&lt;span style="color:#ff9966;"&gt;My father-in-law, Stayner Lewis, asked a good question about the certification: "what kind of certifiation is this." So.. let me put this certification in perspective. Most professional professions have their industry accepted degrees/lisences/certifications/advanced degrees. Lawyers have the bar, Actualary accountains have their standard set of tests, CPAs have their test/certifications. Business people can get an MBA. Well programmers are a interesting animal. There isn't really a common advanced degree or an industry wide certification for programmers. Maybe because programming is relatively new compared to law, medicine, tax, and insurance. Also, the skill that need to be demonstrated are technology specifc: Sun's Java Language Microsoft's .NET language, Cisco's various languages, etc. So what can a programmer do to further his education and demostrate compentency in programming skills? This is where Professional Programming Certifications come into play. Each company produces its own set of tests, and Microsoft's program is called MCP, Microsoft Certified Professional. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;When I finish the "MCAD" certification that I'm working on, the acronym will go next to my name on my business cards and email signatures etc: "Joseph Fluckiger, MCAD". Has a nice ring to it doesn't it? anyway, hope that helps clarify a bit.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;-Joseph&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/22622316-114271634771916942?l=josephfluckiger.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josephfluckiger.blogspot.com/feeds/114271634771916942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22622316&amp;postID=114271634771916942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/114271634771916942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22622316/posts/default/114271634771916942'/><link rel='alternate' type='text/html' href='http://josephfluckiger.blogspot.com/2006/03/i-passed-microsoft-certification-test.html' title='I passed a Microsoft Certification Test!'/><author><name>Joseph Fluckiger</name><uri>http://www.blogger.com/profile/03240394243690061387</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://4.bp.blogspot.com/_qBelXjxITtI/SKwC_oVnZ6I/AAAAAAAAEyk/RG1pFn5LMd4/S220/joseph+fluckiger+and+michael+in+the+pool.jpg'/></author><thr:total>0</thr:total></entry></feed>
