<?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-4668241017236182754</id><updated>2012-01-05T08:24:00.810+01:00</updated><category term='Resharper'/><category term='IoC - Inversion of Control'/><category term='LoD - Law of Demeter'/><category term='AJAX / JS'/><category term='Quotes'/><category term='Usability'/><category term='CI - Continous Integration'/><category term='DDD - Domain Driven Design'/><category term='Podcasts'/><category term='SO - StackOverflow'/><category term='DI - Dependency Injection'/><category term='Visual Studio Tips'/><category term='Sql Server'/><category term='MVVM - Model-View-View Model'/><category term='Google Docs'/><category term='DRY - Don&apos;t Repeat Yourself'/><category term='.NET Framework'/><category term='TDD - Test Driven Development'/><category term='Software Architecture'/><category term='OO Design Principles'/><category term='Best Practices'/><category term='SEO - Search Engine Optimization'/><category term='IA - Information Architecture'/><category term='Programming'/><category term='sof'/><category term='Anti-Patterns'/><category term='Business'/><category term='Software Development Videos'/><category term='Frameworks'/><category term='Tell Don&apos;t Ask'/><category term='AOP - Aspect Oriented Programming'/><category term='Scrum'/><category term='MVC - Model View Controller'/><category term='Google Adsense'/><category term='XYZ - Misc'/><category term='WPF - Windows Presentation Foundation'/><category term='Design Patterns'/><category term='Entity Framework'/><category term='Books'/><title type='text'>Don't Call Us - We'll Call You</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default?start-index=101&amp;max-results=100'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>103</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1465120018246663083</id><published>2010-09-29T09:41:00.000+02:00</published><updated>2010-09-29T09:41:45.909+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sql Server'/><title type='text'>What exactly is a trusted connection?</title><content type='html'>&lt;blockquote&gt;&lt;i&gt;Trusted connections are only opened by the SQL Server client software (such&lt;/i&gt;&lt;br /&gt;&lt;i&gt;as the ADO.NET, OLE DB, or ODBC provider/driver) if you request a Windows&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Authentication (used to be called Integrated Security) connection. The SQL&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Server client software then opens a specific kind of network connection that&lt;/i&gt;&lt;br /&gt;&lt;i&gt;can only be opened by a process that has already successfully logged on to&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Windows using a valid Windows login and password. Since those types of&lt;/i&gt;&lt;br /&gt;&lt;i&gt;connections are only possible after Windows has validated the login and&lt;/i&gt;&lt;br /&gt;&lt;i&gt;password, the Database Engine software does not have to re-validate the&lt;/i&gt;&lt;br /&gt;&lt;i&gt;login and password, it can "trust" that authentication was already performed&lt;/i&gt;&lt;br /&gt;&lt;i&gt;by Windows. The security ID of the Windows account is passed as part of the&lt;/i&gt;&lt;br /&gt;&lt;i&gt;information concerning the connection.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;The above just controls whether the you can open a connection to the&lt;/i&gt;&lt;br /&gt;&lt;i&gt;database engine (authentication). After you have connected, you can only&lt;/i&gt;&lt;br /&gt;&lt;i&gt;perform actions for which the proper permissions have been assigned to&lt;/i&gt;&lt;br /&gt;&lt;i&gt;either your login or any user your login has been mapped to. Part of what a&lt;/i&gt;&lt;br /&gt;&lt;i&gt;DBA has to do in Windows Authentication environments is define to the&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Databae Engine which Windows accounts and groups used as logins map to&lt;/i&gt;&lt;br /&gt;&lt;i&gt;different users in each database, and which permissions are granted to each&lt;/i&gt;&lt;br /&gt;&lt;i&gt;user or login.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;--&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Alan Brewer [MSFT]&lt;/i&gt;&lt;br /&gt;&lt;i&gt;SQL Server Documentation Team&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Source:&lt;br /&gt;&lt;a href="http://dbaspot.com/forums/ms-sqlserver/142379-what-exactly-trusted-connection.html"&gt;http://dbaspot.com/forums/ms-sqlserver/142379-what-exactly-trusted-connection.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1465120018246663083?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1465120018246663083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2010/09/what-exactly-is-trusted-connection.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1465120018246663083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1465120018246663083'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2010/09/what-exactly-is-trusted-connection.html' title='What exactly is a trusted connection?'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-607028336054947070</id><published>2010-07-07T03:15:00.000+02:00</published><updated>2010-07-07T03:15:48.311+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DRY - Don&apos;t Repeat Yourself'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><category scheme='http://www.blogger.com/atom/ns#' term='Tell Don&apos;t Ask'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Architecture'/><title type='text'>SOLID Object-Oriented Design - Video presentation by Sandi Metz</title><content type='html'>From Gotham Ruby Conference 2009&lt;br /&gt;&lt;br /&gt;Sandi Metz gives a very insightful walkthrough on the SOLID principles.&lt;br /&gt;&lt;br /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" flashvars="image=images%2F30-may-2009-15-40-solid-object-oriented-design-sandi-metz-preview.png&amp;amp;file=http%3A%2F%2Fgoruco2009.confreaks.com%2Fvideos%2F30-may-2009-15-40-solid-object-oriented-design-sandi-metz-small.mp4&amp;amp;plugins=viral-1" height="380" src="http://goruco2009.confreaks.com/player.swf" width="640"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-607028336054947070?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/607028336054947070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2010/07/solid-object-oriented-design-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/607028336054947070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/607028336054947070'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2010/07/solid-object-oriented-design-video.html' title='SOLID Object-Oriented Design - Video presentation by Sandi Metz'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3362378500580107284</id><published>2010-01-11T17:25:00.000+01:00</published><updated>2010-01-11T17:25:58.350+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>TED suggested websites</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana, arial, helvetica, sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 style="border-bottom-color: gray; border-bottom-style: dotted; border-bottom-width: 1px; font-size: 13px; font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;CURIOSITY &amp;amp; KNOWLEDGE&lt;/h1&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://reuters.com/" style="color: #336699; text-decoration: none;"&gt;http://reuters.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://research.philips.com/" style="color: #336699; text-decoration: none;"&gt;http://research.philips.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://readme.cc/" style="color: #336699; text-decoration: none;"&gt;http://readme.cc&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://podtropolis.com/" style="color: #336699; text-decoration: none;"&gt;http://podtropolis.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://papertoys.com/" style="color: #336699; text-decoration: none;"&gt;http://papertoys.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://new7wonders.com/" style="color: #336699; text-decoration: none;"&gt;http://new7wonders.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://lipsum.com/" style="color: #336699; text-decoration: none;"&gt;http://lipsum.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://thomasedison.org/" style="color: #336699; text-decoration: none;"&gt;http://thomasedison.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://beelinetv.com/" style="color: #336699; text-decoration: none;"&gt;http://beelinetv.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://useit.com/" style="color: #336699; text-decoration: none;"&gt;http://useit.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://submarinechannel.com/titlesequences" style="color: #336699; text-decoration: none;"&gt;http://submarinechannel.com/titlesequences&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://visual-literacy.org/" style="color: #336699; text-decoration: none;"&gt;http://visual-literacy.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://cartype.com/" style="color: #336699; text-decoration: none;"&gt;http://cartype.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://captology.stanford.edu/" style="color: #336699; text-decoration: none;"&gt;http://captology.stanford.edu&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://bannerblog.com.au/" style="color: #336699; text-decoration: none;"&gt;http://bannerblog.com.au&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://ge.com/" style="color: #336699; text-decoration: none;"&gt;http://ge.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://curiosityshoppeonline.com/" style="color: #336699; text-decoration: none;"&gt;http://curiosityshoppeonline.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://creativecommons.org/" style="color: #336699; text-decoration: none;"&gt;http://creativecommons.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://lawsofsimplicity.com/" style="color: #336699; text-decoration: none;"&gt;http://lawsofsimplicity.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://gnu.org/" style="color: #336699; text-decoration: none;"&gt;http://gnu.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://digg.com/" style="color: #336699; text-decoration: none;"&gt;http://digg.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1 style="border-bottom-color: gray; border-bottom-style: dotted; border-bottom-width: 1px; font-size: 13px; font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;GRAPHICS, MUSIC &amp;amp; ARTS&lt;/h1&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://yugop.com/" style="color: #336699; text-decoration: none;"&gt;http://yugop.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://vincent-vella.com/" style="color: #336699; text-decoration: none;"&gt;http://vincent-vella.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://uva.co.uk/" style="color: #336699; text-decoration: none;"&gt;http://uva.co.uk&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://tutorialblog.org/free-vector-downloads" style="color: #336699; text-decoration: none;"&gt;http://tutorialblog.org/free-vector-downloads&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://tate.org.uk/" style="color: #336699; text-decoration: none;"&gt;http://tate.org.uk&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://squidfingers.com/patterns" style="color: #336699; text-decoration: none;"&gt;http://squidfingers.com/patterns&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://sohodolls.co.uk/" style="color: #336699; text-decoration: none;"&gt;http://sohodolls.co.uk&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://radioblogclub.com/" style="color: #336699; text-decoration: none;"&gt;http://radioblogclub.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://photogravure.com/" style="color: #336699; text-decoration: none;"&gt;http://photogravure.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://netdiver.net/illustration" style="color: #336699; text-decoration: none;"&gt;http://netdiver.net/illustration&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://mine-control.com/" style="color: #336699; text-decoration: none;"&gt;http://mine-control.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://matthewmahon.com/" style="color: #336699; text-decoration: none;"&gt;http://matthewmahon.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://marcelod2.com.br/" style="color: #336699; text-decoration: none;"&gt;http://marcelod2.com.br&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://magwerk.com/" style="color: #336699; text-decoration: none;"&gt;http://magwerk.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://kraftwerk.blocmedia.net/" style="color: #336699; text-decoration: none;"&gt;http://kraftwerk.blocmedia.net&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://headbangers.tv/" style="color: #336699; text-decoration: none;"&gt;http://headbangers.tv&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://grupow.com/circulo" style="color: #336699; text-decoration: none;"&gt;http://grupow.com/circulo&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://creaturesinmyhead.com/" style="color: #336699; text-decoration: none;"&gt;http://creaturesinmyhead.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://bernhardwolff.com/" style="color: #336699; text-decoration: none;"&gt;http://bernhardwolff.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://arturofuentes.com/" style="color: #336699; text-decoration: none;"&gt;http://arturofuentes.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://alennox.net/" style="color: #336699; text-decoration: none;"&gt;http://alennox.net&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1 style="border-bottom-color: gray; border-bottom-style: dotted; border-bottom-width: 1px; font-size: 13px; font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;E-COMMERCE EXPERIENCE&lt;/h1&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://colette.fr/" style="color: #336699; text-decoration: none;"&gt;http://colette.fr&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://imaginemusicstore.com/" style="color: #336699; text-decoration: none;"&gt;http://imaginemusicstore.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://canyon.com/" style="color: #336699; text-decoration: none;"&gt;http://canyon.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://coft1.com/" style="color: #336699; text-decoration: none;"&gt;http://coft1.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://heftyrecords.com/" style="color: #336699; text-decoration: none;"&gt;http://heftyrecords.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://ourtype.be/" style="color: #336699; text-decoration: none;"&gt;http://ourtype.be&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://freddyandma.com/" style="color: #336699; text-decoration: none;"&gt;http://freddyandma.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://nikeid.nike.com/" style="color: #336699; text-decoration: none;"&gt;http://nikeid.nike.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://feelthepower.biz/" style="color: #336699; text-decoration: none;"&gt;http://feelthepower.biz&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://shopcomposition.com/" style="color: #336699; text-decoration: none;"&gt;http://shopcomposition.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://oneill.com/" style="color: #336699; text-decoration: none;"&gt;http://oneill.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://agentprovocateur.com/" style="color: #336699; text-decoration: none;"&gt;http://agentprovocateur.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1 style="border-bottom-color: gray; border-bottom-style: dotted; border-bottom-width: 1px; font-size: 13px; font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;SEARCHING &amp;amp; FINDING&lt;/h1&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://trendwatching.com/" style="color: #336699; text-decoration: none;"&gt;http://trendwatching.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://thefwa.com/" style="color: #336699; text-decoration: none;"&gt;http://thefwa.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://springwise.com/" style="color: #336699; text-decoration: none;"&gt;http://springwise.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://scirus.com/" style="color: #336699; text-decoration: none;"&gt;http://scirus.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://scholar.google.com/" style="color: #336699; text-decoration: none;"&gt;http://scholar.google.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://podcasts.yahoo.com/" style="color: #336699; text-decoration: none;"&gt;http://podcasts.yahoo.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://msdewey.com/" style="color: #336699; text-decoration: none;"&gt;http://msdewey.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://maps.live.com/" style="color: #336699; text-decoration: none;"&gt;http://maps.live.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://chacha.com/" style="color: #336699; text-decoration: none;"&gt;http://chacha.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://books.google.com/" style="color: #336699; text-decoration: none;"&gt;http://books.google.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1 style="border-bottom-color: gray; border-bottom-style: dotted; border-bottom-width: 1px; font-size: 13px; font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ONLINE RESOURCES&lt;/h1&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://infopresse.com/prixboomerang" style="color: #336699; text-decoration: none;"&gt;http://infopresse.com/prixboomerang&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://rjnet.com.br/2velocimetro_php" style="color: #336699; text-decoration: none;"&gt;http://rjnet.com.br/2velocimetro_php&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://vixy.net/" style="color: #336699; text-decoration: none;"&gt;http://vixy.net&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://kuler.adobe.com/" style="color: #336699; text-decoration: none;"&gt;http://kuler.adobe.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://wikitravel.org/" style="color: #336699; text-decoration: none;"&gt;http://wikitravel.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://thinkingwithtype.com/" style="color: #336699; text-decoration: none;"&gt;http://thinkingwithtype.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://dominiopublico.gov.br/" style="color: #336699; text-decoration: none;"&gt;http://dominiopublico.gov.br&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://madehow.com/" style="color: #336699; text-decoration: none;"&gt;http://madehow.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://icp.org/" style="color: #336699; text-decoration: none;"&gt;http://icp.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://howstuffworks.com/" style="color: #336699; text-decoration: none;"&gt;http://howstuffworks.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://dafont.com/" style="color: #336699; text-decoration: none;"&gt;http://dafont.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://dictionary.reference.com/" style="color: #336699; text-decoration: none;"&gt;http://dictionary.reference.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://gutenberg.org/" style="color: #336699; text-decoration: none;"&gt;http://gutenberg.org&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://nationmaster.com/" style="color: #336699; text-decoration: none;"&gt;http://nationmaster.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://en.proverbia.net/" style="color: #336699; text-decoration: none;"&gt;http://en.proverbia.net&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://del.icio.us/" style="color: #336699; text-decoration: none;"&gt;http://del.icio.us&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://touchgraph.com/" style="color: #336699; text-decoration: none;"&gt;http://touchgraph.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1 style="border-bottom-color: gray; border-bottom-style: dotted; border-bottom-width: 1px; font-size: 13px; font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;TOP INTERACTIVE EXPERIENCE CREATORS&lt;/h1&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://2advanced.com/" style="color: #336699; text-decoration: none;"&gt;http://2advanced.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://akqa.com/" style="color: #336699; text-decoration: none;"&gt;http://akqa.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://almapbbdo.com.br/" style="color: #336699; text-decoration: none;"&gt;http://almapbbdo.com.br&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artless.gr.jp/" style="color: #336699; text-decoration: none;"&gt;http://artless.gr.jp&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://bigspaceship.com/" style="color: #336699; text-decoration: none;"&gt;http://bigspaceship.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://d-o-e-s.com/" style="color: #336699; text-decoration: none;"&gt;http://d-o-e-s.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://domanistudios.com/" style="color: #336699; text-decoration: none;"&gt;http://domanistudios.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://eurorscg4d.com/" style="color: #336699; text-decoration: none;"&gt;http://eurorscg4d.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://farfar.se/" style="color: #336699; text-decoration: none;"&gt;http://farfar.se&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://firstbornmultimedia.com/" style="color: #336699; text-decoration: none;"&gt;http://firstbornmultimedia.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://group94.com/" style="color: #336699; text-decoration: none;"&gt;http://group94.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://heiwa-alpha.co.jp/" style="color: #336699; text-decoration: none;"&gt;http://heiwa-alpha.co.jp&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://hi-res.net/" style="color: #336699; text-decoration: none;"&gt;http://hi-res.net&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://lowetesch.com/" style="color: #336699; text-decoration: none;"&gt;http://lowetesch.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://mecano.ca/" style="color: #336699; text-decoration: none;"&gt;http://mecano.ca&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://northkingdom.com/" style="color: #336699; text-decoration: none;"&gt;http://northkingdom.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://rga.com/" style="color: #336699; text-decoration: none;"&gt;http://rga.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://soleilnoir.com/" style="color: #336699; text-decoration: none;"&gt;http://soleilnoir.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://wefail.com/" style="color: #336699; text-decoration: none;"&gt;http://wefail.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Source:&amp;nbsp;&lt;a href="http://tedtalks.ning.com/profiles/blog/show?id=2035433:BlogPost:910"&gt;http://tedtalks.ning.com/profiles/blog/show?id=2035433:BlogPost:910&lt;/a&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/4668241017236182754-3362378500580107284?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3362378500580107284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2010/01/ted-suggested-websites.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3362378500580107284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3362378500580107284'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2010/01/ted-suggested-websites.html' title='TED suggested websites'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7675172349640400703</id><published>2009-09-09T13:30:00.001+02:00</published><updated>2009-09-09T13:34:59.104+02:00</updated><title type='text'>Øredev videos (2008)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_sE3s2tV8QAM/SqeR-CWrp3I/AAAAAAAAACE/qS9SUjamL4g/s1600-h/oredev.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="http://1.bp.blogspot.com/_sE3s2tV8QAM/SqeR-CWrp3I/AAAAAAAAACE/qS9SUjamL4g/s400/oredev.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5379428774887270258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="background-color: rgb(77, 69, 60);   border-collapse: collapse; line-height: 16px; font-family:arial, helvetica, clean, sans-serif;font-size:13px;"&gt;&lt;table align="left" border="0" width="400" style="zoom: 1; border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: inherit; "&gt;&lt;tbody style="zoom: 1; "&gt;&lt;tr style="zoom: 1; "&gt;&lt;td align="left" valign="top" style="zoom: 1; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; "&gt;&lt;a href="http://www.oredev.org/topmenu/video/java.4.5a2d30d411ee6ffd2888000804.html" class="normal" title="Java Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Java&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/net.4.5a2d30d411ee6ffd28880002516.html" class="normal" title=".NET Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;.NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/architecture.4.71552e2411fa881a5cb800022061.html" class="normal" title="Architecture Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Architecture&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/coollanguages.4.71552e2411fa881a5cb80001907.html" class="normal" title="Cool Langues Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Cool Languages&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/ddd.4.5a2d30d411ee6ffd28880002148.html" class="normal" title="DDD Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 90, 156); font-weight: bold; text-decoration: none; "&gt;Domain-Driven Design&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/mobile20.4.71552e2411fa881a5cb80002074.html" class="normal" title="Mobile 2.0 Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Mobile 2.0&lt;/a&gt;&lt;/td&gt;&lt;td style="zoom: 1; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; "&gt;&lt;p style="zoom: 1; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://www.oredev.org/topmenu/video/test.4.71552e2411fa881a5cb800022507.html" class="normal" title="Test Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Test&lt;/a&gt;&lt;/p&gt;&lt;div class="c18" id="svid10_71552e2411fa881a5cb80003086" style="zoom: 1; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div class="c57" id="svid12_71552e2411fa881a5cb80003087" style="zoom: 1; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://www.oredev.org/topmenu/video/pminpractice.4.71552e2411fa881a5cb800022407.html" class="normal" title="PM in Practice Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 90, 156); font-weight: bold; text-decoration: none; "&gt;PM in Practice&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/aspectsofleadership.4.71552e2411fa881a5cb800022238.html" class="normal" title="Aspects of Leadership Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Aspects of Leadership&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/agile.4.5a2d30d411ee6ffd288800046.html" class="normal" title="Agile Ways Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;Agile Ways&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/altnet.4.71552e2411fa881a5cb800021859.html" class="normal" title="ALT.NET Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;ALT.NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oredev.org/topmenu/video/ux.4.71552e2411fa881a5cb800023161.html" class="normal" title="User Experience Videos 2008 (external link)" style="zoom: 1; color: rgb(0, 51, 102); font-weight: bold; text-decoration: none; "&gt;User Experience&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7675172349640400703?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7675172349640400703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/09/redev-videos-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7675172349640400703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7675172349640400703'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/09/redev-videos-2008.html' title='Øredev videos (2008)'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_sE3s2tV8QAM/SqeR-CWrp3I/AAAAAAAAACE/qS9SUjamL4g/s72-c/oredev.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6451581248942414366</id><published>2009-08-25T02:07:00.001+02:00</published><updated>2009-08-25T02:10:41.276+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC - Model View Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD - Test Driven Development'/><title type='text'>Advanced ASP.NET MVC</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;Learn how to extend the ASP.NET MVC framework with dependency injection, view engines, action filters, and more. We’ll see how to apply Test Driven Development and write unit tests with mock objects.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="525" height="377" id="viddler"&gt;&lt;param name="movie" value="http://www.viddler.com/player/d34598de/"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.viddler.com/player/d34598de/" width="525" height="377" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" name="viddler"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6451581248942414366?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6451581248942414366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/08/advanced-aspnet-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6451581248942414366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6451581248942414366'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/08/advanced-aspnet-mvc.html' title='Advanced ASP.NET MVC'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-216752153164983578</id><published>2009-08-25T01:47:00.002+02:00</published><updated>2009-08-25T02:01:01.649+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Anti-Patterns'/><title type='text'>The WTFs of a non-relational design in a relational database</title><content type='html'>&lt;span class="Apple-style-span"    style="font-family:arial, verdana, sans-serif;font-size:100%;color:#666666;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: collapse; font-size:13px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(51, 51, 51); line-height: 17px; "&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Here are some facts about the Vision system:&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;The data model comprised a single table named DATA.&lt;/li&gt;&lt;li&gt;The DATA table had 240+ columns.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;blockquote&gt; this application was something new, and that the way it stored data and metadata in the database would revolutionize computing&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;You are in a world of hurt. It takes six months to train a new maintenance person and a database consultant," waving at me, "says that the simplest of reports can only be created with the greatest difficulty using the most low-level reporting tools." He stood up, walked to the white board, picked up a pen, and wrote:&lt;/p&gt;&lt;p&gt;&lt;span style=" ;font-size:12pt;"&gt;"&lt;b&gt;&lt;i&gt;RUN LIKE HELL&lt;/i&gt;&lt;/b&gt;&lt;b&gt;!&lt;/b&gt;"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;&lt;span class="Apple-style-span"  style="font-size:16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=" ;font-size:12pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.simple-talk.com/opinion/opinion-pieces/bad-carma/"&gt;http://www.simple-talk.com/opinion/opinion-pieces/bad-carma/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-216752153164983578?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/216752153164983578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/08/wtfs-of-non-relational-design-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/216752153164983578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/216752153164983578'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/08/wtfs-of-non-relational-design-in.html' title='The WTFs of a non-relational design in a relational database'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1693779596285453658</id><published>2009-08-24T02:44:00.011+02:00</published><updated>2009-08-24T03:07:54.566+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>NDC 2009 Videos</title><content type='html'>&lt;p&gt;Mark Nijhof has created a list of presentations from the &lt;a href="http://www.ndc2009.no/agenda.aspx?cat=1071&amp;amp;id=1813&amp;amp;day=3726"&gt;Norwegian Developers Conference&lt;/a&gt; 2009, that featured some of the best speakers around in the field of software development. &lt;/p&gt;&lt;p&gt;Here are some selected presentations. For the full list, see &lt;a href="http://blog.fohjin.com/blog/2009/7/1/NDC_videos_are_published"&gt;Mark's blog&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Tim Huckaby&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4458"&gt;Jump into  Windows Presentation Foundation! ...and Become Immediately Effective&lt;/a&gt;&lt;div&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4458"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Scott Hanselman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4468"&gt;The Haacked  and Hanselman Show&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Ted Neward&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4470"&gt;Why the Next  Five Years Will Be About Languages&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Ayende Rahien&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4533"&gt;Building  Scalable Systems&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Michael Feathers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4482"&gt;Seven Blind  Alleys in Software Design&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Jonas Follesø&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4459"&gt;MVVM Patterns  for Silverlight and WPF applications&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Udi Dahan&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4486"&gt;Intentions and  Interfaces - Making Patterns Complete&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Phil Haack&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4467"&gt;Black Belt  Ninja Tips ASP.NET MVC&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Robert C. Martin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4477"&gt;Clean Code:  Functions&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4477"&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Jeremy D. Miller&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4484"&gt;Lessons  Learned from a Long Lived Codebase&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Rafal Lukawiecki&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4516"&gt;Architectual  use of Business Intelligence in Application Design&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Peter Provost&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4519"&gt;The Butterfly  Effect&lt;/a&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Roy Osherove&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4526"&gt;Understanding  Test Driven Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Jimmy Nilsson&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4522"&gt;Is  Domain-Driven Design more than Entities and Repositories?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style=" font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Kevlin Henney&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://media01.smartcom.no/microsite/asx.aspx?eventid=4557"&gt;Sustainable  Software Architecture&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1693779596285453658?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1693779596285453658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/08/ndc-2009-videoes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1693779596285453658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1693779596285453658'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/08/ndc-2009-videoes.html' title='NDC 2009 Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7509969699491614564</id><published>2009-08-24T02:38:00.002+02:00</published><updated>2009-08-24T02:43:22.159+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>Sql Antipatterns</title><content type='html'>Presentation by &lt;a href="http://karwin.blogspot.com/"&gt;Bill Karwin&lt;/a&gt; (from the MySQL Conference &amp;amp; Expo)&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1319559"&gt;&lt;br /&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back" title="Sql Antipatterns Strike Back"&gt;Sql Antipatterns Strike Back&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sqlantipatternsstrikeback-090421005946-phpapp01&amp;amp;stripped_title=sql-antipatterns-strike-back"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sqlantipatternsstrikeback-090421005946-phpapp01&amp;amp;stripped_title=sql-antipatterns-strike-back" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/billkarwin"&gt;Bill Karwin&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7509969699491614564?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7509969699491614564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/08/sql-antipatterns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7509969699491614564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7509969699491614564'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/08/sql-antipatterns.html' title='Sql Antipatterns'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-4588812116049324462</id><published>2009-07-08T19:16:00.003+02:00</published><updated>2009-07-08T19:21:37.676+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO - Search Engine Optimization'/><title type='text'>Geotargeting With Google Webmaster Tools</title><content type='html'>&lt;p&gt;Use Webmaster Tools to set geotargeting if it's not given by the TLD. E.g www.europe-for-australians.com.&lt;/p&gt;&lt;object width="500" height="405"&gt;&lt;param name="movie" value="http://www.youtube.com/v/r9r3PayqaZM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/r9r3PayqaZM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-4588812116049324462?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/4588812116049324462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/07/geotargeting-with-google-webmaster.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4588812116049324462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4588812116049324462'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/07/geotargeting-with-google-webmaster.html' title='Geotargeting With Google Webmaster Tools'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2084284011173520620</id><published>2009-07-06T15:27:00.001+02:00</published><updated>2009-07-06T18:30:53.227+02:00</updated><title type='text'>Writing for the Web</title><content type='html'>&lt;p&gt;&lt;em&gt;Get rid of half the words on each page,      &lt;br /&gt;then get rid of &lt;u&gt;half&lt;/u&gt; of what’s left&lt;/em&gt;     &lt;br /&gt;– Krug’s third law of usability &lt;/p&gt;  &lt;p&gt;&amp;quot;&lt;em&gt;Happy Talk Must Die&lt;/em&gt;&amp;quot; - Steve Krug, &amp;quot;Don't Let Me Think&amp;quot; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Some good resources for writing on the web and copywriting:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Charlie Morris &lt;a href="http://wdvl.internet.com/Internet/Writing/"&gt;http://wdvl.internet.com/Internet/Writing/&lt;/a&gt;     &lt;br /&gt;Jacob Nielsen &lt;a href="http://www.useit.com/papers/webwriting/"&gt;http://www.useit.com/papers/webwriting/&lt;/a&gt;     &lt;br /&gt;Daniel Will-Harris &lt;a href="http://www.efuse.com/Design/web_writing_basics.html"&gt;http://www.efuse.com/Design/web_writing_basics.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Copyblogger, Copywriting 101: &lt;a href="http://www.copyblogger.com/copywriting-101/"&gt;http://www.copyblogger.com/copywriting-101/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also see William Strunk, Jr. (Classic from 1918 &lt;a href="http://www.bartleby.com/141/strunk5.html"&gt;http://www.bartleby.com/141/strunk5.html&lt;/a&gt;&lt;/p&gt;  &lt;div style="text-align: left; width: 425px" id="__ss_257622"&gt;&lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="Content with your content - Copywriting for websites" href="http://www.slideshare.net/cluey/content-with-your-content-copywriting-for-websites"&gt;Content with your content - Copywriting for websites&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=content-with-your-content-copywriting-for-websites-1202472304600799-3&amp;amp;stripped_title=content-with-your-content-copywriting-for-websites" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=content-with-your-content-copywriting-for-websites-1202472304600799-3&amp;amp;stripped_title=content-with-your-content-copywriting-for-websites" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View more &lt;a style="text-decoration: underline" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration: underline" href="http://www.slideshare.net/cluey"&gt;Anne Macindoe&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2084284011173520620?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2084284011173520620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/07/writing-for-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2084284011173520620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2084284011173520620'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/07/writing-for-web.html' title='Writing for the Web'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6873043695530387726</id><published>2009-06-28T18:53:00.003+02:00</published><updated>2009-06-28T18:58:50.098+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD - Test Driven Development'/><title type='text'>Video interviews with Uncle Bob aka Robert C. Martin</title><content type='html'>&lt;div&gt;Software guru Robert C. Martin has some really interesting views on being a software professional and TDD: A developer that is not testing his code is like a doctor that doesn't wash his hands before examining the patient.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.programutvikling.no/podkast/"&gt;http://www.programutvikling.no/podkast&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6873043695530387726?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6873043695530387726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/video-interviews-with-uncle-bob-aka.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6873043695530387726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6873043695530387726'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/video-interviews-with-uncle-bob-aka.html' title='Video interviews with Uncle Bob aka Robert C. Martin'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-4999984646503223291</id><published>2009-06-24T00:09:00.004+02:00</published><updated>2009-06-24T00:13:10.357+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>10 UI Design Patterns You Should Be Paying Attention To</title><content type='html'>&lt;div&gt;&lt;b&gt;A great article from Smashing Magazine on some of the most useful UI design patterns&lt;/b&gt;&lt;img src="http://www.smashingmagazine.com/wp-content/themes/SM-theme/img/logo.gif" align="right" alt="Smashing Magazine" /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Lazy Registration&lt;/b&gt;: Allow user to check out the site before requiring registration-&lt;/li&gt;&lt;li&gt;&lt;b&gt;Progressive Disclosure&lt;/b&gt;: Show what's relevant now, hide details and reveal when requested.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Forgiving Format&lt;/b&gt;: Allow different input formats, like ZIP or Address in the same input field.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Clear Primary Actions&lt;/b&gt;: Emphasize the primary action (e.g "Save") and de-emphasize the secondary (e.g Cancel).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Breadcrumbs&lt;/b&gt;: Show the path to the current information (e.g Shop &gt; Laptops &gt; Toshiba).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Account Registration&lt;/b&gt;: Improve user experience by letting users register, only neccessary information.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Required Field Marker&lt;/b&gt;: Clearly label required fields.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Steps Left&lt;/b&gt;: Clearly show current steps in a registration sequence.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Subscription Plans&lt;/b&gt;: When a product or service is provided, give different options to the user. Highlight what you want to sell.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Hover Controls&lt;/b&gt;: Hide tools until objects are hovered (e.g show Edit button when an editable list is hovered).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Full article: &lt;a href="http://www.smashingmagazine.com/2009/06/23/10-ui-design-patterns-you-should-be-paying-attention-to/"&gt;http://www.smashingmagazine.com/2009/06/23/10-ui-design-patterns-you-should-be-paying-attention-to/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-4999984646503223291?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/4999984646503223291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/10-ui-design-patterns-you-should-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4999984646503223291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4999984646503223291'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/10-ui-design-patterns-you-should-be.html' title='10 UI Design Patterns You Should Be Paying Attention To'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-918846028691748067</id><published>2009-06-19T20:29:00.001+02:00</published><updated>2009-06-19T20:31:55.420+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Adsense'/><title type='text'>Improve Your Adsense Revenue</title><content type='html'>&lt;div&gt;Todd Fratzel shows how he doubled his AdSense revenue using the simple concepts &lt;i&gt;less is more&lt;/i&gt;, &lt;i&gt;size matters&lt;/i&gt; and &lt;i&gt;positioning&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.problogger.net/archives/2009/06/20/simple-changes-doubled-my-adsense-revenue/"&gt;http://www.problogger.net/archives/2009/06/20/simple-changes-doubled-my-adsense-revenue/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-918846028691748067?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/918846028691748067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/improve-your-adsense-revenue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/918846028691748067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/918846028691748067'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/improve-your-adsense-revenue.html' title='Improve Your Adsense Revenue'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2929631439500505062</id><published>2009-06-18T10:10:00.003+02:00</published><updated>2009-06-18T10:25:51.603+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Adsense'/><title type='text'>Custom Font Size in AdSense</title><content type='html'>&lt;div&gt;&lt;b&gt;From the Google AdSense Blog (June 17th 2009):&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;We're now happy to announce the launch of a [-] feature you've been asking for -- the ability to change the font size of the text in your ad units. You can now select from small, medium, and large font sizes for ad units [-] ... the actual font size will vary for each format size, font face, and user-specific settings such as browsers and operating systems. &lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://adsense.blogspot.com/2009/06/font-size-matters.html"&gt;http://adsense.blogspot.com/2009/06/font-size-matters.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WebmasterWorld discussion: &lt;a href="http://www.webmasterworld.com/google_adsense/3935483.htm"&gt;Font Size Mania&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2929631439500505062?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2929631439500505062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/custom-font-size-in-adsense.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2929631439500505062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2929631439500505062'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/custom-font-size-in-adsense.html' title='Custom Font Size in AdSense'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5368286283104066692</id><published>2009-06-17T23:54:00.006+02:00</published><updated>2009-06-18T00:14:11.216+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>Econsultancy.com: Cool and usable</title><content type='html'>&lt;div&gt;I stumbled upon an article at Econsultancy.com today, and immediately enjoyed the design and usability on their site:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;a href="http://econsultancy.com/blog/081-a-10-point-checklist-for-landing-page-design"&gt;http://econsultancy.com/blog/081-a-10-point-checklist-for-landing-page-design&lt;/a&gt;&lt;img border="0" src="http://econsultancy.com/images/logo-outline.png" alt="Econsultancy.com" align="right" /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Main menu opacity looks good&lt;/li&gt;&lt;li&gt;Balloons.. cool header&lt;/li&gt;&lt;li&gt;Tweet this: Promoted social bookmark, highly visible&lt;/li&gt;&lt;li&gt;Not just tags - also topics and sectors (main site categories)&lt;/li&gt;&lt;li&gt;Related content&lt;/li&gt;&lt;li&gt;HTML / formatting in comments&lt;/li&gt;&lt;li&gt;Nice footer. Notice search and extra footer with copyright / privacy policy&lt;/li&gt;&lt;li&gt;"Popular" box: Tags, authors, sectors, topics&lt;/li&gt;&lt;li&gt;Author info with Twitter and LinkedIn links&lt;/li&gt;&lt;li&gt;Content: Pyramid - main point early, then details (&lt;i&gt;conversion intent&lt;/i&gt;)&lt;/li&gt;&lt;li&gt;Content: List - advises divided into short points, easy to scan&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5368286283104066692?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5368286283104066692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/econsultancycom-cool-and-usable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5368286283104066692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5368286283104066692'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/econsultancycom-cool-and-usable.html' title='Econsultancy.com: Cool and usable'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8812831317097690516</id><published>2009-06-16T16:08:00.001+02:00</published><updated>2009-06-16T16:12:15.253+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>YouTube: Google Webmaster Central Channel</title><content type='html'>&lt;a href="http://www.youtube.com/profile?user=GoogleWebmasterHelp&amp;amp;view=videos&amp;amp;sort=v"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_sE3s2tV8QAM/SjenjVxFsZI/AAAAAAAAAB0/p3iawKbshsk/s400/google-webmaster-central-channel.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5347927308106051986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;A lot of &lt;a href="http://www.youtube.com/profile?user=GoogleWebmasterHelp&amp;amp;view=videos&amp;amp;sort=v"&gt;useful videos for webmasters&lt;/a&gt;, mostly by &lt;a href="http://www.mattcutts.com/blog/"&gt;Matt Cutts&lt;/a&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-8812831317097690516?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8812831317097690516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/youtube-google-webmaster-central.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8812831317097690516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8812831317097690516'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/youtube-google-webmaster-central.html' title='YouTube: Google Webmaster Central Channel'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_sE3s2tV8QAM/SjenjVxFsZI/AAAAAAAAAB0/p3iawKbshsk/s72-c/google-webmaster-central-channel.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7748525943713450745</id><published>2009-06-12T01:01:00.004+02:00</published><updated>2009-06-12T01:49:28.718+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Why Cal Henderson Hates Django</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.iamcal.com"&gt;Cal Henderso&lt;/a&gt;n, the &lt;a href="http://www.flickr.com/photos/tags/calhenderson/"&gt;Flickr guy&lt;/a&gt;, gives one of the funniest presentations I've seen, at least in the nerdy sphere. Watch, and learn :)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/i6Fr65PFqfk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/i6Fr65PFqfk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Funny Presentation Recipe&lt;/span&gt;&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Be hung over and mention last night&lt;/li&gt;&lt;li&gt;Use funny images from Flickr, with funny text&lt;/li&gt;&lt;li&gt;Swear (a lot)&lt;/li&gt;&lt;li&gt;Be a cocky, rich dude&lt;/li&gt;&lt;li&gt;Use irrational logic (e.g founder has a big beard, these guys must be serious)&lt;/li&gt;&lt;li&gt;Show a stupid, funny graph&lt;/li&gt;&lt;li&gt;Get serious in the end&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7748525943713450745?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7748525943713450745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/why-cal-henderson-hates-django.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7748525943713450745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7748525943713450745'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/why-cal-henderson-hates-django.html' title='Why Cal Henderson Hates Django'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-532385998197646060</id><published>2009-06-10T06:06:00.003+02:00</published><updated>2009-06-10T06:11:15.728+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Adding a 'Share in Reader' link to your website or blog</title><content type='html'>&lt;img src="http://www.google.com/reader/ui/756311971-reader-logo-en.gif?hl=en%20/" /&gt;&lt;div&gt;&lt;a href="http://www.google.com/support/reader/bin/answer.py?hl=en&amp;amp;answer=147149"&gt;http://www.google.com/support/reader/bin/answer.py?hl=en&amp;amp;answer=147149&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See also &lt;a href="http://www.google.com/support/reader/bin/answer.py?hl=en&amp;amp;answer=70000"&gt;"Using 'Add to Google' buttons"&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-532385998197646060?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/532385998197646060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/adding-share-in-reader-link-to-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/532385998197646060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/532385998197646060'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/adding-share-in-reader-link-to-your.html' title='Adding a &apos;Share in Reader&apos; link to your website or blog'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1528298776092056729</id><published>2009-06-09T20:52:00.005+02:00</published><updated>2009-06-10T05:27:55.076+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OO Design Principles'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Architecture'/><title type='text'>Util Classes Must Die</title><content type='html'>&lt;div&gt;&lt;div&gt;Using a lot of static methods in utils classes will make your application procedural rather than object oriented. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Util classes cause problems with / violates:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;* OO in general: Code is not object oriented&lt;/div&gt;&lt;div&gt;* Testability: Static is hard to test&lt;/div&gt;&lt;div&gt;* Inheritance: You can not extend a helper class&lt;/div&gt;&lt;div&gt;* Polymorphism: Helper class can not derive from an interface / base class&lt;/div&gt;&lt;div&gt;* Cohesion: Several responsiblilties in a class breaks the single responsibility principle&lt;/div&gt;&lt;div&gt;* Encapsulation: Helper methods are procedures&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Anti-Patterns and Worst Practices – Utils Class&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Chris Missal blogs about &lt;a href="http://www.lostechies.com/blogs/chrismissal/archive/2009/05/25/anti-patterns-and-worst-practices-you-re-doing-it-wrong.aspx"&gt;Anti-Patterns and Worst-Practices&lt;/a&gt;, and mentions the utils class as an indicator of lazyness and lack of domain knowledge:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;[...] know that there’s probably a better way. Since the problem I see with Utility classes is that they’re usually just a collection of a whole bunch of stuff that doesn’t really belong together, they probably exist for common reasons. &lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://www.lostechies.com/blogs/chrismissal/archive/2009/06/01/anti-patterns-and-worst-practices-utils-class.aspx"&gt;http://www.lostechies.com/blogs/chrismissal/archive/2009/06/01/anti-patterns-and-worst-practices-utils-class.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;Are Helper Classes Evil?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span"  style="font-size:18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://blogs.msdn.com/nickmalik/"&gt;Nick Malik&lt;/a&gt; has written &lt;a href="http://blogs.msdn.com/nickmalik/archive/2005/09/06/461404.aspx"&gt;two&lt;/a&gt; &lt;a href="http://blogs.msdn.com/nickmalik/archive/2005/09/07/462054.aspx"&gt;articles&lt;/a&gt; about the subject, and calls the helper classes &lt;i&gt;an extraordinarily bad idea that should be avoided most of the time&lt;/i&gt;. Malik shows how helper classes breaks completely with object orientation (encapsulation, behavior) and several OO pronciples.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;[-}the notion of functional decomposition is so easy that we drop to it when we come across an algorithm that doesn't seem to "fit" into our neat little object tree, and rather than understand the needs, analyze where we can get the best use of the technology, and place the method accordingly, we just toss it into a helper class.  And that, my friends, is laziness.&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;What about making reusable code? Here's what Nick has to say about it:&lt;blockquote&gt;The largest reusable code base that all your developers are already using is the .Net Framework. The vast majority of the framework uses instantiated classes, not static helper classes (there are exceptions, unfortunately). So, the need for reuse is NOT a good argument for helper classes.&lt;/blockquote&gt;&lt;a href="http://blogs.msdn.com/nickmalik/archive/2005/09/06/461404.aspx"&gt;http://blogs.msdn.com/nickmalik/archive/2005/09/06/461404.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:18px;"&gt;Helper Classes Are Evil&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:180%;"&gt;&lt;span class="Apple-style-span"  style="font-size:18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:16px;"&gt;Eric Lee from Microsoft Game Stuidos takes a similar stand against the helpers in his blogpost &lt;a href="http://blogs.msdn.com/elee/archive/2009/05/05/helper-classes-are-evil.aspx"&gt;Helper Classes Are Evil&lt;/a&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;I very much dislike them in an OOP design because inevitably they becomes a dumping ground for all kinds of things that don’t relate to each other at all in the problem domain.  It’s an attractive nuisance, to use a legal term.  [-] a real adherence to OOP means that you’ll have lots and lots of small, single-purpose classes.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Next time you're tempted to put code into a helper class, take a step back and think for a second. Will this code violate OO and OO principles? Probably. What does the helper methods do? Can you design this so that the code is placed in a separate class with data and behavior? Don't be lazy. Try to understand the problem domain and come up with an object oriented solution rather than a lazy, procedural one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, must helper classes die? Let me paraphrase Nick:&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;blockquote&gt;I don't believe that software practices qualify in the moral sphere, so there is no such thing as evil code.&lt;/blockquote&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1528298776092056729?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1528298776092056729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/util-classes-must-die.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1528298776092056729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1528298776092056729'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/util-classes-must-die.html' title='Util Classes Must Die'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-752521827160435742</id><published>2009-06-06T17:42:00.001+02:00</published><updated>2009-06-06T17:58:17.913+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Jeremy D. Miller: The Joys and Pains of a Long Lived Codebase (Video)</title><content type='html'>&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;In this presentation recorded at QCon SF 2008, Jeremy D. Miller shares lessons learned while developing a project over 5 years. He talks about his mistakes, what to avoid and how to design, code and test better. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;a href="http://www.infoq.com/presentations/Lessons-Learned-Jeremy-Miller"&gt;&lt;img src="http://www.infoq.com/styles/i/logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.infoq.com/presentations/Lessons-Learned-Jeremy-Miller"&gt;http://www.infoq.com/presentations/Lessons-Learned-Jeremy-Miller&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/4668241017236182754-752521827160435742?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/752521827160435742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/jeremy-d-miller-joys-and-pains-of-long.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/752521827160435742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/752521827160435742'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/jeremy-d-miller-joys-and-pains-of-long.html' title='Jeremy D. Miller: The Joys and Pains of a Long Lived Codebase (Video)'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1387215298514330901</id><published>2009-06-03T04:26:00.001+02:00</published><updated>2009-06-03T04:29:23.719+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Frameworks'/><title type='text'>...falling from application mode into framework mode</title><content type='html'>&lt;blockquote&gt;A client isn't interested in software that can be used to create software (frameworks).&lt;/blockquote&gt;&lt;div&gt;Jeffrey Palermo:&lt;/div&gt;"&lt;a href="http://jeffreypalermo.com/blog/i-ll-get-to-your-application-in-a-minute-first-we-need-to-build-the-framework/"&gt;I'll get to your application in a minute - First, we need to build the framework&lt;/a&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1387215298514330901?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1387215298514330901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/06/falling-from-application-mode-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1387215298514330901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1387215298514330901'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/06/falling-from-application-mode-into.html' title='...falling from application mode into framework mode'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6183315067976266397</id><published>2009-05-24T15:37:00.005+02:00</published><updated>2009-05-24T15:47:34.050+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Usability'/><title type='text'>Clixpy</title><content type='html'>&lt;p&gt;&lt;a href="http://clixpy.com/"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_sE3s2tV8QAM/ShlPZyUwyBI/AAAAAAAAABs/y7eHmm3k2lU/s400/wt4a194deabc272-thumb_large+(1).jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5339386137648613394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre;font-size:13px;"&gt;&lt;span class="Apple-style-span"   style="  white-space: normal; line-height: 19px; font-family:Verdana;font-size:12px;"&gt;&lt;blockquote&gt;Clixpy is a web usability testing tool. It’s very easy to install, just by pasting a few lines of JavaScript code in your site’s HTML. When users browse your website Clixpy traces everything they do and then plays it for you, giving you the opportunity to extract any information you may need.&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-size:13px;"&gt;&lt;a href="http://clixpy.com/"&gt;http://clixpy.com/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6183315067976266397?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6183315067976266397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/clixpy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6183315067976266397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6183315067976266397'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/clixpy.html' title='Clixpy'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_sE3s2tV8QAM/ShlPZyUwyBI/AAAAAAAAABs/y7eHmm3k2lU/s72-c/wt4a194deabc272-thumb_large+(1).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1836787138227212373</id><published>2009-05-24T14:48:00.001+02:00</published><updated>2009-05-24T14:50:41.365+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><title type='text'>Seth Godin:Tribes</title><content type='html'>&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="bgColor" value="#ffffff"&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/embed/SethGodin_2009-embed_high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SethGodin-2009.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=538"&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" flashvars="vu=http://video.ted.com/talks/embed/SethGodin_2009-embed_high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SethGodin-2009.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=538"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 16px; font-family:arial;font-size:12px;"&gt;&lt;blockquote&gt;Seth Godin argues the Internet has ended mass marketing and revived a human social unit from the distant past: tribes. Founded on shared ideas and values, tribes give ordinary people the power to lead and make big change. He urges us to do so.&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1836787138227212373?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1836787138227212373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/seth-godintribes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1836787138227212373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1836787138227212373'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/seth-godintribes.html' title='Seth Godin:Tribes'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7810972299877051110</id><published>2009-05-22T15:32:00.002+02:00</published><updated>2009-05-22T15:35:47.821+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><title type='text'>TUTORIAL: Entity Framework v2.0 - Model First using Visual Studio 2010 and .Net 4.0</title><content type='html'>&lt;div&gt;Gary Petty takes a look at one of the most anticipated features in Entity Framework 2, Model First:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.garypretty.co.uk/index.php/2009/05/20/tutorial-entity-framework-v20-model-first-using-visual-studio-2010-and-net-40/"&gt;http://blog.garypretty.co.uk/index.php/2009/05/20/tutorial-entity-framework-v20-model-first-using-visual-studio-2010-and-net-40/&lt;/a&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/4668241017236182754-7810972299877051110?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7810972299877051110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/tutorial-entity-framework-v20-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7810972299877051110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7810972299877051110'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/tutorial-entity-framework-v20-model.html' title='TUTORIAL: Entity Framework v2.0 - Model First using Visual Studio 2010 and .Net 4.0'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2773876083628812705</id><published>2009-05-19T16:50:00.001+02:00</published><updated>2009-05-19T16:57:12.904+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Bug / Feature / Task Tracking Tools</title><content type='html'>&lt;div&gt;&lt;b&gt;Trac&lt;/b&gt;: &lt;a href="http://trac.edgewall.org/"&gt;http://trac.edgewall.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;FogBugz&lt;/b&gt;: &lt;a href="http://www.fogbugz.com/"&gt;http://www.fogbugz.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;JIRA&lt;/b&gt;: &lt;a href="http://www.atlassian.com/software/jira/"&gt;http://www.atlassian.com/software/jira/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Mantis Bug Tracker&lt;/b&gt;: &lt;a href="http://www.mantisbt.org/"&gt;http://www.mantisbt.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Redmine&lt;/b&gt;: &lt;a href="http://www.redmine.org/"&gt;http://www.redmine.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Bugzilla&lt;/b&gt;: &lt;a href="http://www.bugzilla.org/"&gt;http://www.bugzilla.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;OnTime&lt;/b&gt;: &lt;a href="http://www.axosoft.com/"&gt;http://www.axosoft.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Fixx&lt;/b&gt;: &lt;a href="http://hedgehoglab.com/products/fixx"&gt;http://hedgehoglab.com/products/fixx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;BugTracker.NET&lt;/b&gt;: &lt;a href="http://ifdefined.com/bugtrackernet.html"&gt;http://ifdefined.com/bugtrackernet.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Team Foundation Server&lt;/b&gt;: &lt;a href="http://msdn.microsoft.com/en-us/teamsystem/"&gt;http://msdn.microsoft.com/en-us/teamsystem/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Assembla&lt;/b&gt;: &lt;a href="http://www.assembla.com/"&gt;http://www.assembla.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;TeamTrack&lt;/b&gt;: &lt;a href="http://www.serena.com/products/teamtrack"&gt;http://www.serena.com/products/teamtrack&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;TestTrackPro&lt;/b&gt;: &lt;a href="http://www.seapine.com/ttpro.html"&gt;http://www.seapine.com/ttpro.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Google Docs&lt;/b&gt;: &lt;a href="http://docs.google.com/"&gt;http://docs.google.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;EPAM PMC Suite&lt;/b&gt;: &lt;a href="http://www.epam-pmc.com/"&gt;http://www.epam-pmc.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;SourceForge Enterprise Edition&lt;/b&gt;: &lt;a href="http://www.vmware.com/appliances/directory/452"&gt;http://www.vmware.com/appliances/directory/452&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Basecamp&lt;/b&gt;: &lt;a href="http://basecamphq.com/"&gt;http://basecamphq.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Request Tracker&lt;/b&gt;: &lt;a href="http://www.bestpractical.com/rt"&gt;http://www.bestpractical.com/rt&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2773876083628812705?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2773876083628812705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/bug-feature-task-tracking-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2773876083628812705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2773876083628812705'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/bug-feature-task-tracking-tools.html' title='Bug / Feature / Task Tracking Tools'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3866178861827925281</id><published>2009-05-04T23:38:00.006+02:00</published><updated>2009-05-05T19:35:00.694+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Video: Learning from StackOverflow.com</title><content type='html'>&lt;div&gt;Presented by Joel Spolsky, known for &lt;a href="http://www.fogcreek.com/"&gt;Fog Creek &lt;/a&gt;and his blog &lt;a href="http://www.joelonsoftware.com/"&gt;JoelOnSoftware.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NWHfY_lvKIQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/NWHfY_lvKIQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;YouTube Description:&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Until recently, searching for help on highly technical programming problems has been a mess. A lot of what the search engines found was old discussions in forums, where you have a lot of wrong answers and out-of-date answers that you have to sift through yourself. You also found a lot of answers at sites that were hidden behind a pay wall, which uncloaked themselves for Google and then demanded membership fees to see the answers. &lt;a href="http://www.youtube.com/watch?v=NWHfY_lvKIQ"&gt;More&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The 9 issues mentioned in video:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Voting:&lt;/b&gt; Override by best solution&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tags:&lt;/b&gt; Smart tags, what you can maybe answer&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Editing: &lt;/b&gt;Edit your own and other people's entries&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Badges:&lt;/b&gt; No money, status&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Karma:&lt;/b&gt; No money, status&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Pre-search:&lt;/b&gt; Previously asked questions&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Google is UI:&lt;/b&gt; Google search important traffic source&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Performance:&lt;/b&gt; ASP.NET, C#, Jquery, Sql Server, Dell&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Critical Mass:&lt;/b&gt; "Empty restaurant syndrome"&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3866178861827925281?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3866178861827925281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/learning-from-stackoverflowc-om.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3866178861827925281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3866178861827925281'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/learning-from-stackoverflowc-om.html' title='Video: Learning from StackOverflow.com'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2647397599850360543</id><published>2009-05-04T21:36:00.001+02:00</published><updated>2009-05-04T21:38:59.809+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Video: Don Norman: The Design of Future Things</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;In this talk, Don discusses his latest book, The Design of Future Things, which is about the increasing intrusion of intelligent devices in the automobile and home with both expected benefits and unexpected dangers.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wQmwEjL6K1U&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/wQmwEjL6K1U&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2647397599850360543?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2647397599850360543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/video-don-norman-design-of-future.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2647397599850360543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2647397599850360543'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/video-don-norman-design-of-future.html' title='Video: Don Norman: The Design of Future Things'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8702080667373243716</id><published>2009-05-04T18:11:00.003+02:00</published><updated>2009-05-04T18:14:03.842+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Cool Presentation Template (Google Docs)</title><content type='html'>Cool presentation template, embedded from Google Docs (&lt;a href="http://docs.google.com/DocAction?action=new_presentation&amp;amp;source=embed"&gt;Get started, create your own&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgt6c5h3_72fh289jc7&amp;amp;size=m" frameborder="0" width="555" height="451"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-8702080667373243716?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8702080667373243716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/cool-presentation-template-google-docs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8702080667373243716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8702080667373243716'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/cool-presentation-template-google-docs.html' title='Cool Presentation Template (Google Docs)'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3412790133617639652</id><published>2009-05-04T02:44:00.005+02:00</published><updated>2009-05-04T13:03:30.601+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IA - Information Architecture'/><title type='text'>A Few Good Resources on "Search"</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Faceted search enables users to navigate a multi-dimensional information space by combining text search with a progressive narrowing of choices in each dimension.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;a href="http://en.wikipedia.org/wiki/Faceted_search"&gt;http://en.wikipedia.org/wiki/Faceted_search&lt;/a&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="width:425px;text-align:left" id="__ss_610772"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/epek/are-users-really-ready-for-faceted-search-presentation?type=powerpoint" title="Are users really ready for faceted search?"&gt;Are users really ready for faceted search?&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oziafacetedsearch08v12-1222054033441216-9&amp;amp;stripped_title=are-users-really-ready-for-faceted-search-presentation"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oziafacetedsearch08v12-1222054033441216-9&amp;amp;stripped_title=are-users-really-ready-for-faceted-search-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/epek"&gt;epek&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_349669"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/morville/search-patterns?type=powerpoint" title="Search Patterns"&gt;Search Patterns&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=patterns-1208022454690605-8&amp;amp;stripped_title=search-patterns"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=patterns-1208022454690605-8&amp;amp;stripped_title=search-patterns" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/morville"&gt;Peter Morville&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.flickr.com/photos/morville/collections/72157603789246885/"&gt;Flickr: Faceted Navigation&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.boxesandarrows.com/view/search-behavior"&gt;BoxesAndArrows: Search Behavior Patterns&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.boxesandarrows.com/view/advancing-advanced"&gt;BoxesAndArrows: Advancing Advanced Search&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.useit.com/alertbox/9707b.html"&gt;Jacob Nielsen: Search And You &lt;span class="Apple-style-span" style="font-style: italic;"&gt;May&lt;/span&gt; Find&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2003/06/17/SearchUsers"&gt;TBray.org: On Search: The Users&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/Progressive_disclosure"&gt;Wikipedia: Progressive Disclosure&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/Faceted_classification"&gt;Wikipedia: Faceted Classification&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/Faceted_classification"&gt;Tom Reamy: Faceted Navigation&lt;/a&gt; (PDF)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.welie.com/patterns/showPattern.php?patternID=faceted-navigation"&gt;Welie.com: Faceted Navigation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://flamenco.berkeley.edu/talks/sigir-tutorial01.ppt"&gt;Designing Information Architecture for Search&lt;/a&gt; (PPT)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.mpi-inf.mpg.de/~bast/papers/autocompletion-faceted.pdf"&gt;Bast / Weber: When You’re Lost for Words: Faceted Search with Autocompletion&lt;/a&gt; (PDF)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://people.ischool.berkeley.edu/~hearst/papers/hcir08.pdf"&gt;Hearst: UIs for Faceted Navigation&lt;/a&gt; (PDF)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3412790133617639652?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3412790133617639652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/few-good-resources-on-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3412790133617639652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3412790133617639652'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/few-good-resources-on-search.html' title='A Few Good Resources on &quot;Search&quot;'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2886844804623773625</id><published>2009-05-04T02:39:00.003+02:00</published><updated>2009-05-05T19:37:21.217+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IA - Information Architecture'/><title type='text'>Yahoo Design Pattern Library</title><content type='html'>&lt;div&gt;&lt;div&gt;UI design patterns: What the user wants to accomplish, and when to use each pattern.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SEARCH&lt;/div&gt;&lt;div&gt;Search Pagination&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;NAVIGATION&lt;/div&gt;&lt;div&gt;Breadcrumbs&lt;/div&gt;&lt;div&gt;Links&lt;/div&gt;&lt;div&gt;Alphanumeric Filter Links&lt;/div&gt;&lt;div&gt;Tabs&lt;/div&gt;&lt;div&gt;Module Tabs&lt;/div&gt;&lt;div&gt;Navigation Tabs&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BROWSING&lt;/div&gt;&lt;div&gt;Page Grids&lt;/div&gt;&lt;div&gt;Pagination&lt;/div&gt;&lt;div&gt;Item Pagination&lt;/div&gt;&lt;div&gt;Search Pagination&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SELECTION&lt;/div&gt;&lt;div&gt;Auto Complete&lt;/div&gt;&lt;div&gt;Calendar Picker&lt;/div&gt;&lt;div&gt;Carousel&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;RICH INTERACTION&lt;/div&gt;&lt;div&gt;Drag and Drop&lt;/div&gt;&lt;div&gt;Drag and Drop Modules&lt;/div&gt;&lt;div&gt;Invitation&lt;/div&gt;&lt;div&gt;Cursor Invitation&lt;/div&gt;&lt;div&gt;Drop Invitation&lt;/div&gt;&lt;div&gt;Tool Tip Invitation&lt;/div&gt;&lt;div&gt;Hover Invitation&lt;/div&gt;&lt;div&gt;Transition&lt;/div&gt;&lt;div&gt;Animate&lt;/div&gt;&lt;div&gt;Brighten&lt;/div&gt;&lt;div&gt;Collapse&lt;/div&gt;&lt;div&gt;Cross Fade&lt;/div&gt;&lt;div&gt;Dim&lt;/div&gt;&lt;div&gt;Expand&lt;/div&gt;&lt;div&gt;Fade In&lt;/div&gt;&lt;div&gt;Fade Out&lt;/div&gt;&lt;div&gt;Self-Healing&lt;/div&gt;&lt;div&gt;Slide&lt;/div&gt;&lt;div&gt;Spotlight&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SOCIAL&lt;/div&gt;&lt;div&gt;Ratings &amp;amp; Reviews&lt;/div&gt;&lt;div&gt;Architecture of a Review&lt;/div&gt;&lt;div&gt;Rating an Object&lt;/div&gt;&lt;div&gt;Vote to Promote&lt;/div&gt;&lt;div&gt;Writing a Review&lt;/div&gt;&lt;div&gt;Reputation&lt;/div&gt;&lt;div&gt;Competitive Spectrum&lt;/div&gt;&lt;div&gt;Named Levels&lt;/div&gt;&lt;div&gt;Numbered Levels&lt;/div&gt;&lt;div&gt;Identifying Labels&lt;/div&gt;&lt;div&gt;Points&lt;/div&gt;&lt;div&gt;Collectible Achievements&lt;/div&gt;&lt;div&gt;Ranking&lt;/div&gt;&lt;div&gt;Leaderboard&lt;/div&gt;&lt;div&gt;Top X&lt;/div&gt;&lt;div&gt;Sign-in Continuity&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://developer.yahoo.com/ypatterns/"&gt;http://developer.yahoo.com/ypatterns/&lt;/a&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/4668241017236182754-2886844804623773625?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2886844804623773625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/yahoo-design-pattern-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2886844804623773625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2886844804623773625'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/yahoo-design-pattern-library.html' title='Yahoo Design Pattern Library'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1345668127661139148</id><published>2009-05-03T17:56:00.000+02:00</published><updated>2009-05-03T17:57:49.102+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX / JS'/><title type='text'>How to create tabs with jQuery UI</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;Tabs are a space saver that are welcome on almost any site. This how-to shows you step-by-step how to quickly integrate them into your site using the jQuery UI. &lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Full article: &lt;a href="http://tanguay.info/web/index.php?pg=howtos&amp;amp;id=21"&gt;http://tanguay.info/web/index.php?pg=howtos&amp;amp;id=21&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1345668127661139148?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1345668127661139148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/how-to-create-tabs-with-jquery-ui.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1345668127661139148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1345668127661139148'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/how-to-create-tabs-with-jquery-ui.html' title='How to create tabs with jQuery UI'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-9203411781289165950</id><published>2009-05-02T23:30:00.001+02:00</published><updated>2009-05-02T23:31:18.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>The Future of C#</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;Anders Hejlsberg is a Technical Fellow in the Developer Division. He is an influential creator of development tools and programming languages. He is the chief designer of the C# programming language and a key participant in the development of the Microsoft .NET framework. &lt;/blockquote&gt;&lt;/div&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL16/"&gt;http://channel9.msdn.com/pdc2008/TL16/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-9203411781289165950?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/9203411781289165950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/future-of-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/9203411781289165950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/9203411781289165950'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/future-of-c.html' title='The Future of C#'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6010484002011783599</id><published>2009-05-02T22:21:00.001+02:00</published><updated>2009-05-02T22:23:16.530+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Docs'/><title type='text'>Google Documents List Data API</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;The Google Documents List Data API allows client applications to upload documents to Google Documents and list them in the form of Google Data API ("GData") feeds. Your client application can request a list of a user's documents, and query the content in an existing document.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/apis/documents/overview.html"&gt;Source: Google Code&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6010484002011783599?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6010484002011783599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/google-documents-list-data-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6010484002011783599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6010484002011783599'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/google-documents-list-data-api.html' title='Google Documents List Data API'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7650003096845451417</id><published>2009-05-02T22:18:00.001+02:00</published><updated>2009-05-02T22:21:01.488+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sql Server'/><title type='text'>Find Tables With Foreign Key Constraint in Database</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; color: rgb(51, 51, 51); font-size: 12px; line-height: 19px; "&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;SELECT &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;f.name &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;ForeignKey&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; color: rgb(51, 51, 51); font-size: 12px; line-height: 19px; "&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;OBJECT_NAME&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;f.parent_object_id&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;) &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;TableName&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;COL_NAME&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;fc.parent_object_id&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;fc.parent_column_id&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;) &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;ColumnName&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;OBJECT_NAME &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;f.referenced_object_id&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;) &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;ReferenceTableName&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;COL_NAME&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;fc.referenced_object_id&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;fc.referenced_column_id&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;) &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;ReferenceColumnName&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;FROM &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;sys.foreign_keys &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;f&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;INNER JOIN &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;sys.foreign_key_columns &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;AS &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;fc&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;ON &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;f.&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;OBJECT_ID &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;= &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;fc.constraint_object_id&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:-webkit-monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:-webkit-monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; color: rgb(51, 51, 51); "&gt;/*** Script all Foreign Key Constraints ***/&lt;br /&gt;/*** The Result Set can be used to copy constraints to your testing DB or to keep on hand in case of errors. ***/&lt;br /&gt;SELECT&lt;br /&gt;‘ALTER TABLE ‘+FK.TABLE_NAME+&lt;br /&gt;‘ ADD CONSTRAINT ‘+C.CONSTRAINT_NAME+’ FOREIGN KEY’+&lt;br /&gt;‘(’+CU.COLUMN_NAME+’) ‘+&lt;br /&gt;‘REFERENCES ‘+PK.TABLE_NAME+&lt;br /&gt;‘(’+PT.COLUMN_NAME+’)’ ForeignKeyScripts&lt;br /&gt;FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C&lt;br /&gt;INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME&lt;br /&gt;INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME&lt;br /&gt;INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME&lt;br /&gt;INNER JOIN (&lt;br /&gt;SELECT i1.TABLE_NAME, i2.COLUMN_NAME&lt;br /&gt;FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1&lt;br /&gt;INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME&lt;br /&gt;WHERE i1.CONSTRAINT_TYPE = ‘PRIMARY KEY’&lt;br /&gt;) PT ON PT.TABLE_NAME = PK.TABLE_NAME&lt;br /&gt;–WHERE PK.TABLE_NAME IN (’Table1′, ‘Table2′)&lt;br /&gt;–WHERE FK.TABLE_NAME IN (’Table1′, ‘Table2′)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:verdana;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:verdana;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia; font-size: 16px; line-height: normal; "&gt;&lt;a href="http://blog.sqlauthority.com/2007/09/04/sql-server-2005-find-tables-with-foreign-key-constraint-in-database/"&gt;Source: SqlAuthority.com&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-7650003096845451417?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7650003096845451417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/find-tables-with-foreign-key-constraint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7650003096845451417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7650003096845451417'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/find-tables-with-foreign-key-constraint.html' title='Find Tables With Foreign Key Constraint in Database'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2540099995416634688</id><published>2009-05-01T15:36:00.003+02:00</published><updated>2009-05-01T17:24:41.618+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><title type='text'>Microsoft .NET Framework 3.5 Commonly Used Types and Namespaces</title><content type='html'>&lt;div&gt;This poster shows the commonly used types and namespaces in the 3.5 Framework, including WPF, Windows Forms, ASP.NET, Communications/Workflow, Data, XML, LINQ and Fundamentals.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The poster also shows &lt;b&gt;what's new&lt;/b&gt; with the .NET Framework 3.5 and .NET Framework 3.0, what's available in the .NET &lt;b&gt;Compact&lt;/b&gt; Framework 3.5 and what's planned for implementaiton in &lt;b&gt;Silverlight&lt;/b&gt; 1.1.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Format is  90 x 70 cm, so it's best suited for printing and not reading on your laptop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf"&gt;Download&lt;/a&gt; (via Microsoft.com)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Poster is created by Paul Andrew , Kit George and Brad Abram.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Source&lt;/b&gt;: &lt;a href="http://blogs.msdn.com/pandrew/archive/2007/11/02/announcing-the-net-framework-3-5-commonly-used-types-and-namespaces-poster.aspx" style="text-decoration: none;"&gt;Paul Andrew&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2540099995416634688?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2540099995416634688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/05/microsoft-net-framework-35-commonly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2540099995416634688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2540099995416634688'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/05/microsoft-net-framework-35-commonly.html' title='Microsoft .NET Framework 3.5 Commonly Used Types and Namespaces'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5073311685190955720</id><published>2009-04-30T18:55:00.001+02:00</published><updated>2009-04-30T18:57:38.776+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Pitfalls for Startups Driven by Software Developers</title><content type='html'>&lt;div&gt;1) Putting your needs above the customer&lt;/div&gt;&lt;div&gt;2) Not clarifying your business idea&lt;/div&gt;&lt;div&gt;3) Not marketing yourself&lt;/div&gt;&lt;div&gt;4) Not branding yourself&lt;/div&gt;&lt;div&gt;5) Not managing your money&lt;/div&gt;&lt;div&gt;6) Not knowing who your customers are&lt;/div&gt;&lt;div&gt;7) Not acting in a professional manner&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://stackoverflow.com/questions/797596/what-are-common-pitfalls-for-startups-driven-by-software-developers"&gt;jay @ StackOverflow.com&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5073311685190955720?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5073311685190955720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/04/pitfalls-for-startups-driven-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5073311685190955720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5073311685190955720'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/04/pitfalls-for-startups-driven-by.html' title='Pitfalls for Startups Driven by Software Developers'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-436077446007187204</id><published>2009-04-30T10:55:00.001+02:00</published><updated>2009-04-30T10:57:19.632+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sql Server'/><title type='text'>Some Useful T-SQL DateTime Functions</title><content type='html'>&lt;div&gt;Example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; color: rgb(51, 51, 51); font-size: 12px; line-height: 19px; "&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: green; "&gt;----First Day of Last Month&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;SELECT &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEADD&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;mm&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,-&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;1&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEADD&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;mm&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEDIFF&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;mm&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;0&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;GETDATE&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;()),&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;0&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; color: rgb(51, 51, 51); font-size: 12px; line-height: 19px; "&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: red; "&gt;&lt;span class="Apple-style-span"  style="color:#808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: green; "&gt;----Last Day of Last Month&lt;br /&gt;&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: blue; "&gt;SELECT &lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEADD&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;ms&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,-&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;3&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEADD&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;mm&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;0&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEADD&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;mm&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;DATEDIFF&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;(&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;mm&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;0&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;,&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(255, 0, 255); "&gt;GETDATE&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;()),&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: black; "&gt;0&lt;/span&gt;&lt;span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: gray; "&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:-webkit-monospace;font-size:100%;color:#808080;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.sqlauthority.com/2008/08/29/sql-server-few-useful-datetime-functions-to-find-specific-dates/"&gt;All functions (SqlAuthority.com)&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-436077446007187204?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/436077446007187204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/04/some-useful-t-sql-datetime-functions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/436077446007187204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/436077446007187204'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/04/some-useful-t-sql-datetime-functions.html' title='Some Useful T-SQL DateTime Functions'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8088620688909851632</id><published>2009-04-22T09:28:00.003+02:00</published><updated>2009-04-22T09:42:36.528+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF - Windows Presentation Foundation'/><title type='text'>WPF: Data Binding and More</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;A couple of articles bookmarked for later reading:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;MSDN; Data Binding Overview:&lt;/span&gt;&lt;/div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms752347.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms752347.aspx&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Guided tour of WPF&lt;/span&gt; (Josh Smith): &lt;br /&gt;&lt;a href="http://joshsmithonwpf.wordpress.com/a-guided-tour-of-wpf/"&gt;http://joshsmithonwpf.wordpress.com/a-guided-tour-of-wpf/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-8088620688909851632?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8088620688909851632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/04/wpf-data-binding-and-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8088620688909851632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8088620688909851632'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/04/wpf-data-binding-and-more.html' title='WPF: Data Binding and More'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6389787676322384410</id><published>2009-04-22T00:37:00.003+02:00</published><updated>2009-04-22T00:40:51.248+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Frameworks'/><title type='text'>CSLA @ DotNetRocs TV</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Cambria; font-size: 15px; line-height: 19px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;blockquote&gt;Dot Net Rocks TV has a few videos with Rocky Lhotska talking about CSLA&lt;br /&gt;&lt;br /&gt;Rocky Lhotka on CSLA.NET 2.0&lt;br /&gt;&lt;a rel="nofollow" href="http://www.dnrtv.com/default.aspx?showNum=12" style="color: rgb(51, 102, 153); "&gt;http://www.dnrtv.com/default.aspx?showNum=12&lt;/a&gt;&lt;br /&gt;&lt;a rel="nofollow" href="http://www.dnrtv.com/default.aspx?showNum=13" style="color: rgb(51, 102, 153); "&gt;http://www.dnrtv.com/default.aspx?showNum=13&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and episodes about using CSLA.NET with a Data Access Layer, CSLA.NET in Web Services and ASP.NET&lt;br /&gt;&lt;a rel="nofollow" href="http://www.dnrtv.com/default.aspx?showNum=60" style="color: rgb(51, 102, 153); "&gt;http://www.dnrtv.com/default.aspx?showNum=60&lt;/a&gt;&lt;br /&gt;&lt;a rel="nofollow" href="http://www.dnrtv.com/default.aspx?showNum=33" style="color: rgb(51, 102, 153); "&gt;http://www.dnrtv.com/default.aspx?showNum=33&lt;/a&gt;&lt;br /&gt;&lt;a rel="nofollow" href="http://www.dnrtv.com/default.aspx?showNum=32" style="color: rgb(51, 102, 153); "&gt;http://www.dnrtv.com/default.aspx?showNum=32&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is also an episode of the DNR podcast talking to Rocky&lt;br /&gt;&lt;a rel="nofollow" href="http://www.dotnetrocks.com/default.aspx?showNum=253" style="color: rgb(51, 102, 153); "&gt;http://www.dotnetrocks.com/default.aspx?showNum=253&lt;/a&gt;&lt;/blockquote&gt;&lt;a rel="nofollow" href="http://www.dotnetrocks.com/default.aspx?showNum=253" style="color: rgb(51, 102, 153); "&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Cambria; font-size: 15px; line-height: 19px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Cambria; font-size: 15px; line-height: 19px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Thanks to &lt;span class="Apple-style-span" style="font-size: 16px; font-style: italic; line-height: normal; "&gt;bullwinkle @ &lt;span class="Apple-style-span" style="font-size: 15px; font-style: normal; line-height: 19px; "&gt;&lt;a href="http://discuss.joelonsoftware.com/default.asp?joel.3.586892.9"&gt;http://discuss.joelonsoftware.com/default.asp?joel.3.586892.9&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6389787676322384410?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6389787676322384410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/04/csla-dotnetrocs-tv.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6389787676322384410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6389787676322384410'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/04/csla-dotnetrocs-tv.html' title='CSLA @ DotNetRocs TV'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6226953945757758193</id><published>2009-04-20T19:33:00.003+02:00</published><updated>2009-04-20T19:43:16.112+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SO - StackOverflow'/><title type='text'>Most Interesting .NET StackOverflow Questions</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;a href="http://blog.sb2.fr/author/xTC.aspx"&gt;Yoann. B&lt;/a&gt;'s selection of&lt;a href="http://blog.sb2.fr/post/2009/01/02/Most-Interesting-NET-StackOverFlow-Questions.aspx"&gt; interesting .NET related questions at StackOverflow&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1 - Visual Studio Optimizations&lt;/div&gt;&lt;div&gt;2 - Hidden .NET Base Class Library Classes&lt;/div&gt;&lt;div&gt;3 - Is DateTime.Now the best way to measure a function’s performance?&lt;/div&gt;&lt;div&gt;4 - Most wanted feature for C# 4.0 ?&lt;/div&gt;&lt;div&gt;5 - Hidden Features of ASP.NET&lt;/div&gt;&lt;div&gt;6 - Visual Studio debugger tips &amp;amp; tricks for .NET&lt;/div&gt;&lt;div&gt;7 - Most Useful Attributes in C#&lt;/div&gt;&lt;div&gt;8 - What is the most useful .net library you’ve found?&lt;/div&gt;&lt;div&gt;9 - Entity Framework vs LINQ to SQL&lt;/div&gt;&lt;div&gt;10 - Most Useful .NET Utility Classes Developers Tend To Reinvent Rather Than Reuse&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://blog.sb2.fr/post/2009/01/02/Most-Interesting-NET-StackOverFlow-Questions.aspx"&gt;http://blog.sb2.fr/post/2009/01/02/Most-Interesting-NET-StackOverFlow-Questions.aspx&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks again to Brian for link!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Similar lists in other categories, such as design patterns, layering, domain driven design etc. would be nice. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6226953945757758193?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6226953945757758193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/04/most-interesting-net-stackoverflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6226953945757758193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6226953945757758193'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/04/most-interesting-net-stackoverflow.html' title='Most Interesting .NET StackOverflow Questions'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6985443946148388625</id><published>2009-04-20T16:37:00.003+02:00</published><updated>2009-04-20T16:44:22.150+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVVM - Model-View-View Model'/><title type='text'>MVVM (model-view-view model) example with Silverlight</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;Code Project: &lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Exploring a Model-View-ViewModel Application; WPF Password Manager, Cipher Text&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;a href="http://www.codeproject.com/KB/WPF/ExploringWPFMVVM.aspx"&gt;http://www.codeproject.com/KB/WPF/ExploringWPFMVVM.aspx&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;[-] article uses the WPF Password Manager, Cipher Text application as fertile ground for exploring the WPF UI Design Pattern, Model-View-ViewModel or MVVM. The application sports many cool features and some WPF goodness.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft: &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;WPF Apps With The Model-View-ViewModel Design Pattern&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd419663.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Topics:&lt;/div&gt;&lt;div&gt;Patterns and WPF&lt;/div&gt;&lt;div&gt;MVP pattern&lt;/div&gt;&lt;div&gt;Why MVVM is better for WPF&lt;/div&gt;&lt;div&gt;Building an application with MVVM&lt;/div&gt;&lt;div&gt;WPF, data binding&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks, Brian for links!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6985443946148388625?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6985443946148388625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/04/mvvm-model-view-view-model-example-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6985443946148388625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6985443946148388625'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/04/mvvm-model-view-view-model-example-with.html' title='MVVM (model-view-view model) example with Silverlight'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5586936206371092542</id><published>2009-03-14T14:57:00.008+01:00</published><updated>2009-03-15T00:05:59.150+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Weekend Reading</title><content type='html'>&lt;div&gt;&lt;b&gt;Steve McConnel: Classic mistakes:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.stevemcconnell.com/rdenum.htm"&gt;http://www.stevemcconnell.com/rdenum.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Few Short Methods Per Class:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://c2.com/cgi/wiki?FewShortMethodsPerClass"&gt;http://c2.com/cgi/wiki?FewShortMethodsPerClass&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Big Ball of Mud and Other Architectural Disasters:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001003.html"&gt;http://www.codinghorror.com/blog/archives/001003.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;How to Design Exception Hierarchies:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blogs.msdn.com/kcwalina/archive/2007/01/30/ExceptionHierarchies.aspx"&gt;http://blogs.msdn.com/kcwalina/archive/2007/01/30/ExceptionHierarchies.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Design Principles and Design Patterns:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf"&gt;http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What Makes a System Hard to Work With?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/03/12/what-makes-a-system-hard-to-work-with.aspx"&gt;http://codebetter.com/blogs/jeremy.miller/archive/2009/03/12/what-makes-a-system-hard-to-work-with.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Big Ball of Mud (classic)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.laputan.org/mud/mud.html#BigBallOfMud"&gt;http://www.laputan.org/mud/mud.html#BigBallOfMud&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5586936206371092542?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5586936206371092542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/weekend-reading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5586936206371092542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5586936206371092542'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/weekend-reading.html' title='Weekend Reading'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2763265541909834864</id><published>2009-03-05T16:51:00.001+01:00</published><updated>2009-03-05T16:51:05.260+01:00</updated><title type='text'>How to create a custom url protocol</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 14px; border-collapse: collapse; line-height: 18px; "&gt;&lt;pre class="prettyprint" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(217, 245, 217); font-family: Consolas, Monaco, &amp;#39;Lucida Console&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;; overflow-x: auto; overflow-y: auto; width: 620px; max-height: 600px; background-position: initial initial; "&gt; &lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; font-family: Consolas, Monaco, &amp;#39;Lucida Console&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;; background-position: initial initial; "&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;HKEY_CLASSES_ROOT&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;   your&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;-&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;protocol&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;-&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;name&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;(&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; "&gt;Default&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;)&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;    &lt;/span&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: maroon; background-position: initial initial; "&gt;&amp;quot;URL:your-protocol-name Protocol&amp;quot;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;     URL &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; "&gt;Protocol&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt; &lt;/span&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: maroon; background-position: initial initial; "&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;     shell&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;       open&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;         command&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;&lt;br&gt;           &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;(&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; "&gt;Default&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt;)&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: black; background-position: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; "&gt;PathToExecutable&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;Useful links:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa767914.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa767914.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa767743(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa767743(VS.85).aspx&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://stackoverflow.com/questions/389204/how-do-i-create-my-own-url-protocol-e-g-so"&gt;http://stackoverflow.com/questions/389204/how-do-i-create-my-own-url-protocol-e-g-so&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt; &lt;div&gt;&lt;a href="http://www.codeproject.com/KB/IP/DataProtocol.aspx"&gt;http://www.codeproject.com/KB/IP/DataProtocol.aspx&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2763265541909834864?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2763265541909834864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/how-to-create-custom-url-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2763265541909834864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2763265541909834864'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/how-to-create-custom-url-protocol.html' title='How to create a custom url protocol'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6619538751844946033</id><published>2009-03-04T09:51:00.002+01:00</published><updated>2009-03-04T09:54:27.240+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Custom file types: How to assiciate files with apps in Windows</title><content type='html'>&lt;div&gt;Wouldn't it be nice to have your own file type for your enterprise application? E.g a custom xml file with metadata for your documents. This CodeProject article shows how it works:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.codeproject.com/KB/dotnet/System_File_Association.aspx"&gt;http://www.codeproject.com/KB/dotnet/System_File_Association.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6619538751844946033?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6619538751844946033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/custom-file-types-how-to-assiciate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6619538751844946033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6619538751844946033'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/custom-file-types-how-to-assiciate.html' title='Custom file types: How to assiciate files with apps in Windows'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2622039575085030383</id><published>2009-03-04T09:48:00.001+01:00</published><updated>2009-03-04T09:49:50.814+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sof'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP - Aspect Oriented Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>InfoQ: AOP - Myths and truths</title><content type='html'>&lt;div&gt;Video showing pragmatic usage of Aspect Oriented Programming in real-life projects.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.infoq.com/presentations/AOP-Myths-and-Realities"&gt;http://www.infoq.com/presentations/AOP-Myths-and-Realities&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Presentation by Ramnivas Laddad&lt;/div&gt;&lt;div&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/4668241017236182754-2622039575085030383?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2622039575085030383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/infoq-aop-myths-and-truths.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2622039575085030383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2622039575085030383'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/infoq-aop-myths-and-truths.html' title='InfoQ: AOP - Myths and truths'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2610695374076440755</id><published>2009-03-04T09:43:00.002+01:00</published><updated>2009-03-04T09:46:41.608+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AOP - Aspect Oriented Programming'/><title type='text'>AOP: INotifyPropertyChanged</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt;Better binding with PostSharp and INotifyPropertyChanged&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://richardsbraindump.blogspot.com/2009/02/aspect-oriented-programming.html"&gt;http://richardsbraindump.blogspot.com/2009/02/aspect-oriented-programming.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2610695374076440755?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2610695374076440755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/aop-inotifypropertychanged.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2610695374076440755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2610695374076440755'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/aop-inotifypropertychanged.html' title='AOP: INotifyPropertyChanged'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1326060456284118626</id><published>2009-03-04T08:33:00.001+01:00</published><updated>2009-03-04T08:33:28.471+01:00</updated><title type='text'>SyntaxHighligter: Nice code formatting on your blog/site</title><content type='html'>&lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"&gt;http://alexgorbatchev.com/wiki/SyntaxHighlighter&lt;/a&gt;&lt;br&gt; &lt;div&gt;Demos: &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo"&gt;http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1326060456284118626?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1326060456284118626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/syntaxhighligter-nice-code-formatting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1326060456284118626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1326060456284118626'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/syntaxhighligter-nice-code-formatting.html' title='SyntaxHighligter: Nice code formatting on your blog/site'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7019008442767643957</id><published>2009-03-03T22:38:00.002+01:00</published><updated>2009-03-03T22:51:59.442+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>How to check if the current user is administrator</title><content type='html'>&lt;div&gt;bool isAdmin = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);&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/4668241017236182754-7019008442767643957?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7019008442767643957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/how-to-check-if-current-user-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7019008442767643957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7019008442767643957'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/how-to-check-if-current-user-is.html' title='How to check if the current user is administrator'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-939825720426935384</id><published>2009-03-03T17:39:00.002+01:00</published><updated>2009-03-03T22:52:37.729+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD - Domain Driven Design'/><title type='text'>Frameworks and DDD: Keeping the Model Clean</title><content type='html'>&lt;div&gt;How to avoid pitfalls and preserve a clean domain model while using frameworks. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tim McCarthy is is the author of .NET Domain-Driven Design with C#: Problem-Design-Solution&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt;&lt;a href="http://www.infoq.com/presentations/Clean-Model-Tim-McCarthy"&gt;View presentation at InfoQ&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-939825720426935384?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/939825720426935384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/frameworks-and-ddd-keeping-model-clean.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/939825720426935384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/939825720426935384'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/frameworks-and-ddd-keeping-model-clean.html' title='Frameworks and DDD: Keeping the Model Clean'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-9103205977931570540</id><published>2009-03-03T17:36:00.001+01:00</published><updated>2009-03-03T17:36:59.441+01:00</updated><title type='text'>REGSVR32 VS REGASM</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;div&gt;REGSVR32 : This is used for registering a COM based DLL:&lt;/div&gt;&lt;div&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb490985.aspx" target="_blank" style="color: rgb(0, 84, 136); "&gt;http://technet.microsoft.com/en-us/library/bb490985.aspx&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;REGASM: This is used to register a .NET Assembly for COM Interop:&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/tzat5yw6(vs.71).aspx" target="_blank" style="color: rgb(0, 84, 136); "&gt;http://msdn.microsoft.com/en-us/library/tzat5yw6(vs.71).aspx&lt;/a&gt;&lt;/div&gt; &lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-9103205977931570540?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/9103205977931570540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/03/regsvr32-vs-regasm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/9103205977931570540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/9103205977931570540'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/03/regsvr32-vs-regasm.html' title='REGSVR32 VS REGASM'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3938861076469615472</id><published>2009-02-26T06:07:00.008+01:00</published><updated>2009-02-26T06:54:10.394+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>Continuous Refactoring vs Refactor Mercilessly</title><content type='html'>&lt;div&gt;Good ideas need to have a name. Uncle Bob refers to the boy scouts' rule, "&lt;i&gt;Leave the campground cleaner than you found it&lt;/i&gt;". The "Pragmatic Programmer" authours say "&lt;i&gt;Fix the problem, not the blame&lt;/i&gt;". Fowler's advise is to refactor any time the &lt;i&gt;code smells&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Google shows that there are&lt;/div&gt;&lt;div&gt;&lt;div&gt;3 660 hits for "Refactor Mercilessly"&lt;/div&gt;&lt;div&gt;2 040 hits for "Continuous Refactoring"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So even if I like "Continuous Refactoring" best, I guess "Refactor Mercilessly" won.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More important, I will try to make this a part of my autopilot programming: Whenever I stumble upon something that smells like crap, I will go ahead and fix it right away. Instead of blaming, commenting or apathetically ignoring the code.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3938861076469615472?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3938861076469615472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/continuous-refactoring-vs-refactor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3938861076469615472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3938861076469615472'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/continuous-refactoring-vs-refactor.html' title='Continuous Refactoring vs Refactor Mercilessly'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3347488063796858667</id><published>2009-02-26T05:42:00.003+01:00</published><updated>2009-02-26T05:59:19.369+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>Seiri-Seiton-Seiso-Seiketsu-Shutsuke</title><content type='html'>&lt;div&gt;The S5 principles from japanese car industry in the 50s are interesting for software development:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Seiri&lt;/b&gt;: Organization; Know where things are, use proper naming&lt;/div&gt;&lt;div&gt;&lt;b&gt;Seiton&lt;/b&gt;: Systematization; Put things where you expect to find them&lt;/div&gt;&lt;div&gt;&lt;b&gt;Seiso&lt;/b&gt;: Cleanliness; the absense of dirt&lt;/div&gt;&lt;div&gt;&lt;b&gt;Seiketsu&lt;/b&gt;: Standardization; Define rules and policies; &lt;/div&gt;&lt;div&gt;&lt;b&gt;Shutsuke&lt;/b&gt;: Discipline, in the japanese way&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have a lot to learn from the car industry. A car can't have errors. Neither should our programs So let's pretent we're building cars!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3347488063796858667?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3347488063796858667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/seiri-seiton-seiso-seiketsu-shutsuke.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3347488063796858667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3347488063796858667'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/seiri-seiton-seiso-seiketsu-shutsuke.html' title='Seiri-Seiton-Seiso-Seiketsu-Shutsuke'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-9099643559447608828</id><published>2009-02-26T05:23:00.010+01:00</published><updated>2009-02-26T06:04:50.285+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Architecture'/><title type='text'>The Rise and Fall of a Software Company</title><content type='html'>&lt;div&gt;I'm reading Robert C. Martin's "Clean Code", and this little anecdote really struck me. Many businesses go down this slope, since management and even developers do not understand the need for refactoring and redesign until it's too late.&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;I know of one company that, in the late 80s, wrote a killer app. It was very popular, and lots of professionals bought and used it. But then the release cycles began to stretch. Bugs were not repaired from one release to the next. Load times grew and crashes increased. I remember the day I shut the product down in frustration and never used it again. The company went out of business a short time after that.&lt;br /&gt;&lt;br /&gt;Two decades later I met one of the early employees of that company and asked him what had happened. The answer confirmed my fears. They had rushed the product to market and had made a huge mess in the code. As they added more and more features, the code got worse and worse until they simply could not manage it any longer. It was the bad code that brought the company down.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Later in the book, Martin (aka "Uncle Bob")  compares the development of software with the development of a city. You won't build a 6 lane superhighway in a little village. You don't have the resources, and noone even wants it there. When the town is growing, you will need to build a new infrastructure.  You might need to tear down some houses to build a new highway that can handle the new reality.&lt;/div&gt;&lt;div&gt;It's a good metaphore. My lesson learned is: Know the danger of not redesigning. If you keep building on old infrastructure that should be replaced, your city might break down.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-9099643559447608828?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/9099643559447608828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/rise-and-fall-of-software-company.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/9099643559447608828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/9099643559447608828'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/rise-and-fall-of-software-company.html' title='The Rise and Fall of a Software Company'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2334927004776413977</id><published>2009-02-24T18:38:00.006+01:00</published><updated>2009-02-26T05:09:18.902+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OO Design Principles'/><title type='text'>OO Design Principles</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:18px;"&gt;S.O.L.I.D. Class Design Principles&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;S&lt;span class="Apple-style-span"  style="color:#990000;"&gt; &lt;/span&gt;&lt;/span&gt;ingle Responsibility Principle&lt;/b&gt; (SRP) - Each responsibility should be a class&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;O&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt; &lt;/span&gt;&lt;/span&gt;pen/Closed Principle&lt;/b&gt; (OCP) - Inherit from abstract base classes&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;L&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;iskov substitution principle&lt;/b&gt; (LSP) - Subtypes should be substitutable for their supertypes&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;I&lt;span class="Apple-style-span"  style="color:#993399;"&gt; &lt;/span&gt;&lt;/span&gt;nterface Segregation Principl&lt;/b&gt;e (ISP) - Use many small interfaces, not one big&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;D&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;ependency Inversion Principle&lt;/b&gt; (DIP) - Let details depend upon abstractions, not the other way around&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:18px;"&gt;More Principles&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Law of Demeter&lt;/b&gt;: Only interact with yourself and your neighbours&lt;/li&gt;&lt;li&gt;&lt;b&gt;Hollywood Principle&lt;/b&gt;: Don't call us, we'll call you - Reduce coupling using events, IoC, DI etc&lt;/li&gt;&lt;li&gt;&lt;b&gt;Don’t Repeat Yourself&lt;/b&gt; (DRY): Remove duplication, not only in code but also in your model&lt;/li&gt;&lt;li&gt;&lt;b&gt;Program to an interface, not an implementation&lt;/b&gt;: Decouple implementation from interfaces&lt;/li&gt;&lt;li&gt;&lt;b&gt;You Ain’t Gonna Need It&lt;/b&gt; (YAGNI): Wait until you need it&lt;/li&gt;&lt;li&gt;&lt;b&gt;Keep It Simple, Stupid&lt;/b&gt; (KISS): Make everything as simple as possible, but not simpler&lt;/li&gt;&lt;li&gt;&lt;b&gt;Encapsulation and Information Hiding:&lt;/b&gt; Protect yourself, be shy, don't reveal your inner mechanisms&lt;/li&gt;&lt;li&gt;&lt;b&gt;Separation of Concern&lt;/b&gt;s (SoC): Separate stuff using encapsulation, subsystems, modules, layers etc&lt;/li&gt;&lt;li&gt;&lt;b&gt;High Cohesion&lt;/b&gt;: &lt;/li&gt;&lt;li&gt;&lt;b&gt;Low/Loose coupling&lt;/b&gt;: Let your components be independent of each other&lt;/li&gt;&lt;li&gt;&lt;b&gt;Command-query separation&lt;/b&gt; (CQS)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Design by Contract&lt;/b&gt; (DbC)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Dependency Injection&lt;/b&gt; (DI)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Inversion of Control&lt;/b&gt; (IoC)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-2334927004776413977?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2334927004776413977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/oo-design-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2334927004776413977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2334927004776413977'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/oo-design-principles.html' title='OO Design Principles'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6797706184132401936</id><published>2009-02-23T12:40:00.002+01:00</published><updated>2009-02-23T12:42:27.624+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tell Don&apos;t Ask'/><title type='text'>Tell, Don't Ask</title><content type='html'>&lt;blockquote&gt;Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.&lt;br /&gt;   — Alec Sharp &lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;That is, you should endeavor to tell objects what you want them to do; do not ask them questions about their state, make a decision, and then tell them what to do.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The problem is that, as the caller, you should not be making decisions based on the state of the called object that result in you then changing the state of the object. The logic you are implementing is probably the called object’s responsibility, not yours. For you to make decisions outside the object violates its encapsulation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Source: &lt;a href="http://www.pragprog.com/articles/tell-dont-ask"&gt;http://www.pragprog.com/articles/tell-dont-ask&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6797706184132401936?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6797706184132401936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/tell-dont-ask.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6797706184132401936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6797706184132401936'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/tell-dont-ask.html' title='Tell, Don&apos;t Ask'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7832331169207256348</id><published>2009-02-23T06:01:00.001+01:00</published><updated>2009-02-23T06:03:56.561+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD - Domain Driven Design'/><title type='text'></title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;b&gt;Application Layer&lt;/b&gt; [Service Layer]: Defines the jobs the software is supposed to do and directs the expressive domain objects to work out problems. The tasks this layer is responsible for are meaningful to the business or necessary for interaction with the application layers of other systems.&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;i&gt; This layer is kept thin. It does not contain business rules or knowledge&lt;/i&gt;&lt;/span&gt;, but only coordinates tasks and delegates work to collaborations of domain objects in the next layer down. It does not have state reflecting the business situation, but it can have state that reflects the progress of a task for the user or the program.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Domain Layer&lt;/b&gt; (Model Layer): Responsible for representing concepts of the business, information about the business situation, and business rules. State that reflects the business situation is controlled and used here, even though the technical details of storing it are delegated to the infrastructure. This layer is the heart of business software.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From Eric Evans' Doman Driven Design, via Fowler's &lt;a href="http://martinfowler.com/bliki/AnemicDomainModel.html"&gt;Anemic Domain Model&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7832331169207256348?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7832331169207256348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/application-layer-service-layer-defines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7832331169207256348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7832331169207256348'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/application-layer-service-layer-defines.html' title=''/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8536073631333596147</id><published>2009-02-23T05:40:00.010+01:00</published><updated>2009-02-25T22:57:30.695+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LoD - Law of Demeter'/><title type='text'>Law of Demeter: Only talk to your immediate friends</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;dog.Body.Tail.Wag();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;should really be:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;dog.ExpressHappiness();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;..and let the implementation of the dog decide what this means.&lt;/b&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://www.jmock.org/oopsla2004.pdf#search=%22mock%20roles%20not%20objects%22"&gt;Mock Roles, not Objects&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Peter Van Rooijen posted the following description of the Law Of Demeter to Usenet: &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;You can play with yourself.&lt;/li&gt;&lt;li&gt;You can play with your own toys (but you can't take them apart),&lt;/li&gt;&lt;li&gt;You can play with toys that were given to you.&lt;/li&gt;&lt;li&gt;And you can play with toys you've made yourself.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;Wikipedia:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;The Law of Demeter (LoD), or Principle of Least Knowledge, is a design guideline for developing software, particularly object-oriented programs. The guideline was invented at Northeastern University towards the end of 1987, and can be succinctly summarized as “Only talk to your immediate friends.” The fundamental notion is that a given object should assume as little as possible about the structure or properties of anything else (including its subcomponents).&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;div&gt;C2 Wiki:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;blockquote&gt;The LawOfDemeter makes UnitTests easier.&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://c2.com/cgi/wiki?LawOfDemeterMakesUnitTestsEasier"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Source&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Miško Hevery:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Most applications tend to have some sort of Context object which is the kitchen sink and which can get you just about any other object in the system aka the service locator. [-] Writing tests for such code base sucks!&lt;/blockquote&gt;&lt;blockquote&gt;[....]&lt;/blockquote&gt;&lt;blockquote&gt;Always ask for things&lt;br /&gt;-Abandon the new operator in 99% of your domain classes&lt;br /&gt;-Move object creation to factories (or a DI container)&lt;/blockquote&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/4668241017236182754-8536073631333596147?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8536073631333596147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/law-of-demeter-only-talk-to-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8536073631333596147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8536073631333596147'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/law-of-demeter-only-talk-to-your.html' title='Law of Demeter: Only talk to your immediate friends'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6125260714921452991</id><published>2009-02-23T05:08:00.001+01:00</published><updated>2009-02-23T05:10:06.839+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC - Model View Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD - Test Driven Development'/><title type='text'>Haacked: TDD and Dependency Injection with ASP.NET MVC</title><content type='html'>Great article on TDD, DI and MVC by Phil Haack:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx"&gt;Read article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6125260714921452991?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6125260714921452991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/haacked-tdd-and-dependency-injection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6125260714921452991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6125260714921452991'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/haacked-tdd-and-dependency-injection.html' title='Haacked: TDD and Dependency Injection with ASP.NET MVC'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8618456285154597347</id><published>2009-02-23T03:18:00.003+01:00</published><updated>2009-02-23T05:21:32.636+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Resharper'/><title type='text'>Resharper Keyboard Shortcuts</title><content type='html'>&lt;div&gt;When watching the "Become a Resharper Samurai" screencast series from DimeCasts, I learned some useful Resharper shortcuts that I wasn't aware of. Using more Resharper features will make my day-to-day coding a lot more productive, so I'll really try to get to the point were I don't have to think - just use them, like using TOUCH.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;General:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Alt + Enter:&lt;/b&gt; Show available Resharper actions if resharper icon is present on line&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + P: &lt;/b&gt;Show parameter information&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Refactoring:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Alt + Ins:&lt;/b&gt; Show generate menu&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + Shift + R:&lt;/b&gt; Refactor menu&lt;/div&gt;&lt;div&gt;&lt;b&gt;F2:&lt;/b&gt; Refactor rename&lt;/div&gt;&lt;div&gt;Move interface to another file: Cursor in interace line =&gt; Alt + Enter to show menu&lt;/div&gt;&lt;div&gt;Method parameter to auto property: Cursor on param =&gt; Alt + Enter to show menu&lt;/div&gt;&lt;div&gt;Extract class from paramters Cursor in signature =&gt; Alt + Enter to show menu&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Navigation:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + Shift + N:&lt;/b&gt; Find file&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + N:&lt;/b&gt; Find type&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + F12:&lt;/b&gt; Find member&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + B: &lt;/b&gt;Go to definition&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + Alt + B:&lt;/b&gt; Find classes implementing an interface &lt;/div&gt;&lt;div&gt;&lt;b&gt;Alt + F7:&lt;/b&gt; Find usages &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ctrl + Alt + F7: &lt;/b&gt;Find usages but show in Resharper popup list&lt;/div&gt;&lt;div&gt;&lt;b&gt;Alt + Up:&lt;/b&gt; Jump to next method&lt;/div&gt;&lt;div&gt;&lt;b&gt;Alt + down: &lt;/b&gt;Jump to next method&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-8618456285154597347?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8618456285154597347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/resharper-keyboard-shortcuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8618456285154597347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8618456285154597347'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/resharper-keyboard-shortcuts.html' title='Resharper Keyboard Shortcuts'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1337067034644323339</id><published>2009-02-22T19:09:00.002+01:00</published><updated>2009-02-22T19:11:46.857+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>DotNetShoutout.com - Screencasts</title><content type='html'>I've already written about Kigg and DotNetShoutout.com in&lt;a href="http://oo-programming.blogspot.com/2009/02/kigg-dotnetshoutoutcom.html"&gt; another blog article&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;DotNetShoutout has a really nice collection of screencasts, &lt;a href="http://dotnetshoutout.com/Category/Screencast"&gt;have a look&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1337067034644323339?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1337067034644323339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dotnetshoutoutcom-screencasts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1337067034644323339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1337067034644323339'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dotnetshoutoutcom-screencasts.html' title='DotNetShoutout.com - Screencasts'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2535061873248051682</id><published>2009-02-22T18:50:00.003+01:00</published><updated>2009-02-22T19:09:09.319+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC - Model View Controller'/><title type='text'>Kigg - DotNetShoutout.com</title><content type='html'>&lt;a href="http://dotnetshoutout.com/"&gt;DotNetShoutout&lt;/a&gt; is a Digg clone for programming topics, created by a &lt;a href="http://dotnetshoutout.com/About"&gt;group of developers&lt;/a&gt; from &lt;a href="http://en.wikipedia.org/wiki/Bangladesh"&gt;Bangladesh&lt;/a&gt;. This site is built on &lt;a href="http://www.codeplex.com/Kigg"&gt;Kigg&lt;/a&gt;, an open source web application hosted by CodePlex.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kigg is using the &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC Framework&lt;/a&gt;, and the author &lt;a href="http://weblogs.asp.net/rashid/"&gt;Kazi Manzur Rashid&lt;/a&gt; gives a really great walkthrough of the app in &lt;a href="http://dotnetslackers.com/articles/aspnet/KiggBuildingADiggCloneWithASPNETMVC1.aspx"&gt;this article&lt;/a&gt; at DotNetSlackers.com . Learn how to use LINQ to SQL, MVC routing and unit testing&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Direct link to sample code: &lt;a href="http://dotnetslackers.com/code/Kigg.zip"&gt;Kigg.zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-2535061873248051682?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2535061873248051682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/kigg-dotnetshoutoutcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2535061873248051682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2535061873248051682'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/kigg-dotnetshoutoutcom.html' title='Kigg - DotNetShoutout.com'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7643438461956957681</id><published>2009-02-21T21:42:00.003+01:00</published><updated>2009-02-22T18:34:51.944+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>How to find a great presentation</title><content type='html'>Not all presentations are great. But if they are, people tend to tell - in comments. And fortunately, most sites allow comments -- and fortunately, a lot of people tend to use the phrase "great presentation" if they think a presentation was just great.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I realized this when I read a comment about a really great presentation from Mr Jason on MVC. So I tested some Google searches, and the SERPs were ... great. Here are some examples of queries to use: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.google.com/search?q=%22great+presentation%22+mvc"&gt;"great presentation" mvc&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.google.com/search?q=%22great+presentation%22+tdd"&gt;"great presentation" tdd&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.google.com/search?q=%22great+presentation%22+ioc"&gt;"great presentation" ioc&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=%22great+presentation%22+%22visual+studio%22"&gt;"great presentation" "visual studio"&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=%22great+presentation%22+%22sql+server%22"&gt;"great presentation" "sql server"&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=%22great+presentation%22+mocking"&gt;"great presentation" mocking&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You get the picture. Add the keyword(s) representing what you're looking for, and hopefully you'll find stuff much better than your college programming class courses.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-7643438461956957681?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7643438461956957681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/how-to-find-great-presentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7643438461956957681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7643438461956957681'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/how-to-find-great-presentation.html' title='How to find a great presentation'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6585176446284868751</id><published>2009-02-21T15:12:00.002+01:00</published><updated>2009-02-21T15:16:49.884+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>DimeCasts.net</title><content type='html'>&lt;div&gt;Huge collection of videos, covering unit testing, mocking, Linq, NHibernate and serveral other aspects of software development:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.dimecasts.net/"&gt;http://www.dimecasts.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6585176446284868751?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6585176446284868751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dimecastsnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6585176446284868751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6585176446284868751'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dimecastsnet.html' title='DimeCasts.net'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2230987317439348970</id><published>2009-02-19T04:55:00.002+01:00</published><updated>2009-02-19T04:56:15.001+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Architecture'/><title type='text'>Microsoft Patterns &amp; Practices: "Application Architecture Guide 2.0" (Book)</title><content type='html'>&lt;div&gt;Download PDF version or read the book online:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.codeplex.com/AppArchGuide"&gt;http://www.codeplex.com/AppArchGuide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2230987317439348970?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2230987317439348970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/microsoft-patterns-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2230987317439348970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2230987317439348970'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/microsoft-patterns-practices.html' title='Microsoft Patterns &amp; Practices: &quot;Application Architecture Guide 2.0&quot; (Book)'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6246504062285632361</id><published>2009-02-18T20:09:00.001+01:00</published><updated>2009-02-18T20:09:55.333+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sql Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Sql Server Reporting Videos</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px;"&gt;&lt;a href="http://www.bestechvideos.com/2008/07/20/sql-server-2005-building-and-customizing-reports-in-business-intelligence-development-studio"&gt;Sql Server Reporting Videos&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6246504062285632361?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6246504062285632361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/sql-server-reporting-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6246504062285632361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6246504062285632361'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/sql-server-reporting-videos.html' title='Sql Server Reporting Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5916680371679970938</id><published>2009-02-18T18:42:00.001+01:00</published><updated>2009-02-19T04:33:26.392+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD - Test Driven Development'/><title type='text'>StackOverflow: Unit testing videos and podcasts</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/387326/unit-testing-videos-or-pod-casts"&gt;http://stackoverflow.com/questions/387326/unit-testing-videos-or-pod-casts&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5916680371679970938?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5916680371679970938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/stackoverflow-unit-testing-videos-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5916680371679970938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5916680371679970938'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/stackoverflow-unit-testing-videos-and.html' title='StackOverflow: Unit testing videos and podcasts'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7304400409226194072</id><published>2009-02-18T18:40:00.001+01:00</published><updated>2009-02-18T18:41:31.472+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD - Test Driven Development'/><title type='text'>Google Clean Code Talks</title><content type='html'>Unit testing etc:&lt;br /&gt;&lt;br /&gt;YouTube playlist: &lt;a href="http://www.youtube.com/view_play_list?p=BDAB2BA83BB6588E"&gt;http://www.youtube.com/view_play_list?p=BDAB2BA83BB6588E&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7304400409226194072?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7304400409226194072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/google-clean-code-talks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7304400409226194072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7304400409226194072'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/google-clean-code-talks.html' title='Google Clean Code Talks'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3714209842119601811</id><published>2009-02-18T06:11:00.002+01:00</published><updated>2009-02-18T21:50:48.303+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>Hanselman: What Great .NET Developers Ought To Know</title><content type='html'>&lt;div&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Everyone who writes code &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;  Answers: &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://sendhil.spaces.live.com/blog/cns%2130862CF919BD131A%21575.entry" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;http://sendhil.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;spaces.live.com/blog/cns!&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;30862CF919BD131A!575.entry&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;* Describe the difference between a Thread and a Process?&lt;br /&gt;&lt;br /&gt; * What is a Windows Service and how does its lifecycle differ from&lt;br /&gt;a "standard" EXE?&lt;br /&gt;&lt;br /&gt; * What is the maximum amount of memory any single process on Windows&lt;br /&gt;can address? Is this different than the maximum virtual memory for the&lt;br /&gt;system? How would this affect a system design?&lt;br /&gt;&lt;br /&gt; * What is the difference between an EXE and a DLL?&lt;br /&gt;&lt;br /&gt; * What is strong-typing versus weak-typing? Which is preferred? Why?&lt;br /&gt;&lt;br /&gt; * Corillian's product is a "Component Container." Name at&lt;br /&gt;least 3 component containers that ship now with the Windows Server Family.&lt;br /&gt;&lt;br /&gt; * What is a PID? How is it useful when troubleshooting a system?&lt;br /&gt;&lt;br /&gt; * How many processes can listen on a single TCP/IP port?&lt;br /&gt;&lt;br /&gt; * What is the GAC? What problem does it solve?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Mid-Level .NET Developer &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;  Answers: &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://sendhil.spaces.live.com/blog/cns%2130862CF919BD131A%21579.entry" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;http://sendhil.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;spaces.live.com/blog/cns!&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;30862CF919BD131A!579.entry&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;br /&gt;* Describe the difference between Interface-oriented, Object-oriented&lt;br /&gt;and Aspect-oriented programming.&lt;br /&gt;&lt;br /&gt; * Describe what an Interface is and how it's different from a Class.&lt;br /&gt;&lt;br /&gt; * What is Reflection?&lt;br /&gt;&lt;br /&gt; * What is the difference between XML Web Services using ASMX and .NET&lt;br /&gt;Remoting using SOAP?&lt;br /&gt;&lt;br /&gt; * Are the type system represented by XmlSchema and the CLS isomorphic?&lt;br /&gt;&lt;br /&gt; * Conceptually, what is the difference between early-binding and late-binding?&lt;br /&gt;&lt;br /&gt; * Is using Assembly.Load a static reference or dynamic reference?&lt;br /&gt;&lt;br /&gt; * When would using Assembly.LoadFrom or Assembly.LoadFile be appropriate?&lt;br /&gt;&lt;br /&gt; * What is an Asssembly Qualified Name? Is it a filename? How is it&lt;br /&gt;different?&lt;br /&gt;&lt;br /&gt; * Is this valid? Assembly.Load("foo.dll");&lt;br /&gt;&lt;br /&gt; * How is a strongly-named assembly different from one that isn't strongly-named?&lt;br /&gt;&lt;br /&gt; * Can DateTimes be null?&lt;br /&gt;&lt;br /&gt; * What is the JIT? What is NGEN? What are limitations and benefits&lt;br /&gt;of each?&lt;br /&gt;&lt;br /&gt; * How does the generational garbage collector in the .NET CLR manage&lt;br /&gt;object lifetime? What is non-deterministic finalization?&lt;br /&gt;&lt;br /&gt; * What is the difference between Finalize() and Dispose()?&lt;br /&gt;&lt;br /&gt; * How is the using() pattern useful? What is IDisposable? How does&lt;br /&gt;it support deterministic finalization?&lt;br /&gt;&lt;br /&gt; * What does this useful command line do? tasklist /m "mscor*"&lt;br /&gt;&lt;br /&gt; * What is the difference between in-proc and out-of-proc?&lt;br /&gt;&lt;br /&gt; * What technology enables out-of-proc communication in .NET?&lt;br /&gt;&lt;br /&gt; * When you're running a component within &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, what process is it running within on Windows&lt;br /&gt;XP? Windows 2000? Windows 2003?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Senior Developers/Architects &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Answers: &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://sendhil.spaces.live.com/blog/cns%2130862CF919BD131A%21583.entry" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;http://sendhil.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;spaces.live.com/blog/cns!&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;30862CF919BD131A!583.entry&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;* What's wrong with a line like this? DateTime.Parse(myString);&lt;br /&gt;&lt;br /&gt; * What are PDBs? Where must they be located for debugging to work?&lt;br /&gt;&lt;br /&gt; * What is cyclomatic complexity and why is it important?&lt;br /&gt;&lt;br /&gt; * Write a standard lock() plus "double check" to create a&lt;br /&gt;critical section around a variable access.&lt;br /&gt;&lt;br /&gt; * What is FullTrust? Do GAC'ed assemblies have FullTrust?&lt;br /&gt;&lt;br /&gt; * What benefit does your code receive if you decorate it with attributes&lt;br /&gt;demanding specific Security permissions?&lt;br /&gt;&lt;br /&gt; * What does this do? gacutil /l | find /i "Corillian"&lt;br /&gt;&lt;br /&gt; * What does this do? sn -t foo.dll&lt;br /&gt;&lt;br /&gt; * What ports must be open for DCOM over a firewall? What is the purpose&lt;br /&gt;of Port 135?&lt;br /&gt;&lt;br /&gt; * Contrast OOP and SOA. What are tenets of each?&lt;br /&gt;&lt;br /&gt; * How does the XmlSerializer work? What ACL permissions does a process&lt;br /&gt;using it require?&lt;br /&gt;&lt;br /&gt; * Why is catch(Exception) almost always a bad idea?&lt;br /&gt;&lt;br /&gt; * What is the difference between Debug.Write and Trace.Write? When&lt;br /&gt;should each be used?&lt;br /&gt;&lt;br /&gt; * What is the difference between a Debug and Release build? Is there&lt;br /&gt;a significant speed difference? Why or why not?&lt;br /&gt;&lt;br /&gt; * Does JITting occur per-assembly or per-method? How does this affect&lt;br /&gt;the working set?&lt;br /&gt;&lt;br /&gt; * Contrast the use of an abstract base class against an interface?&lt;br /&gt;&lt;br /&gt; * What is the difference between a.Equals(b) and a == b?&lt;br /&gt;&lt;br /&gt; * In the context of a comparison, what is object identity versus object&lt;br /&gt;equivalence?&lt;br /&gt;&lt;br /&gt; * How would one do a deep copy in .NET?&lt;br /&gt;&lt;br /&gt; * Explain current thinking around IClonable.&lt;br /&gt;&lt;br /&gt; * What is boxing?&lt;br /&gt;&lt;br /&gt; * Is string a value type or a reference type?&lt;br /&gt;&lt;br /&gt; * What is the significance of the "PropertySpecified" pattern&lt;br /&gt;used by the XmlSerializer? What problem does it attempt to solve?&lt;br /&gt;&lt;br /&gt; * Why are out parameters a bad idea in .NET? Are they?&lt;br /&gt;&lt;br /&gt; * Can attributes be placed on specific parameters to a method? Why&lt;br /&gt;is this useful?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;C# Component Developers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;  Answers: &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://sendhil.spaces.live.com/blog/cns%2130862CF919BD131A%21585.entry" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;http://sendhil.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;spaces.live.com/blog/cns!&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;30862CF919BD131A!585.entry&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;* Juxtapose the use of override with new. What is shadowing?&lt;br /&gt;&lt;br /&gt; * Explain the use of virtual, sealed, override, and abstract.&lt;br /&gt;&lt;br /&gt; * Explain the importance and use of each component of this string:&lt;br /&gt;Foo.Bar, Version=&lt;/span&gt;&lt;/span&gt;&lt;a href="http://2.0.205.0/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;2.0.205.0&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, Culture=neutral, PublicKeyToken=&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;wbr&gt;593777ae2d274679d&lt;br /&gt;&lt;br /&gt; * Explain the differences between public, protected, private and internal.&lt;br /&gt;&lt;br /&gt; * What benefit do you get from using a Primary Interop Assembly (PIA)?&lt;br /&gt;&lt;br /&gt; * By what mechanism does NUnit know what methods to test?&lt;br /&gt;&lt;br /&gt; * What is the difference between: catch(Exception e){throw e;} and&lt;br /&gt;catch(Exception e){throw;}&lt;br /&gt;&lt;br /&gt; * What is the difference between typeof(foo) and myFoo.GetType()?&lt;br /&gt;&lt;br /&gt; * Explain what's happening in the first constructor: public class c{&lt;br /&gt;public c(string a) : this() {;}; public c() {;} } How is this construct&lt;br /&gt;useful?&lt;br /&gt;&lt;br /&gt; * What is this? Can this be used within a static method?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span&gt;&lt;span&gt;ASP.NET &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;(UI) Developers &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;* Describe how a browser-based Form POST becomes a Server-Side event&lt;br /&gt;like Button1_OnClick.&lt;br /&gt;&lt;br /&gt; * What is a PostBack?&lt;br /&gt;&lt;br /&gt; * What is ViewState? How is it encoded? Is it encrypted? Who uses ViewState?&lt;br /&gt;&lt;br /&gt; * What is the &amp;lt;machinekey&amp;gt; element and what two &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;technologies is it used for?&lt;br /&gt;&lt;br /&gt; * What three Session State providers are available in &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;1.1? What are the pros and cons of each?&lt;br /&gt;&lt;br /&gt; * What is Web Gardening? How would using it affect a design?&lt;br /&gt;&lt;br /&gt; * Given one &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;application, how many application objects does&lt;br /&gt;it have on a single proc box? A dual? A dual with Web Gardening enabled?&lt;br /&gt;How would this affect a design?&lt;br /&gt;&lt;br /&gt; * Are threads reused in &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;between reqeusts? Does every HttpRequest get&lt;br /&gt;its own thread? Should you use Thread Local storage with &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;?&lt;br /&gt;&lt;br /&gt; * Is the [ThreadStatic] attribute useful in &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;? Are there side effects? Good or bad?&lt;br /&gt;&lt;br /&gt; * Give an example of how using an HttpHandler could simplify an existing&lt;br /&gt;design that serves Check Images from an .aspx page.&lt;br /&gt;&lt;br /&gt; * What kinds of events can an HttpModule subscribe to? What influence&lt;br /&gt;can they have on an implementation? What can be done without recompiling&lt;br /&gt;the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Application?&lt;br /&gt;&lt;br /&gt; * Describe ways to present an arbitrary endpoint (URL) and route requests&lt;br /&gt;to that endpoint to &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.&lt;br /&gt;&lt;br /&gt; * Explain how cookies work. Give an example of Cookie abuse.&lt;br /&gt;&lt;br /&gt; * Explain the importance of HttpRequest.ValidateInput()?&lt;br /&gt;&lt;br /&gt; * What kind of data is passed via HTTP Headers?&lt;br /&gt;&lt;br /&gt; * Juxtapose the HTTP verbs GET and POST. What is HEAD?&lt;br /&gt;&lt;br /&gt; * Name and describe at least a half dozen HTTP Status Codes and what&lt;br /&gt;they express to the requesting client.&lt;br /&gt;&lt;br /&gt; * How does if-not-modified-since work? How can it be programmatically&lt;br /&gt;implemented with &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;?&lt;br /&gt;&lt;br /&gt;   Explain &amp;lt;@OutputCache%&amp;gt; and the usage of VaryByParam, VaryByHeader.&lt;br /&gt;&lt;br /&gt; * How does VaryByCustom work?&lt;br /&gt;&lt;br /&gt; * How would one implement &lt;/span&gt;&lt;/span&gt;&lt;a href="http://asp.net/" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ASP.NET &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;HTML output caching, caching outgoing versions&lt;br /&gt;of pages generated via all values of q= except where q=5 (as in &lt;/span&gt;&lt;/span&gt;&lt;a href="http://localhost/page.aspx?q=5" target="_blank"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://localhost/page.aspx?&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;wbr&gt;q=5&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;)?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Source: &lt;/span&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Georgia;font-size:16px;"&gt;&lt;a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx" target="_blank"&gt;&lt;span style="font-family:Arial;font-size:85%;color:#005488;"&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia;"&gt;&lt;span style="font-family:Arial;color:#005488;"&gt;&lt;u&gt;&lt;a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;http://www.hanselman.com/blog/&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;WhatGreatNETDevelopersOughtToK&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;nowMoreNETInterviewQuestions.&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;&lt;wbr&gt;aspx&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"    style="font-family:Arial;font-size:100%;color:#005488;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&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/4668241017236182754-3714209842119601811?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3714209842119601811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/hanselman-what-great-net-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3714209842119601811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3714209842119601811'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/hanselman-what-great-net-developers.html' title='Hanselman: What Great .NET Developers Ought To Know'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5853042201963580237</id><published>2009-02-15T18:39:00.001+01:00</published><updated>2009-02-15T18:42:14.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Tips'/><title type='text'>Video: Visual Studio Tips</title><content type='html'>&lt;div&gt;Video versions of &lt;a href="http://blogs.msdn.com/saraford/"&gt;Sara Ford&lt;/a&gt;'s 382 Visual Studio Tips:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://scottcate.com/tricks/"&gt;http://scottcate.com/tricks/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5853042201963580237?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5853042201963580237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/video-visual-studio-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5853042201963580237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5853042201963580237'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/video-visual-studio-tips.html' title='Video: Visual Studio Tips'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7199746646091346744</id><published>2009-02-15T15:05:00.000+01:00</published><updated>2009-02-15T15:06:35.831+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Architecture'/><title type='text'>MEF - Managed Extensibility Framework</title><content type='html'>Video: &lt;a href="http://www.dnrtv.com/default.aspx?showNum=130"&gt;http://www.dnrtv.com/default.aspx?showNum=130&lt;/a&gt; (DNR TV)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7199746646091346744?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7199746646091346744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/mef-managed-extensibility-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7199746646091346744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7199746646091346744'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/mef-managed-extensibility-framework.html' title='MEF - Managed Extensibility Framework'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-4139396451542962800</id><published>2009-02-15T00:36:00.001+01:00</published><updated>2009-02-15T00:36:59.724+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>Ultimate .NET development tools</title><content type='html'>&lt;a href="http://dotnet.org.za/cjlotz/archive/2006/12/15/Ultimate-.NET-development-tools.aspx"&gt;http://dotnet.org.za/cjlotz/archive/2006/12/15/Ultimate-.NET-development-tools.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-4139396451542962800?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/4139396451542962800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/ultimate-net-development-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4139396451542962800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4139396451542962800'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/ultimate-net-development-tools.html' title='Ultimate .NET development tools'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7712272445429240157</id><published>2009-02-14T23:35:00.001+01:00</published><updated>2009-02-18T01:30:28.393+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>SSW: Rules and standards</title><content type='html'>&lt;div&gt;This is a great guide to follow when doing software (and specifically .NET) development. Very useful stuff!&lt;/div&gt;&lt;div&gt;Scott Guthrie&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ssw.com.au/ssw/Standards/"&gt;http://www.ssw.com.au/ssw/Standards/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7712272445429240157?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7712272445429240157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/ssw-rules-and-standards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7712272445429240157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7712272445429240157'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/ssw-rules-and-standards.html' title='SSW: Rules and standards'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-443927989974714796</id><published>2009-02-14T21:47:00.001+01:00</published><updated>2009-02-18T01:30:55.262+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AOP - Aspect Oriented Programming'/><title type='text'>Using AOP to Implement Functional Requirements</title><content type='html'>&lt;div&gt;Using AOP to Implement Functional Requirements - Closing Dirty Forms&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.codeproject.com/useritems/dirty.asp"&gt;http://www.codeproject.com/useritems/dirty.asp&lt;/a&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-443927989974714796?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/443927989974714796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/using-aop-to-implement-functional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/443927989974714796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/443927989974714796'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/using-aop-to-implement-functional.html' title='Using AOP to Implement Functional Requirements'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5555610972689860924</id><published>2009-02-14T21:46:00.000+01:00</published><updated>2009-02-14T21:47:35.597+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IoC - Inversion of Control'/><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><title type='text'>Inversion of Control - Dependency Inversion Principle - Castle's Windsor/MicroKernel</title><content type='html'>&lt;span&gt;&lt;i&gt;First, is the &lt;a href="http://davidhayden.com/blog/dave/archive/2005/06/10/1261.aspx"&gt;Dependency-Inversion Principle&lt;/a&gt;. Rather than the application being dependent on the blog services and the blog services dependent on the database, we have inverted the relationship. The details are no longer in control of the application. The database is dependent on the blog services and the blog services is dependent on the application, allowing us to plug-in various databases and blog services at will without touching the application.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://codebetter.com/blogs/david.hayden/archive/2006/10/13/Inversion-of-Control-_2D00_-Dependency-Inversion-Principle-_2D00_-Castle_2700_s-Windsor_2F00_MicroKernel.aspx"&gt;http://codebetter.com/blogs/&lt;wbr&gt;david.hayden/archive/2006/10/&lt;wbr&gt;13/Inversion-of-Control-_2D00_&lt;wbr&gt;-Dependency-Inversion-&lt;wbr&gt;Principle-_2D00_-Castle_2700_&lt;wbr&gt;s-Windsor_2F00_MicroKernel.&lt;wbr&gt;aspx&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5555610972689860924?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5555610972689860924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/inversion-of-control-dependency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5555610972689860924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5555610972689860924'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/inversion-of-control-dependency.html' title='Inversion of Control - Dependency Inversion Principle - Castle&apos;s Windsor/MicroKernel'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-4406935269771075763</id><published>2009-02-14T21:22:00.001+01:00</published><updated>2009-02-18T01:29:52.903+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Architecture'/><title type='text'>Designing Data Tier Components and Passing Data Through Tiers</title><content type='html'>&lt;div&gt;Building Distributed Applications - Designing Data Tier Components and Passing Data Through Tiers&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms978496.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms978496.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-4406935269771075763?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/4406935269771075763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/designing-data-tier-components-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4406935269771075763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/4406935269771075763'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/designing-data-tier-components-and.html' title='Designing Data Tier Components and Passing Data Through Tiers'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5571183924662967223</id><published>2009-02-14T21:15:00.002+01:00</published><updated>2009-02-14T21:19:57.043+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX / JS'/><title type='text'>CSS Dock Menu</title><content type='html'>&lt;div&gt;Pretty cool Mac-ish dock menu, made with JS and CSS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.ndesign-studio.com/blog/mac/css-dock-menu"&gt;http://www.ndesign-studio.com/blog/mac/css-dock-menu&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5571183924662967223?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5571183924662967223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/css-dock-menu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5571183924662967223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5571183924662967223'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/css-dock-menu.html' title='CSS Dock Menu'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-828128055599594088</id><published>2009-02-14T19:46:00.004+01:00</published><updated>2009-02-22T20:57:02.532+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XYZ - Misc'/><title type='text'>SearchMe: A Visual Search Engine</title><content type='html'>&lt;a href="http://www.searchme.com/"&gt;http://www.searchme.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-828128055599594088?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/828128055599594088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/searcme-visual-search-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/828128055599594088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/828128055599594088'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/searcme-visual-search-engine.html' title='SearchMe: A Visual Search Engine'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-701282624550378901</id><published>2009-02-14T19:33:00.001+01:00</published><updated>2009-02-14T19:35:14.474+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Scrum resources</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; border-collapse: collapse; font-size: 13px; "&gt;&lt;b&gt;Nice English site:&lt;br /&gt;&lt;/b&gt;&lt;a href="http://www.mountaingoatsoftware.com/scrum" target="_blank" style="color: rgb(0, 84, 136); "&gt;http://www.&lt;wbr&gt;mountaingoatsoftware.com/scrum&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;YouTube videos:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.google.no/search?q=site%3Ayoutube.com+scrum" target="_blank" style="color: rgb(0, 84, 136); "&gt;http://www.google.no/search?q=&lt;wbr&gt;site%3Ayoutube.com+scrum&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;H. Kniberg Video  (the swedish guy):&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/presentations/Fail-Scrum-Henrik-Kniberg" target="_blank" style="color: rgb(0, 84, 136); "&gt;http://www.infoq.com/&lt;wbr&gt;presentations/Fail-Scrum-&lt;wbr&gt;Henrik-Kniberg&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px;"&gt;&lt;b&gt;Nice Norwegian site:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.coretrek.no/scrum-i-et-noetteskall/category642.html" target="_blank" style="color: rgb(0, 84, 136); "&gt;http://www.coretrek.no/scrum-&lt;wbr&gt;i-et-noetteskall/category642.&lt;wbr&gt;html&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-701282624550378901?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/701282624550378901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/scrum-resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/701282624550378901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/701282624550378901'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/scrum-resources.html' title='Scrum resources'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5861117263552310307</id><published>2009-02-14T19:31:00.001+01:00</published><updated>2009-02-18T01:31:44.121+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI - Continous Integration'/><title type='text'>Jeremy's First Law of Continuous Integration</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;If you check in very often and/or first, you can make merge conflicts be someone else's problem&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2008/09/22/jeremy-s-first-law-of-continuous-integration.aspx"&gt;http://codebetter.com/blogs/jeremy.miller/archive/2008/09/22/jeremy-s-first-law-of-continuous-integration.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5861117263552310307?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5861117263552310307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/jeremys-first-law-of-continuous.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5861117263552310307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5861117263552310307'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/jeremys-first-law-of-continuous.html' title='Jeremy&apos;s First Law of Continuous Integration'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3510989385416104406</id><published>2009-02-14T19:16:00.003+01:00</published><updated>2009-02-14T19:21:07.279+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Tips'/><title type='text'>Visual Studio Tips</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; border-collapse: collapse; font-size: 13px; "&gt;&lt;div&gt;Always code in full screen - use F11&lt;/div&gt;&lt;div&gt;Transpose word / character: ctrl + t&lt;/div&gt;&lt;div&gt;Transpose paragraph: Alt shift + t&lt;/div&gt;&lt;div&gt;Copy line: ctrl + c (no selection necessary)&lt;/div&gt;&lt;div&gt;Cut line: ctrl + x (i no selection necessary)&lt;/div&gt;&lt;div&gt;Intellisense: Ctrl + J&lt;/div&gt;&lt;div&gt;Intellisense parameter: ctrl + shitf + space&lt;/div&gt;&lt;div&gt;Rectangular selection: alt + drag&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;View code: F7 &lt;/div&gt;&lt;div&gt;View deisgner: shift F7&lt;/div&gt;&lt;div&gt;Split to see different parts of same code file: Use splitter widget top right)&lt;/div&gt;&lt;div&gt;Drag file to code to show full path&lt;/div&gt;&lt;div&gt;Full screen: ctrl + shitf + enter&lt;/div&gt;&lt;div&gt;Class view: ctrl + shift + c&lt;/div&gt;&lt;div&gt;Macro for MVC solution&lt;/div&gt;&lt;div&gt;#error Not correct logic here &lt;== compile error&lt;/div&gt;&lt;div&gt;#warning Code sucks &lt;== compile warning&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3510989385416104406?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3510989385416104406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/visual-studio-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3510989385416104406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3510989385416104406'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/visual-studio-tips.html' title='Visual Studio Tips'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-6947760559835599692</id><published>2009-02-14T18:30:00.001+01:00</published><updated>2009-02-14T18:31:54.701+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>AJAX Videos</title><content type='html'>Another extremely nice collection of videos from Microsoft. More than 70 video tutorials on AJAX.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.asp.net/LEARN/videos/"&gt;http://www.asp.net/LEARN/videos/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-6947760559835599692?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/6947760559835599692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/ajax-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6947760559835599692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/6947760559835599692'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/ajax-videos.html' title='AJAX Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7528402438884344187</id><published>2009-02-14T18:24:00.001+01:00</published><updated>2009-02-14T18:26:27.108+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Asp.NET Videos</title><content type='html'>&lt;div&gt;Extremely nice collection of videos from Microsoft. Hours of tutorials.&lt;/div&gt;&lt;a href="http://www.asp.net/LEARN/videos/"&gt;http://www.asp.net/LEARN/videos/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7528402438884344187?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7528402438884344187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/aspnet-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7528402438884344187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7528402438884344187'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/aspnet-videos.html' title='Asp.NET Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1779527147988953214</id><published>2009-02-12T21:59:00.001+01:00</published><updated>2009-02-12T22:01:38.796+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quotes'/><title type='text'>Quotes from real-life Dilbert-type managers</title><content type='html'>&lt;div&gt;A magazine recently ran a "Dilbert Quotes" contest. They were looking for people to submit quotes from their real-life Dilbert-type managers. These were voted the top ten quotes from the Dilbert’s we work for in corporate America , circa 2004:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;"As of tomorrow, employees will only be able to access the building using individual security cards. Pictures will be taken next Wednesday, and employees will receive their cards in two weeks." (This was the winning quote from Fred Dales, Microsoft Corp. in Redmond WA)&lt;/li&gt;&lt;li&gt;"What I need is an exact list of specific unknown problems we might encounter." (Lykes Lines Shipping)&lt;/li&gt;&lt;li&gt;" E-mail is not to be used to pass on information or data. It should be used only for company business." (Accounting manager, Electric Boat Company)&lt;/li&gt;&lt;li&gt;" This project is so important we can't let things that are more important interfere with it." (Advertising/Marketing manager, United Parcel Service)&lt;/li&gt;&lt;li&gt;" Doing it right is no excuse for not meeting the schedule." (Plant Manager, Delco Corporation) [Perhaps that's why they're in bankruptcy.]&lt;/li&gt;&lt;li&gt;" No one will believe you solved this problem in one day! We've been working on it for months. Now go act busy for a few weeks and I'll let you know when it's time to tell them." (R&amp;amp;D supervisor, Minnesota Mining and Manufacturing/3M Corp.)&lt;/li&gt;&lt;li&gt;Quote from the Boss: "Teamwork is a lot of people doing what I say." (Marketing executive, Citrix Corporation)&lt;/li&gt;&lt;li&gt;My sister passed away and her funeral was scheduled for Monday. When I told my Boss, he said she died on purpose so that I would have to miss work on the busiest day of the year. He then asked if we could change her burial to Friday. He said, "That would be better for me." (Shipping executive, FTD Florists)&lt;/li&gt;&lt;li&gt;"We know that communication is a problem, but the company is not going to discuss it with the employees." (Switching supervisor, AT&amp;amp;T Long Lines Division)&lt;/li&gt;&lt;li&gt;One day my Boss asked me to submit a status report to him concerning a project I was working on. I asked him if tomorrow would be soon enough. He said, "If I wanted it tomorrow, I would have waited until tomorrow to ask for it!" (Hallmark Cards Executive)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-1779527147988953214?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1779527147988953214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/quotes-from-real-life-dilbert-type.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1779527147988953214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1779527147988953214'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/quotes-from-real-life-dilbert-type.html' title='Quotes from real-life Dilbert-type managers'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7944231526420624565</id><published>2009-02-12T08:17:00.002+01:00</published><updated>2009-02-12T08:18:40.352+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcasts'/><title type='text'>ElegantCode Codecasts</title><content type='html'>&lt;a href="http://elegantcode.com/category/codecast/"&gt;http://elegantcode.com/category/codecast/&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7944231526420624565?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7944231526420624565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/elegantcode-codecasts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7944231526420624565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7944231526420624565'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/elegantcode-codecasts.html' title='ElegantCode Codecasts'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7521445104094832946</id><published>2009-02-12T08:11:00.001+01:00</published><updated>2009-02-14T18:53:37.501+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Erich Gamma on Design Patterns and more</title><content type='html'>&lt;div&gt;Video: &lt;a href="http://www.infoq.com/interviews/gamma-jazz-eclipse-junit-design-patterns"&gt;Erich Gamma Discusses Jazz, Eclipse, JUnit and Design Patterns&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7521445104094832946?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7521445104094832946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/erich-gamma-on-design-patterns-and-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7521445104094832946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7521445104094832946'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/erich-gamma-on-design-patterns-and-more.html' title='Erich Gamma on Design Patterns and more'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3643129313918582450</id><published>2009-02-12T08:01:00.003+01:00</published><updated>2009-02-14T18:32:53.096+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Joshua Bloch on API Design</title><content type='html'>Video: &lt;a href="http://www.youtube.com/watch?v=aAb7hSCtvGw"&gt;How To Design A Good API and Why it Matters&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;By Joshua Bloch, Principal Software Engineer @ Google&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3643129313918582450?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3643129313918582450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/joshua-bloch-on-api-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3643129313918582450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3643129313918582450'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/joshua-bloch-on-api-design.html' title='Joshua Bloch on API Design'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8412151867201417797</id><published>2009-02-12T07:49:00.002+01:00</published><updated>2009-02-12T07:53:59.662+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDD - Test Driven Development'/><title type='text'>Guidelines for Test-Driven Development</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Benefits of Test-Driven Development&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The suite of unit tests provides&lt;b&gt; constant feedback&lt;/b&gt; that each component is still working.&lt;/li&gt;&lt;li&gt;The unit tests act as &lt;b&gt;documentation&lt;/b&gt; that cannot go out-of-date, unlike separate documentation, which can and frequently does.&lt;/li&gt;&lt;li&gt;When the test passes and the production code is refactored to remove duplication, it is clear that the &lt;b&gt;code is finished&lt;/b&gt;, and the developer can move on to a new test.&lt;/li&gt;&lt;li&gt;Test-driven development forces &lt;b&gt;critical analysis and design&lt;/b&gt; because the developer cannot create the production code without truly understanding what the desired result should be and how to test it.&lt;/li&gt;&lt;li&gt;The software tends to be &lt;b&gt;better designed&lt;/b&gt;, that is, loosely coupled and easily maintainable, because the developer is free to make design decisions and refactor at any time with confidence that the software is still working. This confidence is gained by running the tests. The need for a design pattern may emerge, and the code can be changed at that time.&lt;/li&gt;&lt;li&gt;The test suite acts as a &lt;b&gt;regression safety net on bugs&lt;/b&gt;: If a bug is found, the developer should create a test to reveal the bug and then modify the production code so that the bug goes away and all other tests still pass. On each successive test run, all previous bug fixes are verified.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Reduced debugging time&lt;/b&gt;!&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/aa730844.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa730844.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-8412151867201417797?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8412151867201417797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/guidelines-for-test-driven-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8412151867201417797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8412151867201417797'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/guidelines-for-test-driven-development.html' title='Guidelines for Test-Driven Development'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-659707446840380207</id><published>2009-02-12T07:10:00.002+01:00</published><updated>2009-02-12T07:14:27.388+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><title type='text'>Dotnetslackers - Castle Windsor IoC / DI Tutorial</title><content type='html'>&lt;div&gt;Simple explaination of refactoring to IoC/DI, and how to use Castle Windsor Container:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dotnetslackers.com/articles/designpatterns/InversionOfControlAndDependencyInjectionWithCastleWindsorContainerPart1.aspx"&gt;Inversion of Control and Dependency Injection with Castle Windsor Container - Part I&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-659707446840380207?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/659707446840380207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dotnetslackers-castle-windsor-ioc-di.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/659707446840380207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/659707446840380207'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dotnetslackers-castle-windsor-ioc-di.html' title='Dotnetslackers - Castle Windsor IoC / DI Tutorial'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2625874987397654003</id><published>2009-02-12T07:03:00.003+01:00</published><updated>2009-02-12T08:13:44.506+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD - Domain Driven Design'/><title type='text'>Eric Evans - DDD Videos</title><content type='html'>&lt;a href="http://www.infoq.com/interviews/domain-driven-design-eric-evans"&gt;Eric Evans on Domain Driven Design&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/presentations/model-to-work-evans"&gt;Presentation by Eric Evans: Making Models Work&lt;/a&gt; First part&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/presentations/strategic-design-evans"&gt;Presentation by Eric Evans: Strategic Design&lt;/a&gt; Second part&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2625874987397654003?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2625874987397654003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/eric-evans-ddd-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2625874987397654003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2625874987397654003'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/eric-evans-ddd-videos.html' title='Eric Evans - DDD Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-2693634663750380917</id><published>2009-02-12T06:59:00.001+01:00</published><updated>2009-02-12T06:59:03.092+01:00</updated><title type='text'>StartupSchool 08 Videos</title><content type='html'>&lt;a href="http://www.omnisio.com/startupschool08/"&gt;http://www.omnisio.com/startupschool08/&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-2693634663750380917?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/2693634663750380917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/startupschool-08-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2693634663750380917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/2693634663750380917'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/startupschool-08-videos.html' title='StartupSchool 08 Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5033992096057291631</id><published>2009-02-12T04:53:00.002+01:00</published><updated>2009-02-12T08:07:06.567+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development Videos'/><title type='text'>Best Tech Videos</title><content type='html'>&lt;b&gt;&lt;a href="http://www.bestechvideos.com/"&gt;http://www.bestechvideos.com&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5033992096057291631?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5033992096057291631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/best-tech-videos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5033992096057291631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5033992096057291631'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/best-tech-videos.html' title='Best Tech Videos'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-5781652523354978950</id><published>2009-02-11T16:54:00.001+01:00</published><updated>2009-02-11T16:55:40.546+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD - Domain Driven Design'/><title type='text'>Pragmatic Programmer on DDD</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Program Close to the Problem Domain&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Design and code in your user’s language.&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-5781652523354978950?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/5781652523354978950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/pragmatic-programmer-on-ddd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5781652523354978950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/5781652523354978950'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/pragmatic-programmer-on-ddd.html' title='Pragmatic Programmer on DDD'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1967227028569398993</id><published>2009-02-11T16:51:00.000+01:00</published><updated>2009-02-11T16:52:55.366+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DRY - Don&apos;t Repeat Yourself'/><title type='text'>Pragmatic Programmer on DRY</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.&lt;/blockquote&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/4668241017236182754-1967227028569398993?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1967227028569398993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/pragmatic-programmer-on-dry.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1967227028569398993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1967227028569398993'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/pragmatic-programmer-on-dry.html' title='Pragmatic Programmer on DRY'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3734791240155635153</id><published>2009-02-11T02:32:00.002+01:00</published><updated>2009-02-11T03:45:44.513+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD - Domain Driven Design'/><title type='text'>Steve Eichert on DDD: Factories and repositories</title><content type='html'>&lt;blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "&gt; &lt;span class="Apple-style-span"  style="color: rgb(51, 51, 51);  line-height: 14px;font-size:12px;"&gt;By separating the responsibilities of data retrieval into our Repositories, and object creation into our Factories we allow our domain objects to stay focused on representing the domain.  We also allow our applications to become more de-coupled which allows us to more easily test our applications. &lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3734791240155635153?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3734791240155635153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/steve-eichert-on-ddd-factories-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3734791240155635153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3734791240155635153'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/steve-eichert-on-ddd-factories-and.html' title='Steve Eichert on DDD: Factories and repositories'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-8401630203771058649</id><published>2009-02-11T02:28:00.004+01:00</published><updated>2009-02-11T03:47:06.397+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD - Domain Driven Design'/><title type='text'>Eric Evans on DDD</title><content type='html'>&lt;blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "&gt; Now I am focused on making sure my consulting clients get their money's worth from their software development efforts by focusing on their core domain, effectively expressing that model in their software [-]&lt;br /&gt;&lt;/blockquote&gt; &lt;blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "&gt; A software project should be a voyage of discovery that a team of software experts, domain experts and business strategists all take together. A team like that can collaborate to chart a course to a very valuable destination that is not entirely known at the outset.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-8401630203771058649?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/8401630203771058649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/eric-evans-on-ddd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8401630203771058649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/8401630203771058649'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/eric-evans-on-ddd.html' title='Eric Evans on DDD'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-3253243822019339574</id><published>2009-02-11T00:40:00.001+01:00</published><updated>2009-02-11T00:42:18.432+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><title type='text'>Billy McCafferty on DI (CodeProject)</title><content type='html'>&lt;div&gt;Billy McCafferty:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;"Dependency Injection" (DI), also more cryptically known as "Inversion of Control" (IoC), can be used as a technique for encouraging this loose coupling. There are two primary approaches to implementing DI: constructor injection and setter injection. Obviously, at some point, &lt;i&gt;something&lt;/i&gt; must be responsible for creating the concrete objects that will be injected into another object. The injector can be a parent object, which I'll call the "DI controller", or can be externalized and handled by a "DI container" framework. What follows is a brief overview of the various approaches for using dependency injection techniques.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://www.codeproject.com/KB/architecture/DependencyInjection.aspx"&gt;http://www.codeproject.com/KB/architecture/DependencyInjection.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-3253243822019339574?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/3253243822019339574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/billy-mccafferty-on-di-codeproject.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3253243822019339574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/3253243822019339574'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/billy-mccafferty-on-di-codeproject.html' title='Billy McCafferty on DI (CodeProject)'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7130973955798566636</id><published>2009-02-11T00:38:00.003+01:00</published><updated>2009-02-11T00:39:16.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><title type='text'>Manning.com / Dhanji R. Prasanna on DI</title><content type='html'>&lt;div&gt;Dhanji R. Prasanna&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;In a traditional object-oriented application, a primary program controls secondary pieces of code, such as classes in a module, library, or framework. Dependency Injection (DI) is a technique that inverts this control, using an external mechanism to insert—or inject—a reference to an implementation of a service into an object. This allows you to build complex OO applications in a more testable, maintainable, and business-focused manner.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://www.manning.com/prasanna/"&gt;http://www.manning.com/prasanna/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7130973955798566636?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7130973955798566636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/manningcom-dhanji-r-prasanna-on-di.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7130973955798566636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7130973955798566636'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/manningcom-dhanji-r-prasanna-on-di.html' title='Manning.com / Dhanji R. Prasanna on DI'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-1407294903942483247</id><published>2009-02-11T00:37:00.000+01:00</published><updated>2009-02-11T00:38:19.581+01:00</updated><title type='text'>Dhananjay Nene on DI</title><content type='html'>&lt;div&gt;TheServerSide.com / Dhananjay Nene:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=IOCBeginners"&gt;A Beginner's guide to Dependency Injection&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/4668241017236182754-1407294903942483247?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/1407294903942483247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dhananjay-nene-on-di.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1407294903942483247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/1407294903942483247'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/dhananjay-nene-on-di.html' title='Dhananjay Nene on DI'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-741972523906567113</id><published>2009-02-11T00:36:00.000+01:00</published><updated>2009-02-11T00:37:10.591+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><title type='text'>Wikipedia on DI</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;Dependency Injection (DI) in computer programming refers to the process of supplying an external dependency to a software component. It is a specific form of inversion of control where the concern being inverted is the process of obtaining the needed dependency.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;http://en.wikipedia.org/wiki/Dependency_injection&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-741972523906567113?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/741972523906567113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/wikipedia-on-di.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/741972523906567113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/741972523906567113'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/wikipedia-on-di.html' title='Wikipedia on DI'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4668241017236182754.post-7102574023559337060</id><published>2009-02-11T00:34:00.002+01:00</published><updated>2009-02-11T00:35:41.826+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DI - Dependency Injection'/><title type='text'>Griffin Caprio on DI</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;..to inject objects into a class, rather than relying on the class to create the object itself.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163739.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc163739.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4668241017236182754-7102574023559337060?l=oo-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oo-programming.blogspot.com/feeds/7102574023559337060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://oo-programming.blogspot.com/2009/02/griffin-caprio-on-di.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7102574023559337060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4668241017236182754/posts/default/7102574023559337060'/><link rel='alternate' type='text/html' href='http://oo-programming.blogspot.com/2009/02/griffin-caprio-on-di.html' title='Griffin Caprio on DI'/><author><name>omichael</name><uri>http://www.blogger.com/profile/02730434090144134613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
