<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7401916</atom:id><lastBuildDate>Thu, 14 Mar 2024 01:57:52 +0000</lastBuildDate><title>Kevin Hegg</title><description></description><link>http://kevinhegg.blogspot.com/</link><managingEditor>noreply@blogger.com (Kevin Hegg)</managingEditor><generator>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-4753607242011959831</guid><pubDate>Sun, 22 Jun 2008 19:59:00 +0000</pubDate><atom:updated>2008-06-23T07:45:42.128-04:00</atom:updated><title>What have I been doing on my sabbatical?</title><description>&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Since I stopped working on Feb. 29, 2008 a lot of people have asked what I have been doing so I thought I would write something up. Here is what I have been doing to keep busy.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The objectives I set were to learn more about (1) computer security, (2) Windows Vista/Server 2008 platform, (3) .NET 3.5, specifically WCF and LINQ, (4) concurrency, parallelism, and scalability, (5) agile software development, (6) software design, and (7) advanced debugging. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Books Read&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Writing-Secure-Code-Windows-Vista/dp/0735623937/&quot;&gt;Writing Secure Code for Windows Vista&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Windows-Server-2008-Security-Resource/dp/0735625042&quot;&gt;Windows Server 2008 Security Resource Kit&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.eccouncil.org/Course-Outline/Ethical%20Hacking%20and%20Countermeasures%20Course.htm&quot;&gt;Ethical Hacking and Countermeasures 6.0&lt;/a&gt;, Volumes 1, 2, and 3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Windows-Vista-Inside-Out-Bott/dp/0735622701&quot;&gt;Windows Vista Inside Out&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Windows-Server-2008-Inside-Out/dp/0735624380&quot;&gt;Windows Server 2008 Inside Out&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Inside-Microsoft%C2%AE-SQL-Server-2005/dp/0735621969&quot;&gt;Inside SQL Server 2005: Query Tuning and Optimization&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/2008-NET-Platform-Fourth-Windows-Net/dp/1590598849&quot;&gt;Pro C# 2008 and the .NET 3.5 Platform&lt;/a&gt; (Ch. 10, 11, 14, 20)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Silverlight-1-0-Unleashed-Adam-Nathan/dp/0672330075&quot;&gt;Silverlight 1.0 Unleashed&lt;/a&gt; (don&#39;t recommend)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Essential-Silverlight-Up-Date/dp/0596519982&quot;&gt;Essential Silverlight 2&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Learning-WCF-Hands-Michele-Bustamante/dp/0596101627&quot;&gt;Learning WCF&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Essential-Windows-Communication-Foundation-WCF/dp/0321440064&quot;&gt;Essential Windows Communication Foundation&lt;/a&gt; (don&#39;t recommend)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Windows-via-C-Pro-Developer/dp/0735624240&quot;&gt;Windows Via C/C++&lt;/a&gt; (Ch. 6 - 11)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Enterprise-Scrum-Ken-Schwaber/dp/0735623376&quot;&gt;The Enterprise and Scrum&lt;/a&gt; (2nd time read)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Agile-Project-Management-Microsoft-Professional/dp/073561993X&quot;&gt;Agile Project Management with Scrum&lt;/a&gt; (2nd time read)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215&quot;&gt;Domain-Driven Design&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052&quot;&gt;Working Effectively with Legacy Code&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Software-Factories-Assembling-Applications-Frameworks/dp/0471202843&quot;&gt;Software Factories&lt;/a&gt; (don&#39;t recommend)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356&quot;&gt;I.M. Wright&#39;s &quot;Hard Code&quot;&lt;/a&gt; (don&#39;t recommend)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Facts-Fallacies-Software-Engineering-Development/dp/0321117425&quot;&gt;Facts and Fallacies of Software Engineering&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Programming-Microsoft%C2%AE-Robotics-Studio-Morgan/dp/0735624321&quot;&gt;Programming Robotics Studio&lt;/a&gt; (don&#39;t recommend)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Books Currently Reading&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Programming-WCF-Services-Juval-Lowy/dp/0596526997&quot;&gt;Programming WCF&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Pro-LINQ-Language-Integrated-Windows-Net/dp/1590597893&quot;&gt;Pro LINQ&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Expert-F-Experts-Voice-Net/dp/1590598504&quot;&gt;Expert F#&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202&quot;&gt;Applying Domain-Driven Design and Patterns&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Domain-Specific-Development-Visual-Studio-Microsoft/dp/0321398203&quot;&gt;Domain-Specific Development with Visual Studio DSL Tools&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Understanding-IPv6-Second-Joseph-Davies/dp/0735624461&quot;&gt;Understanding IPv6 2nd Edition&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Windows-Server-2008-Protocols-Services/dp/073562447X&quot;&gt;Windows Server 2008 TCP/IP Protocols and Services&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Advanced-Debugging-Addison-Wesley-Microsoft-Technology/dp/0321374460&quot;&gt;Advanced Windows Debugging&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Text-Mining-Handbook-Approaches-Unstructured/dp/0521836573&quot;&gt;The Text Mining Handbook&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Text-Mining-Predictive-Unstructured-Information/dp/0387954333&quot;&gt;Text Mining&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Beautiful-Evidence-Edward-R-Tufte/dp/0961392177&quot;&gt;Beautiful Evidence&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Events Attended&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.visitmix.com/&quot;&gt;MIX&lt;/a&gt;, March 2008&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.devscovery.com/&quot;&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Devscovery Conference&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;, April 2008&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://altdotnet.org/events/seattle&quot;&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;ALT.NET Seattle&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;, April 2008&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.edwardtufte.com/tufte/&quot;&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Edward Tufte&#39;s&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt; Presenting Data and Information, May 2008&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.hackerhalted.com/&quot;&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Hacker Halted USA 2008 Conference&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;, May/June 2008&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://altnet.ent0.com/MainPage.ashx&quot;&gt;DC ALT.NET&lt;/a&gt; Meeting, Monthly&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Events Planned&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;https://www.blackhat.com/&quot;&gt;Black Hat USA 2008&lt;/a&gt;, August 2008&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.microsoftpdc.com/&quot;&gt;Microsoft Professional Developers Conference&lt;/a&gt;, October 2008&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Software I have been playing with&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/robotics/default.aspx&quot;&gt;Microsoft Robotics Studio&lt;/a&gt; and &lt;a href=&quot;http://mindstorms.lego.com/eng/Paris_Destination/Default.aspx&quot;&gt;Lego Mindstorm NXT&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.asp.net/ajax/&quot;&gt;ASP.NET AJAX&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.asp.net/mvc/&quot;&gt;ASP.NET MVC&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.codeplex.com/xunit&quot;&gt;xUnit.net 1.0&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.codeplex.com/entlib&quot;&gt;Enterprise Library 4.0&lt;/a&gt;, specifically Unity&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663324.aspx&quot;&gt;Windows Communication Foundation&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.codeplex.com/servicefactory/Release/ProjectReleases.aspx?ReleaseId=11147&quot;&gt;Web Service Software Factory - Modeling Edition Visual Studio 2008&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa904594.aspx&quot;&gt;LINQ&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;.NET &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc546608.aspx&quot;&gt;Asynchronous Programming Model&lt;/a&gt; and Jeffrey Richter&#39;s &lt;a href=&quot;http://www.wintellect.com/MemberOnly/PowerThreading.aspx&quot;&gt;Threading Tools&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3&amp;amp;displaylang=en&quot;&gt;Parallel Extensions to the .NET Framework&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.jetbrains.com/resharper/index.html&quot;&gt;JetBrains Resharper 4.0&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.jetbrains.com/profiler/&quot;&gt;JetBrains dotTrace 3.1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Certification Exams Passed&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.eccouncil.org/ceh.htm&quot;&gt;Certified Ethical Hacker&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/exams/70-536.mspx&quot;&gt;Microsoft .NET Framework, Application Development Foundation&lt;/a&gt; (70-536)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/exams/70-620.mspx&quot;&gt;Windows Vista, Configuring&lt;/a&gt; (70-620)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/learning/en/us/exams/70-643.mspx&quot;&gt;Windows Server 2008 Applications Infrastructure, Configuring&lt;/a&gt; (70-643)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</description><link>http://kevinhegg.blogspot.com/2008/06/what-have-i-been-doing-on-my-sabbatical.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-6090560784513707149</guid><pubDate>Sun, 22 Jun 2008 18:58:00 +0000</pubDate><atom:updated>2008-06-22T15:59:26.638-04:00</atom:updated><title>Hacker Halted Conference Summary</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;I attended the &lt;a href=&quot;http://www.hackerhalted.com/&quot;&gt;Hacker Halted USA 2008 Conference&lt;/a&gt; May 28 - June 3, 2008. My objective in attending this conference was to get a different perspective on &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;cyber&lt;/span&gt; security and to evaluate the new Certified Ethical Hacker (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;CEH&lt;/span&gt;) Version 6 curriculum/certification at the request of a friend.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The first three days I attended the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;CEH&lt;/span&gt; course. This is normally a 5-day course. I think it was a mistake to try to jam 5 days of material into 3 days. Too much information was skimmed over or not presented. This was the first presentation of the Version 6 material. I knew that going into the course and expected more issues than were encountered. There were surprisingly few problems with the course material and labs. The instructor, on the other hand, was horrible. He was unfamiliar with the material, read straight from the slides, was not a very good speaker, and injected a lot of personal anecdotes that were laced with inaccuracies. I strongly recommend against taking any course from this instructor, Chuck Swanson. The only saving grace from this experience is that the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;CEH&lt;/span&gt; course material and labs are very good, in my opinion. The course material is over 4,000 pages. After the conference I went through the course and labs in-depth and I learned a lot.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The Hacker Halted conference was held jointly with the &lt;a href=&quot;http://www.thetrainingco.com/html/Techno2008.html&quot;&gt;Techno Security&lt;/a&gt; and &lt;a href=&quot;http://www.accessdata.com/Events/ADUsersConf.aspx&quot;&gt;AccessData Users&#39;&lt;/a&gt; Conferences. In total, there were probably 1,000 people in attendance. Attendees could go to any of the sessions, but I didn&#39;t take advantage of that. I attended the Hacker Halted sessions exclusively. I thought the Hacker Halted agenda was good, unfortunately 3 of the best speakers cancelled and their replacements were very underwhelming. The other presentations were good.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The target audience for the three conferences is forensic investigation, computer security, network administration, and law enforcement people. There were very few developers in attendance. I had the opportunity to talk with a lot of people with different backgrounds which is something I was looking forward to. I met some interesting people and had interesting conversations.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I am not sure that I would recommend this conference. It had lots of potential and if it lived up to its potential it would have been a very good conference.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/06/hacker-halted-conference-summary.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-7476194943843604160</guid><pubDate>Thu, 08 May 2008 18:02:00 +0000</pubDate><atom:updated>2008-05-08T16:31:23.458-04:00</atom:updated><title>How do I convince my company/client/boss/team/co-worker to do X?</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;This topic comes up every now and then, but over the last couple of months I have had a lot of conversations with a bunch of folks about &quot;How do I convince my company/client/boss/team/co-worker to do X?&quot; or some variation of that. Since I spend a lot of my professional life trying to influence others and because I am mostly successful in doing so, I sometimes take it for granted that it is just common-sense. People seem to respond positively to my advice so I thought I would share it. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;1. Credibility. First and foremost, if you want to influence people you have to be credible. If you are not viewed by others as being credible then it is going to be difficult or impossible to influence others. It doesn&#39;t matter whether you believe that you are credible. Credible people are the first ones to admit when they don&#39;t know something, so the first lesson is to admit that you can&#39;t know everything. If you don&#39;t know something then keep your mouth shut. The second lesson is that it can take years to gain credibility and an instant to lose it. Before opening your mouth think about whether there is a great risk of losing credibility and if so then keep your mouth shut.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;2. Execution. It is very important that others view you as someone who successfully executes. You can have many flaws, but others are more tolerant of the flaws if you successfully execute. Successful execution helps to build credibility. Also, successful execution is often what grants you entry into a conversation that provides an opportunity to influence others. Don&#39;t confuse successful execution with showing up for work and not getting fired. Understanding your role is very important. There are plenty of smart people who lose focus and think they are helping by pointing out the flaws in others. Unless it is your role to do so, and it rarely is, then stay focused on your role. If you don&#39;t like your role then change it, but once you are in a role then you need to play the role the best you can.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;3. Listening. Often the most influential people are the ones who say the least. If you don&#39;t listen then you can&#39;t understand others. If you don&#39;t understand others then how can you possibly respond to their questions or issues? Even if you know the other person is wrong it is important to let them have their say and it is important for you to listen to what they are saying. Listening can provide you with important information needed for negotiation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;4. Facts. It is very important to distinguish between facts and opinions when trying to influence others. If you are offering an opinion and someone else has another opinion then be tolerant of that opinion. If someone disagrees with your opinion then acknowledge the difference in opinion, but don&#39;t fight about it. Healthy debate at the appropriate times is OK, but constant debate about everything can lead to you not being invited into key discussions. When pushing facts (a) make sure your facts are correct, (b) offer supporting data if available, and (c) don&#39;t exaggerate. If someone disagrees with facts that you present to them then don&#39;t get dragged into a never-ending debate. State the facts, counter the other person&#39;s objections once, and end down the conversation. In time, you will often be proven correct.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;5. Importance. Don&#39;t win the battles, but lose the war. You have a limited opportunity to influence others. You need to understand which battles are worth fighting and which ones aren&#39;t. First, if you focus on the most important issues and leave the rest to others then you are going to find yourself being more influential than them. Second, you need to let others participate in the process. You don&#39;t want to be viewed as being intolerant, inflexible, or dictatorial. Letting others win the minor things, especially the things that are just opinions of little consequence, can lead to you being more influential. Third, people need to learn and sometimes you learn through making mistakes. Letting people learn through mistakes on the minor things is better than the alternative.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;6. Negotiation. Everything is a negotiation. Many non-influential people will convince themselves that they don&#39;t have to sell or compromise. They are dead wrong. If you understand that everything is a negotiation then you can come prepared for a negotiation. It has been my experience that most people come into a discussion unprepared for any kind of negotiation. The person who is most prepared is often the most influential.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;7. Religion. Avoid religious discussions. It is very difficult to change a zealot&#39;s opinions. Zealots often self-destruct and they like to drag people down with them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;8. Permission. Don&#39;t ask for permission unless you want to be told no. It is important to understand that people initially react to change negatively. This is human nature. If you want to introduce a new tool or process then just do it. It is better to ask for forgiveness than it is to ask for permission. It is easier to introduce tools or process changes for yourself than it is for an entire team/organization. Become successful by yourself instead of trying to influence the team/organization to change. Over time, if the tool or process makes you significantly more successful than others then it will become apparent. Successful results provide a much stronger negotiating position. Success is also a stronger magnet than failure. People will gravitate towards success.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;9. Demeanor. You will be judged by your demeanor. If you come across as lacking confidence or experience then you are going have a more difficult time influencing others. No matter how anxious, angry, depressed, etc. you are you need to hide this from others.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/05/how-do-i-convince-my.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-105145318674731194</guid><pubDate>Wed, 07 May 2008 06:58:00 +0000</pubDate><atom:updated>2008-05-07T03:46:56.995-04:00</atom:updated><title>Edward Tufte, &quot;Presenting Data and Information&quot;</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;I attended &lt;a href=&quot;http://www.edwardtufte.com/tufte/&quot;&gt;Edward Tufte&#39;s&lt;/a&gt; &quot;Presenting Data and Information&quot; course this week&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;. This course was on my To-Do list for too long, so I finally decided to attend. It helps that the course was held very close to home and only lasts one day. The course fee includes Tufte&#39;s four books: &quot;The Visual Display of Quantitative Information&quot;, &quot;Envisioning Information&quot;, &quot;Visual Explanations&quot;, and &quot;Beautiful Evidence&quot;. Overall, it was a good course and I recommend it to others. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The course topics included:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;fundamental strategies of analytic design&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;evaluating evidence used in presentations&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;statistical data: tables, graphs, and semi-graphics&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;business, scientific, research, and financial presentations&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;complexity and clarity&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;effective presentations: on paper and in person&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;use of PowerPoint, video, overheads, and handouts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;multi-media, internet, and websites&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;credibility of presentations&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;animation and scientific visualizations&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;design of computer interfaces and manuals&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;This is a non-technical course that provides valuable guidance to anyone working in a technical job. I found The (Six) Fundamental Principles of Analytical Design in &quot;Beautiful Evidence&quot; to be immediately helpful to some projects that I am working on. Once you read and understand the principles it just makes sense.&lt;/span&gt;&lt;/p&gt;</description><link>http://kevinhegg.blogspot.com/2008/05/edward-tufte-presenting-data-and.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-4964451147809401413</guid><pubDate>Mon, 21 Apr 2008 18:02:00 +0000</pubDate><atom:updated>2008-04-24T09:11:25.050-04:00</atom:updated><title>ALT.NET Seattle Summary</title><description>&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I attended the &lt;a href=&quot;http://altdotnet.org/events/seattle&quot;&gt;ALT.NET Seattle&lt;/a&gt; event this weekend. I had mixed emotions about attending and didn&#39;t have very high expectations. I am fairly new to ALT.NET (3 months). My first couple of weeks on the ALT.NET &lt;a href=&quot;http://tech.groups.yahoo.com/group/dcaltnet/&quot;&gt;discussion list&lt;/a&gt; just about soured me on the group. There were a bunch of petty, uncivil discussions and there wasn&#39;t a lot of useful information coming out of the discussions. Luckily, I was patient and the signal-to-noise ratio has improved recently. The ALT.NET Seattle event greatly exceeded my expectations. There were a lot of intelligent, passionate people who attended. Also, a couple of the ALT.NET leaders spent a lot of effort working to keep everyone civil. I think those efforts made a huge difference. Thanks to the organizers for making this a memorable event.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Friday evening started with individuals proposing topics. The heavy posters on the ALT.NET discussion list and prolific ALT.NET bloggers dominated this activity. That wasn&#39;t surprising nor is it a criticism.&lt;/span&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt; I just found it interesting to watch. Next, there was a &lt;a href=&quot;http://en.wikipedia.org/wiki/Fishbowl_%28Conversation%29&quot;&gt;fishbowl conversation&lt;/a&gt; on &lt;a href=&quot;http://en.wikipedia.org/wiki/Polyglot_%28computing%29&quot;&gt;polyglot&lt;/a&gt; &lt;a href=&quot;http://martinfowler.com/bliki/OneLanguage.html&quot;&gt;programming&lt;/a&gt;. Fishbowl conversations were new to me, so it was interesting to observe. I think it was the right thing to do because there were some people who would of and could of dominated the conversation. The result is that a lot of people got to say a little bit about polyglot programming, but no one dominated the conversation. The downside is that there wasn&#39;t a lot of substance to the conversation. That&#39;s OK because it set the mood for the weekend, civil conversations where everyone gets an opportunity to be heard.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The first session that I attended on Saturday was led by &lt;a href=&quot;http://www.iunknown.com/&quot;&gt;John Lam&lt;/a&gt; and was about &lt;a href=&quot;http://www.ironruby.net/&quot;&gt;IronRuby&lt;/a&gt; and the DLR. He talked a bit about IronRuby progress. They have a ways to go. He mentioned they are using the Rubinius tests as one measure of done-ness and they have passed 89% of the tests. He talked about working with code at the meta and meta-meta level and how quickly things can get complex and hard to maintain.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The second session that I attended on Saturday was led by &lt;a href=&quot;http://diditwith.net/&quot;&gt;Dustin Campbell&lt;/a&gt; and was about functional programming. Most of the people in the room had very little experience with functional programming so the conversation didn&#39;t go very deep. Functional programming conversations very quickly get into how much better suited FP languages are than non-FP languages for handling concurrency. I understand how FP languages have the possibility of handling concurrency well, but I haven&#39;t seen a lot of real-world examples to prove it. Concurrent computing is complex. FP languages may help with the complexity, but they aren&#39;t going to eliminate it any time soon and they certainly aren&#39;t going to push concurrent computing into the hands of junior/intermediate programmers any time soon.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The third session that I attended on Saturday was about ASP.NET MVC. Many of the attendees use ASP.NET MVC. &lt;a href=&quot;http://haacked.com/&quot;&gt;Phil Haack&lt;/a&gt; and &lt;a href=&quot;http://blogs.msdn.com/brada/&quot;&gt;Brad Abrams&lt;/a&gt; from Microsoft attended and fielded a lot of questions. We talked a bit about Microsoft&#39;s 5% adoption of MVC comments. The number was just pulled out of someone&#39;s butt and Microsoft has no idea how much MVC will be used. I think Microsoft is also very nervous about upsetting their ISV&#39;s and large corporate partners. If MVC is widely adopted then it will be very disruptive to the web control vendors. Microsoft is always fearful of incurring the wrath of large corporations who will ask &quot;Why am I building applications with X when you are moving to Y?&quot;. The attendees asked Microsoft to stop using the 5% adoption number because it will scare a lot of managers away from adopting MVC. Some attendees also asked Microsoft to make it as easy as possible to leverage open source Javascript libraries and client-side controls. They seemed receptive to the message.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The fourth session that I attended on Saturday was led by Scott Bellware and was about Behavior Driven Development (BDD) / Context Specification. Part of the discussion was about BDD and whether Bellware had hijacked the term to push something else. He admitted that may be the case. He presented an interesting way of testing software against specifications. While I liked some of the things I saw I doubt that what he is proposing will gain any traction. While his ideas were interesting I don&#39;t think he presented a strong case for improving anything. His approach was different, not better.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The fifth session that I attended on Saturday was led by &lt;a href=&quot;http://www.hanselman.com/blog/&quot;&gt;Scott Hanselman&lt;/a&gt; and was about whether the .NET community innovates or contributes anything back to the open source community. It seems to me that a fair amount of ALT.NET&#39;ers are very bothered by the image that all of the innovation is happening outside of the .NET platform or only in the open source community. I don&#39;t understand the insecurity. Why does it matter where innovation happens? I contributed two comments to the conversation. First, I think open source is not as prevalent in the Microsoft space because there is a rich ecosystem of commercial companies whereas in the non-Microsoft space there isn&#39;t. Many of these commercial companies provide source code with their products, but they aren&#39;t open source companies. Second, while the .NET community didn&#39;t invent something, they have a long list of things they greatly improved. I used JUnit vs. NUnit as an example. Scott Hanselman translated my point into &quot;innovation doesn&#39;t necessarily equal invention&quot; which accurately summarizes my point. Someone else made the point that much of the innovation claimed by the open source community happened some time in the past. What innovation has there been recently?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I skipped the two Sunday sessions. My son and two of my grandchildren live in Seattle, so I decided to spend the morning with them instead. There were a couple of sessions that looked interesting, but nothing I couldn&#39;t live without.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The best part of the event was the socialization. Unlike a conference, user group, or Code Camp where people are expecting to be passively taught, most people came to this event to talk/socialize. I had a number of interesting conversations with people in between sessions, at dinner, and at the bar.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/04/altnet-seattle-summary.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-6732951808560811412</guid><pubDate>Sat, 05 Apr 2008 10:23:00 +0000</pubDate><atom:updated>2008-04-05T07:59:00.559-04:00</atom:updated><title>Devscovery April 2008 Conference Summary</title><description>&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;I attended the &lt;a href=&quot;http://www.devscovery.com/&quot;&gt;Devscovery Conference&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; last week. Overall, it was a good conference and I recommend attending it in the future. I think it is one of the best value-for-the-money conferences.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Scott Hanselman kicked off the conference with a discussion on ASP.NET 3.5 Extensions. Usually Scott&#39;s presentations are very good, but I walked out of this one somewhat disappointed. He started off by asking a couple of &quot;How many of you use X?&quot; questions. I don&#39;t remember what he said, but he made some comment that came across to me as the attendees were a bunch of dopes. This completely shut down the audience participation which in turn threw off Scott because he likes to engage the audience. Also, I thought Scott&#39;s material was a bit dated.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;There really wasn&#39;t anything that excited me for the first session so I sat in the &quot;Translating Architectures to Technologies&quot; presentation by Roger Dahlman. This was supposed to be about design patterns and .NET. This presentation was horrible. Dahlman was a very poor speaker, his slides were littered with spelling mistakes, and he came across as not knowing design patterns at all. I got nothing of value from this presentation. At this point I was starting to think that I wasted my money and time attending this conference.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The second session was &quot;C# 3.0&quot; by Jeffrey Richter. Since I feel like I have a pretty good grasp of C# 3.0 I was expecting to maybe get a couple pearls of wisdom out of this presentation. I really liked this presentation. Jeffrey told a nice story about all of the C# 3.0 features that concluded with why all of the new features were necessary to enable LINQ. That was fine, but I knew that already. What I didn&#39;t know was that this presentation provided the foundation for the next day&#39;s threading presentation.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The third session was &quot;Performance of Every Day Things&quot; by Jeffrey Richter. This was an excellent presentation about how different .NET programming constructs and techniques can affect performance. I already knew most of what he presented, but there were a couple of new things that I learned about measurement that I will use immediately.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;On day two I attended the &quot;Day of Threading&quot; presentation by Jeffrey Richter. This was four sessions on threading. I was expecting this presentation to be a refresher for much of what I already knew about threading. I was pleasantly surprised when it wasn&#39;t. Jeffrey spent most of the day discussing the Asynchronous Programming Model (APM) that he wrote about in &lt;a href=&quot;http://www.amazon.com/CLR-via-Second-Pro-Developer/dp/0735621632/&quot;&gt;CLR via C#&lt;/a&gt;, Chapter 23 and the MSDN Magazine &lt;a href=&quot;http://msdn2.microsoft.com/en-us/magazine/cc163467.aspx&quot;&gt;March 2007&lt;/a&gt; and &lt;a href=&quot;http://msdn2.microsoft.com/en-us/magazine/cc163323.aspx&quot;&gt;November 2007&lt;/a&gt; issues. One of the issues that he discussed was how difficult the APM was for most developers to use. During the presentation he knocked down the obstacles to using the APM. By leveraging the new features in C# 3.0 he greatly simplified the APM. Throughout the day he ran a number of tests to measure the performance of different threading techniques. His final implementation provided substantially better performance, lower resource utilization, and lower code complexity. He said to expect another MSDN article in the June 2008 timeframe that completes the discussion on APM. He mentioned that the Microsoft Robotics team tried to prevent this article from being published because it provides a vastly superior solution to the Concurrency and Coordination Runtime (CCR). Also, he mentioned a couple of teams in Microsoft that are using APM and are seeing major improvements in scalability. Some of the tests that he ran showed the scalability improvements and they were substantial. I didn&#39;t fully appreciate the APM, but I have the religion now. This will play a major role in my development from now on.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The first session on day three was &quot;The Microsoft AJAX Library&quot; by Jeff Prosise. This presentation focused on the client side entirely. He said that he presented the server side of AJAX the previous day. He did a good job presenting the internals of Microsoft&#39;s AJAX libraries and discussed how to extend/modify them.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The next three sessions by Jeff Prosise were on Silverlight, &quot;Building Great Applications with Silverlight 1.0&quot;, &quot;Building Great Applications with Silverlight 2.0&quot;, and &quot;Silverlight Tips, Tricks &amp;amp; Best Practices&quot;. All of these presentations were good. I was a little leery about sitting through a presentation on Silverlight 1.0, but Jeff did a good job on focusing on the features that remained in 2.0. Jeff provided lots of sample code that will be helpful in further use of Silverlight.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I was a little disappointed that I couldn&#39;t attend any of John Robbins&#39; sessions, but since I did a day of training with him back in December 2007 it wasn&#39;t a big deal. I didn&#39;t attend any of the non-Wintellect sessions since they seemed to be more focused on the mechanics of basic things. I would have been OK if Wintellect didn&#39;t co-host with Infragistics. I think the audiences that both attract are completely different.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/04/devscovery-april-2008-conference.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-6076403557084481688</guid><pubDate>Mon, 31 Mar 2008 13:20:00 +0000</pubDate><atom:updated>2008-03-31T09:42:24.771-04:00</atom:updated><title>Throwing out the first pitch at a Major League Baseball game</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;My 9-year nephew, Charlie Costa, is a die-hard St. Louis Cardinals baseball fan. I have fun talking trash with him because I have been a die-hard Chicago Cubs fan since about his age.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;A little over one year ago Charlie was diagnosed with a pretty serious brain tumor. The doctors treated it right away, but in the fall of last year they determined they hadn&#39;t gotten all of it. At the beginning of this year he went in for another 6 weeks of treatment. This time the doctors think they got all of it, but only time will tell. This last year has been very tough on Charlie, his mother (my sister), and their family. There have been a lot of trips from Springfield, Illinois to St. Louis for treatment.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The hospital that Charlie has been treated at has an affiliation with the St. Louis Cardinals. When the opportunity for a patient at the hospital to throw out the first pitch came up, Charlie was the first one everyone thought of. There is no bigger fan than him. He will be throwing out the first pitch when the St. Louis Cardinals play the Washington Nationals on April 6. This is such a huge thrill for him and a nice end to a difficult period in his life. So, if you are watching the baseball game and you see a little kid throwing out the first pitch you know the story behind it.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/03/throwing-out-first-pitch-at-major.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-55541702674364216</guid><pubDate>Mon, 24 Mar 2008 14:37:00 +0000</pubDate><atom:updated>2008-03-24T15:29:04.811-04:00</atom:updated><title>High functioning teams</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Over the last week on the ALT.NET list there has been a &lt;a href=&quot;http://tech.groups.yahoo.com/group/altdotnet/message/4540&quot;&gt;discussion&lt;/a&gt; about the &quot;expert&quot; ALT.NET&#39;ers joining forces to form the best IT consulting business. This idea is not a new one. Many have discussed this in other venues and some have acted on it. Recently, Martin Fowler wrote about &lt;a href=&quot;http://martinfowler.com/bliki/PreferDesignSkills.html&quot;&gt;PreferDesignSkills&lt;/a&gt;. This is not a new idea either. What is common between both of these discussions is the focus on the individual. For the first 20 years of my career I fell into the &quot;best individual&quot; camp, however over the last 10 years I have been in the &quot;best team&quot; camp. This change in thought can lead to very different hiring practices and company culture.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;When interviewing a candidate I start by evaluating the person on the things they claim to know. If you don&#39;t know what you claim to know or are as good as you claim to be in that area then that is grounds for immediate rejection. Next, I evaluate the candidate for capacity and willingness to learn. This is where Fowler and I start to disagree. Fowler values design skills above anything else, as far as I can tell. I take a much broader view. I value candidates with a strong foundation. Design skills are important, but they are just one part of the foundation. Regarding capacity to learn, I am looking for someone who can reason about a new method, technology, process, tool, etc. and develop an informed opinion about if and when to use it. If the candidate only believes in the &quot;one true way&quot; or &quot;one true tool&quot; then they have lost their capacity to learn, at least in that area. Regarding willingness to learn, I am trying to determine how self-motivated the candidate is to learn new things. Next, I evaluate the candidate on their ability to make a team better. Is this candidate willing to play a specific role on the team? Will this candidate help make other team members better? Will this candidate be respectful to other team members? Will this candidate show loyalty to the company, project, and customer? Finally, I try to form an assessment of how much of an investment is required before the candidate is a contributing member of the team.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Getting back to Fowler&#39;s design vs. platform skills choice, there are a couple of problems with his conclusions when you look at it from a team point of view. First, what are the skills that are required to round out the team this candidate will be put on? If the team doesn&#39;t have all of the skills necessary for the project to succeed then I believe the most important thing is to fill the holes in the team. It is easy to say that you are hiring the person for future and not for the project, but if you put a person on a project that they aren&#39;t a good fit for then you haven&#39;t done the candidate, company, project team, or customer any favors. Putting any butt in any seat doesn&#39;t work, in my opinion. Second, I don&#39;t believe that you can make a blanket statement &quot;that a good programmer should be able to pick up a new platform relatively quickly&quot;. Some projects require solving hard problems and that may require a deep understanding of the platform. Third, Fowler shows clear bias in design or platform skills. He implies that platform skilled people will never be able to acquire design skills or at least not easily. After a couple of years working in Microsoft Consulting Services I have a very different perspective. I can match his horror stories one-for-one like ripping out 1,000 lines on non-working Spring.NET code and replacing it with 20 lines of .NET platform optimized code or reliance on Rational XDE design-generated code resulted in a sub-optimal .NET solution that required substantial performance tuning or a sub-optimal data access layer that failed to leverage any of the features of the DBMS. My point is not that platform is preferred over design, it&#39;s that both play an equally important role in the success of a project.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;NOTE: I have nothing against Spring.NET. It is something that I have used successfully, but in this case it was used when it wasn&#39;t necessary and it was used incorrectly. The person who wrote this code was a design-focused person who was looking implement IoC and AOP everywhere and into places where it wasn&#39;t needed to meet the requirements.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;There is a perpetual debate that goes like &quot;1 top-2% developer can outperform 10 bottom-50% developers&quot;. You can replace any of the four numbers with whatever you want, but the story is the same. A highly-talented person can outperform a bunch of below-average people. As &lt;a href=&quot;http://www.pluralsight.com/blogs/craig/&quot;&gt;Craig Andera&lt;/a&gt; said at our last ALT.NET &lt;a href=&quot;http://weblogs.asp.net/podwysocki/archive/2008/03/20/dc-alt-net-march-meeting-wrapup.aspx&quot;&gt;meeting&lt;/a&gt;, by its very definition we are always going to have many more below-average than highly-talented developers. I&#39;ve been there and done that. I&#39;ve been the top developer that outperformed X other developers. So, what good came from it? Certainly, my customers appreciated the efforts, but the team didn&#39;t. There are only so many hours in the day that a highly-talented person can work and because there are so few of them it isn&#39;t a scalable practice. When I left a project the team wasn&#39;t able to continue on the same path or velocity because they didn&#39;t get it. When the customer finally realizes the maintenance issues it is too late. Is there something better than this? I think so and have been increasingly working differently over the last 10 years. Instead of stating that I can outperform X developers I ask &quot;How can I make X developers and the team as a whole more productive?&quot;. I don&#39;t have any numbers to support this claim, but I believe this change in attitude can lead to higher functioning teams. I believe the &quot;outperform&quot; attitude causes you to write off a bunch of people unnecessarily. As in any industry, the IT profession has some useless individuals, but I think the number is a lot less than elitists believe it is.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Back to the original question, can a bunch of experts join forces to form the best IT consulting business? It is certainly possible, but I don&#39;t believe it is probable and its certainly harder than forming a corporate structure. I believe the question is too focused on the individual. It takes a lot more than individual effort, no matter how expert, to build the best company. It takes a lot more than individual effort, no matter how expert, to grow beyond a small company. High functioning teams are an essential ingredient to building the best company.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/03/high-functioning-teams.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-2717561398015929438</guid><pubDate>Fri, 14 Mar 2008 17:50:00 +0000</pubDate><atom:updated>2008-03-26T14:35:11.606-04:00</atom:updated><title>Are we going to see major changes in data management?</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Row-oriented Relational Database Management Systems (R-RDBMS) have grown in popularity since the early 1980&#39;s to the point where the overwhelming majority of data management by the early 2000&#39;s was handled by RDBMS&#39;s. There have always been alternatives to R-RDBMS&#39;s, but until recently none of the alternatives have provided sustainable technical advantages or gained significant market share. So, what&#39;s different now and is it going to impact the life of a software developer?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Early in my career I had the opportunity to program IBM&#39;s SQL/DS and shortly after that Oracle (2.0 or 3.0, I forget). Relational database development was simple for me. In late 1986 Sybase released SQL Server 1.0. I was assigned to a project that was going to use it, but since the project had large-scale data and significant performance requirements I needed special training. I spent a couple of weeks at Sybase learning SQL Server internals and there was no going back. Since then I have kept up with Sybase, Microsoft SQL Server, and Oracle database internals and have spent a lot of time designing and tuning databases. At this point in my career I feel that I can squeeze every drop of performance out of any R-RDBMS. Now that we have established the I am an experienced database guy, let&#39;s resume the discussion. :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;As R-RDBMS&#39;s matured vendors began throwing everything into a single product. Michael Stonebraker discusses the &quot;one size fits all&quot; approach and the problems with the approach &lt;a href=&quot;http://www.cs.brown.edu/~ugur/fits_all.pdf&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://nms.csail.mit.edu/~stavros/pubs/osfa.pdf&quot;&gt;here&lt;/a&gt;. He lays the foundation for when and why R-RDBMS&#39;s start to fall apart. From my personal experience building applications to process sensor data and financial data feeds it took a lot of expertise, effort, and cost to tune commercial R-RDBMS&#39;s to meet the performance requirements. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;With the rapidly decreasing cost and increasing capacity of CPU, RAM, and disk storage the alternatives to R-RDBMS start to become much more attractive. This increased the appetite to process and store substantially more data and this is now testing the limits for R-RDBMS technology. As solutions scale into the petabyte range many of the traditional data modeling techniques like Ralph Kimball&#39;s &lt;a href=&quot;http://www.ralphkimball.com/html/articles.html&quot;&gt;dimensional modeling&lt;/a&gt; are less successful. The same can be said for indexing (bit-map) and physical partitioning schemes. What worked for 10 GB - 10 TB doesn&#39;t work near as well for 10 TB - 10+ PB. Also, the problems become more severe as your processing requirements approach real-time.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Over the last couple of years the number of &lt;a href=&quot;http://en.wikipedia.org/wiki/Column-oriented_DBMS&quot;&gt;columnar storage&lt;/a&gt; solutions has increased noticeably, led by Google&#39;s &lt;a href=&quot;http://209.85.163.132/papers/bigtable-osdi06.pdf&quot;&gt;BigTable&lt;/a&gt;, Sybase &lt;a href=&quot;http://www.sybase.com/content/1035804/SybaseIQ-12.7-010407-wp.pdf&quot;&gt;IQ&lt;/a&gt;, Stonebraker&#39;s research with &lt;a href=&quot;http://www.mit.edu/~dna/vldb.pdf&quot;&gt;C-Store&lt;/a&gt;, etc. Much of the benefit from columnar storage comes from the ability to compress data and to substantially reduce the I/O&#39;s needed to complete a query. Google decided not to use SQL for a query language while other columnar solutions stuck with SQL, but what this showed is that SQL is also reaching its limits.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Next, Stonebraker published his research on &lt;a href=&quot;http://web.mit.edu/dna/www/vldb07hstore.pdf&quot;&gt;H-Store&lt;/a&gt;. He proposes that pure OLTP applications can see dramatic improvements in performance from massive simplification of the database engine and performing in-memory, distributed processing of data. Also, he proposes to do away with SQL as the query language. Werner Vogels, who is well-respected in the distributed systems community, expresses some &lt;a href=&quot;http://www.allthingsdistributed.com/2007/09/50_x.html&quot;&gt;scepticism&lt;/a&gt;. While he likes Stonebraker&#39;s challenge to provide 50x improvements, he is worried that Stonebraker is only solving the scale-up problem when instead he should be focused on the scale-out problem, similar to what Google and Amazon do. That was my concern initially, but the more that I think about it I don&#39;t think that H-Store is necessarily unable to scale-out. I think it is just a matter of time. Now that there is a working implementation of H-Store, they can now focus on scaling-out.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;This led into a (contentious, if you read the blog comments) debate between &lt;a href=&quot;http://www.dbms2.com/2008/02/15/database-management-system-choices-overview/&quot;&gt;Curt Monash&lt;/a&gt; and &lt;a href=&quot;http://www.databasecolumn.com/2008/02/responding-to-monash-1.html&quot;&gt;Stonebraker&lt;/a&gt; about how many different types of databases should be supported. It doesn&#39;t matter so much on the exact categorizations. What does matter is that the R-RDBMS world is &quot;hitting the wall&quot; with increasingly regularity with the &quot;one size fits all&quot; solution and that is driving the database market to come up with a variety of alternate solutions for each category of data management. I don&#39;t believe that R-RDBMS&#39;s offer a good solution for managing XML, semi-structured, and unstructured data, especially as the amount of data increases and the processing requirements approach real-time. Also, I don&#39;t believe that SQL is the correct language for processing this data. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I disagree with a some of Stonebraker&#39;s &lt;a href=&quot;http://www.databasecolumn.com/2008/02/responding-to-monash-2.html&quot;&gt;comments&lt;/a&gt; though. He thinks the low-end OLTP market will go almost entirely to open-source databases. I don&#39;t believe it is that simple. First, brand loyalty should not be underestimated. The cost difference between low-end commercial and open-source R-RDBMS&#39;s isn&#39;t significant enough to drive people in one direction or another. Second, the cost and complexity of swapping out R-RDBMS&#39;s for legacy systems far outweighs the license cost savings. Third, I think that solutions like Amazon&#39;s SimpleDB and Microsoft&#39;s SQL Server Data Services will be a more attractive option for the low-end than open-source. Not only do they eliminate the software license fees, but they eliminate the hardware and system/database administration costs. Head-count reduction is far more important to many organizations than software license reduction.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I agree with Stonebraker that the current R-RDBMS vendors are at risk of getting caught in the middle as we undergo change in the data management market. Also, I agree that the R-RDBMS&#39;s are getting too complex and this complexity is unnecessary. Finally, there is one conclusion that I would like to add. If solutions like H-Store are able to eliminate transactions, concurrency management, and other complexities then the benefits will be so great that they will quickly permeate into the mid-range solutions.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;How is the developer&#39;s life going to change? First, they will potentially have to unlearn a lot of database relational design and programming habits. For an H-Store type of solution, this could result in a substantial reduction in the amount and complexity of the code. It will bring us a lot closer to being able to automatically generate the data access layer from a data model since much of the programmer intervention is due to transaction and concurrency management. Second, if we find a suitable replacement for SQL then we can potentially eliminate another big pain, Object/Relational Mapping. Am I the only who thinks that every O/RM tool completely sucks? I know what problem they are trying to solve. I just don&#39;t think they are solving the problem. Yes, I can build a working application with them, but I feel so dirty afterwards. I feel like you are just trading one problem for another. Third, in the area of columnar storage and non-relational data solutions I think we will have to be prepared for more developer effort in the short-term. The Google-imitators are just now learning that BigTable and MapReduce type of solutions are no free ride. The lack of tool support and best practices is something that will be fixed over time, but in the short-term it will be an issue. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;When are the major changes going to happen? They already are happening. When is it going to impact the average customer or developer? I am not smart enough to accurately predict this, but I think it is close enough that I am paying attention. If and when changes start to happen, I want to be ready.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/03/are-we-going-to-see-major-changes-in.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-7626932817245066909</guid><pubDate>Wed, 12 Mar 2008 15:26:00 +0000</pubDate><atom:updated>2008-03-12T14:13:03.472-04:00</atom:updated><title>MiX 2008 Conference Summary</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;I attended the &lt;a href=&quot;http://visitmix.com/&quot;&gt;MiX 2008 Conference&lt;/a&gt; last week. Overall, it was a good conference and I recommend attending it in the future.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The keynote speeches were pretty dry. The best part was the pre-keynote entertainment by Vince Mira. He did an incredible job singing Johnny Cash songs. Ray Ozzie, Steve Ballmer, and Guy Kawasaki were boring. Dean Hachamovitch provided a good overview of IE 8. Scott Guthrie talked about Silverlight, ASP.NET futures, and the Visual Studio 2008/Windows Server 2008/SQL Server 2008 launch. Deep Zoom (previously called Seadragon) looks interesting.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;The &quot;Crossing the Usability Chasm - Advanced and Adaptive User Interfaces&quot; talk was well-done. Gil Hupert-Graff provided good advice on user interface development based upon his research.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The &quot;Building Rich Internet Applications Using Microsoft Silverlight 2, Parts 1 &amp;amp; 2&quot; talks provided an introduction into Silverlight 2.0 development. Since I haven&#39;t done much with Silverlight this provided me with exactly the introduction I was looking for.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The &quot;RESTful Data Services with the ADO.NET Data Services Framework&quot; and &quot;Building RESTful Real World Applications with ADO.NET Data Services&quot; talks provided a good overview of the ADO.NET Data Services Framework. I liked what I heard and plan on diving into this deeper over the next month.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The &quot;Introducing SQL Server Data Services&quot; talk provided a decent overview of SQL Server Data Services (SSDS). Contrary to the SSDS team&#39;s &lt;/span&gt;&lt;a href=&quot;http://blogs.msdn.com/ssds/archive/2008/03/07/it-is-simple-but-it-is-not-simpledb.aspx&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;blog&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt; the current state of SSDS makes it a very comparable product to Amazon&#39;s SimpleDB. I am sure that over time Microsoft will expose more of SQL Server through SSDS and that will allow it to surpass SimpleDB. I am waiting for my account so that I can experiment with SSDS. I am interested in seeing how complex of a data model you can build or how large of a database you can create before it no longer makes sense to use SSDS. Just as SimpleDB, SSDS should be able to satisfy the small, simple database niche well. As Microsoft rolls out more of their Software plus Services offerings I think they are uniquely positioned to benefit from product &lt;span style=&quot;font-family:arial;&quot;&gt;integration. I wonder how long it will take before we hear more anti-trust complaints.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;The &quot;Building Great AJAX&lt;/span&gt; &lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Applications from Scratch Using ASP.NET 3.5 and Visual Studio 2008&quot; talk provided an introduction to AJAX development features in .NET 3.5 and Visual Studio 2008. Even though .NET 3.5 and Visual Studio 2008 were just released this information has been out in various forums for many months. Since I have already been playing with these bits for a couple of months there wasn&#39;t any new information for me in this talk.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The &quot;Cross-Browser Layout with Internet Explorer 8&quot; talk provided a lot of useful information. The most important thing that was discussed (also in the keynote) was the commitment that Microsoft is making to CSS 2.1 compliance. This should calm a lot of web developers down if compliance is mostly achieved. Microsoft seems to be doing a lot to build unit tests to prove compliance. It will be interesting to see how much of the non-Microsoft community contributes to the suite of unit tests. The performance improvements in IE 8 look promising too.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The &quot;Developing ASP.NET Applications Using the Model View Controller (MVC) Pattern&quot; talk was probably the best at this conference. Scott Hanselman is always entertaining, but I think the MVC bits are going to be a huge hit for architects. Scott made a point of saying that MVC is optional, but if the MVC bits evolve as I believe they will evolve then there is not going to be much of a reason to develop ASP.NET applications any other way. I am looking forward to digging into the MVC bits.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The &quot;Using an Internet Service Bus to Build Next Generation Applications and Services&quot; talk provided a good overview of &lt;a href=&quot;http://biztalk.net/&quot;&gt;BizTalk Services&lt;/a&gt;, which is not BizTalk Server. Just like SSDS, BizTalk Services is going to address a niche set of problems.  I look forward to playing with these bits.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;The &quot;Using the Microsoft Sync Framework and FeedSync&quot; talk provided an excellent overview of the Sync Framework. I think this is going to be a huge hit with developers. I look forward to playing with these bits.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/03/mix-2008-conference-summary.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-2719849753058145189</guid><pubDate>Wed, 12 Mar 2008 12:37:00 +0000</pubDate><atom:updated>2008-03-12T11:23:55.763-04:00</atom:updated><title>Leaving Microsoft</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;I joined Microsoft in 2005 to work in the Intelligence and Homeland Security practice of Microsoft Services. I resigned from Microsoft on Feb. 29, 2008. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;I am grateful for the opportunity I had to work for Microsoft. During my stay at Microsoft I worked as a software development consultant, architect, and manager, sometimes all at the same time. My managers were always very supportive of me. They put me in charge of growing the business and managing the project delivery in a couple of key areas and gave me a lot of freedom to do so. My team and I didn&#39;t disappoint. We had very significant revenue growth driven by successful project delivery due to a lot of hard work.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;If everything was so great then why did I leave Microsoft? I am at a point in my life where I can do things differently than most. I am 49 years old, my children have been raised, I am virtually debt-free, I have a decent amount of money saved, and I live very frugally. So, I am leaving Microsoft because I can, not because of any specific negative reason. I have a couple of itches that need to be scratched. Who knows, after I have scratched my itches I might consider rejoining Microsoft.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;What&#39;s next? First, I am not retiring even though I can afford to. Anyone who knows me knows that I like to work hard. I will probably continue working until I drop. I figure I have at least 20 years of productive work life remaining. Second, I am considering whether to resume my Ph.D. studies. Over 20 years ago I dropped out of the Computer Science Ph.D. program at University of Michigan because I had a wife and three children to support. While I can handle the academics I am not sure if I have the temperament to go through a formal program. Third, I like entrepreneurial work. I enjoyed the couple of start-ups that I have been involved with. I see one or more new ventures in my future.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;At a minimum, I am taking the month of March off. I have a long list of technical topics that I want to dig into. After March I have no specific timeline for my next venture.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/03/leaving-microsoft.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-2520271228466305875</guid><pubDate>Wed, 27 Feb 2008 21:45:00 +0000</pubDate><atom:updated>2008-02-27T20:37:12.419-05:00</atom:updated><title>Comments on &quot;Thinking Inside the Box and Premature Optimization&quot;</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Here are my comments on Matt Podwysocki&#39;s &lt;/span&gt;&lt;a href=&quot;http://weblogs.asp.net/podwysocki/archive/2008/02/26/thinking-inside-the-box-and-premature-optimization.aspx&quot;&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;post&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt; on premature optimization. Since I was also at the last &lt;a href=&quot;http://altnet.ent0.com/Default.aspx?AspxAutoDetectCookieSupport=1&quot;&gt;DC ALT.NET&lt;/a&gt; we are just continuing our discussion.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;All programming languages, frameworks, operating systems, databases, etc. have known best practices and many of the best practices are related to improving performance. I don&#39;t buy into the argument that following best practices is premature optimization. If you are going to implement something and it takes no more effort to use the best practice than it does to use a non-optimized approach then it makes no sense to me to implement things sub-optimally. Poor development habits beget poor development habits. Unless you are building trivial applications the aggregation of non-optimized software can have substantial negative impact to the application.&lt;br /&gt;&lt;br /&gt;Unless you are new to software development you have some knowledge and experiences to bring to bear on the new thing you are learning. If you know the .NET framework and you are learning the Java framework, then you can apply lessons learned from .NET to Java even though it may not always be an apples-to-apples comparison. Implementing efficient algorithms, managing resources efficiently, minimizing I/O, building secure code, etc. are things that most software applications needs to worry about. It isn&#39;t too difficult to apply what you know about .NET to learn the equivalent thing in Java, or vice versa.&lt;br /&gt;&lt;br /&gt;Should you think five steps ahead or not? I am a strong believer in defining a project&#39;s vision and requirements and letting them determine where the design and implementation should go. You should only design and implement the minimum features needed to meet the customer&#39;s requirements, however not taking into account the project&#39;s vision early in the project can result in some very costly redesign later in the project&#39;s lifecycle. Some applications are complex and require a certain amount of thought about the future. I agree with Matt that developers tend to carry implementation from project to project, unfortunately this isn&#39;t a good idea unless it satisfies the project requirements. I find that the less experienced developers are the more they practice the &quot;whatever I did on my last project is the one true way&quot; style of development.&lt;br /&gt;&lt;br /&gt;So, what is it about the belief that learning &quot;insert language or framework here&quot; is a solution to design and implementation issues? I view this as the Survivor-style of development. Put yourself on a stranded island with minimal supplies and you will learn to survive, sometimes very well. Having learned a lot of programming languages and frameworks in my career I am very skeptical that there is a panacea to design and implementation issues. Most developers know how to implement complex solutions (or poor, complex solutions). It takes a lot of talent to come up with a simple solution. There was a time when Java, .NET, and other frameworks were considered to be lean. If Ruby on Rails achieves a substantial following then I am sure that we lament the bloat in it someday. I think it is inevitable that popular development frameworks will have additional frameworks added or ported. You shouldn&#39;t get frustrated by this. Instead, you should learn to use the minimal features needs to solve the problem you are working on.&lt;br /&gt;&lt;br /&gt;I like some of the things I have read about Domain-Driven Design, but unfortunately I feel like it provides us with a small step forward, but not any major improvements. In general, I am still very disappointed with all of the modeling approaches: data, object, domain, etc. First, models are difficult to map back to requirements so it is very hard to have a meaningful discussion about the model with users. Second, models have a hard time accurately and completely describing solutions, especially complex and/or large solutions. Third, keeping the model and code synchronized is very difficult and costly. As much as we would like models to remain valid throughout the entire lifecycle of an application, the reality is that very few projects maintain their models past the early stages of the project. Fourth, I believe that many of the most successful solutions built were built without much modeling, certainly without a complete system model. So, where am I going with this? We need to glean whatever tidbits of knowledge that we can from the design gurus, but we need to be realistic about how much time we spend in the code vs. the model.&lt;/span&gt;</description><link>http://kevinhegg.blogspot.com/2008/02/comments-on-thinking-inside-box-and.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7401916.post-8241009562512929437</guid><pubDate>Mon, 18 Feb 2008 22:12:00 +0000</pubDate><atom:updated>2008-02-18T18:10:31.691-05:00</atom:updated><title>First blog</title><description>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;I am going to dip my toe in the blog pond. I spend a lot of time reading blogs, but I have always made the excuse of being to busy to blog myself. I have been in the computer industry 30 years. I have had the fortune to work on a lot of interesting projects, played with a lot of interesting technologies, and met a lot of interesting people along the way.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Here are some things I am interested in. &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Large-scale data management. I am a child of the RDBMS era and have used Oracle since 3.0, Sybase since 1.0, and SQL Server since its first release. I have a lot of experience squeezing every drop of performance out of these products. There are lots of large-scale data management issues that interest me, but the current RDBMS products are having increasing difficulty playing in this space.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Internals. I love to tinker with operating systems internals. Early in my career I spent a lot of time in the Unix kernel, but in the latter part of my career I have spent more time in Windows internals than Unix/Linux. Since .NET was released I have spent as much time as possible learning the .NET framework internals. I never spent any meaningful time learning Java VM internals, not because of any dislike of Java, but just due to lack of time. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Project recovery. I have spent a significant amount of my career helping to bail out failing projects. Anyone who does this more than once or voluntarily is a warped individual. I get a sense of satisfaction knowing that I found and solved problems that no one else wanted to touch. Project recoveries involve:&lt;br /&gt;- Identifying and correcting systems lifecycle dysfunction.&lt;br /&gt;- Diagnosing and solving hard software correctness problems.&lt;br /&gt;- Diagnosing and solving performance issues.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;High productivity. I enjoy studying tools, processes, and personalities to determine what makes individuals and teams highly productive. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Computer industry trends. I feel fortunate that my job is also my hobby. I can&#39;t imagine ever getting bored with my job. There are thousands of new things to learn every day. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Chicago Cubs. I have been a Cubs fan almost from the day I knew how to spell baseball. I am used to &quot;waiting until next year&quot;. One of these years ...&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;Kevin Hegg&lt;/span&gt;&lt;/p&gt;</description><link>http://kevinhegg.blogspot.com/2008/02/first-blog.html</link><author>noreply@blogger.com (Kevin Hegg)</author><thr:total>1</thr:total></item></channel></rss>