<?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-13751027</id><updated>2012-01-26T10:42:28.657-08:00</updated><category term='suggestions'/><category term='technology'/><category term='reflection'/><category term='control'/><category term='installation'/><category term='tools'/><category term='funny'/><category term='debugging'/><category term='news'/><category term='bugs'/><category term='books'/><category term='interview questions'/><category term='free'/><category term='UI'/><category term='hacking'/><category term='wtf'/><category term='open source'/><category term='Apple'/><category term='new features'/><category term='browsers'/><category term='windows 7'/><category term='exceptions'/><category term='it'/><category term='firefox'/><category term='analogy'/><category term='download'/><category term='TDD'/><category term='fsharp'/><category term='issues'/><category term='tips'/><category term='Mac'/><category term='email'/><category term='windows'/><category term='.net'/><category term='performance'/><category term='code'/><category term='vs2005'/><category term='blogs'/><category term='usability'/><category term='basics'/><category term='asp.net mvc'/><category term='linux'/><category term='IE7'/><category term='l'/><category term='extensions'/><category term='tricks'/><category term='personal'/><category term='refactoring'/><category term='silverlight'/><category term='nullable-types'/><category term='patterns'/><category term='jini xml'/><category term='security'/><category term='best practices'/><category term='videos'/><category term='xna'/><category term='.net bitmap dib tiff convert'/><category term='ideas'/><category term='links'/><category term='gems'/><category term='quiz'/><category term='user'/><category term='oracle'/><category term='C#'/><category term='visual studio'/><category term='social networks'/><category term='iTunes'/><category term='sql'/><category term='activex'/><category term='practices'/><category term='IE8'/><category term='software literature'/><category term='twitter'/><category term='errors'/><category term='third party'/><category term='asp.net'/><category term='IE'/><category term='remote desktop'/><category term='usercontrol'/><category term='network'/><category term='command line'/><category term='novell servers'/><category term='nhibernate'/><category term='vista'/><category term='google'/><category term='utilities'/><category term='DOS'/><title type='text'>What do you want to program today?</title><subtitle type='html'>My thoughts, articles, findings, etc. mainly about programming and computers in general.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default?start-index=101&amp;max-results=100'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>320</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13751027.post-3517886864265971476</id><published>2011-10-06T09:56:00.000-07:00</published><updated>2011-10-06T09:56:44.790-07:00</updated><title type='text'>Steve Jobs, 1955 - 2011</title><content type='html'>&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 16px;"&gt;“Being the richest man in the cemetery doesn’t matter to me … Going to bed at night saying we’ve done something wonderful… that’s what matters to me.”&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3517886864265971476?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.apple.com/stevejobs' title='Steve Jobs, 1955 - 2011'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3517886864265971476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3517886864265971476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3517886864265971476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3517886864265971476'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2011/10/steve-jobs-1955-2011.html' title='Steve Jobs, 1955 - 2011'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3491400601458367555</id><published>2011-05-16T13:52:00.000-07:00</published><updated>2011-05-16T13:54:57.078-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Visual Studio: ASP.NET MVC, Flip quickly through your controllers and views</title><content type='html'>This tip is specifically for those writing ASP.NET MVC applications using Visual Studio&lt;br /&gt;&lt;br /&gt;As your MVC application grows, the number of views and controllers can grow pretty quickly and ctrl+tabbing through them gets pretty painful, sometimes only to discover that you don't have *that* view open, so you need to go find it. That's where this tip comes in, &lt;b&gt;if you right click on your controller, there's a menu option to go to the view, likewise, if you are in the view and right click there's a menu option to go to the controller&lt;/b&gt;, now, &lt;b&gt;if you are a mouse guy, this is enough for you&lt;/b&gt;, you can stop reading now, but there's a quicker way, you can assign a shortcut key to those options&lt;br /&gt;&lt;br /&gt;Go to Tools, Options, Environment (first option), keyboard, and type "GoToView" (without the quotes) and assign the shortcut you want, chose one that is not being used, or one of a feature you don't use (there are &amp;nbsp;millions of those), for this type of thing that I do a lot, I like using keys that are easily accessible, put that F1 key to good use!!, do the same thing for the "GoToController"&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-7sHhaDsCirs/TdGNENZfHAI/AAAAAAAABa0/zmhOo8ryJsQ/s1600/GoToView.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://3.bp.blogspot.com/-7sHhaDsCirs/TdGNENZfHAI/AAAAAAAABa0/zmhOo8ryJsQ/s400/GoToView.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-P2_DxiDVGv0/TdGND6WSMII/AAAAAAAABaw/rwcNpYUtt4w/s1600/GoToController.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://4.bp.blogspot.com/-P2_DxiDVGv0/TdGND6WSMII/AAAAAAAABaw/rwcNpYUtt4w/s400/GoToController.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Click OK and you're ready to roll, go to your controller and press your shortcut,&amp;nbsp;you'll be flipping through your views and controllers like there's no tomorrow!&lt;br /&gt;&lt;br /&gt;You're welcome J&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3491400601458367555?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3491400601458367555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3491400601458367555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3491400601458367555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3491400601458367555'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2011/05/visual-studio-aspnet-mvc-flip-quickly.html' title='Visual Studio: ASP.NET MVC, Flip quickly through your controllers and views'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-7sHhaDsCirs/TdGNENZfHAI/AAAAAAAABa0/zmhOo8ryJsQ/s72-c/GoToView.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7748275776832442204</id><published>2011-03-19T21:28:00.000-07:00</published><updated>2011-03-21T07:53:00.892-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>Kindle: We were unable to download the book... please try again later</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-JvYYd17VFwo/TYV8pr3eymI/AAAAAAAABaI/jcJaQn5SGWA/s1600/kindle.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="https://lh6.googleusercontent.com/-JvYYd17VFwo/TYV8pr3eymI/AAAAAAAABaI/jcJaQn5SGWA/s320/kindle.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;A few days ago I installed Kindle on my Mac Book Pro, then only after a couple days of using it I suddenly got this error and was not able to open any of the two books I had just bought, I was able to open the books just fine on my iPhone and iPad, but the Kindle for Mac kept giving me this error message no matter how many times I tried clicking; a search on Google gave me 3 results and no solutions, so I &lt;b&gt;uninstalled&lt;/b&gt; the App and reinstalled, got nothing. I tried the Tools menu, &lt;b&gt;manage your Kindle&lt;/b&gt; from the Kindle app which takes you to the amazon site, noticed the &lt;b&gt;"your orders"&lt;/b&gt; at the bottom and the options to download the content, tried that a few times, still nothing, another thing I noticed on the Kindle app was that the title was something like &lt;b&gt;"???????????????? Home"&lt;/b&gt;, I knew something was messed up bad, but even reinstalling didn't fix it, so in one last desperate attempt I checked out the &lt;b&gt;Kindle preferences&lt;/b&gt; [Command]+, or under the &lt;b&gt;Kindle&lt;/b&gt; menu, &lt;b&gt;preferences&lt;/b&gt;, I clicked the only button there:&amp;nbsp;&lt;b&gt;"Deregister"&lt;/b&gt;, agreed to the warning and selected &lt;b&gt;"remove all licensed content from this device"&lt;/b&gt;&amp;nbsp;and clicked &lt;b&gt;"deregister"&lt;/b&gt;&amp;nbsp;again on the warning window; a&amp;nbsp;&lt;b&gt;register&lt;/b&gt;&amp;nbsp;button then showed up, I clicked it to register the app again, had to agree to some other warning, and that right there was the solution, I was able to get my books (had to download them again) and start reading, so I'm just leaving this out there in hopes it can help someone else; long story short, &lt;b&gt;deregister&lt;/b&gt; the app, make sure to select "remove all licensed content from this device", then &lt;b&gt;register&lt;/b&gt; again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7748275776832442204?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7748275776832442204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7748275776832442204' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7748275776832442204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7748275776832442204'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2011/03/kindle-we-were-unable-to-download-book.html' title='Kindle: We were unable to download the book... please try again later'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-JvYYd17VFwo/TYV8pr3eymI/AAAAAAAABaI/jcJaQn5SGWA/s72-c/kindle.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5746229685644669974</id><published>2011-03-02T07:52:00.000-08:00</published><updated>2011-03-02T07:52:36.710-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nhibernate'/><title type='text'>FluentNHibernate: "unable to locate persister:"</title><content type='html'>There's quite a bit of info out there for this error message, but all I could find refers to xml configuration, the recommendation being somewhere along the lines of:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-image: initial; list-style-position: initial; list-style-type: decimal; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Make sure your mapping file is named *.hbm.xml&lt;/div&gt;&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Make sure it is set to an embedded resource.&lt;/div&gt;&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;If all else fails, debug.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;What most articles fail to mention is the root cause, which is the fact that NHibernate was not able to load the mappings for the class you are trying to use in your query, knowing that you can at least focus in a single area, in the case of fluent nhibernate, the configuration looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Consolas; color: #f7edcd}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Consolas; color: #4daeb3}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Consolas; color: #f7edcd; min-height: 11.0px}span.s1 {color: #e6be6f}span.s2 {color: #d58442}span.s3 {color: #b8dbe5}span.s4 {color: #d28542}span.s5 {color: #f7edcd}span.s6 {color: #4daeb3}&lt;/style&gt;   &lt;br /&gt;&lt;div class="p1"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class="default prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;static&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ISessionFactory&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;CreateSessionFactory&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;()&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;{&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;return&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Fluently&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Configure&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;()&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Database&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;MsSqlConfiguration&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;MsSql2008&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ConnectionString&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;c &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; c&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;FromConnectionStringWithKey&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"AppDb"&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)))&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Mappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;m &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; m&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;FluentMappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Add&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ProductMap&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;())&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Mappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;m &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; m&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;FluentMappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Add&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;CategoryMap&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;())&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ExposeConfiguration&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;c &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; c&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SetProperty&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"current_session_context_class"&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"web"&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;))&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;BuildSessionFactory&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;();&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;The two &lt;b&gt;.Mappings()&lt;/b&gt; lines are the bug in this case, any subsequent calls to it override the first one and you won't be able to query Products&lt;br /&gt;There are two ways of fixing this, one you can tell it to load all the mappings found on the same assembly as the first map&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="default prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Mappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;m &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; m&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;FluentMappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;AddFromAssemblyOf&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ProductMap&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;())&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;or if you want to be specific:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="default prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Mappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;m &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; { m&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;FluentMappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Add&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ProductMap&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;();&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;                 &lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;m&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;FluentMappings&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Add&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;CategoryMap&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;(); })&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Hope someone else finds this helpful&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5746229685644669974?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5746229685644669974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5746229685644669974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5746229685644669974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5746229685644669974'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2011/03/fluentnhibernate-unable-to-locate.html' title='FluentNHibernate: &quot;unable to locate persister:&quot;'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3023552116635126299</id><published>2011-02-28T09:50:00.000-08:00</published><updated>2011-02-28T09:50:49.951-08:00</updated><title type='text'>IE 9 : How to get your old address bar back</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-WI_SnVk5bW0/TWveZbAtDvI/AAAAAAAABZc/CZc4GB_3Ou0/s1600/IE9_address_bar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="156" src="https://lh6.googleusercontent.com/-WI_SnVk5bW0/TWveZbAtDvI/AAAAAAAABZc/CZc4GB_3Ou0/s640/IE9_address_bar.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;IE9 introduced a new address bar that is located on the same row as the tabs that are open, that may be useful for some people, but for everyone else it's just annoying, luckily they added an easy way to change it back to the same way it was before, all you have to do is &lt;b&gt;right click&lt;/b&gt; on any tab or the tab area and you'll get a "show tabs on a separate row" option at the bottom&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-qxcEaNr7Dek/TWvfsgRZ7TI/AAAAAAAABZk/jcnXLyrZfJ8/s1600/IE9_address_bar_show_tabs_on_a_separate_row.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="https://lh3.googleusercontent.com/-qxcEaNr7Dek/TWvfsgRZ7TI/AAAAAAAABZk/jcnXLyrZfJ8/s640/IE9_address_bar_show_tabs_on_a_separate_row.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And that's it, you get your old address bar back :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-Kf4InJ-DgNU/TWvgPzMKS5I/AAAAAAAABZo/ZhcpA9eF58M/s1600/IE9_old_address_bar_back.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="91" src="https://lh5.googleusercontent.com/-Kf4InJ-DgNU/TWvgPzMKS5I/AAAAAAAABZo/ZhcpA9eF58M/s400/IE9_old_address_bar_back.png" width="400" /&gt;&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/13751027-3023552116635126299?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3023552116635126299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3023552116635126299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3023552116635126299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3023552116635126299'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2011/02/ie-9-how-to-get-your-old-address-bar.html' title='IE 9 : How to get your old address bar back'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-WI_SnVk5bW0/TWveZbAtDvI/AAAAAAAABZc/CZc4GB_3Ou0/s72-c/IE9_address_bar.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7760684891955511223</id><published>2010-12-10T15:56:00.000-08:00</published><updated>2010-12-10T15:56:45.342-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>SQL: Group datetime by an arbitrary time interval</title><content type='html'>Yesterday, a co-worker came to me with a puzzle, he wanted to write a query that would group records by intervals of 5, 10, 15 minutes, ideally just passing a parameter to the query to specify the time interval, I sat down and after 5 minutes I came up with the solution:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="border-collapse: collapse; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;declare&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @interval &lt;span style="color: blue;"&gt;int&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New';"&gt;  &lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;set&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @interval &lt;span style="color: grey;"&gt;=&lt;/span&gt; 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;select&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;hh&lt;span style="color: grey;"&gt;,&lt;/span&gt; DateTimeColumn&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;mi&lt;span style="color: grey;"&gt;,&lt;/span&gt; DateTimeColumn&lt;span style="color: grey;"&gt;)/&lt;/span&gt;&lt;b&gt;@interval&lt;span style="color: grey;"&gt;*&lt;/span&gt;@interval&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: magenta;"&gt;count&lt;/span&gt;&lt;span style="color: grey;"&gt;(*)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;from&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; thetable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;group&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;hh&lt;span style="color: grey;"&gt;,&lt;/span&gt; DateTimeColumn&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;mi&lt;span style="color: grey;"&gt;,&lt;/span&gt; DateTimeColumn&lt;span style="color: grey;"&gt;)/&lt;/span&gt;&lt;b&gt;@interval&lt;span style="color: grey;"&gt;*&lt;/span&gt;@interval&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;The trick is&amp;nbsp;highlighted, though it looks like the division and multiplication eliminate each other, what is really happening is an &lt;b&gt;integer division&lt;/b&gt;, which, multiplied by the same number, gives you the right intervals:&lt;br /&gt;&lt;br /&gt;here's the (minutes) values pattern for an interval of 5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;minute&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;divided by 5&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;multiplied by 5&lt;/b&gt;&lt;br /&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;0&lt;br /&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;0&lt;br /&gt;...&lt;br /&gt;5&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;5&lt;br /&gt;6&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;1&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;5&lt;br /&gt;...&lt;br /&gt;10&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;2&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;10&lt;br /&gt;11&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;2&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;10&lt;br /&gt;...&lt;br /&gt;from there you can include more fields in your select criteria, make it prettier, etc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;declare&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @interval &lt;span style="color: blue;"&gt;int&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;set&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @interval &lt;span style="color: grey;"&gt;=&lt;/span&gt; 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;select&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;convert&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;varchar&lt;span style="color: grey;"&gt;(&lt;/span&gt;8&lt;span style="color: grey;"&gt;),&lt;/span&gt; DTColumn&lt;span style="color: grey;"&gt;,&lt;/span&gt; 1&lt;span style="color: grey;"&gt;)+&lt;/span&gt;&lt;span style="color: red;"&gt;' '&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;+&lt;/span&gt;&lt;span style="color: blue;"&gt;convert&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;varchar&lt;span style="color: grey;"&gt;(&lt;/span&gt;2&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;hh&lt;span style="color: grey;"&gt;,&lt;/span&gt; DTColumn&lt;span style="color: grey;"&gt;))+&lt;/span&gt;&lt;span style="color: red;"&gt;':'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;+&lt;/span&gt;&lt;span style="color: blue;"&gt;convert&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;varchar&lt;span style="color: grey;"&gt;(&lt;/span&gt;2&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;mi&lt;span style="color: grey;"&gt;,&lt;/span&gt; DTColumn&lt;span style="color: grey;"&gt;)/&lt;/span&gt;@interval&lt;span style="color: grey;"&gt;*&lt;/span&gt;@interval&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: magenta;"&gt;count&lt;/span&gt;&lt;span style="color: grey;"&gt;(*)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;from&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; the_table&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;group&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: blue;"&gt;convert&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;varchar&lt;span style="color: grey;"&gt;(&lt;/span&gt;8&lt;span style="color: grey;"&gt;),&lt;/span&gt; DTColumn&lt;span style="color: grey;"&gt;,&lt;/span&gt; 1&lt;span style="color: grey;"&gt;)+&lt;/span&gt;&lt;span style="color: red;"&gt;' '&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;+&lt;/span&gt;&lt;span style="color: blue;"&gt;convert&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;varchar&lt;span style="color: grey;"&gt;(&lt;/span&gt;2&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;hh&lt;span style="color: grey;"&gt;,&lt;/span&gt; DTColumn&lt;span style="color: grey;"&gt;))+&lt;/span&gt;&lt;span style="color: red;"&gt;':'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 style="margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;+&lt;/span&gt;&lt;span style="color: blue;"&gt;convert&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;varchar&lt;span style="color: grey;"&gt;(&lt;/span&gt;2&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: magenta;"&gt;datepart&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;mi&lt;span style="color: grey;"&gt;,&lt;/span&gt; DTColumn&lt;span style="color: grey;"&gt;)/&lt;/span&gt;@interval&lt;span style="color: grey;"&gt;*&lt;/span&gt;@interval&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: grey; font-family: 'Courier New'; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: small;"&gt;which produces something like:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: grey; font-family: 'Courier New'; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: small;"&gt;&lt;h1 style="margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; font-weight: normal; mso-font-kerning: 0pt; mso-no-proof: yes;"&gt;11/12/10 10:10&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;28&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style="margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; font-weight: normal; mso-font-kerning: 0pt; mso-no-proof: yes;"&gt;11/12/10 10:15&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;11&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style="margin-bottom: 5.0pt; margin-left: 0in; margin-right: 0in; margin-top: 5.0pt;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; font-weight: normal; mso-font-kerning: 0pt; mso-no-proof: yes;"&gt;11/12/10 10:20&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;57&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; font-weight: normal; mso-font-kerning: 0pt; mso-no-proof: yes;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: small;"&gt;hope this is useful&lt;/span&gt;&lt;/span&gt;&lt;/div&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/13751027-7760684891955511223?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7760684891955511223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7760684891955511223' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7760684891955511223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7760684891955511223'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2010/12/sql-group-datetime-by-arbitrary-time.html' title='SQL: Group datetime by an arbitrary time interval'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3096338048254087939</id><published>2010-11-29T11:42:00.000-08:00</published><updated>2010-11-29T11:42:03.766-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>VirtualBox VM won't release the mouse</title><content type='html'>Just a quick post to share this, I'm playing with VirtualBox on my OpenSuse 11.3, installing Windows XP on a VM, I decided to click inside the VM while it was still installing, hoping that the right [ctrl] key would release the mouse, but that didn't work, Googled a bit with no good results, there's many related articles about this issue, but no solution, I was ready to give up so I hit &lt;b&gt;ctrl+alt+del&lt;/b&gt; and what do you know, that released the mouse :)&lt;br /&gt;&lt;br /&gt;hope this helps someone out there&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3096338048254087939?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3096338048254087939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3096338048254087939' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3096338048254087939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3096338048254087939'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2010/11/virtualbox-vm-wont-release-mouse.html' title='VirtualBox VM won&apos;t release the mouse'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-2434932388128189560</id><published>2010-09-21T21:01:00.000-07:00</published><updated>2010-09-21T21:36:06.371-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple intuitiveness: Upgrading OS X results in downgraded components</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_cofcJplmJ2Q/TJl6ofqmw7I/AAAAAAAABW8/o-zN4BZrPAg/s1600/mac-os-x-snow-leopard.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_cofcJplmJ2Q/TJl6ofqmw7I/AAAAAAAABW8/o-zN4BZrPAg/s320/mac-os-x-snow-leopard.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I just upgraded my OS X to Snow Leopard (yeah, a bit late), first of all I just can't wrap my head around the idea that OS X runs on a single hardware configuration (ok, maybe 3) yet it took over an hour to install, while Windows runs on millions of hardware configurations and can install in 15 mins (as in, ready to start using it), I just can't find that &lt;b&gt;intuitive&lt;/b&gt;, it doesn't make sense; but anyway,&amp;nbsp;one of the 3? 'big' features in this update is Safari 4, before installing I noticed I already had &lt;b&gt;Safari 5,&lt;/b&gt; so I went ahead and did the install, to my surprise when it finally finished I had now &lt;b&gt;Safari 4&lt;/b&gt;!! WTF? over an hour upgrading and they couldn't check if the components had a higher version than the one being installed? To be honest I was afraid to check if there was something else that got downgraded. &lt;b&gt;Upgrading OS X results in a downgrade of it's components!&lt;/b&gt; how's that &lt;b&gt;intuitive&lt;/b&gt;?&lt;br /&gt;To top if off, after upgrading I went to check for updates, there were 776MB of updates (and these are the people who make fun of Windows updates?), and sure enough, Safari 5 was on the list.&lt;br /&gt;&lt;br /&gt;So, to recap: I had Safari 5, I upgraded OS X, it got downgraded to Safari 4, then I had to get a 776MB update to get back to where I was before the upgrade. Intuitive or not, I'll let you be the judge xD.&lt;br /&gt;&lt;br /&gt;Update. after another 10 minutes, more updates came up, this time an additional 200MB, requiring, of course, that I reboot again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-2434932388128189560?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/2434932388128189560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=2434932388128189560' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2434932388128189560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2434932388128189560'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2010/09/apple-intuitiveness-upgrading-os-x.html' title='Apple intuitiveness: Upgrading OS X results in downgraded components'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cofcJplmJ2Q/TJl6ofqmw7I/AAAAAAAABW8/o-zN4BZrPAg/s72-c/mac-os-x-snow-leopard.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7895099865337028924</id><published>2010-03-05T08:22:00.000-08:00</published><updated>2010-03-05T08:22:33.006-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='exceptions'/><title type='text'>MissingManifestResourceException was unhandled</title><content type='html'>&lt;b&gt;Could not find any resources appropriate for the specified culture or the neutral culture. &amp;nbsp;Make sure "PostProcessing.ConfigurationForm.resources" was correctly embedded or linked into assembly "PostProcessing" at compile time, or that all the satellite assemblies required are loadable and fully signed.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There are many articles related to this one but they all point to a different solution than the problem I had, so I figured someone else might run into this&lt;br /&gt;&lt;br /&gt;you can get this exception if you declare a &lt;b&gt;class &lt;/b&gt;before the code of one of your &lt;b&gt;forms&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This will generate the error:&lt;br /&gt;&lt;br /&gt;public class SomeTestClass {...}&lt;br /&gt;...&lt;br /&gt;public partial class &lt;b&gt;ConfigurationForm : Form ...&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;The fix is simple, either &lt;b&gt;move your class&lt;/b&gt; after the Form class, or (better yet) move it out &lt;b&gt;to it's own file&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7895099865337028924?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7895099865337028924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7895099865337028924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7895099865337028924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7895099865337028924'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2010/03/missingmanifestresourceexception-was.html' title='MissingManifestResourceException was unhandled'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6352272057646721311</id><published>2009-11-02T12:02:00.000-08:00</published><updated>2009-11-02T12:02:37.165-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><title type='text'>Software ever changing truths</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_cofcJplmJ2Q/Su8tN2gIVGI/AAAAAAAABRY/Eg3t8n6EqHQ/s1600-h/optical_illusions.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/Su8tN2gIVGI/AAAAAAAABRY/Eg3t8n6EqHQ/s200/optical_illusions.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Quite often in software [development] (more often than not?), as time goes on, what is truth, becomes not truth, and this is possibly one of the reasons it makes software development so difficult, human brains are normally trained to learn stuff, but are not trained for &lt;b&gt;dis learning&lt;/b&gt; and that's where the problem resides, as humans, once we learn something a certain way and we learn that that is good (or "&lt;b&gt;the best way&lt;/b&gt;"), it is very difficult to change our minds to do it differently.&lt;br /&gt;&lt;br /&gt;Programmers are frequently questioning &lt;a href="http://stackoverflow.com/search?q=%22what+is+the+best%22"&gt;what is the best way to do x or y&lt;/a&gt;, in many cases people will grab the first result from a web search (sounds familiar?), take that as the absolute truth, apply it to whatever problem they are solving and move on with life, though other times the ramifications of such &lt;b&gt;learning&lt;/b&gt; experience will carry over much further, maybe the person will write a blog post about it or teach his/her co-workers, thus distributing the knowledge.&lt;br /&gt;&lt;br /&gt;Keep in mind that is not always about finding out the &lt;b&gt;best way of doing things&lt;/b&gt;,&amp;nbsp; some other times we find out that something is &lt;b&gt;not possible&lt;/b&gt;, and this last one might be worst, more so on young developers, learning that something is not possible is very dangerous, have you seen an &lt;a href="http://jnoubiyeh.blogspot.com/2008/11/taming-elephant-lesson-for-arab-and.html"&gt;elephant tied to the tiny stake&lt;/a&gt;? it has &lt;b&gt;learned&lt;/b&gt; that as soon as it reaches the end of its rope, it can't go any further.&lt;br /&gt;&lt;br /&gt;Many of these &lt;b&gt;truths&lt;/b&gt; come from respected authorities in the world of software, maybe from the software vendor itself or the official community around it, making matters even more complicated because they are &lt;b&gt;the&lt;/b&gt; source and you trust them. The key here is not that you &lt;b&gt;can't trust anyone&lt;/b&gt;, it's only that &lt;b&gt;you should not lock that into your brain as the absolute truth&lt;/b&gt;, software is always evolving, it's &lt;b&gt;always changing truths&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;There are few things that you should take as the absolute truth though ;), among them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There's usually no &lt;b&gt;best way&lt;/b&gt; of doing things, there's only a &lt;b&gt;better way&lt;/b&gt;(s) of doing it.&lt;/li&gt;&lt;li&gt;Software development is not black or white, in fact I think most of it is gray area.&lt;/li&gt;&lt;li&gt;There are no hard rules in software development, it'd be too easy if that was the case.&amp;nbsp;&lt;/li&gt;&lt;li&gt;There is no such thing as an impossible thing, only incapable beings.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Software is always evolving, what is truth today may not be the truth tomorrow.&lt;/li&gt;&lt;/ul&gt;All I am saying is that whenever you come to "&lt;b&gt;the best way of doing&lt;/b&gt;" (be it an algorithm, a technology, framework or methodology), a performance comparisson that shows that X is better than Y or something that is "&lt;b&gt;not possible&lt;/b&gt;", it doesn't matter who it comes from, take it with a grain of salt. &lt;b&gt;What is truth today may not be truth tomorrow&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6352272057646721311?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6352272057646721311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6352272057646721311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6352272057646721311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6352272057646721311'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/11/software-ever-changing-truths.html' title='Software ever changing truths'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cofcJplmJ2Q/Su8tN2gIVGI/AAAAAAAABRY/Eg3t8n6EqHQ/s72-c/optical_illusions.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3221430662748313072</id><published>2009-10-30T15:04:00.000-07:00</published><updated>2009-10-30T15:04:55.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Information disclosure: It's everywhere</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_cofcJplmJ2Q/SuEubDE3xBI/AAAAAAAABP0/aVUtOq6_0nk/s1600-h/information_disclosure.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5395644870783648786" src="http://3.bp.blogspot.com/_cofcJplmJ2Q/SuEubDE3xBI/AAAAAAAABP0/aVUtOq6_0nk/s320/information_disclosure.jpg" style="cursor: pointer; float: left; height: 182px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt;You might have seen stickers like this in the back window of some minivan and maybe you thought it was funny/cute/stupid, but did you ever think of it as information disclosure? What's the big deal about showing all of your family's names? glad you ask :), let me briefly describe something that happens in Mexico and South America: &lt;a href="http://www.google.com/search?q=virtual+kidnapping+extortion"&gt;Virtual kidnapping extortion&lt;/a&gt;, criminals will call your phone, tell you that hey have kidnapped your kid (they have the names you graciously provided) and ask you to immediately pay the ransom, when in reality they don't have your kid, but use the emotional momentum to take advantage of you. This is only one example of how they conduct these activities, there are many other ways, and I'm not trying to make you scared of that, but to make a point on information disclosure. It can be found in the most innocent places and if you think this can't happen to you, then you're already very vulnerable.&lt;br /&gt;&lt;br /&gt;You've also probably seen this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_cofcJplmJ2Q/SutbHo_CvyI/AAAAAAAABQ0/uMiMfgzm9lI/s1600-h/wordpress_fail.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_cofcJplmJ2Q/SutbHo_CvyI/AAAAAAAABQ0/uMiMfgzm9lI/s640/wordpress_fail.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I couldn't even tell you how many blogs have been hacked because of that (hint: too many), WordPress makes it too easy to break those sites when new vulnerabilities appear (as they do every other week).&lt;br /&gt;&lt;br /&gt;I have seen systems where they use some employee id as their login credentials, that id is visible when the computer is locked, and it turns out you can call the help desk, provide them with that id, the person's name, and they will happily reset the password for you.&lt;br /&gt;&lt;br /&gt;Unfortunately there are no rules that I can give you or that I have ever seen anywhere to prevent the issue of information disclosure, I'm just trying to raise the awareness on the potential issue that represents having information that bad people can use for malign purposes both in your systems and your own life. The only thing I can tell you is that information disclosure is really everywhere, in your comments, in your configuration files, disclosing the components that your app users, that version, that user id, etc. even in that innocent sticker.&lt;br /&gt;&lt;br /&gt;Security does get in the way of usability and usability gets in the way of security, &lt;b&gt;just give it a second thought&lt;/b&gt; and be careful out there.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;There is no such thing as a secure system&lt;/span&gt;, all you can do is raise the bar a little bit more and yes, &lt;b&gt;security by obscurity&lt;/b&gt; may be your friend some times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3221430662748313072?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3221430662748313072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3221430662748313072' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3221430662748313072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3221430662748313072'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/10/information-disclosure-its-everywhere.html' title='Information disclosure: It&apos;s everywhere'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cofcJplmJ2Q/SuEubDE3xBI/AAAAAAAABP0/aVUtOq6_0nk/s72-c/information_disclosure.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6384490565107407674</id><published>2009-10-21T09:26:00.000-07:00</published><updated>2010-04-23T10:47:42.928-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><title type='text'>Duct tape programming: Elegant code doesn't pay the bills</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_cofcJplmJ2Q/Stkf1x7V5II/AAAAAAAABPo/4YyZcZ67yu4/s1600-h/duct_tape_programmer.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5393377037548643458" src="http://4.bp.blogspot.com/_cofcJplmJ2Q/Stkf1x7V5II/AAAAAAAABPo/4YyZcZ67yu4/s320/duct_tape_programmer.jpg" style="cursor: pointer; float: left; height: 320px; margin: 0pt 10px 10px 0pt; width: 213px;" /&gt;&lt;/a&gt;&lt;br /&gt;Finally decided to jump into &lt;a href="http://www.joelonsoftware.com/items/2009/09/23.html"&gt;the Duct Tape programmer&lt;/a&gt; conversation that's been around the &lt;span style="font-style: italic;"&gt;internets &lt;/span&gt;for the last weeks; talk about flame wars! a large portion of the blogging/twitter community took this post as an attack on TDD, Agile development practices and overall quality software development; which makes perfect sense if you think about it, that's what they sell, that's what they blog and tweet about all the time, so, Joel's post hit some sensitive nerves there. All of those patterns and practices fanboys are trying to convince the world that the &lt;b&gt;duct tape programmers&lt;/b&gt; are those who don't care about quality and that they are just writing software that is not maintainable, extensible and all those things that we expect from good software. Those are the same people that quickly dismiss content that is "&lt;span style="font-weight: bold;"&gt;purely technical&lt;/span&gt;", you'll see them talking and talking all the time about good patterns and practices, but not so much about implementations of anything down to the actual code level. I say, &lt;b&gt;theory is good, but without the practice, it's useless.&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately for them the very first example of duct tape programming that jumps out is &lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt;, a site that has been developed by self acknowledged duct tape programmers, but also a site that has proven to be fast, reliable, and has delivered tons of features over time, which tells me the code is very extensible; I'm sure the code is not something your average programmer could get a grasp of and would probably make purists throw up a little bit here and there, but is code that does what it supposed to do, and does it very well (do I hear &lt;b&gt;ship it&lt;/b&gt;?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When I stated that in Twitter about SO, some didn't believe it (which tells me they thought it was so good it couldn't be duct tape programming, but there are podcasts you can look for and listen to what they have done), and someone else madly replied to me, arguing that SO was the only real example of successful duct tape programming, unfortunately for them (again) if you look at the tremendous success on Apple products lately, you'll see &lt;b&gt;duct tape programming&lt;/b&gt; all over the place, &lt;span style="font-weight: bold;"&gt;Apple is the King &lt;/span&gt;(or Queen?) &lt;span style="font-weight: bold;"&gt;of duct tape programming&lt;/span&gt;, specially the &lt;b&gt;iPhone development ecosystem&lt;/b&gt;, it's not all that pretty but Apple has always delivered what people want, you may read my own blog about many stupid things that Apple does, but on the end, &lt;b&gt;people are very happy with their products&lt;/b&gt;, and &lt;b&gt;that's all that matters&lt;/b&gt;, people don't care that the underlying infrastructure or the code for the apps looks like crap, I'll say it again: &lt;span style="font-weight: bold;"&gt;it doesn't matter&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;The biggest problem with purists is that when you focus on making every single line of code fit within a pattern, it's very easy to cross the line of over engineering and forget about the very basics of software development, which is, it has to meet your customers expectations, and you have to deliver, if you don't deliver a product, it doesn't matter how good the code is, unfortunately &lt;b&gt;elegant code doesn't pay the bills&lt;/b&gt;, getting the job done does.&lt;br /&gt;&lt;blockquote&gt;A brute-force solution that works is better than an elegant solution that doesn't work. &lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Code Complete 2&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;My  most frequent pattern is "whatever works", I'm not afraid of throwing in procedural, OOP, functional, dynamic, stored procedures, you name it, whatever gets the job done (ok, except for XML, &lt;a href="http://ebersys.blogspot.com/2009/06/are-we-done-with-xml-yet-hello-jini.html"&gt;I hate XML&lt;/a&gt;) in a way that works and allows me to extend that code later, but most importantly, I am &lt;span style="font-weight: bold;"&gt;used to&lt;/span&gt; &lt;b&gt;delivering &lt;/b&gt;good results, &lt;span style="font-weight: bold;"&gt;always&lt;/span&gt;, no excuses, you'll often hear me say, &lt;b&gt;is not an option, it HAS to work. &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Don't get me wrong, I'm very strict with my code, I like elegant code, I follow good SOLID principles, I write unit tests when a piece of code definitely needs it, is just that I don't force everything into a pattern, I don't always write my tests &lt;span style="font-weight: bold;"&gt;first &lt;/span&gt;religiously (ok, actually, I never write the tests first, I think it's stupid). &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;That for me, is the &lt;span style="font-weight: bold;"&gt;duct tape programmer&lt;/span&gt;. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;You just have to know when to pull the plug and keep in mind the most important feature of your product. &lt;/span&gt;Shipping&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; is that feature, without it, whatever you do, even if it is a master piece, is worthless.&lt;br /&gt;&lt;br /&gt;Now, when you corner purists showing them good results from duct tape programming, they argue that it takes very talented people to pull that off, sure, nobody said it was easy, it takes talent, it takes reading and understanding all those "&lt;span style="font-weight: bold;"&gt;purely technical content&lt;/span&gt;" entries, experimenting, playing, hacking, on the end, &lt;a href="http://www.codinghorror.com/blog/archives/001033.html"&gt;software development IS a people problem&lt;/a&gt;. I think &lt;span style="font-weight: bold;"&gt;methodologies are for people who don't have the talent&lt;/span&gt;, but that's a whole different topic.&lt;br /&gt;&lt;br /&gt;There are no hard rules in programming, it would be too easy if that was the case.&lt;br /&gt;&lt;small&gt;&lt;small&gt;&lt;br /&gt;disclaimer: I took the "elegant code doesn't pay the bills" phrase from someone in Twitter, sorry, can't find it now.&lt;br /&gt;&lt;/small&gt;&lt;/small&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6384490565107407674?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6384490565107407674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6384490565107407674' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6384490565107407674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6384490565107407674'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/10/duct-tape-programming-elegant-code.html' title='Duct tape programming: Elegant code doesn&apos;t pay the bills'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cofcJplmJ2Q/Stkf1x7V5II/AAAAAAAABPo/4YyZcZ67yu4/s72-c/duct_tape_programmer.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-2552919874406883371</id><published>2009-10-03T13:26:00.000-07:00</published><updated>2009-10-03T13:44:39.203-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>Mac intuitiveness: syncing notes and hard limits</title><content type='html'>I've had this issue from day 1, &lt;span style="font-weight: bold;"&gt;every&lt;/span&gt; time I sync my iPhone after I have added or modified some notes, I get this message&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/Ssez9hY9AgI/AAAAAAAABPQ/Q4GzBT_I-SM/s1600-h/syncing_notes.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 172px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/Ssez9hY9AgI/AAAAAAAABPQ/Q4GzBT_I-SM/s400/syncing_notes.png" alt="" id="BLOGGER_PHOTO_ID_5388473348688511490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I usually keep around 10 notes on my iPhone, so, of course it's &lt;span style="font-weight: bold;"&gt;always&lt;/span&gt; going to be more than 5 freaking percent, why should it care that I change even 100% of all my notes, just keep a history if that's the concern, the other issue is that if you plug your iPhone in to sync it and walk away, you'll come back one hour later only to find out that it hasn't finished because it is stuck on this stupid dialog. Really bad usability there, hasn't improved even with the countless iTunes updates.&lt;br /&gt;&lt;br /&gt;Always remember the &lt;span style="font-weight: bold;"&gt;least surprise principle&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-2552919874406883371?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/2552919874406883371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=2552919874406883371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2552919874406883371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2552919874406883371'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/10/mac-intuitiveness-syncing-notes-and.html' title='Mac intuitiveness: syncing notes and hard limits'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cofcJplmJ2Q/Ssez9hY9AgI/AAAAAAAABPQ/Q4GzBT_I-SM/s72-c/syncing_notes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1161973565881456796</id><published>2009-09-25T14:22:00.000-07:00</published><updated>2009-09-25T14:41:33.930-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple intuitiveness: The lost OK button</title><content type='html'>Every time you connect an iPhone/iPod to a Mac, iTunes does its thing, takes forever syncing and what not (one of those things is that it &lt;span style="font-weight: bold;"&gt;steals the focus&lt;/span&gt;, which I &lt;span style="font-weight: bold;"&gt;hate&lt;/span&gt;) and when is finally done, it comes up with this dialog:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/Sr01RL_FONI/AAAAAAAABOw/tSge2gmYTs0/s1600-h/Where_is_the_ok_button.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 237px; height: 60px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/Sr01RL_FONI/AAAAAAAABOw/tSge2gmYTs0/s400/Where_is_the_ok_button.png" alt="" id="BLOGGER_PHOTO_ID_5385519298796402898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Maybe it's just me, but it took me a &lt;span style="font-weight: bold;"&gt;long time&lt;/span&gt; (and I mean, months) to realize that it wasn't referring to an &lt;span style="font-weight: bold;"&gt;OK button&lt;/span&gt;, just that it was OK to disconnect your device; so much for being intuitive.&lt;br /&gt;&lt;br /&gt;But then again, I'm not the only one who thinks that &lt;a href="http://www.google.com/search?q=itunes+sucks"&gt;iTunes sucks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1161973565881456796?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1161973565881456796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1161973565881456796' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1161973565881456796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1161973565881456796'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/09/apple-intuitiveness-lost-ok-button.html' title='Apple intuitiveness: The lost OK button'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cofcJplmJ2Q/Sr01RL_FONI/AAAAAAAABOw/tSge2gmYTs0/s72-c/Where_is_the_ok_button.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4950131619194841046</id><published>2009-09-23T08:41:00.000-07:00</published><updated>2009-09-23T14:32:38.722-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='it'/><title type='text'>Ping doesn't cut it for connectivity testing</title><content type='html'>&lt;div&gt;&lt;b&gt;A failed ping only means that the ping failed, doesn't tell you much about the connectivity.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;On some twitter discussion today I was reminded of how often people use the &lt;b&gt;ping&lt;/b&gt; command to test for connectivity, what a lot of people don't know, is that ping is just another service, and can be disabled or blocked, -as it has become more frequent these days-, rendering this method useless, on top of that, more often than not you need to test connectivity to a specific service; a much better approach is to use &lt;b&gt;telnet&lt;/b&gt;. Using telnet you can actually test not only that there is connectivity, but that you can reach the desired port.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Some frequently used ports:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;20, 21 Standard FTP&lt;/div&gt;&lt;div&gt;23  Telnet default&lt;/div&gt;&lt;div&gt;25  SMTP&lt;/div&gt;&lt;div&gt;80  Standard web&lt;/div&gt;&lt;div&gt;115 SFTP&lt;/div&gt;&lt;div&gt;443 Standard secure web&lt;/div&gt;&lt;div&gt;139 NETBIOS (file and printer sharing in Windows)&lt;/div&gt;&lt;div&gt;143 IMAP&lt;/div&gt;&lt;div&gt;445 SMB (to connect to Windows from other OSs)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.comptechdoc.org/independent/networking/guide/netports.html"&gt;You can find a bigger list here&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;an example of testing if you can access the web on some ip:&lt;/div&gt;&lt;div&gt;telnet 192.168.1.2 80&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;when the connection succeeds, you usually just get a black screen, with the cursor staring at you, if the connection fails, you will get an error message&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a final note, in case the connection fails, you might want to use &lt;b&gt;tracert -d [ip address]&lt;/b&gt; to get more details of why the connection fails&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/13751027-4950131619194841046?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4950131619194841046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4950131619194841046' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4950131619194841046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4950131619194841046'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/09/ping-doesnt-cut-it-for-connectivity.html' title='Ping doesn&apos;t cut it for connectivity testing'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6262228309841938560</id><published>2009-07-17T10:31:00.000-07:00</published><updated>2009-07-17T11:09:33.613-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>How to: Save GIF files in MS Outlook</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/SmC4MVE9BLI/AAAAAAAABJc/lGlNPH_lFd4/s1600-h/msoutlook.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 255px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/SmC4MVE9BLI/AAAAAAAABJc/lGlNPH_lFd4/s320/msoutlook.jpg" alt="" id="BLOGGER_PHOTO_ID_5359486078526751922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;For some reason MS Outlook doesn't give you an &lt;strike&gt;option&lt;/strike&gt; easy way to save animation files (.&lt;span style="font-weight: bold;"&gt;GIF&lt;/span&gt;), actually it won't let you save .&lt;span style="font-weight: bold;"&gt;JPG, &lt;/span&gt;.&lt;span style="font-weight: bold;"&gt;PNG, &lt;/span&gt;&lt;span&gt;etc&lt;/span&gt;  directly from a message and what it does instead is that it gives you the option of saving it as &lt;span style="font-weight: bold;"&gt;BMP&lt;/span&gt;, but many times this is not desirable, every once in a while I need this and I keep forgetting how to do it so I decided to use my blog once again for the purpose of remembering later how to do something; it actually works quite well, so here it is&lt;br /&gt;&lt;br /&gt;I actually lied on the title, there are ways to save the .GIF files in Outlook, but I'm not going there, there is a much easier way, &lt;span style="font-weight: bold;"&gt;forward the message to &lt;/span&gt;a web-based email account such as Yahoo or &lt;span style="font-weight: bold;"&gt;Gmail&lt;/span&gt; (haven't tried Hotmail, but it probably works there too)&lt;br /&gt;&lt;br /&gt;You'll be able to save the files from there as you would expect, with a right click, save file as...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6262228309841938560?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6262228309841938560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6262228309841938560' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6262228309841938560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6262228309841938560'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/07/how-to-save-gif-files-in-ms-outlook.html' title='How to: Save GIF files in MS Outlook'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cofcJplmJ2Q/SmC4MVE9BLI/AAAAAAAABJc/lGlNPH_lFd4/s72-c/msoutlook.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1828454331431602612</id><published>2009-07-14T10:03:00.000-07:00</published><updated>2009-07-14T11:31:35.440-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analogy'/><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><title type='text'>Programming is like Chess</title><content type='html'>For a long time I have believed that software development is just like a Chess game, but apparently not many people have thought about it this way, just &lt;a href="http://www.bing.com/search?q=%22programming+is+like+chess%22"&gt;*bing* it&lt;/a&gt; and you'll see less than a page of results (Google is no better), of course this is about to change as I write this post and everybody sees the light... or not&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/SlzO8ha0jwI/AAAAAAAABJU/Xfu8EB7GfqY/s1600-h/chess_programming.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 278px; height: 400px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/SlzO8ha0jwI/AAAAAAAABJU/Xfu8EB7GfqY/s400/chess_programming.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5358385195822386946" /&gt;&lt;/a&gt;&lt;br /&gt;anyway, let me elaborate on my analogy&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The bad programmer&lt;/span&gt;&lt;br /&gt;Arguably the average programmer, &lt;span style="font-style: italic;"&gt;makes a move&lt;/span&gt; without thinking about the &lt;span style="font-weight: bold;"&gt;side effects&lt;/span&gt;, his capacity of analyzing problems is not all that great, there are so many side effects (breaking code, introducing bugs, security, etc) but this guy is not even aware of most of them, he basically relies on the debugger and if it runs on his machine then is good to go; when stuff inevitably breaks he just goes back and makes another move that seems to fix the problem,  if you give this guy a large project it is likely that he'll make a stupid move that will just cause &lt;span style="font-weight: bold;"&gt;Checkmate&lt;/span&gt; on the project&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The good&lt;/span&gt;&lt;br /&gt;Analyzes different paths and choses the one he thinks is best, this player can play a good game, every once in a while his analysis is not that through and makes some mistakes but he can learn from that, this guy usually delivers good quality software with few bugs that he can go back and fix quickly enough to be acceptable&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The best&lt;/span&gt;&lt;br /&gt;This guy can make a whole bunch of moves all in his head, he's informed about all the latest techniques to defeat the opponent but he doesn't just rush and use them in a game, he tries them first on his own little projects and ends up using the ones that he proves to be useful, the ones that are shorter, quicker and give him the best return, he knows the techniques to use with the small projects and the ones to be used with large projects, and he knows they are very different, this guy knows what the opponent is thinking, he knows what the opponent will respond to every one of his moves so he usually chooses the best move... he knows the &lt;span style="font-weight: bold;"&gt;side effects&lt;/span&gt;; the "works on my machine" is not on this guy's vocabulary.&lt;br /&gt;&lt;br /&gt;As you can see the the main two differences in my analogy are the capacity of analysis (selecting the move) and the awareness of the side effects (what happens when you make that move).&lt;br /&gt;The opponent is your software project, the move is writing the code, the side effects are everything else that is affected by that.&lt;br /&gt;&lt;br /&gt;When was the last time that you introduced a new bug fixing that other bug or writing some new functionality? or when *they* found bugs of your code right after it went to production? or when it worked on your machine but not on the server?&lt;br /&gt;&lt;br /&gt;Every time you make a move, stop and think about the side effects, &lt;span style="font-weight: bold;"&gt;there are always side effects&lt;/span&gt;, if you can't think of them, there are &lt;span style="font-style: italic;"&gt;tools&lt;/span&gt; that can help you think better, such as &lt;span style="font-weight: bold;"&gt;Unit Testing&lt;/span&gt;, the more you practice it, the better you'll get at it, I promise&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1828454331431602612?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1828454331431602612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1828454331431602612' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1828454331431602612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1828454331431602612'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/07/programming-is-like-chess.html' title='Programming is like Chess'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cofcJplmJ2Q/SlzO8ha0jwI/AAAAAAAABJU/Xfu8EB7GfqY/s72-c/chess_programming.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-54706705902762091</id><published>2009-06-30T08:57:00.000-07:00</published><updated>2009-06-30T09:07:41.375-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><title type='text'>Firefox taking a long time to start after upgrading to 3.5</title><content type='html'>Firefox 3.5 (code name &lt;span style="font-weight: bold;"&gt;Shirekoto&lt;/span&gt;) is out, &lt;a href="http://www.spreadfirefox.com/shiretokoshock"&gt;get it while is hot&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;After updating it and running it for the first time, I got this little window&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cofcJplmJ2Q/Sko2Z5_KPoI/AAAAAAAABGI/RsBqDc93ZQw/s1600-h/firefox3_5update.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 123px; height: 33px;" src="http://2.bp.blogspot.com/_cofcJplmJ2Q/Sko2Z5_KPoI/AAAAAAAABGI/RsBqDc93ZQw/s400/firefox3_5update.PNG" alt="" id="BLOGGER_PHOTO_ID_5353150925773618818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It took me a while to even realize that that little guy was somewhere on my screen, &lt;a href="http://twitter.com/BlackTigerX/statuses/2405306742"&gt;I thought&lt;/a&gt; Firefox was just &lt;span style="font-weight: bold;"&gt;taking a long time to start&lt;/span&gt; after the update, then I clicked on the taskbar icon and that's when I saw the little window, I tried to re-size it but it didn't allow me to, all I could do was close the little (attempt of) window, then Firefox ran normal&lt;br /&gt;&lt;br /&gt;thought I would blog about it in case this happens to more people&lt;br /&gt;&lt;br /&gt;symptom: Firefox takes a long time to start after updating to 3.5&lt;br /&gt;solution: click on the taskbar firefox icon and find the little window on your screen, close it, then Firefox will run normal&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-54706705902762091?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/54706705902762091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=54706705902762091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/54706705902762091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/54706705902762091'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/06/firefox-taking-long-time-to-start-after.html' title='Firefox taking a long time to start after upgrading to 3.5'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cofcJplmJ2Q/Sko2Z5_KPoI/AAAAAAAABGI/RsBqDc93ZQw/s72-c/firefox3_5update.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5120890236150769756</id><published>2009-06-24T16:03:00.000-07:00</published><updated>2009-06-24T16:19:53.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jini xml'/><title type='text'>Are we done with XML yet? hello JINI</title><content type='html'>I have never been a fan of XML, I've hated it from "day one", the format is too inefficient, too bloated; I have had some ideas on things that can be done to reduce the size on xml data sets, such as having some kind of header definition embedded at the top of the file and other ideas, but the point of this post is not to talk those ideas, but rather my own proposal to start getting rid of xml.&lt;br /&gt;&lt;br /&gt;One area where I find particularly painful to use XML is on configuration files and my proposal to fix this problem is to formalize a new format, which I call &lt;span style="font-weight: bold;"&gt;JINI&lt;/span&gt; for now. JINI is a subset of JSON similar in simplicity to the good old .ini files and it's used specifically for configuration purposes to replace all those app.config xml configuration files&lt;br /&gt;&lt;br /&gt;Benefits&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Simple&lt;/span&gt;&lt;br /&gt;- No brackets&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Simple&lt;/span&gt;&lt;br /&gt;- Shorter&lt;br /&gt;- Easier to read&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Simpler&lt;/span&gt;&lt;br /&gt;- Everything that can be expressed in XML, can be expressed in JINI, but simpler&lt;br /&gt;&lt;br /&gt;Too bad "jini" is kinda already taken (2 million results on Google and 714K on Bing say so)&lt;br /&gt;&lt;br /&gt;I thought someone would have come up with this idea already, but a quick search gave me nothing, so I thought I would get the ball rolling&lt;br /&gt;&lt;br /&gt;what do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5120890236150769756?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5120890236150769756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5120890236150769756' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5120890236150769756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5120890236150769756'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/06/are-we-done-with-xml-yet-hello-jini.html' title='Are we done with XML yet? hello JINI'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-779448668825281105</id><published>2009-06-22T17:28:00.001-07:00</published><updated>2009-06-23T12:51:05.589-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net bitmap dib tiff convert'/><title type='text'>How to: Convert DIB to Bitmap</title><content type='html'>&lt;p&gt;During the weekend a friend asked for some help on code to convert a DIB to a Bitmap in .NET, he had found some code in internet and it almost did everything he needed but the image was getting cut off along the sides, we figured the issue had something to do with getting the pointer to the bitmap, so we digged more and found some more code that then we had to make a couple fixes and changes to get it working. Since I was not able to find a full working solution to the problem I decided to write this post, I saw many people asking the same question in multiple forums so hopefully this will help&lt;/p&gt;  &lt;p&gt;First, you’ll need to add System.Drawing.dll to the references of your project, then you’ll need to add the following uses clauses&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:green;"&gt;//Name spaces needed&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Drawing;&lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Drawing.Imaging;&lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.IO;&lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Reflection;&lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Runtime.InteropServices;&lt;/pre&gt;&lt;br /&gt;the next step is to declare the BITMAPINFOHEADER structure, this can be declared &lt;strong&gt;outside your class&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;[&lt;span style="color: rgb(43, 145, 175);"&gt;StructLayout&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;LayoutKind&lt;/span&gt;.Sequential, Pack = 1)]&lt;br /&gt;&lt;span style="color:blue;"&gt;public struct &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;BITMAPINFOHEADER&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;   &lt;span style="color:blue;"&gt;public uint &lt;/span&gt;biSize;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public int &lt;/span&gt;biWidth;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public int &lt;/span&gt;biHeight;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public ushort &lt;/span&gt;biPlanes;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public ushort &lt;/span&gt;biBitCount;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public uint &lt;/span&gt;biCompression;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public uint &lt;/span&gt;biSizeImage;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public int &lt;/span&gt;biXPelsPerMeter;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public int &lt;/span&gt;biYPelsPerMeter;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public uint &lt;/span&gt;biClrUsed;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public uint &lt;/span&gt;biClrImportant;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:blue;"&gt;public void &lt;/span&gt;Init()&lt;br /&gt;   {&lt;br /&gt;       biSize = (&lt;span style="color:blue;"&gt;uint&lt;/span&gt;)&lt;span style="color: rgb(43, 145, 175);"&gt;Marshal&lt;/span&gt;.SizeOf(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Then you need to import a function from GdiPlus.dll&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color:green;"&gt;//GDI External method needed Place it within your class&lt;br /&gt;&lt;/span&gt;[&lt;span style="color: rgb(43, 145, 175);"&gt;DllImport&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"GdiPlus.dll"&lt;/span&gt;, CharSet = &lt;span style="color: rgb(43, 145, 175);"&gt;CharSet&lt;/span&gt;.Unicode, ExactSpelling = &lt;span style="color:blue;"&gt;true&lt;/span&gt;)]&lt;br /&gt;&lt;span style="color:blue;"&gt;private static extern int &lt;/span&gt;GdipCreateBitmapFromGdiDib(&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;pBIH,&lt;br /&gt;   &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;pPix, &lt;span style="color:blue;"&gt;out &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;pBitmap);&lt;/pre&gt;&lt;br /&gt;Now we can get to the actual code to conver the DIB to Bitmap, note the use of a helper function GetPixelInfo, this was the culprit of our issues, and the one we had a hard time finding then getting to work, the function &lt;span style="font-weight: bold;"&gt;BitmapFromDIB&lt;/span&gt; that you’ll find all over the web doesn’t have this code and so it doesn’t work in many cases, in fact the function that you'll find all over the place has a &lt;span style="font-weight: bold;"&gt;parameter pPix&lt;/span&gt; but it doesn't specify how to get this value. This code needs to be declared &lt;strong&gt;inside your class&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color:green;"&gt;//THIS METHOD SAVES THE CONTENTS OF THE DIB POINTER INTO A BITMAP OBJECT&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Bitmap &lt;/span&gt;BitmapFromDIB(&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;pDIB)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:green;"&gt;//get pointer to bitmap header info       &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;pPix = GetPixelInfo(pDIB);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Call external GDI method&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;MethodInfo &lt;/span&gt;mi = &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;Bitmap&lt;/span&gt;).GetMethod(&lt;span style="color: rgb(163, 21, 21);"&gt;"FromGDIplus"&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;BindingFlags&lt;/span&gt;.Static | &lt;span style="color: rgb(43, 145, 175);"&gt;BindingFlags&lt;/span&gt;.NonPublic);&lt;br /&gt;   &lt;span style="color:blue;"&gt;if &lt;/span&gt;(mi == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;       &lt;span style="color:blue;"&gt;return null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;// Initialize memory pointer where Bitmap will be saved&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;pBmp = &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;.Zero;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Call external methosd that saves bitmap into pointer&lt;br /&gt;   &lt;/span&gt;&lt;span style="color:blue;"&gt;int &lt;/span&gt;status = GdipCreateBitmapFromGdiDib(pDIB, pPix, &lt;span style="color:blue;"&gt;out &lt;/span&gt;pBmp);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//If success return bitmap, if failed return null&lt;br /&gt;   &lt;/span&gt;&lt;span style="color:blue;"&gt;if &lt;/span&gt;((status == 0) &amp;amp;&amp;amp; (pBmp != &lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;.Zero))&lt;br /&gt;       &lt;span style="color:blue;"&gt;return &lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;Bitmap&lt;/span&gt;)mi.Invoke(&lt;span style="color:blue;"&gt;null&lt;/span&gt;, &lt;span style="color:blue;"&gt;new object&lt;/span&gt;[] { pBmp });&lt;br /&gt;   &lt;span style="color:blue;"&gt;else&lt;br /&gt;       return null&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;//THIS METHOD GETS THE POINTER TO THE BITMAP HEADER INFO&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;GetPixelInfo(&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;bmpPtr)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: rgb(43, 145, 175);"&gt;BITMAPINFOHEADER &lt;/span&gt;bmi = (&lt;span style="color: rgb(43, 145, 175);"&gt;BITMAPINFOHEADER&lt;/span&gt;)&lt;span style="color: rgb(43, 145, 175);"&gt;Marshal&lt;/span&gt;.PtrToStructure(bmpPtr, &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;BITMAPINFOHEADER&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:blue;"&gt;if &lt;/span&gt;(bmi.biSizeImage == 0)&lt;br /&gt;       bmi.biSizeImage = (&lt;span style="color:blue;"&gt;uint&lt;/span&gt;)(((((bmi.biWidth * bmi.biBitCount) + 31) &amp;amp; ~31) &amp;gt;&amp;gt; 3) * bmi.biHeight);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:blue;"&gt;int &lt;/span&gt;p = (&lt;span style="color:blue;"&gt;int&lt;/span&gt;)bmi.biClrUsed;&lt;br /&gt;   &lt;span style="color:blue;"&gt;if &lt;/span&gt;((p == 0) &amp;amp;&amp;amp; (bmi.biBitCount &amp;lt;= 8))&lt;br /&gt;       p = 1 &amp;lt;&amp;lt; bmi.biBitCount;&lt;br /&gt;   p = (p * 4) + (&lt;span style="color:blue;"&gt;int&lt;/span&gt;)bmi.biSize + (&lt;span style="color:blue;"&gt;int&lt;/span&gt;)bmpPtr;&lt;br /&gt;   &lt;span style="color:blue;"&gt;return &lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;)p;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;finally, as a plus, what my friend actually needed was to convert from DIB to TIFF, so he wrote a function to do that, this function reuses the BitmapFromDIB function and allows you to set the image resolution&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;private void &lt;/span&gt;SavehDibToTiff(&lt;span style="color:blue;"&gt;int &lt;/span&gt;hDIB, &lt;span style="color:blue;"&gt;string &lt;/span&gt;fileName, &lt;span style="color:blue;"&gt;int &lt;/span&gt;xRes, &lt;span style="color:blue;"&gt;int &lt;/span&gt;yRes)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:green;"&gt;//Identify the memory pointer to the DIB Handler (hDIB)&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr &lt;/span&gt;dibPtr = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IntPtr&lt;/span&gt;(hDIB);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Save the contents of DIB pointer into bitmap object&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Bitmap &lt;/span&gt;myBitmap = BitmapFromDIB(dibPtr);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Set resolution if needed&lt;br /&gt;   &lt;/span&gt;&lt;span style="color:blue;"&gt;if &lt;/span&gt;(xRes &amp;gt;0 &amp;amp;&amp;amp; yRes&amp;gt;0)&lt;br /&gt;       myBitmap.SetResolution(xRes, yRes);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Create an instance of the windows TIFF encoder&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;ImageCodecInfo &lt;/span&gt;ici = GetEncoderInfo(&lt;span style="color: rgb(163, 21, 21);"&gt;"image/tiff"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Define encoder parameters&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;EncoderParameters &lt;/span&gt;eps = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;EncoderParameters&lt;/span&gt;(1); &lt;span style="color:green;"&gt;// only one parameter in this case (compression)&lt;br /&gt;&lt;br /&gt;   //Create an Encoder Value for TIFF compression Group 4&lt;br /&gt;   &lt;/span&gt;&lt;span style="color:blue;"&gt;long &lt;/span&gt;ev = (&lt;span style="color:blue;"&gt;long&lt;/span&gt;)&lt;span style="color: rgb(43, 145, 175);"&gt;EncoderValue&lt;/span&gt;.CompressionCCITT4;&lt;br /&gt;   eps.Param[0] = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;EncoderParameter&lt;/span&gt;(System.Drawing.Imaging.&lt;span style="color: rgb(43, 145, 175);"&gt;Encoder&lt;/span&gt;.Compression, ev);&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:green;"&gt;//Save file                       &lt;br /&gt;   &lt;/span&gt;myBitmap.Save(fileName, ici, eps);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="color:green;"&gt;//Helper to get Encoder from Windows for file type.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;ImageCodecInfo &lt;/span&gt;GetEncoderInfo(&lt;span style="color: rgb(43, 145, 175);"&gt;String &lt;/span&gt;mimeType)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: rgb(43, 145, 175);"&gt;ImageCodecInfo&lt;/span&gt;[] encoders = &lt;span style="color: rgb(43, 145, 175);"&gt;ImageCodecInfo&lt;/span&gt;.GetImageEncoders();&lt;br /&gt;   &lt;span style="color:blue;"&gt;for &lt;/span&gt;(&lt;span style="color:blue;"&gt;int &lt;/span&gt;j = 0; j &amp;lt; encoders.Length; ++j)&lt;br /&gt;   {&lt;br /&gt;       &lt;span style="color:blue;"&gt;if &lt;/span&gt;(encoders[j].MimeType == mimeType)&lt;br /&gt;           &lt;span style="color:blue;"&gt;return &lt;/span&gt;encoders[j];&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color:blue;"&gt;return null&lt;/span&gt;;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;and that is it, hoping this will help someone out there&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-779448668825281105?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/779448668825281105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=779448668825281105' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/779448668825281105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/779448668825281105'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/06/how-to-convert-dib-to-bitmap.html' title='How to: Convert DIB to Bitmap'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4372702932493134504</id><published>2009-06-13T14:24:00.001-07:00</published><updated>2009-06-13T14:34:32.174-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='new features'/><title type='text'>What are those colors on IE tabs?</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_cofcJplmJ2Q/SjQZIrhVYjI/AAAAAAAABDY/39bHa-pi-Aw/s1600-h/colored%20tabs%5B3%5D.png"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="colored tabs" alt="colored tabs" src="http://lh3.ggpht.com/_cofcJplmJ2Q/SjQZJGfy17I/AAAAAAAABDc/jytb1sI9vP0/colored%20tabs_thumb%5B1%5D.png?imgmax=800" width="244" border="0" height="44" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I thought this was one of the best features in Internet Explorer 8, but not everyone gets the meaning of the colors on the tabs. The colors represent that the &lt;strong&gt;tabs are related&lt;/strong&gt;, meaning that &lt;strong&gt;you followed a link from one page&lt;/strong&gt;, IE opened another tab and assigned the same color as the previous tab, so that way &lt;strong&gt;the tabs that are derived from other tabs are now all grouped&lt;/strong&gt; and it’s very easy to see this, very useful when you have multiple tabs open for different purposes. I just had to blog this because someone actually asked me what those colors were for, so I figured there’s more people who may have the same question.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4372702932493134504?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4372702932493134504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4372702932493134504' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4372702932493134504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4372702932493134504'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/06/what-are-those-colors-on-ie-tabs.html' title='What are those colors on IE tabs?'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_cofcJplmJ2Q/SjQZJGfy17I/AAAAAAAABDc/jytb1sI9vP0/s72-c/colored%20tabs_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-422864888691440758</id><published>2009-05-31T17:35:00.001-07:00</published><updated>2009-05-31T17:36:41.865-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usercontrol'/><category scheme='http://www.blogger.com/atom/ns#' term='silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='control'/><category scheme='http://www.blogger.com/atom/ns#' term='user'/><category scheme='http://www.blogger.com/atom/ns#' term='basics'/><title type='text'>Silverlight how to: Add a user control to another user control</title><content type='html'>&lt;p&gt;I'm starting to experiment with SilverLight and there's plenty of material out there, but some of the small details are really hard to find. The first application I'm working on requires a couple user controls, one embedded in the other and I spent a couple hours finding how to insert the user control into another control, then to the page, I thought it would be as easy as drag and drop but that didn't work, tried a few other things with no luck, turns out you have to add the namespace to the xaml, similar to the way you declare your controls in ASP.NET   &lt;br /&gt;The top xml of a user control (or the Page.xaml which is really just a user control) looks like this:    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;UserControl x:Class=&amp;quot;MyNameSpace.SomeUserControl&amp;quot;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Width=&amp;quot;200&amp;quot; Height=&amp;quot;300&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;right after the &lt;strong&gt;last line with xmlns&lt;/strong&gt;, you can type &amp;quot;xmlns:[prefix]=&amp;quot; (where [prefix] is the prefix you want to use in the xml to add your control, and make sure to add the &lt;strong&gt;=&lt;/strong&gt; at the end); intellisense will do the rest, the first line of the drop down will contain the default namespace of your assembly, select that and you're good to go, it will look something like this:&lt;/p&gt;  &lt;p&gt;&amp;lt;UserControl x:Class=&amp;quot;MyNameSpace.SomeUserControl&amp;quot;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;xmlns:prefix=&amp;quot;clr-namespace:MyUserControl&amp;quot;&lt;/font&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Width=&amp;quot;200&amp;quot; Height=&amp;quot;300&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;You can now start adding your control by typing &lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;prefix:&lt;/font&gt;&lt;/strong&gt; wherever you want to add your control and again intellisense will do the rest for you, you will be able to select any of the user controls that you have created previously under that namespace.    &lt;br /&gt;One last thing, if you will be referencing that user control from the code behind, you will need to name your control:&lt;/p&gt;  &lt;p&gt;&amp;lt;prefix:MyUserControl &lt;strong&gt;Name=&amp;quot;myControl&amp;quot;&lt;/strong&gt; &amp;gt;&amp;lt;/prefix:MyUserControl&amp;gt;&lt;/p&gt;  &lt;p&gt;Doing so will give you strongly typed access to the instance of the control in your code behind, public members included&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;myControl&lt;/strong&gt;.SomePublicMethod(someParameters);&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-422864888691440758?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/422864888691440758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=422864888691440758' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/422864888691440758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/422864888691440758'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/05/silverlight-how-to-add-user-control-to.html' title='Silverlight how to: Add a user control to another user control'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5119640061940015551</id><published>2009-04-16T14:58:00.000-07:00</published><updated>2009-04-17T13:46:52.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><title type='text'>my solution to Eric Lippert's quiz</title><content type='html'>&lt;a href="http://blogs.msdn.com/ericlippert/archive/2009/04/15/comma-quibbling.aspx"&gt;Eric posted a quiz&lt;/a&gt; a few days ago, it generated quite a number of responses, so I thought I would answer with the shortest possible C# answer (with my previous team we used to kinda compete on refactoring), so here it is (&lt;a href="http://juztinwilzon.blogspot.com/"&gt;Justin&lt;/a&gt; and &lt;a href="http://foxsys.blogspot.com"&gt;Paul&lt;/a&gt;, bring it on!):&lt;br /&gt;The problem:&lt;br /&gt;Write me a function that takes a non-null IEnumerable&lt;string&gt; and returns a string with the following characteristics: &lt;p&gt;(1) If the sequence is empty then the resulting string is "{}".&lt;br /&gt;(2) If the sequence is a single item "ABC" then the resulting string is "{ABC}".&lt;br /&gt;(3) If the sequence is the two item sequence "ABC", "DEF" then the resulting string is "{ABC and DEF}".&lt;br /&gt;(4) If the sequence has more than two items, say, "ABC", "DEF", "G", "H" then the resulting string is "{ABC, DEF, G and H}". (Note: no Oxford comma!)&lt;/p&gt;&lt;br /&gt;My solution:&lt;br /&gt;&lt;div    style="background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:Courier New;font-size:10pt;color:black;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; JoinStrings(&lt;span style="color: rgb(43, 145, 175);"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt; strings) {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color:blue;"&gt;int&lt;/span&gt; len = strings.Count();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color: rgb(163, 21, 21);"&gt;"{"&lt;/span&gt;+(&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        (len &amp;gt; 1) ?&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            strings.Take(len - 1)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            .Aggregate((&lt;span style="color:blue;"&gt;string&lt;/span&gt; head, &lt;span style="color:blue;"&gt;string&lt;/span&gt; tail) =&amp;gt; head+&lt;span style="color: rgb(163, 21, 21);"&gt;", "&lt;/span&gt;+tail)+&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            &lt;span style="color: rgb(163, 21, 21);"&gt;" and "&lt;/span&gt; +strings.Last()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        : (len == 1) ?&lt;/p&gt;&lt;p style="margin: 0px;"&gt;            strings.First()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        : &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;)+&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(163, 21, 21);"&gt;"}"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/string&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5119640061940015551?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5119640061940015551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5119640061940015551' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5119640061940015551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5119640061940015551'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/04/my-solution-to-eric-lipperts-quiz.html' title='my solution to Eric Lippert&apos;s quiz'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3740242897136071027</id><published>2009-04-02T14:37:00.000-07:00</published><updated>2009-04-02T15:25:35.108-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net mvc'/><title type='text'>public ASP.NET MVC { get; private set; }</title><content type='html'>For the 2 people who don't read many blogs (or &lt;a href="http://twitter.com/blacktigerx"&gt;twitter&lt;/a&gt;), but do read this one, yesterday it was announced that &lt;a href="http://www.hanselman.com/blog/MicrosoftASPNETMVC10IsNowOpenSourceMSPL.aspx"&gt;ASP.NET MVC 1.0 is open source&lt;/a&gt; baby! "Free like Speech." and there are no restrictions to the platform either, the license is MS-PL which provides broad rights to modify and redistribute the source code.&lt;br /&gt;&lt;br /&gt;The first question that was raised was "can I submit patches?" and the answer is &lt;span style="font-weight: bold;"&gt;no&lt;/span&gt;, however nothing stops you from going and creating your own copy (forking) and start modifying it and redistributing it &lt;a href="http://github.com/machine/msmvc/tree/master"&gt;like this guy&lt;/a&gt; has already done.&lt;br /&gt;&lt;br /&gt;You can get the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=144444"&gt;source code here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3740242897136071027?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3740242897136071027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3740242897136071027' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3740242897136071027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3740242897136071027'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/04/public-aspnet-mvc-get-private-set.html' title='public ASP.NET MVC { get; private set; }'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1154634610755736636</id><published>2009-04-02T09:15:00.000-07:00</published><updated>2009-04-02T09:16:02.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Did you know? Interface members are allowed to be private</title><content type='html'>This one comes as a surprise to most people, but it is possible to have a private implementation for an interface member, let's look at a very simple example, just for purposes of the ilustration.&lt;br /&gt;&lt;!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red43\green145\blue175;\red163\green21\blue21;\red0\green128\blue0;}??\fs20 \cf1 public\cf0  \cf1 interface\cf0  \cf4 ITest\cf0  \{\par ??    \cf1 void\cf0  Test();\par ??\}\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 Test\cf0  : \cf4 ITest\cf0  \{\par ??    \cf1 void\cf0  \cf4 ITest\cf0 .Test() \{\par ??        \cf4 Console\cf0 .WriteLine(\cf5 "test"\cf0 );\par ??    \}\par ??    \cf1 public\cf0  \cf1 void\cf0  Test2() \{\par ??        \cf4 Console\cf0 .WriteLine(\cf5 "test2"\cf0 );\par ??    \}\par ??\}\par ??\par ??\cf1 class\cf0  \cf4 Program\cf0  \{\par ??    \cf1 static\cf0  \cf1 void\cf0  Main(\cf1 string\cf0 [] args) \{\par ??        \cf4 ITest\cf0  t = \cf1 new\cf0  \cf4 Test\cf0 ();\par ??        t.Test();\par ??        \cf4 Test\cf0  t2 = \cf1 new\cf0  \cf4 Test\cf0 ();\par ??        \cf6 //t2.Test(); //&lt;&lt;=== doesn't compile\par ??} --&gt;&lt;br /&gt;&lt;div    style="background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:Courier New;font-size:10pt;color:black;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;interface&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ITest&lt;/span&gt; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color:blue;"&gt;void&lt;/span&gt; Test();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;}&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Test&lt;/span&gt; : &lt;span style="color: rgb(43, 145, 175);"&gt;ITest&lt;/span&gt; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color:blue;"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ITest&lt;/span&gt;.Test() {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(43, 145, 175);"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163, 21, 21);"&gt;"test"&lt;/span&gt;);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Test2() {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(43, 145, 175);"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163, 21, 21);"&gt;"test2"&lt;/span&gt;);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;}&lt;/p&gt;&lt;p style="margin: 0px;"&gt; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;/span&gt; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;    &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args) {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(43, 145, 175);"&gt;ITest&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Test&lt;/span&gt;();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        t.Test();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(43, 145, 175);"&gt;Test&lt;/span&gt; t2 = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Test&lt;/span&gt;();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;        &lt;span style="color:green;"&gt;//t2.Test(); //&amp;lt;&amp;lt;=== doesn't compile&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;If you don't believe it you can try it of course.&lt;br /&gt;&lt;br /&gt;But why is this useful or how do you use this?&lt;br /&gt;&lt;br /&gt;The technique allows you to ensure that the method is only visible to those who are using a variable of the interface type. All this does is to force the use of the member through an instance of the interface, meaning, for this example, if you want to get access to the .Test method, you can only do so through a variable of type ITest.&lt;br /&gt;&lt;br /&gt;The only trick to make this work is to precede the member declaration with the Interface type as in:&lt;br /&gt;&lt;br /&gt;void ITest.Test();&lt;br /&gt;&lt;br /&gt;Not the most useful of tricks, but something to have on the bag of tricks, or maybe something to make you win a bet ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1154634610755736636?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1154634610755736636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1154634610755736636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1154634610755736636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1154634610755736636'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/04/did-you-know-interface-members-are.html' title='Did you know? Interface members are allowed to be private'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8364677202444043251</id><published>2009-03-27T22:24:00.000-07:00</published><updated>2009-03-27T22:49:59.501-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>Do you want to view only the webpage content that was delivered securely?  The simple guide</title><content type='html'>The post about the new dialog for secure/unsecure items in IE8 has had quite a few visits, so I thought I would make it much easier on the visitors to get to what they specifically need, I am guessing they are arriving here mainly to find out:&lt;br /&gt;&lt;blockquote&gt;1 - What the heck does it mean.&lt;br /&gt;2 - What they should do to see the full page.&lt;br /&gt;3 - How can they get rid of the stupid message.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;1 - What the heck does it mean?&lt;/span&gt;&lt;br /&gt; They inverted the question from the previous dialog:&lt;br /&gt;&lt;blockquote&gt;"This page contains both secure and nonsecure items.&lt;br /&gt;Do you want to display the nonsecure items?"&lt;/blockquote&gt;So that more people will just &lt;span style="font-weight: bold;"&gt;click the default&lt;/span&gt;, and by doing so &lt;span style="font-weight: bold;"&gt;IE will not display the unsecure items on the page&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - I just want to see the entire page, what should I do?&lt;/span&gt;&lt;br /&gt; Click NO&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - How can I get rid of the stupid dialog once and for all?.&lt;/span&gt;&lt;br /&gt; The short answer would be: Tools&gt;internet options&gt;security&gt;custom level&gt;display mixed content: Enable.&lt;br /&gt; The long answer is on this other post: &lt;a href="http://ebersys.blogspot.com/2009/03/how-to-prevent-security-dialog-about.html"&gt;How to: Prevent the security dialog about unsecure items in IE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;hope this helps! If I didn't answer what you were looking for, please let me know in the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8364677202444043251?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8364677202444043251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8364677202444043251' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8364677202444043251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8364677202444043251'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/03/do-you-want-to-view-only-webpage_27.html' title='Do you want to view only the webpage content that was delivered securely?  The simple guide'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7227786995320491364</id><published>2009-03-20T12:58:00.000-07:00</published><updated>2009-03-26T10:48:05.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>How to: Prevent the security dialog about unsecure items in IE</title><content type='html'>keywords: IE8, mixed, content, dialog, warning.&lt;br /&gt;&lt;br /&gt;In my previous post about the new dialog in &lt;a href="http://ebersys.blogspot.com/2009/03/do-you-want-to-view-only-webpage.html"&gt;IE8 about mixed content&lt;/a&gt;, someone asked "How can I prevent this message from reappearing?", I thought it would be a good-to-have post and started writing this, but someone else already answered it (thanks &lt;span dir="ltr"&gt;Anonymous)&lt;/span&gt;, in any case, here's what you need to do if you don't want to see that dialog:&lt;br /&gt;&lt;blockquote&gt;tools&gt;internet options&gt;security&gt;custom level&gt;display mixed content: enable&lt;br /&gt;&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cofcJplmJ2Q/ScP1rhZgh-I/AAAAAAAAA8A/___E6SF4wdA/s1600-h/Display-Mixed-Content.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 348px; height: 400px;" src="http://4.bp.blogspot.com/_cofcJplmJ2Q/ScP1rhZgh-I/AAAAAAAAA8A/___E6SF4wdA/s400/Display-Mixed-Content.JPG" alt="" id="BLOGGER_PHOTO_ID_5315362113275856866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note that if the site you are visiting is NOT on the internet zone, you would have to make the changes to the appropiate zone:&lt;br /&gt;&lt;br /&gt;here's how you tell which "zone" you are on, on the bottom right hand corner of the browser you should see something like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/Scu-9BYHQRI/AAAAAAAAA8g/U9tuSi4X3_M/s1600-h/IE8_Internet_Zone.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 111px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/Scu-9BYHQRI/AAAAAAAAA8g/U9tuSi4X3_M/s400/IE8_Internet_Zone.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5317553740591874322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you double click that, you can make changes to the other zones (Local Intranet, Trusted sites, restricted sites)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/Scu_PJIbj5I/AAAAAAAAA8o/1Vs8UxwA-ho/s1600-h/IE8_Internet_Zones.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 307px; height: 400px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/Scu_PJIbj5I/AAAAAAAAA8o/1Vs8UxwA-ho/s400/IE8_Internet_Zones.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5317554051911225234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just click the zone you want, and it will bring up the first dialog (from this post) where you can make the change.&lt;br /&gt;&lt;br /&gt;This applies to IE8, IE7, IE6 (I don't know about older versions)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7227786995320491364?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7227786995320491364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7227786995320491364' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7227786995320491364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7227786995320491364'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/03/how-to-prevent-security-dialog-about.html' title='How to: Prevent the security dialog about unsecure items in IE'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cofcJplmJ2Q/ScP1rhZgh-I/AAAAAAAAA8A/___E6SF4wdA/s72-c/Display-Mixed-Content.JPG' height='72' width='72'/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8025095700650568898</id><published>2009-03-20T08:11:00.001-07:00</published><updated>2009-04-07T08:50:07.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Do you want to view only the webpage content that was delivered securely?</title><content type='html'>keywords: IE8, usability, warning, error, dialog&lt;br /&gt;&lt;br /&gt;Update: If you just care about making the dialog disappear go straight to comments or &lt;a href="http://ebersys.blogspot.com/2009/03/how-to-prevent-security-dialog-about.html"&gt;this post&lt;/a&gt; for more details, if you want the simple answers check the "&lt;a href="http://ebersys.blogspot.com/2009/03/do-you-want-to-view-only-webpage_27.html"&gt;simple guide&lt;/a&gt;". This post was originally intended for developers but it seems a lot of people are looking for an answer to this &lt;span style="font-style: italic;"&gt;puzzle&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://windowsteamblog.com/blogs/windowsexperience/archive/2009/03/19/final-release-of-internet-explorer-8-now-available.aspx"&gt;IE8 has been released&lt;/a&gt; and it's got a few really cool features as well as some really good protection mechanisms, all in all, a fairly good release.&lt;br /&gt;&lt;br /&gt;But then I found this while navigating a secure page (Gmail)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_cofcJplmJ2Q/ScOyUKiGqDI/AAAAAAAAA7w/O6irMRmb5ls/s1600-h/IE8Dialog.JPG"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 400px; display: block; height: 148px;" id="BLOGGER_PHOTO_ID_5315288044721842226" alt="" src="http://4.bp.blogspot.com/_cofcJplmJ2Q/ScOyUKiGqDI/AAAAAAAAA7w/O6irMRmb5ls/s400/IE8Dialog.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Say what&lt;/strong&gt;???&lt;br /&gt;&lt;br /&gt;In what felt like I passed out I had to re-read the full dialog, then took me about 5 seconds to get what the dialog was telling me and about 10 to understand what would happen if I clicked NO.&lt;br /&gt;&lt;br /&gt;I'm copying the contents of dialog text here just for SEO&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This webpage contains content that will not be delivered using a secure HTTPS connection, which could compromise the security of the entire webpage.&lt;/blockquote&gt;&lt;br /&gt;Why did they change the previous dialog?:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This page contains both secure and nonsecure items.&lt;br /&gt;Do you want to display the nonsecure items?&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_cofcJplmJ2Q/ScOzSYXWycI/AAAAAAAAA74/rTId90-hMZI/s1600-h/display-nonsecure-items.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 332px; height: 150px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/ScOzSYXWycI/AAAAAAAAA74/rTId90-hMZI/s400/display-nonsecure-items.gif" alt="" id="BLOGGER_PHOTO_ID_5315289113586747842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The new dialog seems very confusing to me, the extra text after the question just makes it even more confusing and for as long as I can remember we've had the same old dialog, which seemed fine.&lt;br /&gt;&lt;br /&gt;Notice that even the answer is the opposite for the new dialog, maybe this is the reason it feels like &lt;a href="http://ebersys.blogspot.com/2008/03/do-you-not-want-to-exit-yes-no-cancel.html"&gt;asking a negative question&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think the intent is for users to click the &lt;span style="font-weight: bold;"&gt;default yes&lt;/span&gt;,  since 99.99% users don't really read any dialogs, and &lt;span style="font-weight: bold;"&gt;that will cause IE to not display the unsecure items on the page&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8025095700650568898?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8025095700650568898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8025095700650568898' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8025095700650568898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8025095700650568898'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/03/do-you-want-to-view-only-webpage.html' title='Do you want to view only the webpage content that was delivered securely?'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cofcJplmJ2Q/ScOyUKiGqDI/AAAAAAAAA7w/O6irMRmb5ls/s72-c/IE8Dialog.JPG' height='72' width='72'/><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6044156683087607426</id><published>2009-03-11T15:50:00.000-07:00</published><updated>2009-03-13T08:17:08.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='wtf'/><title type='text'>Pure Apple intuitiveness: The new iPod shuffle morse code control</title><content type='html'>I don't even have to try for this one, these are the instructions to operate the new iPod shuffle that has no controls on it, but defers that to the earphones, which is another WTF all on it's own&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cofcJplmJ2Q/SbhAb9w6CWI/AAAAAAAAA7U/eKXYhp_hNF4/s1600-h/Picture+2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 397px; height: 400px;" src="http://4.bp.blogspot.com/_cofcJplmJ2Q/SbhAb9w6CWI/AAAAAAAAA7U/eKXYhp_hNF4/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5312066609663838562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This are the buttons you get&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/SbhBQGmOBII/AAAAAAAAA7c/w-6Nwme43FQ/s1600-h/Picture+3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 85px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/SbhBQGmOBII/AAAAAAAAA7c/w-6Nwme43FQ/s400/Picture+3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5312067505388127362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You see, having a single button that performs so many different commands kinda defeats the purpose, imagine having an application with a single button to perform all the activities&lt;br /&gt;&lt;br /&gt;update: &lt;a href="http://i.gizmodo.com/5168478/apples-control-scheme-for-the-ipod-shuffle-looks-like-friggin-morse-code"&gt;Gizmodo calls it Morse code&lt;/a&gt;, I like it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6044156683087607426?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6044156683087607426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6044156683087607426' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6044156683087607426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6044156683087607426'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/03/pure-apple-intuitiveness-new-ipod.html' title='Pure Apple intuitiveness: The new iPod shuffle morse code control'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cofcJplmJ2Q/SbhAb9w6CWI/AAAAAAAAA7U/eKXYhp_hNF4/s72-c/Picture+2.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3125000368764609524</id><published>2009-03-04T17:17:00.001-08:00</published><updated>2009-03-04T17:24:49.613-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Pure Mac intuitiveness: The keyboard</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_cofcJplmJ2Q/Sa8oWkJHQPI/AAAAAAAAA7M/AH2C5lRgHPw/s1600-h/Keyboard.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 236px; height: 149px;" src="http://3.bp.blogspot.com/_cofcJplmJ2Q/Sa8oWkJHQPI/AAAAAAAAA7M/AH2C5lRgHPw/s400/Keyboard.png" alt="" id="BLOGGER_PHOTO_ID_5309506853817237746" border="0" /&gt;&lt;/a&gt;The newer Mac keyboards have 2 delete keys, but that's not the WTF (or maybe it is, but whatever).&lt;br /&gt;I have some files on my desktop (is that what is called in Macland?) that I want to delete, so I select the files and hit the first delete key... nothing, the second delete key, nothing... WTF!!&lt;br /&gt;&lt;br /&gt;After trying Ctrl, Option, Command, Shift and their combinations with the delete keys, finally found one that worked, I already forgot which one though.&lt;br /&gt;&lt;br /&gt;How is that intuitive?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3125000368764609524?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3125000368764609524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3125000368764609524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3125000368764609524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3125000368764609524'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/03/pure-mac-intuitiveness-keyboard.html' title='Pure Mac intuitiveness: The keyboard'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cofcJplmJ2Q/Sa8oWkJHQPI/AAAAAAAAA7M/AH2C5lRgHPw/s72-c/Keyboard.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4611072560828523991</id><published>2009-03-02T13:50:00.000-08:00</published><updated>2009-03-02T14:06:33.396-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>Pure Mac intuitiveness</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cofcJplmJ2Q/SaxVDLabvXI/AAAAAAAAA7E/rw1PHXjF2Sk/s1600-h/Picture+4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 166px; height: 119px;" src="http://2.bp.blogspot.com/_cofcJplmJ2Q/SaxVDLabvXI/AAAAAAAAA7E/rw1PHXjF2Sk/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5308711573854600562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I think I've had the worst luck with Macs in general; what you see here is a picture of Firefox on my iMac. Every single time I open Firefox, that's what I get and I have to grab that little window somewhere between the red and green little icons, drag it over to the left of my monitor, then make the window bigger. I think this started happening after I removed a monitor from the iMac.&lt;br /&gt;&lt;br /&gt;Maybe it's just me, but I just don't see how that's intuitive.&lt;br /&gt;&lt;br /&gt;By the way, I wanted to edit the image to add some more context but I didn't find an obvious way to edit the picture, neither from the context menu, or once on the preview, there's gotta be a way (you know, like in Windows, just right click, edit), is just doesn't seem to be all that intuitive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4611072560828523991?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4611072560828523991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4611072560828523991' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4611072560828523991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4611072560828523991'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/03/pure-mac-intuitiveness.html' title='Pure Mac intuitiveness'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cofcJplmJ2Q/SaxVDLabvXI/AAAAAAAAA7E/rw1PHXjF2Sk/s72-c/Picture+4.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4558730852363506294</id><published>2009-02-20T12:00:00.000-08:00</published><updated>2009-02-20T12:14:13.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='installation'/><title type='text'>Windows 7 installation: The product key does not match current Windows SKU</title><content type='html'>I just finished installing Windows 7 on my iMac, I had no problems during the installation until I got to the product key part, I grabbed a new key from the MS site, only to find out it didn't work, then I tried with another key, no luck, long story short, I tried at least 5 keys, including one I had already used to install it on my laptop, none of them worked.&lt;br /&gt;&lt;br /&gt;Google has very few links to people who have had the problem, and the only answer seems to be that you may have downloaded the checked build, and you need to chose the Ultimate version; I had chosen Business edition.&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://blogs.msdn.com/user/Profile.aspx?UserID=134865"&gt;Chris&lt;/a&gt; responds: You are probably installing from the "checked" ISO image.  Please choose "Ultimate" and your key should work.&lt;br /&gt;&lt;/blockquote&gt;However, when you are on that screen there is no way to go back, do I don't know how you would select Ultimate.&lt;br /&gt;&lt;br /&gt;Anyway, the solution that worked for me was to simply &lt;span style="font-weight: bold;"&gt;leave the field empty&lt;/span&gt;, yup, that simple.&lt;br /&gt;&lt;br /&gt;So, if you downloaded the checked build, chose the Ultimate version; if you're stuck in that page, I hope this helps you&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4558730852363506294?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4558730852363506294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4558730852363506294' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4558730852363506294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4558730852363506294'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/02/windows-7-installation-product-key-does.html' title='Windows 7 installation: The product key does not match current Windows SKU'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6649367379820885331</id><published>2009-01-23T21:35:00.000-08:00</published><updated>2009-01-23T21:42:13.014-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><title type='text'>Windows 7 beta availability extended until Feb 10th</title><content type='html'>Due to the high interest in Windows 7, Microsoft has once more &lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/01/23/general-availability-for-the-windows-7-beta-to-end.aspx"&gt;extended the download deadline&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Because enthusiasm continues to be so high for the Windows 7 Beta and we don’t want anyone to miss out we will keep the Beta downloads open through February 10th. Customers who have started but not completed the download process  will be able to do so through February 12th.&lt;/blockquote&gt;&lt;br /&gt;This will give you more than enough time if you want to try the beta. There are good reviews everywhere you look, so if you haven't decided, you are missing out a lot, especially if you are using Windows Vista. It is important to note that product keys will be available even after that&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Product keys for the Windows 7 Beta will continue to be available. So if you have the Windows 7 Beta but didn’t get a product key you will be able to do so even after February 12th.&lt;/blockquote&gt;&lt;br /&gt;MSDN and Technet subscribers need not to worry about any dates as they will have access throughout the entire Windows 7 Beta phase&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/windows/windows-7/beta-download.aspx"&gt;download link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6649367379820885331?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6649367379820885331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6649367379820885331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6649367379820885331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6649367379820885331'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/windows-7-beta-availability-extended_23.html' title='Windows 7 beta availability extended until Feb 10th'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6652435880621224698</id><published>2009-01-19T12:03:00.000-08:00</published><updated>2009-01-19T12:24:12.490-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Multiple profiles per user in twitter</title><content type='html'>Don't get too excited, that's just my proposal for twitter;&lt;br /&gt;&lt;br /&gt;I would like to see something like&lt;br /&gt;&lt;br /&gt;http://twitter.com/BlackTigerX/technical&lt;br /&gt;http://twitter.com/BlackTigerX/personal&lt;br /&gt;http://twitter.com/BlackTigerX/family&lt;br /&gt;&lt;br /&gt;I think there are many benefits to this&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;There are some of us using multiple accounts, one for each language.&lt;/li&gt;&lt;li&gt;Some people even use different social networks similar to twitter, one for each aspect.&lt;/li&gt;&lt;li&gt;When I subscribe to someone I only care about X (technical, personal), not Y.&lt;/li&gt;&lt;li&gt;Noise reduction, big one.&lt;/li&gt;&lt;li&gt;Would enable twitter searches on specific "tags" to find more relevant content.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Each profile could be protected to only allow the people you want, they could even be invisible so only the people you want even know about it.&lt;br /&gt;&lt;br /&gt;People could subscribe to all public profiles if they wanted to.&lt;br /&gt;&lt;br /&gt;The twittering tools would have to change a bit, just to specify which "tag" or specific profiles to tweet to.&lt;br /&gt;&lt;br /&gt;I think it would reduce the noise considerably since the same account now allows you to deliver content in different branches.&lt;br /&gt;&lt;br /&gt;I'm getting more and more ideas, the more I think about it, the more I like it.&lt;br /&gt;&lt;br /&gt;oh, and yes, that's my &lt;a href="http://twitter.com/BlackTigerX"&gt;twitter profile&lt;/a&gt;...(sigh, in English for technical content)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6652435880621224698?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6652435880621224698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6652435880621224698' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6652435880621224698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6652435880621224698'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/multiple-profiles-per-user-in-twitter.html' title='Multiple profiles per user in twitter'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6120690543093876009</id><published>2009-01-11T09:37:00.000-08:00</published><updated>2009-01-11T09:55:25.340-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><title type='text'>Windows 7 beta availability extended until Jan 24th</title><content type='html'>If you haven't been able to download Windows 7 beta you can still get it; due to the high demand MS has extended the availability to 2 more weeks and they won't limit it to a fixed number of downloads.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Due to an enormous surge in demand, the download experience was not ideal so we listened and took the necessary steps to ensure a good experience. We have clearly heard that many of you want to check out the Windows 7 Beta and, as a result, we have decided remove the initial 2.5 million limit on the public beta for the next two weeks (thru January 24th). During that time you will have access to the beta even if the download number exceeds the 2.5 million unit limit.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/windows/windows-7/beta-download.aspx"&gt;you can download it here&lt;/a&gt;&lt;br /&gt;&lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/01/10/here-s-where-we-stand.aspx"&gt;source: Windows Team Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6120690543093876009?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6120690543093876009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6120690543093876009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6120690543093876009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6120690543093876009'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/windows-7-beta-availability-extended.html' title='Windows 7 beta availability extended until Jan 24th'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4152315897345583569</id><published>2009-01-10T08:58:00.001-08:00</published><updated>2009-01-10T09:15:09.211-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>About the new Google favicon</title><content type='html'>Google just rolled out a new favicon, in this picture we can see all 3 favicons they've had&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZaGO7GjCqAI/SWei9nM9neI/AAAAAAAAOiY/du01C7ipVnQ/s640/google-favicon-jan-2009.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 572px; height: 292px;" src="http://1.bp.blogspot.com/_ZaGO7GjCqAI/SWei9nM9neI/AAAAAAAAOiY/du01C7ipVnQ/s640/google-favicon-jan-2009.png" alt="" border="0" /&gt;&lt;/a&gt;The icon that was originally submitted was this:&lt;br /&gt;&lt;blockquote&gt;André Resende, a computer science undergraduate student at the University of Campinas in Brazil, submitted the design that inspired our new favicon&lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7ZYqYi4xigk/SWfAtLjid1I/AAAAAAAACOU/4-mq3SGshy0/s320/Favicon_Andre.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 30px; height: 25px;" src="http://4.bp.blogspot.com/_7ZYqYi4xigk/SWfAtLjid1I/AAAAAAAACOU/4-mq3SGshy0/s320/Favicon_Andre.png" alt="" border="0" /&gt;&lt;/a&gt;It seems to me the original favicon was much better than the one they came up&lt;br /&gt;&lt;br /&gt;The one they chose feels too noisy, what do you think?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://googlesystem.blogspot.com/2009/01/new-google-favicon.html"&gt;source&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4152315897345583569?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4152315897345583569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4152315897345583569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4152315897345583569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4152315897345583569'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/about-new-google-favicon.html' title='About the new Google favicon'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZaGO7GjCqAI/SWei9nM9neI/AAAAAAAAOiY/du01C7ipVnQ/s72-c/google-favicon-jan-2009.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-292415477018392541</id><published>2009-01-09T09:53:00.000-08:00</published><updated>2009-01-09T09:54:48.930-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><title type='text'>Windows 7 beta now avaiable to the public (first 2.5 million downloaders)</title><content type='html'>They are going to go fast, so if you want to try it, &lt;a href="http://technet.microsoft.com/en-us/evalcenter/dd353205.aspx"&gt;go get it now&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-292415477018392541?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/292415477018392541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=292415477018392541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/292415477018392541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/292415477018392541'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/windows-7-beta-now-avaiable-to-public.html' title='Windows 7 beta now avaiable to the public (first 2.5 million downloaders)'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3796323339775244546</id><published>2009-01-08T21:00:00.000-08:00</published><updated>2009-01-08T21:19:34.914-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><title type='text'>First post from Windows 7 beta</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/SWbcXHa89WI/AAAAAAAAA1s/CU2fY0SrUQk/s1600-h/CMD.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 202px;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/SWbcXHa89WI/AAAAAAAAA1s/CU2fY0SrUQk/s400/CMD.PNG" alt="" id="BLOGGER_PHOTO_ID_5289157102080423266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm running Windows 7 beta 64bit on my Mac using VMWare Fusion, even in this configuration things are looking pretty good, definitely a good improvement over Vista, they got rid of a lot of the UAC popups in areas where it just makes sense that way. The new task bar seems pretty good, it will take &lt;span style="font-weight: bold;"&gt;me &lt;/span&gt;a little bit getting used to, but mostly because I use it different than most users. My quick launch is gone!! I'm definitely going to need my quick launch back (I think).&lt;br /&gt;&lt;br /&gt;I love the snipping tool, similar to the one found in Mac, users who have always used Windows will find it really nice, is like a print screen on steroids, you can capture free form, rectangular area, window, and full screen; very intuitive and very fast, pretty much instant&lt;br /&gt;&lt;br /&gt;Perhaps this is what Vista should've been, so far all the reviews I have seen have been very positive in all areas, this post is just another "me too!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3796323339775244546?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3796323339775244546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3796323339775244546' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3796323339775244546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3796323339775244546'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/first-post-from-windows-7-beta.html' title='First post from Windows 7 beta'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cofcJplmJ2Q/SWbcXHa89WI/AAAAAAAAA1s/CU2fY0SrUQk/s72-c/CMD.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7236513207077441027</id><published>2009-01-08T11:04:00.000-08:00</published><updated>2009-01-08T11:15:08.408-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows 7 beta available for MSDN and Technet subscribers</title><content type='html'>all the reviews say it is really good, &lt;a href="http://msdn.microsoft.com/"&gt;what are you waiting for&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;oh that's right, no MSDN subscription, don't worry, it will be available to the public on friday&lt;br /&gt;&lt;br /&gt;of course you could also find it on &lt;a href="http://www.google.com/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;hs=Enf&amp;amp;ei=sE5mSa2dBNTKmQfio5jVBw&amp;amp;sa=X&amp;amp;oi=spell&amp;amp;resnum=0&amp;amp;ct=result&amp;amp;cd=1&amp;amp;q=windows+7+bittorrent&amp;amp;spell=1"&gt;Bittorrent&lt;/a&gt; (just be careful)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7236513207077441027?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7236513207077441027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7236513207077441027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7236513207077441027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7236513207077441027'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2009/01/windows-7-available-for-msdn-and.html' title='Windows 7 beta available for MSDN and Technet subscribers'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5759806796864116831</id><published>2008-10-26T16:22:00.000-07:00</published><updated>2008-10-26T16:35:37.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple products keep dissappointing me</title><content type='html'>My iphone is broken, I cannot charge it, plugging it to any computer does nothing, completely fried. I turned on the blue tooth on the Mac to connect to it, all I could do was connect to it, absolutely nothing else, shortly after I got the equivalent of a Blue Screen of Death on the Mac; the Mac has been freezing on my, Fusion has been getting slower...&lt;br /&gt;&lt;br /&gt;I had to email every picture from the iphone to my self, everything else will be lost when the battery runs out, I will get a new iPhone tomorrow (went to the store and they confirmed it was fried)&lt;br /&gt;&lt;br /&gt;I bought the latest and greatest equipment to avoid exactly these types of problems, I don't think I want any more Apple stuff now, not worth it so far&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5759806796864116831?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5759806796864116831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5759806796864116831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5759806796864116831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5759806796864116831'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/10/apple-products-keep-dissappointing-me.html' title='Apple products keep dissappointing me'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1757851441457030825</id><published>2008-10-07T09:32:00.000-07:00</published><updated>2008-10-07T09:39:21.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><title type='text'>SVN playing jokes on me</title><content type='html'>I've had issues with SVN before, but this time it went a bit too far&lt;br /&gt;&lt;br /&gt;icons started disappearing...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_cofcJplmJ2Q/SOuPlJG5V_I/AAAAAAAAAoI/QSDjPh3OFpI/s1600-h/svnmessed1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://3.bp.blogspot.com/_cofcJplmJ2Q/SOuPlJG5V_I/AAAAAAAAAoI/QSDjPh3OFpI/s400/svnmessed1.JPG" alt="" id="BLOGGER_PHOTO_ID_5254451258520590322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;but then it got too far&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cofcJplmJ2Q/SOuPsWLmXSI/AAAAAAAAAoQ/AXkjQqgSsAU/s1600-h/svnmessed2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://1.bp.blogspot.com/_cofcJplmJ2Q/SOuPsWLmXSI/AAAAAAAAAoQ/AXkjQqgSsAU/s400/svnmessed2.JPG" alt="" id="BLOGGER_PHOTO_ID_5254451382289063202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;you don't know how much icons do for you, 'til you don't have them =o(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1757851441457030825?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1757851441457030825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1757851441457030825' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1757851441457030825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1757851441457030825'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/10/svn-playing-jokes-on-me.html' title='SVN playing jokes on me'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cofcJplmJ2Q/SOuPlJG5V_I/AAAAAAAAAoI/QSDjPh3OFpI/s72-c/svnmessed1.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8429681938750281976</id><published>2008-09-27T21:12:00.000-07:00</published><updated>2008-09-27T21:24:49.997-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>string format gotcha</title><content type='html'>here's a simple, inoffensive looking piece of code:&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;LogError(string.Format("some message, some variable value {0}" + ex.Message, varValue));&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Can you spot the problem with this code?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8429681938750281976?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8429681938750281976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8429681938750281976' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8429681938750281976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8429681938750281976'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/09/string-format-gotcha.html' title='string format gotcha'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3946329442092482850</id><published>2008-09-08T11:00:00.001-07:00</published><updated>2008-09-08T11:06:53.405-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><title type='text'>poor's man way to mount images in WinXP</title><content type='html'>For those who don't know, you can mount an image (.ISO, .UDF, .CDFS, .JO, ROCK) in Windows XP and you don't have to burn to either CD or DVD, you can just load it and have it as a virtual drive and do everything you need to do with it from there&lt;br /&gt;&lt;br /&gt;For those who do know about these tools but don't trust installing any tool you find on internet, there is a little tool from Microsoft that does just this in a very simple and effective way&lt;br /&gt;&lt;br /&gt;just download the &lt;a href="http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe"&gt;Virtual CDRom Control Panel tool&lt;/a&gt; from Microsoft and follow the instructions on the readme file:&lt;br /&gt;&lt;br /&gt;1. Copy VCdRom.sys to your %systemroot%\system32\drivers folder.&lt;br /&gt;2. Execute VCdControlTool.exe&lt;br /&gt;3. Click "Driver control"&lt;br /&gt;4. If the "Install Driver" button is available, click it. Navigate to the %systemroot%\system32\drivers folder, select VCdRom.sys, and click Open.&lt;br /&gt;5. Click "Start"&lt;br /&gt;6. Click OK&lt;br /&gt;7. Click "Add Drive" to add a drive to the drive list. Ensure that the drive added is not a local drive. If it is, continue to click "Add Drive" until an unused drive letter is available.&lt;br /&gt;8. Select an unused drive letter from the drive list and click "Mount".&lt;br /&gt;9. Navigate to the image file, select it, and click "OK". UNC naming conventions should not be used, however mapped network drives should be OK.&lt;br /&gt;&lt;br /&gt;You may now use the drive letter as if it were a local CD-ROM device. When you are finished you may unmount, stop, and remove the driver from memory using the driver control.&lt;br /&gt;&lt;br /&gt;that's it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3946329442092482850?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3946329442092482850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3946329442092482850' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3946329442092482850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3946329442092482850'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/09/poors-man-way-to-mount-images-in-winxp.html' title='poor&apos;s man way to mount images in WinXP'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3192058697640038085</id><published>2008-08-05T14:20:00.000-07:00</published><updated>2008-08-05T14:22:22.499-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><title type='text'>invisible CAPTCHA</title><content type='html'>I was checking the status of my iPhone order (yes!) on the AT&amp;T site, and I came to this CAPTCHA&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_cofcJplmJ2Q/SJjCvi2p_8I/AAAAAAAAAlw/QwCaBEmm2ro/s1600-h/invisibleCaptcha.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_cofcJplmJ2Q/SJjCvi2p_8I/AAAAAAAAAlw/QwCaBEmm2ro/s400/invisibleCaptcha.JPG" alt="" id="BLOGGER_PHOTO_ID_5231145089256521666" border="0" /&gt;&lt;/a&gt;I thought it would be easy, as I didn't see any characters, I just hit ENTER, but...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_cofcJplmJ2Q/SJjCa98W3sI/AAAAAAAAAlo/QGXpHRfJ9Ew/s1600-h/invisibleCaptcha2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_cofcJplmJ2Q/SJjCa98W3sI/AAAAAAAAAlo/QGXpHRfJ9Ew/s400/invisibleCaptcha2.JPG" alt="" id="BLOGGER_PHOTO_ID_5231144735750938306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sigh... =o(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3192058697640038085?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3192058697640038085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3192058697640038085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3192058697640038085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3192058697640038085'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/08/invisible-captcha.html' title='invisible CAPTCHA'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_cofcJplmJ2Q/SJjCvi2p_8I/AAAAAAAAAlw/QwCaBEmm2ro/s72-c/invisibleCaptcha.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4458301468306149359</id><published>2008-07-29T11:29:00.000-07:00</published><updated>2008-07-29T11:34:39.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Recursively delete .svn folders the easy way</title><content type='html'>you can really use this to delete any given folder that you need to delete recursively, but I needed this today, and google only gives me the answer for linux, and some strange solutions to do the same in windows.&lt;br /&gt;&lt;br /&gt;here's a simple solution that works from the command line (the easy way, right?):&lt;br /&gt;&lt;br /&gt;for /f "usebackq" %d in (`"dir *.svn /ad/b/s"`) do rd /s/q "%d"&lt;br /&gt;&lt;br /&gt;more than anything I know I will need this in the future, so here it is for me, hoping that it can help someone else out there J&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4458301468306149359?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4458301468306149359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4458301468306149359' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4458301468306149359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4458301468306149359'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html' title='Recursively delete .svn folders the easy way'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8838834965395560724</id><published>2008-07-29T10:14:00.000-07:00</published><updated>2008-07-29T10:21:44.613-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Delta runs Linux on their planes</title><content type='html'>got this during a trip to Las Vegas this past weekend, these are the screens attached to the back of the seats&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_cofcJplmJ2Q/SI9QcGCla4I/AAAAAAAAAlY/t8ARPy2PHdI/s1600-h/delta.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_cofcJplmJ2Q/SI9QcGCla4I/AAAAAAAAAlY/t8ARPy2PHdI/s400/delta.JPG" alt="" id="BLOGGER_PHOTO_ID_5228486135988448130" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8838834965395560724?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8838834965395560724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8838834965395560724' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8838834965395560724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8838834965395560724'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/07/delta-runs-linux.html' title='Delta runs Linux on their planes'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_cofcJplmJ2Q/SI9QcGCla4I/AAAAAAAAAlY/t8ARPy2PHdI/s72-c/delta.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5791444591760756411</id><published>2008-07-18T09:08:00.000-07:00</published><updated>2008-07-18T09:20:40.754-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vs2005'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='remote desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>SQL: You can't update a function while debugging it</title><content type='html'>article applies to: SQL debugging&lt;br /&gt;keywords: SQL, debugging, VS2005, functions, stored procedures&lt;br /&gt;&lt;br /&gt;I learned this the hard way yesterday while I was RDing (Remote Desktop) into my computer, debugging a SQL function from VS2005; I then, found a bug on the function and proceeded to update the function externally using Microsoft SQL Server Management Express (uff, that was tiring), however when I would execute the &lt;span style="font-weight: bold;"&gt;alter function&lt;/span&gt; it would take forever and never actually come back, I thought it was something with my RD session, so I logged in to the SQL server directly and tried there with same results, after a few minutes of waiting for SQL to commit my changes I realized I was &lt;span style="font-weight: bold;"&gt;debugging&lt;/span&gt;, and had stopped on a &lt;span style="font-weight: bold;"&gt;breakpoint &lt;/span&gt;on that function, I then exited out of VS debugging, tried again and voila it worked instantly.&lt;br /&gt;&lt;br /&gt;So, yes, it was my bad, but I never got a timeout or any message indicating what the problem was, what if two developers are working on the same thing?&lt;br /&gt;perhaps some work could be done to fix that, I can't imagine that being too hard, it DOES know that is locked, why not just give the user a message?&lt;br /&gt;&lt;br /&gt;anyway, just sharing my experience with you, hoping it helps&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5791444591760756411?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5791444591760756411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5791444591760756411' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5791444591760756411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5791444591760756411'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/07/sql-you-cant-update-function-while.html' title='SQL: You can&apos;t update a function while debugging it'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7457225128208564633</id><published>2008-06-22T17:47:00.000-07:00</published><updated>2008-06-23T11:31:51.504-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>Welcome to the family</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_cofcJplmJ2Q/SF70idYmBYI/AAAAAAAAAkI/QqY5TYL1YdY/s1600-h/storage_bigimac20080429.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_cofcJplmJ2Q/SF70idYmBYI/AAAAAAAAAkI/QqY5TYL1YdY/s400/storage_bigimac20080429.jpg" alt="" id="BLOGGER_PHOTO_ID_5214874291382125954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have joined the club, went to the store and bought the iMac 24" 3.06 GHz =o), the screen is awesome, makes my "old" 21" monitor look tiny&lt;br /&gt;&lt;br /&gt;So far I have been quite a bit disappointed by the "usability" of the Mac, I guess I had really hight expectations for it, just the fact that the first application you have up there is the "finder", tells me something is not quite there, my biggest problems so far:&lt;br /&gt;&lt;br /&gt;- short cut keys are different&lt;br /&gt;- you install some application, then is just &lt;span style="font-weight: bold;"&gt;gone&lt;/span&gt;, you have to find it using the finder&lt;br /&gt;- right click, where the #$%&amp;amp;** is my right click!!! - &lt;span style="color: rgb(255, 0, 0);"&gt;got it&lt;/span&gt;, you have to "ctrl+click"&lt;br /&gt;- mouse buttons (or lack of)&lt;br /&gt;- window resizing, why can I only resize from the bottom right corner??&lt;br /&gt;- lack of "window restore", after maximizing the window&lt;br /&gt;&lt;br /&gt;Right now I'm downloading Vista to install it on Fusion, we'll see how everything goes after I get familiar with it&lt;br /&gt;&lt;br /&gt;the "welcome to the family" is what they told us at the store when we bought it, will keep you updated about my &lt;strike&gt;rants&lt;/strike&gt; experiences&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7457225128208564633?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7457225128208564633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7457225128208564633' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7457225128208564633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7457225128208564633'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/06/welcome-to-family.html' title='Welcome to the family'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_cofcJplmJ2Q/SF70idYmBYI/AAAAAAAAAkI/QqY5TYL1YdY/s72-c/storage_bigimac20080429.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4417979291398383934</id><published>2008-05-14T18:32:00.000-07:00</published><updated>2008-05-14T18:37:47.941-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='social networks'/><title type='text'>Twitter is down, I blame http://www.tweetwheel.com</title><content type='html'>Twitter is down again, at this pace is going to be pretty hard for another popular social network to take twitter off the #1 position as the worst social network (uptime); you can check it out here&lt;br /&gt;&lt;h3 class="storytitle" id="post-288"&gt;&lt;a href="http://royal.pingdom.com/?p=288" rel="bookmark"&gt;Social network downtime Jan-Apr 2008&lt;/a&gt;&lt;/h3&gt;I blame it on &lt;a href="http://www.tweetwheel.com/"&gt;tweetwheel.com&lt;/a&gt;, &lt;a href="http://mashable.com/2008/05/14/twitter-is-down-i-blame-the-democrats/"&gt;who do you blame it on&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4417979291398383934?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mashable.com/2008/05/14/twitter-is-down-i-blame-the-democrats/' title='Twitter is down, I blame http://www.tweetwheel.com'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4417979291398383934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4417979291398383934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4417979291398383934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4417979291398383934'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/05/twitter-is-down-i-blame.html' title='Twitter is down, I blame http://www.tweetwheel.com'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8397280810839342027</id><published>2008-03-25T15:15:00.000-07:00</published><updated>2008-03-25T15:18:17.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>No anchor member was specified for recursive query *</title><content type='html'>I got this error while working on a &lt;a href="http://msdn2.microsoft.com/en-us/library/ms186243.aspx"&gt;recursive CTE query&lt;/a&gt;, I entered the error message in google/live and got zero results so I had to do some more study on CTEs and I thought I'd share the answer to this problem.&lt;br /&gt;&lt;br /&gt;From the MS documentation we read:&lt;br /&gt;The first invocation of the recursive CTE consists of one or more CTE_query_definitions joined by UNION ALL, UNION, EXCEPT, or INTERSECT operators. Because these query definitions form the base result set of the CTE structure, they are referred to as anchor members.&lt;br /&gt;CTE_query_definitions are considered anchor members unless they reference the CTE itself. &lt;span style="font-weight: bold;"&gt;All anchor-member query definitions must be positioned before the first recursive member definition, and a UNION ALL&lt;/span&gt; operator must be used to join the last anchor member with the first recursive member.&lt;br /&gt;&lt;br /&gt;Basically you cannot make a recursive call before you have defined the initial data set, let's see with an example:&lt;br /&gt;&lt;br /&gt;This would be &lt;span style="font-weight: bold;"&gt;valid&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;with example(col1, col2, iteration) as&lt;br /&gt;(&lt;br /&gt;--first, we defined the base set&lt;br /&gt;select col1, col2 from someTable where col1 is null&lt;br /&gt;union all&lt;br /&gt;--then we can make the recursive call&lt;br /&gt;select t1.col1, t1.col2&lt;br /&gt;from example t1 inner join SomeTable t2 on t1.Col2 = t2.Col1&lt;br /&gt;)&lt;br /&gt;select * from example&lt;br /&gt;&lt;br /&gt;and this would generate the error&lt;br /&gt;&lt;br /&gt;with example(col1, col2, iteration) as&lt;br /&gt;(&lt;br /&gt;select t1.col1, t1.col2&lt;br /&gt;from &lt;span style="font-weight: bold;"&gt;example t1&lt;/span&gt; inner join SomeOtherTable t2 on t1.Col2 = t2.Col1&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;--ERROR:we have not defined a base set before making the recursive call&lt;/span&gt;&lt;br /&gt;union all&lt;br /&gt;select col1, col2 from someTable where col1 is null&lt;br /&gt;)&lt;br /&gt;select * from example&lt;br /&gt;&lt;br /&gt;Hope this helps someone out there&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8397280810839342027?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8397280810839342027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8397280810839342027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8397280810839342027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8397280810839342027'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/03/no-anchor-member-was-specified-for.html' title='No anchor member was specified for recursive query *'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4952310818849620325</id><published>2008-03-13T22:24:00.000-07:00</published><updated>2008-04-25T12:40:33.454-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>Do you not want to exit? yes, no, cancel, FileNotFound</title><content type='html'>This article refers to &lt;span style="font-weight: bold;"&gt;UI best practices&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_cofcJplmJ2Q/SBIzNnxGR7I/AAAAAAAAAiA/SKRMJuoUjEw/s1600-h/clickoktocancel.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_cofcJplmJ2Q/SBIzNnxGR7I/AAAAAAAAAiA/SKRMJuoUjEw/s400/clickoktocancel.PNG" alt="" id="BLOGGER_PHOTO_ID_5193269629417834418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strike&gt;The title of the post is of course an exaggeration of asking negative questions but serves as a perfect example for what I'm trying to tell you&lt;/strike&gt;&lt;br /&gt;I thought the title of this post was an exageration, but after seeing that dialog...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don't ask the user negative questions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;More often than not you'll confuse that crap out of the poor user; &lt;span style="font-weight: bold;"&gt;users are already too scared of answering questions&lt;/span&gt; to still bother them with the opposite of what they want, it's a simple and basic rule, but I still see a lot of software (and developers) that use negative questions/options for data input.&lt;br /&gt;&lt;br /&gt;The most common use of negative options is probably &lt;span style="font-weight: bold;"&gt;disabled&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;just compare:&lt;br /&gt;Label X visible?&lt;br /&gt;Field X Enabled?&lt;br /&gt;&lt;br /&gt;To:&lt;br /&gt;Label X Invisible?&lt;br /&gt;Field X Disabled?&lt;br /&gt;&lt;br /&gt;That subtle change makes it much harder to answer the question correctly; so prefer &lt;span style="font-weight: bold;"&gt;Enabled &lt;/span&gt; over  &lt;span style="font-weight: bold;"&gt;Disabled&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Visible &lt;/span&gt; over  &lt;span style="font-weight: bold;"&gt;Invisible&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Active &lt;/span&gt; over &lt;span style="font-weight: bold;"&gt;Inactive&lt;/span&gt;, etc&lt;br /&gt;&lt;br /&gt;The same concept applies when naming variables or methods, in very few cases the negative is a better option, so just go with the safer option, it's easier to process, we are used to answer "positive questions" and the opposite usually causes us to think which makes things not intuitive&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4952310818849620325?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4952310818849620325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4952310818849620325' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4952310818849620325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4952310818849620325'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/03/do-you-not-want-to-exit-yes-no-cancel.html' title='Do you not want to exit? yes, no, cancel, FileNotFound'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_cofcJplmJ2Q/SBIzNnxGR7I/AAAAAAAAAiA/SKRMJuoUjEw/s72-c/clickoktocancel.PNG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-2865328000111540015</id><published>2008-01-24T10:17:00.000-08:00</published><updated>2008-01-24T11:05:05.228-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><title type='text'>Puzzle</title><content type='html'>&lt;a href="http://juztinwilzon.blogspot.com/"&gt;Justin &lt;/a&gt;came up with this problem as part of an actual project and it puzzled me the simplicity of the problem and definition of the solution in your head, yet the complexity of the expressiveness in code for the solution, maybe another language would be better suited to solve this problem?&lt;br /&gt;&lt;br /&gt;you have an array of the Doc class which has a DocIndex property, for which the property is &lt;span style="font-weight: bold;"&gt;not set, &lt;/span&gt;some elements of the array may be null&lt;br /&gt;&lt;br /&gt;//*** small version of the Doc class, just for the puzzle&lt;br /&gt;class Doc {&lt;br /&gt;     public int docIndex;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Doc[] docs = new Doc[] { new Doc(), new null, null, new Doc() };&lt;br /&gt;&lt;br /&gt;then you have an array of ints that represent the indexes that are already taken, e.g.&lt;br /&gt;&lt;br /&gt;new int[] { 2, 3, 5, 7, 9 }&lt;br /&gt;&lt;br /&gt;your job is to assign the indexes to the Doc[] that are not "taken" (exist in the array)&lt;br /&gt;&lt;br /&gt;so, for these examples:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_cofcJplmJ2Q/R5jYk4Ld9tI/AAAAAAAAAbE/O8UIUn9UpuY/s1600-h/puzzle1.PNG"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_cofcJplmJ2Q/R5jYk4Ld9tI/AAAAAAAAAbE/O8UIUn9UpuY/s400/puzzle1.PNG" alt="" id="BLOGGER_PHOTO_ID_5159111501220280018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The expected output would be:&lt;br /&gt;existing :&lt;br /&gt;2 3 5 7 9&lt;br /&gt;docs :&lt;br /&gt;0 1 4 6 8&lt;br /&gt;&lt;br /&gt;existing :&lt;br /&gt;0 1 2 3 4&lt;br /&gt;docs :&lt;br /&gt;5 6 7 8 9&lt;br /&gt;&lt;br /&gt;existing :&lt;br /&gt;5 6 7 8 9&lt;br /&gt;docs :&lt;br /&gt;0 1 2 3 4&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;what do you think of this problem for a code interview?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-2865328000111540015?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/2865328000111540015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=2865328000111540015' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2865328000111540015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2865328000111540015'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/01/puzzle.html' title='Puzzle'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_cofcJplmJ2Q/R5jYk4Ld9tI/AAAAAAAAAbE/O8UIUn9UpuY/s72-c/puzzle1.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7403298794460261834</id><published>2008-01-19T08:30:00.000-08:00</published><updated>2008-01-19T08:37:14.936-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>find all tables with column name *</title><content type='html'>Applies to: SQL&lt;br /&gt;Tested on: SQL 2005&lt;br /&gt;Keywords: SQL, column, all, tables&lt;br /&gt;&lt;br /&gt;I'm going to need this quite often...&lt;br /&gt;&lt;br /&gt;just execute these queries on the same database where the tables reside&lt;br /&gt;&lt;br /&gt;--get all table names for a specific column name&lt;br /&gt;SELECT o.name as TableName&lt;br /&gt;FROM sysobjects o inner join syscolumns c on o.id=c.id&lt;br /&gt;WHERE c.name = 'YOURCOLUMNNAMEHERE'&lt;br /&gt;&lt;br /&gt;you can also perform like queries&lt;br /&gt;&lt;br /&gt;--get all columns and table names for a 'like column' query&lt;br /&gt;SELECT c.[name] as ColumnName, o.name as TableName FROM sysobjects o inner join syscolumns c on o.id=c.id&lt;br /&gt;WHERE c.name like 'COLUMN%'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7403298794460261834?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7403298794460261834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7403298794460261834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7403298794460261834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7403298794460261834'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/01/find-all-tables-with-column-name.html' title='find all tables with column name *'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8155917388619870505</id><published>2008-01-10T08:19:00.001-08:00</published><updated>2008-01-10T08:19:48.873-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# vNext wishlist: comma less argument list</title><content type='html'>&lt;a href="http://notgartner.wordpress.com/2008/01/10/shortcut-formatting-a-feature-request-for-c-vnext/"&gt;Mitch Denny has a post&lt;/a&gt; about his feature request for the next version of C#&lt;br /&gt;&lt;br /&gt;he wants to have a &lt;span style="font-weight: bold;"&gt;shortcut to format strings&lt;/span&gt;, which would basically allow you to go from this&lt;br /&gt;string s=string.Format(”{0}{1}{2}”, a, b, c);&lt;br /&gt;to this:&lt;br /&gt;string s=@(”{0}{1}{2}”|a|b|c);&lt;br /&gt;&lt;br /&gt;I don't think I like the proposed alternative, all you are doing is replacing the "," with the "|" character and making the name shorter.&lt;br /&gt;You could always write your own little wrapper:&lt;br /&gt;//*** you could call it "f" if you wanted&lt;br /&gt;static string fmt(string format, params object[] parameters) {&lt;br /&gt;           return string.Format(format, parameters);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;and get&lt;br /&gt;string s=fmt("{0}{1}{2}",a,b,c);&lt;br /&gt;&lt;br /&gt;which is almost the same as the proposed solution&lt;br /&gt;&lt;br /&gt;another problem is that this proposal solves a &lt;span style="font-weight: bold;"&gt;very particular&lt;/span&gt; problem which is string formatting and we can get pretty much the same by writing our own little wrapper&lt;br /&gt;&lt;br /&gt;but anyway, it gave me an idea for my own feature request&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;comma-less arguments&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;string s=fmt("{0}{1}{2}" a b c);&lt;br /&gt;&lt;br /&gt;The scope of this change is much wider and actually "&lt;a href="http://en.wikipedia.org/wiki/Syntactic_sugar"&gt;desugars&lt;/a&gt;" the language&lt;br /&gt;&lt;br /&gt;now this change will most likely not happen, since this is a C family language and would take a significant change to the parser but this is my own wish/feature request so there you have it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8155917388619870505?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8155917388619870505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8155917388619870505' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8155917388619870505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8155917388619870505'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2008/01/c-vnext-wishlist-comma-less-argument.html' title='C# vNext wishlist: comma less argument list'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4577533233479320207</id><published>2007-11-19T11:20:00.000-08:00</published><updated>2007-11-19T11:22:32.020-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><title type='text'>VS2008 download complete</title><content type='html'>now burning &lt;a href="http://ebersys.blogspot.com/2007/04/burning-iso-images-to-cd-dvd-in-windows.html"&gt;using the RKTools&lt;/a&gt; (poor's man cd/dvd burner tools)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4577533233479320207?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4577533233479320207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4577533233479320207' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4577533233479320207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4577533233479320207'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/11/vs2008-download-complete.html' title='VS2008 download complete'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7356534778184682205</id><published>2007-11-19T09:30:00.000-08:00</published><updated>2007-11-19T09:37:32.904-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><title type='text'>downloading VS2008...</title><content type='html'>is not listed in the msdn subscriber downloads section yet, we got it through clicking "sign out", then we got to &lt;a href="http://msdn2.microsoft.com/en-us/subscriptions/default.aspx"&gt;this page&lt;/a&gt;, (you you have to use IE) and down at the bottom you'll see a list of top subscriber downloads, you click there on the "Visual Studio 2008 * Edition...", you sign in, and are taken directly to the download&lt;br /&gt;&lt;br /&gt;11% so far... have to go get some DVDs =o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7356534778184682205?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7356534778184682205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7356534778184682205' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7356534778184682205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7356534778184682205'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/11/downloading-vs2008.html' title='downloading VS2008...'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3143652085538570872</id><published>2007-10-21T11:33:00.000-07:00</published><updated>2007-10-21T11:42:21.773-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><title type='text'>This application has failed to start because js3250.dll was not found.</title><content type='html'>This has been a &lt;a href="http://www.google.com/search?source=ig&amp;amp;hl=en&amp;amp;rlz=&amp;amp;q=js3250.dll+was+not+found&amp;amp;btnG=Google+Search"&gt;long known issue with Firefox&lt;/a&gt;, and so far it doesn't seem like there is an answer, the error messages are:&lt;br /&gt;&lt;br /&gt;"This application has failed to start because js3250.dll was not found. Re-installing the application may fix the problem."&lt;br /&gt;"The Procedure entry point in JS_HasInstance could not be located in the dynamic link library js3250.dll"&lt;br /&gt;&lt;br /&gt;some suggest uninstalling/reinstalling Firefox, creating a new profile, removing FF completely before reinstalling, downloading a new js3250.dll file, deleting a trojan file ipv6monl.dll, etc; some solutions work for some people, some work for others, here's what worked for me&lt;br /&gt;&lt;br /&gt;In my case the problem only happened under a restricted (non-admin) user, I looked in the C:\Program Files\Mozilla Firefox folder and the js3250.dll file was there, so I ran the firefox.exe directly from there and it ran ok, then I replaced the shortcut I had to point to that location and it's working so far&lt;br /&gt;&lt;br /&gt;hopefully this will help some other soul&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3143652085538570872?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3143652085538570872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3143652085538570872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3143652085538570872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3143652085538570872'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/10/this-application-has-failed-to-start.html' title='This application has failed to start because js3250.dll was not found.'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6865684277424897761</id><published>2007-10-17T18:26:00.000-07:00</published><updated>2007-10-17T18:32:08.756-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>My predictions (about Leopard) for next week</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apple.com/mac/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_cofcJplmJ2Q/Rxa0bLSRz0I/AAAAAAAAAKo/2Or2k2Ci294/s320/leopard-product.jpg" alt="" id="BLOGGER_PHOTO_ID_5122480005159440194" border="0" /&gt;&lt;/a&gt;- Apple will have their biggest software/hardware (MacPro, MacBookPro &amp;amp; Leopard) sale in history.&lt;br /&gt;- There will be people camping out, waiting to be the first ones to get Leopard.&lt;br /&gt;- They will run out of stock in a few stores.&lt;br /&gt;- Adoption of Macs grows at least 25%.&lt;br /&gt;- Very soon we'll start seeing problems (and updates) in a few applications.&lt;br /&gt;- We'll also see quite a few (a lot?) security problems in the OS and applications for the rest of the year and there after actually&lt;br /&gt;&lt;br /&gt;...and I hope to contribute to the cause! =0), and I know quite a few others in the blogosphere will too&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6865684277424897761?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6865684277424897761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6865684277424897761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6865684277424897761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6865684277424897761'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/10/my-predictions-about-leopard-for-next.html' title='My predictions (about Leopard) for next week'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_cofcJplmJ2Q/Rxa0bLSRz0I/AAAAAAAAAKo/2Or2k2Ci294/s72-c/leopard-product.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-2405984449568112477</id><published>2007-10-15T20:42:00.001-07:00</published><updated>2007-10-16T00:38:57.190-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nullable-types'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>small refactoring for working with nullable types</title><content type='html'>&lt;small&gt;&lt;small&gt;the article applies to: C# 2.0&lt;/small&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;C# 2.0 brought a new feature: nullable types, you already know they are cool and have been using them for a while, however, how many times have you seen (or written) something like:&lt;br /&gt;&lt;br /&gt;//SomeClass.SomeObject.BoolProperty is of type bool?&lt;br /&gt;&lt;br /&gt;if  (SomeClass.SomeObject.BoolProperty.HasValue &amp;amp;&amp;amp; SomeClass.SomeObject.BoolProperty.Value)...&lt;br /&gt;//something&lt;br /&gt;&lt;br /&gt;because you &lt;span style="font-weight: bold;"&gt;can't&lt;/span&gt; write:&lt;br /&gt;if (SomeClass.SomeObject.BoolProperty)...&lt;br /&gt;&lt;br /&gt;That will &lt;span style="font-weight: bold;"&gt;not compile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The problem I have with that code is that it is &lt;span style="font-weight: bold;"&gt;repetitive&lt;/span&gt;, and is long, so what can we do?&lt;br /&gt;you can write this instead:&lt;br /&gt;&lt;br /&gt;if (SomeClass.SomeObject.BoolProperty??false)&lt;br /&gt;&lt;br /&gt;much better, isn't? if BoolProperty &lt;span style="font-weight: bold;"&gt;has a value and the value is true&lt;/span&gt;, it will return &lt;span style="font-weight: bold;"&gt;true&lt;/span&gt;, otherwise it will return &lt;span style="font-weight: bold;"&gt;false&lt;/span&gt;; now, of course you can use the same technique with other types:&lt;br /&gt;&lt;br /&gt;string firstName;&lt;br /&gt;public string FirstName { get{ return firstName??""; }}&lt;br /&gt;&lt;br /&gt;this code would ensure that FirstName will never be null (I'm pretty sure you've seen lots of "object reference not set blablabla" because of this)&lt;br /&gt;&lt;br /&gt;Other examples:&lt;br /&gt;int? result;&lt;br /&gt;...&lt;br /&gt;return result??-1; //if result was not set, return -1&lt;br /&gt;---------------------------------------------------&lt;br /&gt;bool? result;&lt;br /&gt;...&lt;br /&gt;return result??false;&lt;br /&gt;---------------------------------------------------&lt;br /&gt;&lt;br /&gt;That's it, hope you find it useful&lt;br /&gt;Remember that &lt;a href="http://www.codinghorror.com/blog/archives/000878.html"&gt;the best code, is no code at all&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2febersys.blogspot.com%2f2007%2f10%2fsmall-refactoring-for-working-with.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2febersys.blogspot.com%2f2007%2f10%2fsmall-refactoring-for-working-with.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-2405984449568112477?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/2405984449568112477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=2405984449568112477' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2405984449568112477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2405984449568112477'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/10/small-refactoring-for-working-with.html' title='small refactoring for working with nullable types'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-9150844961751823409</id><published>2007-09-27T19:01:00.000-07:00</published><updated>2007-09-27T19:06:49.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Get last day of month</title><content type='html'>applies to: C#, .NET&lt;br /&gt;In the spirit of sharing code, and I think this is the second time in this week that I need this function&lt;br /&gt;&lt;br /&gt;DateTime GetLastDayOf(DateTime date) {&lt;br /&gt;        return new DateTime(date.Year, date.Month, DateTime.DaysInMonth(date.Year, date.Month));&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-9150844961751823409?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/9150844961751823409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=9150844961751823409' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/9150844961751823409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/9150844961751823409'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/09/get-last-day-of-month.html' title='Get last day of month'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-936208599031669950</id><published>2007-09-06T00:15:00.000-07:00</published><updated>2007-09-06T00:30:45.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>google (reader) search, finally</title><content type='html'>woohoo! you can finally &lt;a style="font-weight: bold;" href="http://googlesystem.blogspot.com/2007/09/google-reader-adds-search.html"&gt;search on your google feeds&lt;/a&gt;, plus 2 little features&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;you can see 1000 items (instead of 100)&lt;/li&gt;&lt;li&gt;you can hide the sidebar using the mouse&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;You can search all your feeds, the feeds from a folder or the posts from a single feed. In fact, you can perform two searches: one for a folder or feed and another search for the posts that contain some keywords and are from the folder or feed you've previously selected. The results are sorted by date and it takes a couple of seconds for them to show up.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;This might not be available to all users right now, mine got updated on the fly (without the page being down or having to reset/reload at all), I saw the new features announced but mine was still on the old version, then started working on some code and went back to check my feeds and I had the new version&lt;br /&gt;&lt;br /&gt;so when are you going to let me &lt;a href="http://ebersys.blogspot.com/2007/01/suggestion-for-google-reader.html"&gt;highlight stuff&lt;/a&gt;?&lt;br /&gt;that would be a killer feature&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-936208599031669950?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googlesystem.blogspot.com/2007/09/google-reader-adds-search.html' title='google (reader) search, finally'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/936208599031669950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=936208599031669950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/936208599031669950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/936208599031669950'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/09/google-reader-search-finally.html' title='google (reader) search, finally'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4577671956838309514</id><published>2007-08-10T19:27:00.000-07:00</published><updated>2007-08-10T19:31:29.721-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>I don't need any help!</title><content type='html'>But I do need my F2 key to rename stuff J&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_cofcJplmJ2Q/Rr0e2LOP4oI/AAAAAAAAAEU/Rf7dWPTgvxA/s1600-h/nohelp.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_cofcJplmJ2Q/Rr0e2LOP4oI/AAAAAAAAAEU/Rf7dWPTgvxA/s400/nohelp.JPG" alt="" id="BLOGGER_PHOTO_ID_5097264269327590018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I had to use this keyboard because my pc broke, long story short, made me realize how much I use the keyboard&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4577671956838309514?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4577671956838309514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4577671956838309514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4577671956838309514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4577671956838309514'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/08/i-dont-need-any-help.html' title='I don&apos;t need any help!'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_cofcJplmJ2Q/Rr0e2LOP4oI/AAAAAAAAAEU/Rf7dWPTgvxA/s72-c/nohelp.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7000075447617678719</id><published>2007-07-25T00:07:00.000-07:00</published><updated>2007-07-25T00:17:43.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>is my password too complex?</title><content type='html'>&lt;a href="http://www.hanselman.com/blog/PasswordShouldNotContainAnySpecialCharactersSymbolsOrSpaces.aspx"&gt;this post from Scott&lt;/a&gt; reminded of a few days ago, when I changed my msn (live?) password and the next day I wasn't able to log back in because the hotmail (msn/live) passwords only allow a length of 16 characters and for some reason I was double typing 2 characters without noticing, after a while I figured it out and realized that I am using the maximum length allowed for passwords, and of course I use upper case, lower case, numbers and symbols... and of course I have categories of sites and the passwords I chose for them, depending on the importance and the security they implement&lt;br /&gt;&lt;br /&gt;no wonder a number of people have looked at me like I'm some weirdo when they've seen me typing my passwords... mmm...&lt;br /&gt;&lt;br /&gt;am I a freak, or is this normal among geeks? maybe... but &lt;a href="http://www.google.com/reader/shared/user/00321597721557820145/label/hacking"&gt;there is no security&lt;/a&gt; in this world, so all we can do is raise the bar a bit&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7000075447617678719?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7000075447617678719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7000075447617678719' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7000075447617678719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7000075447617678719'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/07/is-my-password-too-complex.html' title='is my password too complex?'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8633510604303739440</id><published>2007-07-24T22:55:00.000-07:00</published><updated>2007-07-25T00:03:35.742-07:00</updated><title type='text'>blog.Resume();</title><content type='html'>wow, it has been over a month since my last post; at work we went live with our first customer and it got intense, we had some critical things that needed to be fixed for the particular environment, and we did it quickly and successfully, I am part of a great team and we're pulling it out together.&lt;br /&gt;UAT anyone?... better not talk about it, it's almost back to normal now, we are finding new features that need to be developed, but things should slow down and this blog will continue it's "regular" operation, at the personal level I've had some rough situations lately as well, but is also pretty much over; I've been so busy that I even missed &lt;a href="http://ebersys.blogspot.com/2006/07/10-years-ago-today.html"&gt;my 11th birthday&lt;/a&gt; at the company I currently work for.&lt;br /&gt;&lt;br /&gt;So meanwhile I still need to catch up with my blog reading, you can see &lt;a href="http://www.google.com/reader/shared/user/00321597721557820145/state/com.google/starred"&gt;some of the stuff I have been reading&lt;/a&gt; as I catch up.&lt;br /&gt;&lt;br /&gt;I &lt;a href="http://ebersys.blogspot.com/2007/04/windowsvistadowngrade.html"&gt;did not get an iPhone&lt;/a&gt;, nor am I planning on getting one anytime soon, but I do hope to &lt;a href="http://ebersys.blogspot.com/2007/03/dude-im-not-getting-dell-im-getting-mac.html"&gt;get a Mac&lt;/a&gt; when they release Leopard in October, I do have a feeling that &lt;span style="font-weight: bold;"&gt;we will start seeing a lot of vulnerabilities in the Mac OS&lt;/span&gt; soon though (just remember you read the prediction here J)... just like &lt;a href="http://www.google.com/reader/shared/user/00321597721557820145/label/firefox"&gt;Firefox is getting hammered&lt;/a&gt; right now (&lt;span style="font-weight: bold;"&gt;you should actually &lt;a href="http://www.google.com/reader/shared/user/00321597721557820145/label/firefox"&gt;go read this now&lt;/a&gt;, it's pretty bad&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;'til next time&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8633510604303739440?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8633510604303739440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8633510604303739440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8633510604303739440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8633510604303739440'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/07/blogresume.html' title='blog.Resume();'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8456280076698301405</id><published>2007-06-15T21:47:00.001-07:00</published><updated>2007-06-15T21:47:06.291-07:00</updated><title type='text'>concatenating strings and nulls in SQL</title><content type='html'>&lt;p&gt;let's start with a table from scratch&lt;/p&gt; &lt;p&gt;create table test(&lt;br&gt;firstname varchar(10) null,&lt;br&gt;lastname varchar(10) null&lt;br&gt;) &lt;p&gt;we then insert some data (sorry about people with these names)&lt;/p&gt; &lt;p&gt;insert into test values ('john', 'smith')&lt;br&gt;insert into test values ('john', 'doe')&lt;br&gt;insert into test values (null, 'perez') &lt;p&gt;we're ready to concatenate some strings:&lt;/p&gt; &lt;p&gt;select lastname + ' ' + firstname&lt;br&gt;from test &lt;p&gt;but we get: &lt;p&gt;1 smith john&lt;br&gt;2 doe john&lt;br&gt;3 NULL &lt;p&gt;what happened? &lt;p&gt;&lt;strong&gt;in SQL, when you concatenate strings, if one of the strings is null, the result of the concatenation is null&lt;/strong&gt;. &lt;p&gt;At first you might think this is bad, but &lt;strong&gt;it can actually help you more than it hurts&lt;/strong&gt;, you just have to know the trick, so what do we do to fix the query? &lt;p&gt;select isnull(lastname, '') + ' ' + isnull(firstname, '')&lt;br&gt;from test &lt;p&gt;now we get: &lt;p&gt;1 smith john&lt;br&gt;2 doe john&lt;br&gt;3 perez  &lt;p&gt;ok, but how is that helpful?&lt;/p&gt; &lt;p&gt;well, let's suppose you want this format:&lt;/p&gt; &lt;p&gt;lastname, first name&lt;/p&gt; &lt;p&gt;but only if there is a first name, if&amp;nbsp;the first name is null&amp;nbsp;you just want the last name with no comma&lt;/p&gt; &lt;p&gt;let's say there is a rule on the database that the last name cannot be null, so we can write the query as:&lt;/p&gt; &lt;p&gt;select lastname + isnull(', '+firstname, '')&lt;br&gt;from test &lt;p&gt;and we get:&lt;/p&gt; &lt;p&gt;1 smith, john&lt;br&gt;2 doe, john&lt;br&gt;3 perez&lt;/p&gt; &lt;p&gt;see, I concatenated the comma with the first name, and if the first name is null, the the comma gets eliminated as well&lt;/p&gt; &lt;p&gt;Just one more trick for your bag of tricks&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8456280076698301405?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8456280076698301405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8456280076698301405' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8456280076698301405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8456280076698301405'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/concatenating-strings-and-nulls-in-sql.html' title='concatenating strings and nulls in SQL'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-196589797535310</id><published>2007-06-12T22:50:00.001-07:00</published><updated>2007-06-12T22:50:34.050-07:00</updated><title type='text'>C# quiz #2: objects, strings, null</title><content type='html'>&lt;p&gt;this is a continuation from the &lt;a href="http://ebersys.blogspot.com/2007/06/c-quiz-overloads-strings-nullable-types.html"&gt;previous quiz&lt;/a&gt;; given this class definition:&lt;/p&gt; &lt;p&gt;public class Foo {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Bar(object x) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("object x was called");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Bar(string x) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("string x was called");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}  &lt;p&gt;what will be output to the console&amp;nbsp;with the following code:  &lt;p&gt;Foo f = new Foo();&lt;br&gt;try {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.Bar(null);&lt;br&gt;}&lt;br&gt;catch {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("no method was called");&lt;br&gt;}&lt;/p&gt; &lt;p&gt;Extra points for explaining why&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-196589797535310?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/196589797535310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=196589797535310' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/196589797535310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/196589797535310'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/c-quiz-2-objects-strings-null.html' title='C# quiz #2: objects, strings, null'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1052734157427085921</id><published>2007-06-11T08:34:00.000-07:00</published><updated>2007-06-11T08:36:50.151-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>how to tell google to NOT load the country specific page</title><content type='html'>&lt;a href="http://scobleizer.com/2007/06/11/google-and-other-sites-sucks-for-travelers/"&gt;Scoble is having this issue right now&lt;/a&gt;, I've had it in the past and forgotten to post this here, google tries to play smart and load the country specific page, so if you are in Mexico and you go to google.com, you'll get google.com.mx instead, to fix it just go to this url&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/ncr"&gt;google.com/ncr&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1052734157427085921?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1052734157427085921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1052734157427085921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1052734157427085921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1052734157427085921'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/how-to-tell-google-to-not-load-country.html' title='how to tell google to NOT load the country specific page'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8271308230477056173</id><published>2007-06-10T12:21:00.001-07:00</published><updated>2007-06-16T08:50:22.262-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><title type='text'>Cheap tricks to get a more popular blog</title><content type='html'>There are a few tricks that I have seen used more and more lately to try to get more attention to blogs&lt;br /&gt;&lt;br /&gt;1) use adult content related words to refer to some technical topic (but not necessarily), some recent examples of such use recently:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000874.html"&gt;Computer Hardware Pornography&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.hanselman.com/blog/ProgrammerIntentOrWhatYoureNotGettingAboutRubyAndWhyItsTheTits.aspx"&gt;...What you're not getting about Ruby and why it's the tits&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msmvps.com/blogs/williamryan/archive/2007/06/10/quot-as-a-gay-man-and-a-gay-journalist-quot.aspx"&gt;"As a gay man and a gay journalist"&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://elladodelmal.blogspot.com/2007/05/la-mierda-del-mail.html"&gt;"..Cierra la puta boca, gilipollas, Siesta, Fiesta, Cerveza, Real Madrid, Raúl, Hijo de Puta y Mierda."&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;you are likely to get some "google love" for sure with those keywords&lt;br /&gt;&lt;br /&gt;2) get in a debate with some "big guy", this technique is getting used more and more lately, we have&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000846.html"&gt;Jeff Atwood&lt;/a&gt; vs &lt;a href="http://www.charlespetzold.com/blog/2007/04/270433.html"&gt;Petzold's&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ayende.com/Blog/archive/2007/05/29/Re-The-ORM-Smackdown.aspx"&gt;Ayende&lt;/a&gt; vs &lt;a href="http://blogs.tedneward.com/2007/05/28/The+ORM+Smackdown.aspx"&gt;Ted Neward's&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ayende.com/Blog/archive/2007/05/26/Sam-Gentile-is-angry-with-me.aspx"&gt;Ayende &lt;/a&gt;vs &lt;a href="http://codebetter.com/blogs/sam.gentile/archive/2007/05/25/on-cab-and-p-and-g.aspx"&gt;Sam &lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.wekeroad.com/archive/2007/06/12/orm-all-that-scratchins-makin-me-itch.aspx"&gt;Rob Conery&lt;/a&gt; vs &lt;a href="http://ayende.com/Blog/archive/2007/06/13/Correct-then-performant.aspx"&gt;Ayende&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/nickmalik/archive/2007/06/15/tools-for-mort.aspx"&gt;Nick&lt;/a&gt; vs &lt;a href="http://codebetter.com/blogs/sam.gentile/default.aspx"&gt;Sam&lt;/a&gt;&lt;br /&gt;heck, Ayende vs the rest of the world, J&lt;br /&gt;&lt;br /&gt;etc, all you have to do is talk trash about something a guy posted on his blog, or about some of the work (usually open source) the guy works on, if your blog is not very popular, make sure to leave a comment on the other blog so the guy notices you&lt;br /&gt;&lt;br /&gt;3) &lt;a href="http://scobleizer.com/2006/12/31/more-analysis-of-my-blog/"&gt;ask for link love&lt;/a&gt;, this specific case actually has a merit, this should be listed under "how to get a popular blog in 10 days", but the idea is the same&lt;br /&gt;&lt;br /&gt;sigh... boring stuff, but I guess it works if all you want is to get more people to your blog (inflate your numbers), even if what they find is not exactly what they were looking for (first case)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8271308230477056173?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8271308230477056173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8271308230477056173' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8271308230477056173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8271308230477056173'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/cheap-tricks-to-get-more-popular-blog_10.html' title='Cheap tricks to get a more popular blog'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-335716896701862601</id><published>2007-06-09T12:23:00.000-07:00</published><updated>2007-06-09T13:10:34.536-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='practices'/><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><title type='text'>programming practices: never say never</title><content type='html'>Jan Bannister wrote this post: &lt;a href="http://londoncoder.wordpress.com/2007/06/09/bool-considered-harmful/"&gt;bool considered harmful&lt;/a&gt;, and writes:&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Never Use Bool&lt;/strong&gt;, or more specifically never user bool as a parameter. It is the most foolish of datatypes and conveys the smallest amount of information possible.&lt;/blockquote&gt;I can disagree with that in a number of ways, but the culprit was the "never use bool as a parameter", the biggest problems I see&lt;br /&gt;- you would end up with hundreds of enums to replace your bool parameters, and then&lt;br /&gt;- where do you put all those enums?&lt;br /&gt;- at some point you would probably duplicate some of the required functionality&lt;br /&gt;&lt;br /&gt;so, what do we do, bool is still "harmful", but &lt;span style="font-weight: bold;"&gt;not always&lt;/span&gt;, that's the key, I can think of at least 2 situations where you don't necessarily need to replace your bools with enums&lt;br /&gt;- private methods: they are (&lt;a href="http://ebersys.blogspot.com/2006/10/how-to-execute-anothers-class-private.html"&gt;hopefully&lt;/a&gt;) only used in that class... and the method is not that big, and the class is not that big, and you added comments for the method/parameters... sigh...&lt;br /&gt;- functions with a single parameter that is just an on/off thing, e.g. SetVisible(true)&lt;br /&gt;&lt;br /&gt;there, now it doesn't sound that bad, bottom line, never say never, don't abuse any technique&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-335716896701862601?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/335716896701862601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=335716896701862601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/335716896701862601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/335716896701862601'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/programming-practices-never-say-never.html' title='programming practices: never say never'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1312753458012307245</id><published>2007-06-09T10:22:00.001-07:00</published><updated>2007-06-12T22:53:35.052-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# Quiz #1: overloads, strings, nullable types</title><content type='html'>&lt;span style="font-size:78%;"&gt;*This is also a test of the latest &lt;/span&gt;&lt;a target="_blank" href="http://windowslivewriter.spaces.live.com/"&gt;&lt;span style="font-size:78%;"&gt;Windows Live Writer&lt;/span&gt;&lt;/a&gt; &lt;p&gt;given this class definition:&lt;/p&gt; &lt;p&gt;public class Foo {&lt;br /&gt;  public void Bar(string x) {&lt;br /&gt;    Console.WriteLine("string x was called");&lt;br /&gt;  }&lt;br /&gt;  public void Bar(int? x) {&lt;br /&gt;    Console.WriteLine("int? x was called");&lt;br /&gt;  }&lt;br /&gt;} &lt;/p&gt;&lt;p&gt;what will be output to the console with the following code: &lt;/p&gt;&lt;p&gt;Foo f = new Foo();&lt;br /&gt;try {&lt;br /&gt;  f.Bar(null);&lt;br /&gt;}&lt;br /&gt;catch {&lt;br /&gt;  Console.WriteLine("no method was called");&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;*update: I messed up the code while trying to upload another post,  I recovered the original  post from my RSS feed&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1312753458012307245?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1312753458012307245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1312753458012307245' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1312753458012307245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1312753458012307245'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/c-quiz-overloads-strings-nullable-types.html' title='C# Quiz #1: overloads, strings, nullable types'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6699149368459544835</id><published>2007-06-06T12:53:00.000-07:00</published><updated>2007-06-06T14:11:53.858-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='IE7'/><category scheme='http://www.blogger.com/atom/ns#' term='activex'/><title type='text'>Filemon saves the day once again</title><content type='html'>&lt;small&gt;I'm back, I had a head  injury during a soccer game, I was very dizzy for over a week, but it's all good now&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;This time it was an ActiveX control (we're &lt;a href="http://ebersys.blogspot.com/2007/05/net-user-control-not-loading-under.html"&gt;still fighting&lt;/a&gt; with ActiveX controls), I thought I had done everything I needed to do to get it up and working, but it would simply not load, so I loaded &lt;a href="http://www.microsoft.com/technet/sysinternals/FileAndDisk/Filemon.mspx"&gt;Filemon &lt;/a&gt;to see if it was even referencing the dll file, and it found two references, one to the GAC folder, and one to the program files\Internet Explorer, but no reference to where we actually copied the dll.&lt;br /&gt;&lt;br /&gt;So I decided to copy the dll to where IE was looking for it, I copied the file to&lt;br /&gt;c:\program files\Internet Explorer\&lt;br /&gt;and everything started working wonderfully&lt;br /&gt;&lt;br /&gt;I guess I could've added it to the GAC too, but I was very frustrated at that point since I thought I had tried that before and still wasn't working.&lt;br /&gt;&lt;br /&gt;anyway... I guess that's another trick you can try when you have tried everything else deploying your ActiveX control, &lt;span style="font-weight: bold;"&gt;use filemon to see where IE is actually trying to load your dll from, and copy it there&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and if you still don't know what filemon is, &lt;a href="http://ebersys.blogspot.com/search?q=filemon"&gt;you owe it to your self&lt;/a&gt;, it's an amazing tool, it will save you many hours of headache (just not the ones caused by injuries during a soccer game J)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6699149368459544835?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6699149368459544835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6699149368459544835' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6699149368459544835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6699149368459544835'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/06/filemon-saves-day-once-again.html' title='Filemon saves the day once again'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4204681065435659215</id><published>2007-05-22T21:47:00.000-07:00</published><updated>2007-05-22T21:52:32.362-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>how to: fix google reader when it reports new items that we cannot see</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_cofcJplmJ2Q/RlPGVEQq6OI/AAAAAAAAADI/mJoLRhc3ayo/s1600-h/googlereaderbug.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_cofcJplmJ2Q/RlPGVEQq6OI/AAAAAAAAADI/mJoLRhc3ayo/s400/googlereaderbug.JPG" alt="" id="BLOGGER_PHOTO_ID_5067612070945155298" border="0"&gt;&lt;/a&gt;&lt;br /&gt;every once in a while (happened to me twice today) google reader (for different reasons) reports that we have new (unread) items, but we cannot see them (because they don't really exist), to fix this problem simply&lt;br /&gt;- click "all items"&lt;br /&gt;- click "mark all as read"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4204681065435659215?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4204681065435659215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4204681065435659215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4204681065435659215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4204681065435659215'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/how-to-fix-google-reader-when-it.html' title='how to: fix google reader when it reports new items that we cannot see'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_cofcJplmJ2Q/RlPGVEQq6OI/AAAAAAAAADI/mJoLRhc3ayo/s72-c/googlereaderbug.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8187389792241098796</id><published>2007-05-22T21:28:00.000-07:00</published><updated>2007-05-23T23:04:02.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>GPS mobile phone tracking system, track any cellphone, anywhere</title><content type='html'>wow... &lt;a href="http://www.sat-gps-locate.com/english/index.html"&gt;Found this&lt;/a&gt; via &lt;a href="http://aldoara.blogspot.com/2007/05/mobile-phone-gps-tracking-technology.html"&gt;Aldoara&lt;/a&gt;, you thought cell phone tracking was only possible in the movies?... &lt;a href="http://www.sat-gps-locate.com/english/index.html"&gt;go check it out&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8187389792241098796?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8187389792241098796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8187389792241098796' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8187389792241098796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8187389792241098796'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/gsm-mobile-phone-tracking-system-track.html' title='GPS mobile phone tracking system, track any cellphone, anywhere'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-840891781127246012</id><published>2007-05-18T11:30:00.000-07:00</published><updated>2007-05-18T16:00:22.882-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='activex'/><title type='text'>.NET user control not loading under https</title><content type='html'>keywords: .net user control, activex, ocx, IE7, IE, https, http, secure&lt;br /&gt;&lt;br /&gt;&lt;a href="http://juztinwilzon.blogspot.com/"&gt;Justin&lt;/a&gt; and I just had a heck of a week fighting ActiveX controls developed using C# in .NET 2.0, so we will be blogging about some of the issues that we found and their solutions (so we can remember later), the first one is about &lt;span style="font-weight: bold;"&gt;ActiveX controls running under https&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;We developed our control, everything was fine, one of our clients wanted to try that over a secure site, so we said no problem... until we tried, and tried, and tried, and nothing worked, the control would just not load.&lt;br /&gt;&lt;br /&gt;the solution ended up being really stupid (as is usually the case); when you include your control, you usually do something like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;object id="someId" classid="SomeDll#Namespace.ClassName"&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;that's the way you'll find it in all the examples around the web, and that will work just fine (once you get past all the other stuff that is required to make it work) under &lt;span style="font-weight: bold;"&gt;http&lt;/span&gt;, but when you move that to &lt;span style="font-weight: bold;"&gt;https&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;it will simply not work&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;the solution?&lt;br /&gt;&lt;br /&gt;when you create your control, you assign a guid to it&lt;br /&gt;&lt;br /&gt;[Guid("CAE67AEA-F489-4e52-956B-CCC774F40A3A")]&lt;br /&gt;[ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(IControlEvents))] // --Expose events&lt;br /&gt;[ComVisible(true)]&lt;br /&gt;public partial class MyControl : UserControl...&lt;br /&gt;&lt;br /&gt;something like that...&lt;br /&gt;well, to make it work on https, you simply have to use that GUID, not the class name, so you would just write this on your html code&lt;br /&gt;&lt;br /&gt;&amp;lt;object id="someId" classid="clsid:CAE67AEA-F489-4e52-956B-CCC774F40A3A"&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;done, hope we saved you hours of headache&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-840891781127246012?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/840891781127246012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=840891781127246012' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/840891781127246012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/840891781127246012'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/net-user-control-not-loading-under.html' title='.NET user control not loading under https'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-2589366781603592443</id><published>2007-05-17T09:15:00.000-07:00</published><updated>2007-05-17T09:17:15.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>(humor) I'm a programmer...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_cofcJplmJ2Q/Rkx_z0Qq6MI/AAAAAAAAAC8/sYsFCAmUzcI/s1600-h/programmer.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_cofcJplmJ2Q/Rkx_z0Qq6MI/AAAAAAAAAC8/sYsFCAmUzcI/s400/programmer.JPG" alt="" id="BLOGGER_PHOTO_ID_5065564209063585986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;a little humor&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-2589366781603592443?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/2589366781603592443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=2589366781603592443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2589366781603592443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2589366781603592443'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/humor-im-programmer.html' title='(humor) I&apos;m a programmer...'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_cofcJplmJ2Q/Rkx_z0Qq6MI/AAAAAAAAAC8/sYsFCAmUzcI/s72-c/programmer.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4266589639429433907</id><published>2007-05-15T21:47:00.000-07:00</published><updated>2007-05-15T22:03:26.246-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>one hour of timezone difference doesn't always mean one hour of time difference</title><content type='html'>this is one of those "why didn't I know that?" stupid little things...&lt;br /&gt;&lt;br /&gt;this caught me off guard as I was traveling, I went to a city that I knew was under the next timezone, so I adjusted my cellphone, but the time didn't change... I got confused for a little bit, then started changing to other timezones just to realize this fact&lt;br /&gt;&lt;br /&gt;after that I verified the same behavior on my PC, if you still don't believe it you can try right now, switch your pc to different timezones, and you'll see the time changing unexpectedly&lt;br /&gt;&lt;br /&gt;e.g. the actual time is the same at&lt;br /&gt;(GMT-07:00) Mountain Time (US &amp;amp; Canada) and&lt;br /&gt;(GMT-06:00) Central America&lt;br /&gt;&lt;br /&gt;I know of at least one application where this actually causes a problem...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4266589639429433907?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4266589639429433907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4266589639429433907' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4266589639429433907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4266589639429433907'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/one-hour-of-timezone-difference-doesnt.html' title='one hour of timezone difference doesn&apos;t always mean one hour of time difference'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1267783114682495224</id><published>2007-05-15T09:43:00.000-07:00</published><updated>2007-05-15T09:45:55.358-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>how to: easy way to see the methods and properties exposed in a TLB file</title><content type='html'>...just drag and drop the file in Visual Studio (at least in VS2005 it works), it will add it to the object browser and you can expand it to see it's methods and properties full definition&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1267783114682495224?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1267783114682495224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1267783114682495224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1267783114682495224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1267783114682495224'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/how-to-easy-way-to-see-methods-and.html' title='how to: easy way to see the methods and properties exposed in a TLB file'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-1872137398555089713</id><published>2007-05-09T09:51:00.000-07:00</published><updated>2007-05-09T09:57:10.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>igoogle broken... again</title><content type='html'>a few days ago I &lt;a href="http://www.digg.com/software/Google_Home_page_gets_less_personal"&gt;saw that the google personalized pages&lt;/a&gt; (&lt;a href="http://googleblog.blogspot.com/2007/04/youve-got-gadget-mail.html"&gt;now called IGoogle&lt;/a&gt;) was broken, but mine was fine, so I laughed at all of those souls (just kidding), but today &lt;span style="font-weight: bold;"&gt;my &lt;/span&gt;igoogle is broken! aaarggh, nothing works, I can't minimize/close any gadgets, the gadgets are there but don't display anything, I can add new ones but they don't work&lt;br /&gt;&lt;br /&gt;sigh...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-1872137398555089713?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/1872137398555089713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=1872137398555089713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1872137398555089713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/1872137398555089713'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/igoogle-broken-again.html' title='igoogle broken... again'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4027702900840586063</id><published>2007-05-09T08:29:00.000-07:00</published><updated>2007-05-09T08:33:37.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='free'/><title type='text'>fix your mom's computer for mother's day</title><content type='html'>I thought this would be all over the blogosphere by now, but is not, and I thought it was a good idea, this comes from Joel Spolsky&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;This Sunday is Mother's Day. Why not fix your mom's computer? &lt;p&gt;You know: remove the spyware and adware, install &lt;a href="http://www.mozilla.org/firefox"&gt;Firefox&lt;/a&gt;, and make it so that weird toolbar toast doesn't pop up every 15 seconds.&lt;/p&gt; &lt;p style="font-weight: bold;"&gt;To make it easy, this Sunday we're making &lt;a href="https://www.copilot.com/"&gt;Fog Creek Copilot&lt;/a&gt; absolutely free.&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;for those of you who may not know, copilot is software that allows you to connect remotely to any computer, you don't have to worry about firewalls, etc, it just works&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.joelonsoftware.com/items/2007/05/08.html"&gt;check it out&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4027702900840586063?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.joelonsoftware.com/items/2007/05/08.html' title='fix your mom&apos;s computer for mother&apos;s day'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4027702900840586063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4027702900840586063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4027702900840586063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4027702900840586063'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/05/fix-your-moms-computer-for-mothers-day.html' title='fix your mom&apos;s computer for mother&apos;s day'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4182616048219559037</id><published>2007-04-30T15:23:00.000-07:00</published><updated>2007-04-30T15:29:07.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE7'/><title type='text'>ActiveX control to load PNG files in IE7?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_cofcJplmJ2Q/RjZtI0MXUFI/AAAAAAAAACs/FnHoD8JV6uE/s1600-h/pnginIE7.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_cofcJplmJ2Q/RjZtI0MXUFI/AAAAAAAAACs/FnHoD8JV6uE/s400/pnginIE7.PNG" alt="" id="BLOGGER_PHOTO_ID_5059351229614215250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I just saved this &lt;a href="http://download.microsoft.com/download/f/2/e/f2ecc2ad-c498-4538-8a2c-15eb157c00a7/SL_Map_FinalNET.png"&gt;SilverLight&lt;/a&gt; poster to my local machine and tried opening it with IE7; I was greeted with this message. I was surprised but I clicked on it to activate it, only to get this error message:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_cofcJplmJ2Q/RjZtbUMXUGI/AAAAAAAAAC0/3r1NZCd1QkA/s1600-h/pnginIE7_2.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_cofcJplmJ2Q/RjZtbUMXUGI/AAAAAAAAAC0/3r1NZCd1QkA/s400/pnginIE7_2.PNG" alt="" id="BLOGGER_PHOTO_ID_5059351547441795170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;WOOT!?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4182616048219559037?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4182616048219559037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4182616048219559037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4182616048219559037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4182616048219559037'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/activex-control-to-load-png-files-in.html' title='ActiveX control to load PNG files in IE7?'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_cofcJplmJ2Q/RjZtI0MXUFI/AAAAAAAAACs/FnHoD8JV6uE/s72-c/pnginIE7.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7639917813794106189</id><published>2007-04-29T11:47:00.000-07:00</published><updated>2007-04-29T11:59:33.521-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='l'/><title type='text'>Windows.Vista.Downgrade();</title><content type='html'>my main reason to downgrade my laptop OS is because my &lt;a href="http://business.cingular.com/businesscenter/8125/index.jsp"&gt;Cingular 8125&lt;/a&gt; won't work as a modem in Vista, and I really can't live without that now, &lt;a href="http://www.google.com/search?hl=en&amp;q=iphone+as+a+modem&amp;amp;btnG=Google+Search"&gt;which is the same reason&lt;/a&gt; (or so the rumors say) I won't be getting an iPhone when it comes out, being able to use my cell phone as a modem and have internet "anywhere on the road" (at least in USA) has been really great, I can't go back to not have that&lt;br /&gt;&lt;br /&gt;other reasons are the many problems with &lt;a href="http://ebersys.blogspot.com/2007/02/vs2005-vs2007-orcas-xna-linq-wpf-in.html"&gt;VS2005 and Orcas on Vista&lt;/a&gt;, I really &lt;a href="http://ebersys.blogspot.com/2007/04/hello-world-from-fsharp.html"&gt;want to play with F#&lt;/a&gt; and don't want to deal with a beta product in a buggy IDE, yesterday &lt;a href="http://juztinwilzon.blogspot.com/"&gt;Justin&lt;/a&gt; and I were playing with F#, expect posts on the subject soon&lt;br /&gt;&lt;br /&gt;downgrading has been painful because XP didn't recognize a lot of the hardware, whereas in Vista everything just worked, for now I'm still keeping Vista on my PC though... XP feels old, but it works&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7639917813794106189?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7639917813794106189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7639917813794106189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7639917813794106189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7639917813794106189'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/windowsvistadowngrade.html' title='Windows.Vista.Downgrade();'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3210278564610286979</id><published>2007-04-28T18:22:00.000-07:00</published><updated>2007-04-28T18:28:55.489-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>burning iso images to cd / dvd in Windows Vista</title><content type='html'>for my own reference and to help anyone out there looking for this&lt;br /&gt;took me a while to find it because I was looking for "burndvd"... arrgh&lt;br /&gt;keywords: cdburn, dvdburn, burn, rktools&lt;br /&gt;&lt;br /&gt;you can use the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;amp;displaylang=en"&gt;Windows Server 2003 Resource Kit Tools&lt;/a&gt;, after you install this kit, you will get a couple command line utilities under c:\program files\windows resource kits\tools\&lt;br /&gt;&lt;br /&gt;cdburn.exe&lt;br /&gt;dvdburn.exe&lt;br /&gt;&lt;br /&gt;usage:&lt;br /&gt;&lt;br /&gt;cdburn &lt;drive&gt; image&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3210278564610286979?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3210278564610286979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3210278564610286979' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3210278564610286979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3210278564610286979'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/burning-iso-images-to-cd-dvd-in-windows.html' title='burning iso images to cd / dvd in Windows Vista'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-907811535561681301</id><published>2007-04-26T18:14:00.000-07:00</published><updated>2007-04-27T08:25:14.156-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>yahoo mail acting funny...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_cofcJplmJ2Q/RjFO60MXUEI/AAAAAAAAACk/Hkh8Mqbi1_E/s1600-h/yahoomailfunny.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_cofcJplmJ2Q/RjFO60MXUEI/AAAAAAAAACk/Hkh8Mqbi1_E/s400/yahoomailfunny.GIF" alt="" id="BLOGGER_PHOTO_ID_5057910628863660098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sigh...&lt;br /&gt;&lt;br /&gt;...the attach files button doesn't work either&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-907811535561681301?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/907811535561681301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=907811535561681301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/907811535561681301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/907811535561681301'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/yahoo-mail-acting-funny.html' title='yahoo mail acting funny...'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_cofcJplmJ2Q/RjFO60MXUEI/AAAAAAAAACk/Hkh8Mqbi1_E/s72-c/yahoomailfunny.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-983765588025985454</id><published>2007-04-26T16:47:00.000-07:00</published><updated>2007-04-26T16:50:07.980-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle sucks, part 2 of 1000: setting variables</title><content type='html'>you don't use SET to set variables values&lt;br /&gt;SET variable_name = value;&lt;br /&gt;&lt;br /&gt;this will give you a "ORA-00922: missing or invalid option"&lt;br /&gt;&lt;br /&gt;you set variables Delphi style&lt;br /&gt;&lt;br /&gt;variable_name := value;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-983765588025985454?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/983765588025985454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=983765588025985454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/983765588025985454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/983765588025985454'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/oracle-sucks-part-2-of-1000-setting.html' title='Oracle sucks, part 2 of 1000: setting variables'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-602104630257827093</id><published>2007-04-26T12:38:00.000-07:00</published><updated>2007-04-27T09:07:53.473-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle sucks, part 1 of 1000:executing queries vs scripts</title><content type='html'>I just have to blog this to remember in the future, and hopefully blog about other countless issues with Oracle&lt;br /&gt;&lt;br /&gt;This applies to running multiple statements to create functions, views, etc&lt;br /&gt;&lt;br /&gt;When running as a query:&lt;br /&gt;when creating or replacing functions, include ";", at the end, then a "/" &lt;span style="font-weight: bold;"&gt;on the next line&lt;/span&gt;&lt;br /&gt;when creating or replacing views, don't include the ";", but include "go"&lt;br /&gt;&lt;br /&gt;otherwise you'll get things like&lt;br /&gt;" Warnings: ---&gt;&lt;br /&gt;W (1): Warning: execution completed with warning&lt;br /&gt;       &lt;--- "&lt;br /&gt;&lt;br /&gt;"[Error] Script lines: 639-664 ----------------------&lt;br /&gt;ORA-06575: Package or function FUNCTION_NAME is in an invalid state"&lt;br /&gt;&lt;br /&gt;and your functions/views won't be modified&lt;br /&gt;&lt;br /&gt;when running as a script, everything needs ";" at the end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-602104630257827093?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/602104630257827093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=602104630257827093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/602104630257827093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/602104630257827093'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/oracle-sucks-part-1-of-1000executing.html' title='Oracle sucks, part 1 of 1000:executing queries vs scripts'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4680340355117067847</id><published>2007-04-19T09:52:00.000-07:00</published><updated>2007-04-19T20:40:02.223-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Deploying .NET 2.0 security settings without SDK or caspol</title><content type='html'>This article applies to Microsoft .NET Framework 2.0 Security&lt;br /&gt;keywords: CAS, full, trust, assembly, security, policy, mscorcfg.msc caspol.exe&lt;br /&gt;&lt;br /&gt;When you want to adjust the security settings in .NET 2.0 you use the mscorcfg.msc tool (Control Panel/Administrative Tools/Microsoft .NET Framework 2.0 Configuration)&lt;br /&gt;&lt;br /&gt;However sometimes in a production environment you might need to do the same thing in a bunch of machines, and the problem is that the mscorcfg.msc tool is only included in the SDK which is over 300 MB, another option is to use the caspol command line, but that will scare most people away,  there are &lt;a href="http://www.google.com/search?hl=en&amp;q=mscorcfg.msc+2.0+sdk+download&amp;amp;btnG=Search"&gt;a &lt;/a&gt;&lt;a href="http://www.google.com/search?hl=en&amp;q=mscorcfg.msc+2.0+sdk+download&amp;amp;btnG=Search"&gt;lot of people having this problem&lt;/a&gt;, so I thought I would post an easier solution here.&lt;br /&gt;&lt;br /&gt;I lied on the title of the article, you do need to the SDK, but only in one machine, since you are a developer (right?) I suppose you have Visual Studio, and that includes the SDK, if you don't have the SDK installed on any machine, then you need to &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&amp;displaylang=en"&gt;download it&lt;/a&gt; and install it at least on one machine.&lt;br /&gt;&lt;br /&gt;Once you have that you can use the mscorcfg tool, setup the machine with the permissions that you want, trust assemblies, adjust zone security settings, etc, then when you are done, use this option&lt;br /&gt;&lt;br /&gt;Configure Code Access Security Policy&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_cofcJplmJ2Q/RigE0G730OI/AAAAAAAAACM/qipurKnw4BI/s1600-h/dotNetFramework20Config.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_cofcJplmJ2Q/RigE0G730OI/AAAAAAAAACM/qipurKnw4BI/s400/dotNetFramework20Config.PNG" alt="" id="BLOGGER_PHOTO_ID_5055295874984825058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Create Deployment Package&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_cofcJplmJ2Q/RigFC2730PI/AAAAAAAAACU/vcHRQT-bucg/s1600-h/CreateDeploymentPackage.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_cofcJplmJ2Q/RigFC2730PI/AAAAAAAAACU/vcHRQT-bucg/s400/CreateDeploymentPackage.PNG" alt="" id="BLOGGER_PHOTO_ID_5055296128387895538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;you will see a new dialog, which doesn't have many options&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_cofcJplmJ2Q/RigFqm730QI/AAAAAAAAACc/rN-1DsUpSC0/s1600-h/DeploymentPackageWizard.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_cofcJplmJ2Q/RigFqm730QI/AAAAAAAAACc/rN-1DsUpSC0/s400/DeploymentPackageWizard.PNG" alt="" id="BLOGGER_PHOTO_ID_5055296811287695618" border="0" /&gt;&lt;/a&gt;this dialog is a bit weird and buggy, but all you have to specify is a file name in some valid folder, for example c:\SecuritySettings&lt;br /&gt;&lt;br /&gt;the other thing you might want to change is the security policy level to deploy, if you are deploying to production machines you might need Machine or User&lt;br /&gt;click Next, then finish.&lt;br /&gt;&lt;br /&gt;What this little wizard does, it &lt;span style="font-weight: bold;"&gt;creates a package with all the security settings on that machine&lt;/span&gt;, and puts it in a simple small executable program that you can run in any machine to adjust the security settings to match that machine.&lt;br /&gt;&lt;br /&gt;now all you need to do, is take that file to the machines where you want to deploy your new security settings, run it and you're done&lt;br /&gt;&lt;br /&gt;When you run the file you are naturally tempted to wait for a dialog to come up and ask you to click next, next, next, finish, but &lt;span style="font-weight: bold;"&gt;no dialog will pop up&lt;/span&gt;, you'll see it flash for a second and then it will dissapear, that's all it does (you might need privileged rights to run that file), if you were able to run that file, the security settings have been changed.&lt;br /&gt;&lt;br /&gt;now if "it works on my machine!", you can make it work in other machines too =o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4680340355117067847?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4680340355117067847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4680340355117067847' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4680340355117067847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4680340355117067847'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/deploying-net-20-security-settings.html' title='Deploying .NET 2.0 security settings without SDK or caspol'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_cofcJplmJ2Q/RigE0G730OI/AAAAAAAAACM/qipurKnw4BI/s72-c/dotNetFramework20Config.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6343062066961259875</id><published>2007-04-19T07:34:00.000-07:00</published><updated>2007-04-19T11:59:48.035-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><title type='text'>Everything you ever wanted to know about .NET garbage collection</title><content type='html'>or almost everything on garbage collection, the related CLR and BCL, you will find it on &lt;a href="http://blogs.msdn.com/clyon/default.aspx"&gt;Chris Lyon's blog&lt;/a&gt;, I found his blog and &lt;span style="font-weight: bold;"&gt;read it all&lt;/span&gt; yesterday, I'm still digesting some of it, a lot of good stuff, I had to include most of his blog entries on my &lt;a href="http://www.google.com/reader/shared/user/00321597721557820145/state/com.google/starred"&gt;link blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6343062066961259875?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/clyon/default.aspx' title='Everything you ever wanted to know about .NET garbage collection'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6343062066961259875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6343062066961259875' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6343062066961259875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6343062066961259875'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/everything-you-ever-wanted-to-know.html' title='Everything you ever wanted to know about .NET garbage collection'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8179696349350640280</id><published>2007-04-15T13:31:00.000-07:00</published><updated>2007-04-20T09:26:26.022-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><title type='text'>everything you blog can and will be used against you</title><content type='html'>At some point or another almost every blogger writes a &lt;a href="http://www.joelonsoftware.com/items/2006/09/01b.html"&gt;controversial &lt;/a&gt;article, &lt;a href="http://scobleizer.com/"&gt;some bloggers&lt;/a&gt; do it so frequently that it doesn't generate that much press now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://radar.oreilly.com/archives/2007/03/call_for_a_blog_1.html"&gt;Some will try to dictate rules&lt;/a&gt; for the blogosphere, that kinda defeats the purpose of the blog, I think that's just people trying to create the &lt;a href="http://www.google.com/search?hl=en&amp;q=%22new+buzzword%22&amp;amp;btnG=Search"&gt;next buzzword&lt;/a&gt; or leave their legacy which translates into popularity and everything that comes with that, if you are a "z list" blogger like me, it probably won't make a difference if you post &lt;a href="http://ebersys.blogspot.com/2006/11/two-checks-in-one-with-booltryparse.html"&gt;something&lt;/a&gt; that is incorrect.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;**see notes at the end&lt;/span&gt;&lt;br /&gt;Today I see &lt;a href="http://codebetter.com/blogs/sam.gentile/archive/2007/04/15/Wanted_3A00_-A-Windows-Edition-for-Non_2D00_Idiots.aspx"&gt;this post&lt;/a&gt; from Sam Gentile: "Wanted: A Windows Edition for Non-Idiots"&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;; my whole issue with that is calling regular users &lt;span style="font-weight: bold;"&gt;idiots&lt;/span&gt;; if I use the &lt;a href="http://ebersys.blogspot.com/search?q=keyboard"&gt;keyboard&lt;/a&gt; and &lt;a href="http://ebersys.blogspot.com/search?q=command+line"&gt;command line&lt;/a&gt; a lot does that make me an &lt;a href="http://codebetter.com/blogs/scott.bellware/archive/2007/04/08/161451.aspx"&gt;advanced&lt;/a&gt; &lt;a href="http://sgentile.wordpress.com/2007/04/15/wanted-a-windows-edition-for-non-idiots/"&gt;user &lt;/a&gt;and makes you an &lt;a href="http://www.google.com/search?hl=en&amp;q=idiot+user&amp;amp;btnG=Google+Search"&gt;idiot&lt;/a&gt; because you don't?&lt;br /&gt;&lt;br /&gt;Be careful when blogging, regardless of your blog popularity, you never know when it can be used against you (in a &lt;span style="font-weight: bold;"&gt;job* &lt;/span&gt;interview for example), I'm not going to recommend a code of conduct, all I'm saying is use common sense, respect your readers and respect everyone in general&lt;br /&gt;&lt;br /&gt;* fixed: thanks Sam&lt;br /&gt;** Sam updated his blog and changed the "non-idiots" part to "Power and Pro Users.", kudos to him for doing that. I've wanted to blog about this a long time ago, my whole point is just watch what you write on your blog (book, speech, etc), it may come back and hunt you later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8179696349350640280?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8179696349350640280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8179696349350640280' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8179696349350640280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8179696349350640280'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/everything-you-blog-can-and-will-be.html' title='everything you blog can and will be used against you'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8483375072427844786</id><published>2007-04-14T12:03:00.000-07:00</published><updated>2007-04-14T12:08:39.341-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fsharp'/><title type='text'>hello world from FSharp</title><content type='html'>&lt;a href="http://juztinwilzon.blogspot.com/"&gt;Justin &lt;/a&gt;and I are beginning to play with F# (&lt;a href="http://blogs.msdn.com/dsyme/archive/2007/04/06/f-1-9-1-released.aspx"&gt;1.9.1 has been released&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;open System;&lt;br /&gt;Console.WriteLine("hello world");&lt;br /&gt;let name = Console.ReadLine();;&lt;br /&gt;Console.WriteLine("hello "+ name);&lt;br /&gt;Console.Read();&lt;br /&gt;&lt;br /&gt;we'll see how this goes, hope to blog about it soon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8483375072427844786?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8483375072427844786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8483375072427844786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8483375072427844786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8483375072427844786'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/hello-world-from-fsharp.html' title='hello world from FSharp'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-9099423911599600279</id><published>2007-04-14T11:16:00.000-07:00</published><updated>2007-04-14T11:22:17.894-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><category scheme='http://www.blogger.com/atom/ns#' term='third party'/><title type='text'>updated Notepad is out</title><content type='html'>&lt;a href="http://www.flos-freeware.ch/notepad2.html"&gt;Notepad2 &lt;/a&gt;that is =o)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;The most important changes in Notepad2 2.0.x compared with version 1.0.12 include support for ini-file storage of the program settings, modeless find and replace dialogs, multiline find and replace operations (using backslash expressions), optional file change notification, and many more.&lt;/p&gt;      &lt;p&gt;There's also some regressions, i.e. ANSI code page support has been reduced to the system default, the bookmarks feature has been removed, a few syntax schemes have been dropped, and Notepad2 &lt;span style="font-weight: bold;"&gt;does no longer run on Windows 9x&lt;/span&gt;. If you need any of these features, you'll have to stick to Notepad2 version 1.0.12.&lt;/p&gt;&lt;/blockquote&gt;&lt;a href="http://www.flos-freeware.ch/np2txt.html"&gt;read the full list of new features here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;if you are still using Notepad, you might want to give Notepad2 a chance, is just as light weight as Notepad, but much more powerful&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-9099423911599600279?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.flos-freeware.ch/notepad2.html' title='updated Notepad is out'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/9099423911599600279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=9099423911599600279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/9099423911599600279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/9099423911599600279'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/updated-notepad-is-out.html' title='updated Notepad is out'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5032708805592851234</id><published>2007-04-10T11:54:00.000-07:00</published><updated>2007-04-15T18:09:31.330-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>no more screen saver for me, thanks McAfee</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_cofcJplmJ2Q/RiLMqd96fKI/AAAAAAAAAB4/nox7lPVZglk/s1600-h/screensavergone.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_cofcJplmJ2Q/RiLMqd96fKI/AAAAAAAAAB4/nox7lPVZglk/s400/screensavergone.GIF" alt="" id="BLOGGER_PHOTO_ID_5053826761834003618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've had the BSD screen saver for a long time... is gone now =o(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5032708805592851234?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5032708805592851234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5032708805592851234' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5032708805592851234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5032708805592851234'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/no-more-screen-saver-for-me-thanks.html' title='no more screen saver for me, thanks McAfee'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_cofcJplmJ2Q/RiLMqd96fKI/AAAAAAAAAB4/nox7lPVZglk/s72-c/screensavergone.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-2491925246320449868</id><published>2007-04-09T09:58:00.000-07:00</published><updated>2007-04-09T12:43:35.350-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='practices'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><title type='text'>is not about the pattern, it's about the practice</title><content type='html'>There's a discussion going on in the blogosphere about "bashing patterns", &lt;a href="http://www.acorns.com.au/2007/3/22/Bashing+of+singleton+and+other+patterns.aspx"&gt;Corneliu (parallel thinking) says&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;This month seems to be the month of bashing the singletons and some of the other design patterns.&lt;/p&gt; &lt;p&gt;From posts like &lt;a title="http://steve.yegge.googlepages.com/singleton-considered-stupid" href="http://steve.yegge.googlepages.com/singleton-considered-stupid"&gt;Singleton Considered Stupid&lt;/a&gt; to &lt;a href="http://aabs.wordpress.com/2007/03/08/singleton-%e2%80%93-the-most-overused-pattern/"&gt;Singleton – the most overused pattern&lt;/a&gt; and &lt;a title="Criticism on one the Patterns (Blog 3)" href="http://hanipatterns.blogspot.com/2007/03/criticism-on-one-patterns-lesson-3.html"&gt;Criticism on one the Patterns (Blog 3)&lt;/a&gt;, the blogo-sphere is full of comments about why singleton is bad or evil.&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;I don't think the problem is with the use of the pattern, but with the &lt;span style="font-weight: bold;"&gt;abuse&lt;/span&gt; of them; but &lt;span style="font-weight: bold;"&gt;this has always been the problem in programming in general,&lt;/span&gt; most of the time programmers learn a few things just to "get things working", and as long as it works "if is not broken why fix it".&lt;br /&gt;Is it all the programmers fault? I don't think so, I think it has to do a lot with management requesting things to be done by yesterday (bad estimates), but that's another topic which has been discussed quite a lot already&lt;br /&gt;&lt;br /&gt;so this is not a new problem, is the &lt;span style="font-weight: bold;"&gt;same old problem&lt;/span&gt; (abuse of techniques) applied to the patterns, the patterns are good, the implementation may be correct, but the usage (the practice) of them is the problem&lt;br /&gt;&lt;br /&gt;why the singleton? I think because that's one of the "easiest" ones, you can pretty much copy and paste it, you don't even need to understand the inner workings, you just know that "it will be a single instance of your class", and that's something you can't do with other patterns&lt;br /&gt;&lt;br /&gt;we need to teach better usages, better practices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-2491925246320449868?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/2491925246320449868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=2491925246320449868' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2491925246320449868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/2491925246320449868'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/04/is-not-about-pattern-its-about-practice.html' title='is not about the pattern, it&apos;s about the practice'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-4914380560824357370</id><published>2007-03-28T18:36:00.000-07:00</published><updated>2007-03-28T18:43:26.714-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>time to update your PDF reader</title><content type='html'>If you are not using &lt;a href="http://www.foxitsoftware.com/"&gt;Foxit reader&lt;/a&gt; yet, do your self a favor and download it now; now &lt;span style="font-weight: bold;"&gt;if you had used it before and you had problems with some pdf files&lt;/span&gt;, this is the time to give it a second chance, version 2 just came out and at least in my experience I am able to open all the files now, including those that I couldn't open before&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Foxit reader is a lot faster than acrobat reader&lt;/span&gt;, and it &lt;span style="font-weight: bold;"&gt;doesn't install any additional garbage&lt;/span&gt;, is just what you would expect from a "pdf file reader"... that's what it does, and (now) it does it well&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-4914380560824357370?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.foxitsoftware.com/' title='time to update your PDF reader'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/4914380560824357370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=4914380560824357370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4914380560824357370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/4914380560824357370'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/time-to-update-your-pdf-reader.html' title='time to update your PDF reader'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-6566583760699593036</id><published>2007-03-18T14:20:00.000-07:00</published><updated>2007-03-18T14:25:36.283-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='third party'/><title type='text'>Fix RadWindow caching</title><content type='html'>This article applies to &lt;a href="http://www.telerik.com/products/aspnet/controls/window/overview.aspx"&gt;Telerik's RadWindow&lt;/a&gt; component&lt;br /&gt;&lt;br /&gt;This is a nice wrapper to create popups in your asp.net applications, but it has a problem; it caches it's contents automatically; it took me a while to figure it out, but you can solve that with a simple property:&lt;br /&gt;&lt;br /&gt; &lt;p class="MsoNormal"&gt;radW:RadWindow&lt;br /&gt;                ID="WindowAttachFile"&lt;br /&gt;                runat="Server"&lt;br /&gt;                NavigateUrl="AttachFile.aspx"&lt;br /&gt;                &lt;b&gt;ReloadOnShow="true"&lt;/b&gt;&lt;br /&gt;                Height="230px"&lt;br /&gt;                Width="410px" Modal="true"&lt;/p&gt;  hope this is useful for any soul out there&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-6566583760699593036?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/6566583760699593036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=6566583760699593036' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6566583760699593036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/6566583760699593036'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/fix-radwindow-caching.html' title='Fix RadWindow caching'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-3869742271019997423</id><published>2007-03-15T16:30:00.000-07:00</published><updated>2007-03-15T16:32:44.527-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>google reader is being updated... scary</title><content type='html'>They've changed some links to buttons and stuff and I just realized that I have so much stuff in google that "one day without google" would put me behind in a lot of things&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-3869742271019997423?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/3869742271019997423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=3869742271019997423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3869742271019997423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/3869742271019997423'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/google-reader-is-being-updated-scary.html' title='google reader is being updated... scary'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-5131209110626044695</id><published>2007-03-10T13:29:00.000-08:00</published><updated>2007-03-10T15:16:38.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='practices'/><title type='text'>programming with a mouse considered harmful</title><content type='html'>I had a hard time deciding if the title should be "programming with a mouse considered harmful" or "real programmers don't use a mouse"; but I think you get the idea&lt;br /&gt;&lt;br /&gt;I'm mentoring a guy right now, and he started using the mouse to move around in the code, I told him&lt;br /&gt;&lt;br /&gt;"don't use the mouse, that's a bad practice"&lt;br /&gt;&lt;br /&gt;It doesn't matter how many years you have been programming, if you use the mouse, you are implicitly &lt;span style="font-weight: bold;"&gt;slow&lt;/span&gt;, you can do things &lt;span style="font-weight: bold;"&gt;at least twice as fast&lt;/span&gt; using only the keyboard.&lt;br /&gt;&lt;br /&gt;leave the mouse for things that you don't usually do, but for &lt;span style="font-weight: bold;"&gt;everything that you are doing in code&lt;/span&gt; there absolutely &lt;span style="font-weight: bold;"&gt;no reason to use the mouse&lt;/span&gt;; if you are new to programming it should be a lot easier to learn to use &lt;a href="http://www.google.com/search?hl=en&amp;q=visual+studio+shortcuts&amp;amp;btnG=Google+Search"&gt;all the shortcuts&lt;/a&gt;, if you have been programming for a while is definitely harder (and you probably think you're better off without them at this point) but you would definitely increase your programming speed&lt;br /&gt;&lt;br /&gt;I am known for being pretty fast (and they say I'm cocky for that matter), but one of the main reasons I'm fast is because I learn to use the shortcuts, I had a hard time switching from Delphi IDE to VS, but I did it without remapping the keyboard to use "Delphi IDE style", I think &lt;span style="font-weight: bold;"&gt;it's a bad idea to remap the keyboard to your specific style&lt;/span&gt;, specially is you do some type of pair programming (you are doing paired programming, right?)&lt;br /&gt;&lt;br /&gt;you don't have to learn all of the shortcuts available, just the ones for all the little tasks that you do commonly when programming&lt;br /&gt;&lt;br /&gt;use the keyboard, program faster&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-5131209110626044695?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/5131209110626044695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=5131209110626044695' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5131209110626044695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/5131209110626044695'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/programming-with-mouse-considered.html' title='programming with a mouse considered harmful'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-551272391868575525</id><published>2007-03-07T22:29:00.000-08:00</published><updated>2007-03-07T22:52:41.592-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software literature'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>let's all just develop ASP.NET in notepad / is not about the tools</title><content type='html'>Jeremy Miller &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/03/07/Jay_2700_s-TDD-QuickStart_2C00_-and-the-underlying-problems-he-stumbled-into.aspx"&gt;started a conversation&lt;/a&gt; on .NET testability (or the lack there of), &lt;a href="http://ayende.com/Blog/archive/2007/03/08/.Net-Testability.aspx"&gt;Ayende agrees &lt;/a&gt;with him&lt;br /&gt;&lt;br /&gt;I can definitely see this, I have suffered from this... but!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ebersys.blogspot.com/2006/12/if-youre-talented-tools-dont-matter.html"&gt;I don't think the problem is with the tools&lt;/a&gt;, in any case the problem would be of the TDD community, Ruby on Rails is open source, why can't we create &lt;span style="font-weight: bold;"&gt;asp.net on steroids&lt;/span&gt;?&lt;br /&gt;seems like we know exactly what we want, the concept is there, the code is there, just needs to be implemented in .NET&lt;br /&gt;&lt;br /&gt;there was a provocative comment to Jeremy's post:&lt;br /&gt;"What if I want RAD and I don't want tests?"&lt;br /&gt;there are some strong arguments against this, but the truth is for &lt;span style="font-weight: bold;"&gt;most developers that's all they want&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;everyone can say X sucks, Y in this other language is much better, why can't we say let's create Y for asp.net?&lt;br /&gt;&lt;br /&gt;would people really use it? or is this just a TDD religion thing? (I'm gonna get in trouble for this)&lt;br /&gt;&lt;br /&gt;I'll tell you what, that's exactly the reason why Microsoft didn't put something like that in ASP.NET, TDD advocates are not the broad audience, the majority of the "developers" don't really know or care about TDD or refactoring or patterns and practices, they just "want stuff to work", and yes, the rest of us have to pay the price, but nobody is forcing you to use RAD if it doesn't work, you have to use the right tool.&lt;br /&gt;&lt;br /&gt;I can agree with this:&lt;br /&gt;&lt;blockquote&gt;I really think the .Net community needs to reexamine and debate the merits and appropriateness of the Visual RAD approach.&lt;/blockquote&gt;the key here is the &lt;span style="font-weight: bold;"&gt;.NET community&lt;/span&gt;, people keep asking Microsoft to solve all these problems, are these problems really the developer's problem? or is it just TDD community problem? how big is that community?, where is the community? why can't that community do it? let's stop &lt;a href="http://ebersys.blogspot.com/2006/03/blaming-it-on-something-else-other.html"&gt;blaming it on something else&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;is kinda late, I was just kidding with Notepad and I've just hit another trip around the sun...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-551272391868575525?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/551272391868575525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=551272391868575525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/551272391868575525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/551272391868575525'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/lets-all-just-develop-aspnet-in-notepad.html' title='let&apos;s all just develop ASP.NET in notepad / is not about the tools'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7731941013575296583</id><published>2007-03-07T12:40:00.000-08:00</published><updated>2007-03-07T13:19:30.316-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>what are those S-1-5... things I see on the security tab?</title><content type='html'>sometimes you right click/properties/security on things like files and you see some garbled things like S-1-5-7blablabla...&lt;br /&gt;They are called security identifiers (SID), I bet at some point you thought that they were just "messed up things" or garbage or something like that?&lt;br /&gt;&lt;br /&gt;well, they actually have a meaning, here's a full list:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anonymous Logon (S-1-5-7)&lt;/span&gt;: A user who has connected to the computer without supplying a user name and password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Authenticated Users (S-1-5-11)&lt;/span&gt;: Includes all users and computers whose identities have been authenticated. Authenticated Users does not include Guest even if the Guest account has a password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Batch (S-1-5-3)&lt;/span&gt;: Includes all users who have logged on through a batch queue facility such as task scheduler jobs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creator Owner (S-1-3-0)&lt;/span&gt;: A placeholder in an inheritable access control entry (ACE). When the ACE is inherited, the system replaces this SID with the SID for the object's current owner.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creator Group (S-1-3-1)&lt;/span&gt;: A placeholder in an inheritable ACE. When the ACE is inherited, the system replaces this SID with the SID for the primary group of the object's current owner.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dialup (S-1-5-1)&lt;/span&gt;: Includes all users who are logged on to the system through a dial-up connection.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Everyone (S-1-1-0)&lt;/span&gt;: On computers running Windows Server 2003 operating systems, Everyone includes Authenticated Users and Guest. On computers running earlier versions of the operating system, Everyone includes Authenticated Users and Guest plus Anonymous Logon.&lt;br /&gt;&lt;br /&gt;For more information, see &lt;a href="http://technet2.microsoft.com/WindowsServer/en/library/1494bf2c-b596-4785-93bb-bc86f8e548d51033.mspx"&gt;Differences in default security settings.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Interactive (S-1-5-4)&lt;/span&gt;: Includes all users logging on locally or through a Remote Desktop connection.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Local System (S-1-5-18)&lt;/span&gt;: A service account that is used by the operating system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Network (S-1-5-2)&lt;/span&gt;: Includes all users who are logged on through a network connection. Access tokens for interactive users do not contain the Network SID.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Self (or Principal Self) (S-1-5-10)&lt;/span&gt;: A placeholder in an ACE on a user, group, or computer object in Active Directory. When you grant permissions to Principal Self, you grant them to the security principal represented by the object. During an access check, the operating system replaces the SID for Principal Self with the SID for the security principal represented by the object.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Service (S-1-5-6)&lt;/span&gt;: A group that includes all security principals that have logged on as a service. Membership is controlled by the operating system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Terminal Server Users (S-1-5-13)&lt;/span&gt;: Includes all users who have logged on to a Terminal Services server that is in Terminal Services version 4.0 application compatibility mode.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other Organization (S-1-5-1000)&lt;/span&gt;: Causes a check to ensure that a user from another forest or domain is allowed to authenticate to a particular service.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;This Organization (S-1-5-15)&lt;/span&gt;: Added by the authentication server to the authentication data of a user, provided the Other Organization SID is not already present.&lt;br /&gt;&lt;br /&gt;that's it! now you still don't know what they are because you didn't read this thing, but you have a reference that you can keep in &lt;a href="http://del.icio.us/ebersys"&gt;your bookmarks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7731941013575296583?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://technet2.microsoft.com/WindowsServer/en/library/86cf2457-4f17-43f8-a2ab-7f4e2e5659091033.mspx?mfr=true' title='what are those S-1-5... things I see on the security tab?'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7731941013575296583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7731941013575296583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7731941013575296583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7731941013575296583'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/what-are-those-s-1-5-things-i-see-on.html' title='what are those S-1-5... things I see on the security tab?'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-8289354594151057017</id><published>2007-03-01T20:41:00.000-08:00</published><updated>2007-03-01T21:07:53.981-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>dude!, I'm not getting a dell, I'm getting a Mac</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_42YYHgpVH8M/ReXXNkKNPZI/AAAAAAAAAA8/YP_uTefDFLM/s1600-h/TheGreatestThingInTheWorld.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 396px; height: 249px;" src="http://bp2.blogger.com/_42YYHgpVH8M/ReXXNkKNPZI/AAAAAAAAAA8/YP_uTefDFLM/s200/TheGreatestThingInTheWorld.JPG" alt="" id="BLOGGER_PHOTO_ID_5036668386328526226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and one of the main reasons why is &lt;a href="http://www.parallels.com/en/products/desktop/"&gt;parallels&lt;/a&gt;. We have seen virtual machines in all the operating systems for quite a while now, where the guest operating system sits there in it's own window.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Parallels takes this to a whole new level&lt;/span&gt;, it allows you to integrate the Mac and the guest OS into the &lt;span style="font-weight: bold;"&gt;same workspace&lt;/span&gt;! such that you can switch applications from a Mac app to a Windows app all in the same workspace (desktop), that's amazing!&lt;br /&gt;&lt;br /&gt;take a look at the picture to see more detail, both Mac apps and Windows apps "blend" seamlessly although the apps still live in a different OS,&lt;br /&gt;The apps running in windows show up in the Mac "toolbar".&lt;br /&gt;It even allows you to copy and paste between the two (and according to &lt;a href="http://juztinwilzon.blogspot.com/"&gt;Justin &lt;/a&gt;you can also drag and drop)&lt;br /&gt;&lt;br /&gt;that's good software.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.macboy.com/cartoons/switch/dude/"&gt;dude!, I'm getting a Mac&lt;/a&gt;... just wait 'til Leopard comes out =o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-8289354594151057017?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://juztinwilzon.blogspot.com/2007/02/greatest-thing-ever.html' title='dude!, I&apos;m not getting a dell, I&apos;m getting a Mac'/><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/8289354594151057017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=8289354594151057017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8289354594151057017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/8289354594151057017'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/03/dude-im-not-getting-dell-im-getting-mac.html' title='dude!, I&apos;m not getting a dell, I&apos;m getting a Mac'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_42YYHgpVH8M/ReXXNkKNPZI/AAAAAAAAAA8/YP_uTefDFLM/s72-c/TheGreatestThingInTheWorld.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13751027.post-7944887463208052881</id><published>2007-02-26T09:57:00.000-08:00</published><updated>2007-02-26T10:06:03.353-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='third party'/><title type='text'>This is what happens when you forget to deploy your Telerik RadControls folder</title><content type='html'>This article applies specifically to applications developed using &lt;a href="http://www.telerik.com/products/aspnet/overview.aspx"&gt;Telerik Rad Controls&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was having a stupidus momentus (tm) yesterday, I forgot to deploy the RadControls and I kept getting this error:&lt;br /&gt;&lt;br /&gt;Object reference not set to an instance of an object.&lt;br /&gt;   at Telerik.WebControls.RadWindowManager.BuildTemplates()&lt;br /&gt;   at Telerik.WebControls.RadWindowManager.Render(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)&lt;br /&gt;   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)&lt;br /&gt;   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)&lt;br /&gt;   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.Render(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)&lt;br /&gt;   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Page.Render(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)&lt;br /&gt;   at Telerik.WebControls.RadAjaxManager.AJAX_Page_Render(HtmlTextWriter output, Control container)&lt;br /&gt;   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)&lt;br /&gt;   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Page.Render(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)&lt;br /&gt;   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)&lt;br /&gt;   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)&lt;br /&gt;&lt;br /&gt;Telerik could do better with their exception handling, but anyway... I just needed another &lt;a href="http://foxsys.blogspot.com/"&gt;pair of eyes&lt;/a&gt; to see the issue&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13751027-7944887463208052881?l=ebersys.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ebersys.blogspot.com/feeds/7944887463208052881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13751027&amp;postID=7944887463208052881' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7944887463208052881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13751027/posts/default/7944887463208052881'/><link rel='alternate' type='text/html' href='http://ebersys.blogspot.com/2007/02/this-is-what-happens-when-you-forget-to.html' title='This is what happens when you forget to deploy your Telerik RadControls folder'/><author><name>BlackTigerX</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cofcJplmJ2Q/TQK1ztAVdiI/AAAAAAAABYE/2YWhD10qTpU/S220/EberDG2.jpg'/></author><thr:total>3</thr:total></entry></feed>
