<?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-30926081</id><updated>2012-02-11T15:43:21.780-08:00</updated><category term='images'/><category term='xeno'/><category term='gm'/><category term='rubyonrails'/><category term='software development'/><category term='Visual Studio 2008'/><category term='sqlserver'/><category term='cell phones'/><category term='iOS5 upgrade'/><category term='.Net 3.5'/><category term='migraines'/><category term='junk mail'/><category term='html5 XML WhatWG W3C'/><category term='exercse lifehack tivo'/><category term='video'/><category term='the toyota way'/><category term='bdd'/><category term='cars'/><category term='iis'/><category term='global warming'/><category term='java'/><category term='java austin gae gwt RoR Google'/><category term='inflation'/><category term='roger moore'/><category term='graphics'/><category term='neveraborrowerorlenderbe'/><category term='autos'/><category term='free photos'/><category term='gems'/><category term='Roxio Creator 2009'/><category term='LCD monitors'/><category term='mvc'/><category term='google conversions dollar euro'/><category term='software skype complaints feedback'/><category term='artic ice'/><category term='quicken'/><category term='NHibernate'/><category term='unit testing'/><category term='greenhouse gases'/><category term='podcasting'/><category term='watir'/><category term='iphone 3d games'/><category term='event log'/><category term='sqlexpress connections security'/><category term='.'/><category term='jmatter'/><category term='google'/><category term='edmunds.com'/><category term='programming vs2014 3D'/><category term='shuttle'/><category term='actors'/><category term='water sensors'/><category term='CRT monitors'/><category term='omegle'/><category term='ie firefox href javascript'/><category term='eestor super-capacitors nissan leaf austin lithium-ion'/><category term='timewarner'/><category term='excel'/><category term='age discrimination'/><category term='Chrysler'/><category term='Arduino'/><category term='frameworks'/><category term='value stream mapping'/><category term='learning'/><category term='supercapacitors'/><category term='naming'/><category term='supercomputers'/><category term='sql join sqlserver null'/><category term='SPIN'/><category term='math'/><category term='extensions'/><category term='austin'/><category term='lifehack'/><category term='preaching to the choir'/><category term='photography'/><category term='SCALA'/><category term='asp.net .net vs2010'/><category term='oceans'/><category term='ie'/><category term='achilles'/><category term='tivo'/><category term='dna'/><category term='lifehacs'/><category term='ddd'/><category term='cgi'/><category term='energy'/><category term='sharks'/><category term='sql'/><category term='Ruby'/><category term='headaches'/><category term='humor photography'/><category term='career'/><category term='film'/><category term='debt'/><category term='peak oil'/><category term='agile austin'/><category term='electric cars'/><category term='health'/><category term='austin java sunspot spot'/><category term='febe'/><category term='web'/><category term='900Mz'/><category term='baby monitors'/><category term='peopleware'/><category term='Clojure'/><category term='gasoline'/><category term='c# mvc2 aspose word'/><category term='nunit'/><category term='greek history'/><category term='austin arduino'/><category term='firefox'/><category term='national debt'/><category term='software jobs austin'/><category term='windows xp'/><category term='software engineering'/><category term='bank of america'/><category term='malaria'/><category term='.net'/><category term='credit cards'/><category term='tv'/><category term='chevy volt'/><category term='blogs'/><category term='humor'/><category term='units'/><category term='oil'/><category term='David Anderson'/><category term='certificates'/><category term='refactoring'/><category term='vmware'/><category term='austin code camp'/><category term='credit fraud'/><category term='Aparapi AMD parallel OpenCL'/><category term='iphone Waze traffic review'/><category term='sqlserver windows'/><category term='dieting'/><category term='automapper'/><category term='hulu'/><category term='RoR'/><category term='blinking'/><category term='china'/><category term='jQuery HTML5 timeline'/><category term='testing'/><category term='do not call'/><category term='virtual machines'/><category term='CAFE'/><category term='journalism'/><category term='classics'/><category term='iraq war history sparta athens'/><category term='proxy'/><category term='smallpox'/><category term='search engines'/><category term='fed'/><category term='eestor'/><category term='tineye'/><category term='computer monitors'/><category term='youtube'/><category term='atlast'/><category term='photos'/><category term='agile software agileaustin headspring'/><category term='embedding date time'/><category term='tuning adapter'/><category term='bailouts'/><category term='agile'/><category term='java jmatter css4swing scala'/><category term='vs2010'/><category term='chat'/><category term='ethanol'/><category term='intellisense'/><category term='date time'/><category term='Csharp'/><category term='dto'/><category term='computer science'/><category term='lean'/><category term='programming'/><category term='politics'/><category term='domain driven design'/><category term='software gui'/><category term='Microsoft Word'/><category term='c# resharper code style'/><category term='sql server'/><category term='C#'/><category term='coal'/><category term='free software'/><category term='economics'/><category term='self-signed certificates security'/><category term='.Net restarts'/><category term='cable card'/><category term='code search'/><category term='microsoft'/><category term='https'/><category term='japan'/><category term='computing power'/><category term='Kaizen'/><category term='Sarah Palin'/><category term='utilities'/><title type='text'>Mitch Fincher:  The Distracted Programmer</title><subtitle type='html'>I'm blogging about programming, but ... hey look over there - it's something shiny!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default?start-index=101&amp;max-results=100'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>310</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30926081.post-4577410835015810285</id><published>2012-02-11T14:24:00.000-08:00</published><updated>2012-02-11T15:43:21.806-08:00</updated><title type='text'>Automatic Acceptance into Texas Public Universities, the Top 10% Rule.</title><content type='html'>Our family met with the College counselor for McNeil High School yesterday, to ask questions about what it takes for a high school student to get automatic admission to Texas state colleges.  Here were my questions and his answers; hopefully this will help you.&lt;br /&gt;&lt;br /&gt;What does it take to get automatic admissions to Texas public colleges?&lt;br /&gt;In general, the top 10% of a high school's students get automatic admission into state colleges, but only the top 8% get automatic admission to UT.&lt;br /&gt;&lt;br /&gt;How is class rank calculated?&lt;br /&gt;Only the four core classes--Social Studies, Science, English, and Math, plus foreign language classes are added into the class rank GPA.&lt;br /&gt;McNeil students have two GPAs, one 4 point based and the other 6 point.  The 6 point is used for class rank. (I'm still fuzzy on how to calculate this (4pt GPA * 6/4?)&lt;br /&gt;Often, only the first six semesters of high school grades really count towards college admission, since the deadline for many college applications is before the first semester senior grades are finalized.&lt;br /&gt;&lt;br /&gt;What were the GPAs recently to get into those percentages?&lt;br /&gt;For the class of 2012 the lowest 6-point GPA to get into the "top 8%" was 4.89; for the top 10% it was 4.75;&lt;br /&gt;For the class of 2014 the lowest 6-point GPA to get into the "top 8%" was 4.95; for the top 10% it was 4.82;&lt;br /&gt;5.63 was highest 6-point GPA from last year.&lt;br /&gt;&lt;br /&gt;Other useful information:&lt;br /&gt;Dec 1st is the deadline for UT admissions, Jan 15th for A&amp;M.  Curiously, the A&amp;M scholarship application due date is earlier, Dec 15.&lt;br /&gt;Visit &lt;a href="ApplyTexas.org"&gt;ApplyTexas.org&lt;/a&gt; to apply to most state colleges and some private schools in Texas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4577410835015810285?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4577410835015810285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4577410835015810285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4577410835015810285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4577410835015810285'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2012/02/automatic-acceptance-into-texas-public.html' title='Automatic Acceptance into Texas Public Universities, the Top 10% Rule.'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-6262588844940688117</id><published>2012-01-24T15:07:00.000-08:00</published><updated>2012-01-25T11:38:07.935-08:00</updated><title type='text'>Getting Four Screens Hooked Up to a Laptop</title><content type='html'>I love lots of screen real estate.  With my new dell laptop I got two extra monitors working directly from the upgraded docking station, but I wanted an more.  The solution was to install &lt;a href="http://www.synergy-foss.org"&gt;Synergy&lt;/a&gt; on my laptop and on a second computer and use a monitor from that second computer.  With Synergy I can use the same keyboard and mouse for my laptop and have those inputs sent to the second computer so it feels like four screens.  &lt;br /&gt;&lt;img src="http://www.fincher.org/images/2012-01-23-Synergy.jpg" width=600 /&gt;&lt;br /&gt;On my left-most screen, the tiny laptop screen, I always have Outlook open and use it for mail and calendaring (is that a word? - it should be), my second screen I use for Visual Studio, the third for Unit tests and Emacs, and the fourth screen has a browser.&lt;br /&gt;Synergy is a pain to configure, and sometimes cuts out, but for the most part it works quite well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-6262588844940688117?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/6262588844940688117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=6262588844940688117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6262588844940688117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6262588844940688117'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2012/01/getting-four-screens-hooked-up-to.html' title='Getting Four Screens Hooked Up to a Laptop'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4015067580143836142</id><published>2012-01-11T07:24:00.000-08:00</published><updated>2012-01-11T07:24:16.188-08:00</updated><title type='text'>Photos from Austin Dot Net Jan 9, 2012</title><content type='html'>Josh Arnold spoke to the 120 attendees about client-side &lt;a href="http://lostechies.com/josharnold/2012/01/06/our-ajax-conventionsclientside-continuations/"&gt;Continuations&lt;/a&gt;.  One of the most impressive things was Josh's mastery of the keyboard and shortcuts.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2012-01-09-adnug3.jpg" /&gt;&lt;br /&gt;Brandon Satrom gave the main presentation about HTML5, which was well received.&lt;br /&gt;The slides from his presentation are &lt;a href="https://github.com/bsatrom/Presentations"&gt;here&lt;/a&gt; on github.&lt;br /&gt;My Random takeaways:&lt;br /&gt;Pressing F12 in IE9 will give rendering for older versions of IE of the current page.&lt;br /&gt;jQuery.corner.js is a good polyfill for getting rounded corners in older browsers.&lt;br /&gt;&lt;a href="http://www.filamentgroup.com/lab/update_to_jquery_visualize_accessible_charts_with_html5_from_designing_with/"&gt;jQuery.Visualize&lt;/a&gt; is a simple way to create HTML5 charts from tables.&lt;br /&gt;The excanvas.js polyfill does replicate most of the functionality of the Canvas element, but not all, be careful.&lt;img src="http://www.fincher.org/images/2012-01-09-adnug1.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2012-01-09-adnug2.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4015067580143836142?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4015067580143836142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4015067580143836142' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4015067580143836142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4015067580143836142'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2012/01/photos-from-austin-dot-net-jan-9-2012.html' title='Photos from Austin Dot Net Jan 9, 2012'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-8493165542892847450</id><published>2012-01-05T09:02:00.000-08:00</published><updated>2012-01-11T13:50:23.629-08:00</updated><title type='text'>Photos from Agile Austin, Jan 3, 2011 -  Kanban System Design</title><content type='html'>Julie Chickering, an Agile Coach with &lt;a href="www.rallydev.com"&gt;Rally Software&lt;/a&gt;, presented to 90 people an introduction to Kanban Tuesday night.  Here's a few pics of the evening.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2012-01-03-AgileAustin1__Small_.jpg" align=right /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2012-01-03-AgileAustin2__Small_.jpg" align=right /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2012-01-03-AgileAustin3__Small_.jpg" align=right /&gt;&lt;br /&gt;&lt;br /&gt;Many in the audience were using Kanban and had good comments.  One person talked about using swim lanes to ensure that technical debt was actually done, so they had a lane for the usual features and a lane for technical debt that according to their policies had to have something in it.&lt;br /&gt;&lt;br /&gt;I know nothing about Kanban.  My (probably misguided) takeaways:&lt;br /&gt;Kanban not as perscriptive as scrum&lt;br /&gt;Kanban Focus:&lt;br /&gt;1. Visualize workflow&lt;br /&gt;2. Limit Work In Progress (WIP)&lt;br /&gt;3. Measure and maximize flow of work&lt;br /&gt;4. Make policies explicit&lt;br /&gt;5. Improve the process&lt;br /&gt;&lt;br /&gt;A Goal: move work through in predictable sustainable manner.&lt;br /&gt;&lt;br /&gt;Advantage of Kanban is you can start where you are.  First step is to visualize work flow.&lt;br /&gt;Where does work demand come from? what frequency?  what size?&lt;br /&gt;WIP Limits are the number, not the size of tasks.&lt;br /&gt;&lt;br /&gt;In the daily standup, walk the board from right to left and see what it tells you.  Anything blocked?  Unlike scrum, not everyone needs to talk.&lt;br /&gt;&lt;br /&gt;Metrics:  first one is to measure cycle time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-8493165542892847450?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/8493165542892847450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=8493165542892847450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8493165542892847450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8493165542892847450'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2012/01/photos-from-agile-austin-jan-3-2011.html' title='Photos from Agile Austin, Jan 3, 2011 -  Kanban System Design'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7098321514985087084</id><published>2011-12-27T15:23:00.000-08:00</published><updated>2012-01-09T13:29:45.972-08:00</updated><title type='text'>Dynamically Adding a Style Sheet</title><content type='html'>I've been looking at some of Google's code for their Html5Slides project and like the way they dynamically link in a style sheet:&lt;br /&gt;&lt;pre class="code"&gt;var el = document.createElement('link');&lt;br /&gt;  el.rel = 'stylesheet';&lt;br /&gt;  el.type = 'text/css';&lt;br /&gt;  el.href = 'http://www.Example.com/...' + 'styles.css';&lt;br /&gt;  document.body.appendChild(el);&lt;br /&gt;&lt;/pre&gt;I think they code it this way so people using their HTML5 slide template don't have to include a bunch of extra css files, just this one JavaScript file.  If people get the file dynamically from Google all the time, Google can change the styles without breaking people's links.  It's just one less dependency.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7098321514985087084?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7098321514985087084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7098321514985087084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7098321514985087084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7098321514985087084'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/12/dynamically-added-style-sheet.html' title='Dynamically Adding a Style Sheet'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-441991811921919255</id><published>2011-12-27T15:12:00.000-08:00</published><updated>2011-12-27T15:13:25.997-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='html5 XML WhatWG W3C'/><title type='text'>HTML5 is not XML, Time To Get Over It</title><content type='html'>I feel like Captain Malcom Reynolds who fought for the resistance against the Alliance, but failed and now lives in the shadows of the all powerful Alliance.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/Firefly.jpg" align="right"/&gt;&lt;br /&gt;I love XML ( ... I know there's 12 step programs for people like me).  XML makes it so easy parsing well-structured, schema-verified XML.  I applauded the efforts of the W3C to make the next generation HTML to be XHTML2.0 with all the clean syntax.&lt;br /&gt;But the fight for XML championed by W3C.org has failed.  WhatWG (re: the Alliance) has won over W3C.org (re: the Browncoats )  and HTML5 is not XML.  It's time to get over it.&lt;br /&gt;What does this mean?&lt;br /&gt;1.  Well, we shouldn't close void tags like "&amp;lt;br /&amp;gt;.  (Although some people I respect disagree like &lt;a href="http://www.standardista.com/6-best-practices-for-marking-up-your-html5/"&gt;Estelle Weyl&lt;/a&gt;.)  Reading WhatWG docs, I sense they really don't want us to close void tags.&lt;br /&gt;&lt;p&gt;The w3's documentation in section &lt;a href="http://dev.w3.org/html5/spec/Overview.html#void-elements"&gt;8.1.2 Elements&lt;/a&gt; defines void elements to be &lt;/p&gt;&lt;pre class="code"&gt;area, base, br, col, command, embed, hr, img, &lt;br /&gt;input, keygen, link, meta, param, source, track, wbr&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2.  Attributes do not have to have a value&lt;br /&gt;&lt;pre class=code&gt;&amp;lt;input type='checkbox' checked='checked' ...&amp;gt;&lt;br /&gt;&lt;/pre&gt;This looked a little silly anyway.&lt;br /&gt;&lt;br /&gt;3.  Attributes values usually do not have to be quoted&lt;br /&gt;&lt;pre class=code&gt;&amp;lt;input type=checkbox checked=checked ...&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;4.  We can't process html5 pages with an XML parser.  Really in the old days, you could only parse your pages anyway, and any included files from Google or your ad server would probably break your XML anyway.&lt;br /&gt;&lt;br /&gt;In the WhatWG &lt;a href="http://wiki.whatwg.org/wiki/FAQ"&gt;FAQ&lt;/a&gt; they recommend not using an XML parser on pages, but using an html to XML parser.&lt;br /&gt;&lt;br /&gt;We fought the Alliance and they won.  Come on all you XML loving Browncoats like me, it's time to move on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-441991811921919255?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/441991811921919255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=441991811921919255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/441991811921919255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/441991811921919255'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/12/html5-is-not-xml-time-to-get-over-it.html' title='HTML5 is not XML, Time To Get Over It'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2788515449488019283</id><published>2011-12-26T07:18:00.000-08:00</published><updated>2011-12-26T07:18:17.966-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jQuery HTML5 timeline'/><title type='text'>jQuery just makes life too easy</title><content type='html'>One of my most popular pages on my web site is the history of the world &lt;a href="http://www.fincher.org/History/WorldAD.shtml"&gt;timeline&lt;/a&gt;.  I've always wanted to make if configurable so people could select just certain topics, like "military" or "science" and then concentrate on the topics they love.  I did a little research and jQuery just makes this so easy.&lt;br /&gt;&lt;a href="http://www.fincher.org/History/WorldAD.shtml"&gt;&lt;img src="http://www.fincher.org/images/2011-12-26-HistoryAD.jpg" width="765" height="322"/&gt;&lt;/a&gt;&lt;br /&gt;This just takes three steps:&lt;br /&gt;1. Include jQuery.  We try to get it from Google, but if Google fails us, we get it from a local cache.  I got this method from Paul Irish and his excellent HTML5 Boilerplate.&lt;br /&gt;&lt;pre class="code"&gt;  &amp;lt;script src=&lt;span class='codetext'&gt;"&lt;span class='codecomment'&gt;//ajax.googleapis.com/ajax/libs/jquery/&lt;span class='codetext'&gt;1.6.2&lt;/span&gt;/jquery.min.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;  &amp;lt;script&amp;gt;window.jQuery || document.write('&amp;lt;script src=&lt;span class='codetext'&gt;"js/libs/jquery-&lt;span class='codetext'&gt;1.6.2.&lt;/span&gt;min.js"&lt;/span&gt;&amp;gt;&amp;lt;\/script&amp;gt;')&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2. At the top of the page in a form we have this scrap of JavaScript which just toggles the visibility of rows which have the class of "military".&lt;br /&gt;&lt;pre class="code"&gt;  &amp;lt;input type="checkbox" id="military" checked onclick="$('.military').toggle();"&amp;gt;&lt;br /&gt;  &amp;lt;label for="military"&amp;gt;Military&amp;lt;/label&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3.  Lastly we add the class "military" to the row with that topic.&lt;br /&gt;&lt;pre class="code"&gt;  &amp;lt;tr class="military"&amp;gt;&amp;lt;td&amp;gt;70&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;After 6 month siege the Romans &lt;br /&gt;under the direction of Titus destroy Jerusalem killing one and a half million Jews.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;/pre&gt;Now the user can toggle on categories at will.  &lt;br /&gt;One of the nice things about this is that the work is all done on the client side, so the server is untaxed and the user has faster response time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2788515449488019283?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2788515449488019283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2788515449488019283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2788515449488019283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2788515449488019283'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/12/jquery-just-makes-life-too-easy.html' title='jQuery just makes life too easy'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5504632636613432050</id><published>2011-12-21T09:12:00.000-08:00</published><updated>2011-12-21T09:12:11.812-08:00</updated><title type='text'>Agile Exchange at HomeAway</title><content type='html'>&lt;a href="http://www.agileaustin.org/"&gt;Agile Austin&lt;/a&gt;, a group dedicated to improving software development practices, sponsors an Agile Exchange where developers can visit other companies and hear about their Agile software practices.&lt;br /&gt;Last month's Agile Exchange was with HomeAway and Jack Yang gave a dozen of us a tour of the HomeAway office and a description of their software development framework.&lt;br /&gt;Below are my brief notes:&lt;br /&gt;&lt;br /&gt;Initially software was developed in an ad hoc fashion with inconsistent results and a lot of disappointment.  Jack ran one team on Agile principles and it was a success.  The agile team members were dispersed to other groups to encourage them to adopt agile.  It failed to catch on.  Two more teams were trained and produced good results with Agile.  Slowly other teams started to be interested, but it was a very organic growth.  Now all twenty teams are doing Agile, with some of the more advanced doing Lean (Kanban).  Software development is more predictable now.&lt;br /&gt;Some teams do twice weekly deployments, others once a month.&lt;br /&gt;Each team implements it's own version of Agile.&lt;br /&gt;Cucumber is used for testing.&lt;br /&gt;Each programmer is expected to do 5 hours of actual "hands on keyboard" programming a day although this varies by project; the rest is spent in meetings and other activities.&lt;br /&gt;BigLever is used for variation management for over 20 brands.&lt;br /&gt;The company, like everyone else, is moving to Git for version control.&lt;br /&gt;Ruby on Rails will be used for the front end of the website, although the front end is expected to be language agnostic - whatever works best for their teams to get the job done well.&lt;br /&gt;Java is used on the back end.&lt;br /&gt;The business people at HomeAway really look at the Business Intelligence reports on how customers use their web sites.&lt;br /&gt;Programmers use Macs.&lt;br /&gt;Rally software is used to handle software issues.&lt;br /&gt;Ruby scripts are created to access the Rally software from scripts.&lt;br /&gt;Problems in Agile are the same  - communication with people.&lt;br /&gt;&lt;br /&gt;I would encourage developers to attend one of the Agile Exchange sessions; this last one was fun and informative.&lt;br /&gt;Thanks to Brad Bellamy for organizing Agile Exchange.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5504632636613432050?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5504632636613432050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5504632636613432050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5504632636613432050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5504632636613432050'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/12/agile-exchange-at-homeaway.html' title='Agile Exchange at HomeAway'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-6920424712170920588</id><published>2011-11-28T12:01:00.000-08:00</published><updated>2011-11-28T12:01:21.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Shopping for the End Times</title><content type='html'>I don't know who the Antichrist will be, but while shopping today at Goodwill, I learned his suit is ready.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-11-26-1216-IMG_1126.jpg" width="500" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-6920424712170920588?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/6920424712170920588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=6920424712170920588' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6920424712170920588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6920424712170920588'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/11/shopping-for-end-times.html' title='Shopping for the End Times'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7247989786702995385</id><published>2011-11-23T08:35:00.000-08:00</published><updated>2011-11-23T08:35:03.601-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><title type='text'>Arduino Boot Camp III</title><content type='html'>&lt;img src="http://www.fincher.org/images/2011-09-24-1956-IMG_4310__Small_.jpg" /&gt;&lt;br /&gt;We had our third Arduino Boot Camp on Saturday.  I got my second project working - a green light that slowly increases and decreases in intensity.  It's not much, but it's a start.  And programmers love all our babies, no matter how small.&lt;br /&gt;The source code:&lt;br /&gt;&lt;div class="code" style="border: thin solid black; padding: 1em;"&gt;const int redLedPort =  11;&lt;br /&gt;const int greenLedPort =  10;&lt;br /&gt;const int blueLedPort =  9;&lt;br /&gt;int minBrightness = 0;&lt;br /&gt;int maxBrightness = 255;&lt;br /&gt;int deltaBrightness = 10;&lt;br /&gt;int currentBrightness = 0;&lt;br /&gt;int wait = 200; //milliseconds&lt;br /&gt;unsigned long previousMilliseconds = 0;&lt;br /&gt;unsigned long currentMilliseconds = 0;&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt;pinMode(greenLedPort, OUTPUT);      &lt;br /&gt;pinMode(redLedPort, OUTPUT);      &lt;br /&gt;pinMode(blueLedPort, OUTPUT);      &lt;br /&gt;Serial.begin(9600);  &lt;br /&gt;Serial.println("Started");&lt;br /&gt;previousMilliseconds = millis();&lt;br /&gt;}&lt;br /&gt;void setColor(int red, int green, int blue) {&lt;br /&gt;Serial.print(red);&lt;br /&gt;Serial.print(", ");&lt;br /&gt;Serial.print(green);&lt;br /&gt;Serial.print(", ");&lt;br /&gt;Serial.println(blue);&lt;br /&gt;&lt;br /&gt;analogWrite(redLedPort, red);&lt;br /&gt;analogWrite(greenLedPort, green);&lt;br /&gt;analogWrite(blueLedPort, blue);&lt;br /&gt;}&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;currentMilliseconds = millis();&lt;br /&gt;if(currentMilliseconds &gt; (previousMilliseconds + wait)) {&lt;br /&gt;setColor(currentBrightness/2, currentBrightness, currentBrightness/2);&lt;br /&gt;currentBrightness += deltaBrightness;&lt;br /&gt;if(currentBrightness &gt;= (maxBrightness - deltaBrightness) || currentBrightness &lt;= (minBrightness)) {       deltaBrightness *= -1;     }     previousMilliseconds = currentMilliseconds;     } } &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7247989786702995385?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7247989786702995385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7247989786702995385' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7247989786702995385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7247989786702995385'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/11/arduino-boot-camp-iii.html' title='Arduino Boot Camp III'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1927103122294900104</id><published>2011-11-21T13:47:00.000-08:00</published><updated>2011-11-21T13:47:44.870-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><title type='text'>sp_executesql executes extremely slowly</title><content type='html'>On a legacy system, we had a query that in query analyzer is very fast, around a millisecond.&lt;br /&gt;But in production it is slower than molasses in winter, up to three seconds.&lt;br /&gt;The table being queried is simple and tall, around 25 million rows, with a clustered index on "bid":&lt;br /&gt;&lt;pre class="code"&gt;CREATE TABLE [dbo].[BookHistory] (&lt;br /&gt;[bid] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS  NOT NULL,&lt;br /&gt;[source] [varchar] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,&lt;br /&gt;[src] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,  &lt;br /&gt;[bookCode] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,&lt;br /&gt;[bookStatus] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,&lt;br /&gt;[actionTime] [datetime] NOT NULL &lt;br /&gt;) ON [PRIMARY]&lt;br /&gt;GO&lt;br /&gt;CREATE CLUSTERED INDEX [BID_INDEX] ON [dbo].[BookHistory] &lt;br /&gt;(&lt;br /&gt; [bid] ASC&lt;br /&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;The code is trying to retrieve all the records, typically a dozen, for a particular "bid" which should be faster than greased lightening.&lt;br /&gt;&lt;pre class="code"&gt;exec sp_executesql N'SELECT bookCode as name,bookStatus,&lt;br /&gt;DATEDIFF(DAY, actionTime, GETDATE()) as days  &lt;br /&gt;FROM BookHistory with(nolock) &lt;br /&gt;WHERE bid = @bid AND source = @source AND src = @src'&lt;br /&gt;,N'@source nvarchar(5),@bid nvarchar(10),@src nvarchar(4000)'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As the more astute of you can probably see now, the issue is with the data type of "bid".  In the database it's a varchar(64), but in the trace it's a nvarchar(4000).  &lt;br /&gt;In the C# code the type of the parameter of "bid" was left to the default, which is "nvarchar", so...... SQL server was thinking, "I've got this nifty little index for 'bid', too bad I can't use it since the incoming query is an 'nvarchar', oh well, I guess I'll do a scan and convert all those 'bid' thingys to nvarchar on the fly."  That's why the SQL statement was glacial.&lt;br /&gt;For the interim, I patched the SQL statement with a cast, since that can be done without a full deployment, to be &lt;br /&gt;&lt;pre class="code"&gt;exec sp_executesql N'SELECT bookCode as name,&lt;br /&gt;bookStatus,DATEDIFF(DAY, actionTime, GETDATE()) as days  &lt;br /&gt;FROM BookHistory with(nolock)&lt;br /&gt; WHERE bid = cast(@bid as varchar(64)) AND source = @source AND src = @src',&lt;br /&gt;N'@source nvarchar(5),@bid nvarchar(10),@src nvarchar(4000)'&lt;br /&gt;&lt;/pre&gt;And the statement that used to take a few seconds now takes a few milliseconds.  Mystery solved.&lt;br /&gt;Postmortem:  The clue was that the execution plan was doing a scan instead of using the real index.&lt;br /&gt;Moral:  Always set the type of the SQL parameter when using SqlCommand directly.&lt;br /&gt;Moral2: Don't use SqlCommand directly.  Use NHibernate or some other ORM so it can figure out all that stuff for you  (Although in legacy systems you don't always have that luxury).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1927103122294900104?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1927103122294900104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1927103122294900104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1927103122294900104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1927103122294900104'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/11/spexecutesql-executes-extremely-slowly.html' title='sp_executesql executes extremely slowly'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4882620797327841852</id><published>2011-11-17T13:03:00.000-08:00</published><updated>2011-11-17T13:03:16.868-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.'/><title type='text'>Sql Server Management Studio intellisense not working</title><content type='html'>My intellisense in Sql Server Management Studio (SSMS) stopped working months ago and I finally decided to get it back.&lt;br /&gt;Turns out that &lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/650569/ssms-2008-r2-is-losing-intellisense-after-installing-visual-studio-2010-sp1"&gt;installing VS2010 R1 disables intellisense in SSMS&lt;/a&gt;.  Who knew?&lt;br /&gt;The solution?  Install the cumulative update 7 for SqlServer2008.  &lt;br /&gt;1.  Go to  &lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2507770&amp;kbln=en-us"&gt;here&lt;/a&gt; and select "SQLServer2008R2_RTM_CU7_2507770_10_50_1777_x64" if you are running the 64-bit version (it's fifth from the bottom). Download it.  Well, you can't just download it.  Frustratingly, you have to enter your email address and then they email you the link.&lt;br /&gt;&amp;lt;grip text="Why can't microsoft just have a menu option in SSMS under "Help" for "Update to latest patches" - even Quicken does that." /&amp;gt;&lt;br /&gt;2.  Click on it to execute it and wait.  Wait some more.  Then realize, it's not going to run the installer it just unzips it to a directory.&lt;br /&gt;3.  Go to that directory and run "SQLServer2008R2-KB2507770-x64.exe" and that will install the update.&lt;br /&gt;4.  Although it doesn't encourage you to do it, reboot your system.&lt;br /&gt;Worked for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4882620797327841852?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4882620797327841852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4882620797327841852' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4882620797327841852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4882620797327841852'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/11/sql-server-management-studio.html' title='Sql Server Management Studio intellisense not working'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5675712209899388488</id><published>2011-11-14T08:19:00.000-08:00</published><updated>2011-11-14T08:19:13.224-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Aparapi AMD parallel OpenCL'/><title type='text'>Aparapi - Accessing the Power of the GPU from Java</title><content type='html'>Gary Frost from AMD presented the Aparapi library to the Java Users Group last Tuesday, Nov 8th, 2011.  The Aparapi library makes it easy to write parallel java programs on the GPU using OpenCL.  Gary has done some very impressive work with Aparapi.  Before Aparapi programmers had to code large blocks of repetitive boilerplate code to get their algorithms to be executed on the GPU.  Aparapi does that for us automatically. &lt;br /&gt;If a GPU is not present Aparapi will use separate threads to enhance performance.&lt;br /&gt;Gary showed an example of the nbody problem where two galaxies collide to demonstrate the power of the GPU.&lt;br /&gt;Some of the performance hit of transferring data to and from the GPU and the CPU should vanish when AMD's fusion chip, which has the GPU and CPU on the same chip, becomes widely used.&lt;br /&gt;Gary mentioned that we are entering a world of throwaway CPU power.  He gave the example of parsing an XML file by dividing it into two parts.  One thread would parse the first section, but the second part of the file might depend on the 67 states that the first part might be ending in.  The solution is to have the CPU/GPU parse the second half in all 67 possibilities, so that when the first part is done the second part will already be finished.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5675712209899388488?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5675712209899388488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5675712209899388488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5675712209899388488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5675712209899388488'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/11/aparapi-accessing-power-of-gpu-from.html' title='Aparapi - Accessing the Power of the GPU from Java'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1215373708753745687</id><published>2011-10-20T10:54:00.000-07:00</published><updated>2011-10-20T10:54:16.003-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlserver windows'/><title type='text'>A Tale of Two Servers</title><content type='html'>"It was the best of times, it was the worst of times..."&lt;br /&gt;Recently I came across two database servers, one with fast execution times, the other with slow execution times.   Both machines were running windows server 2003, both had similar hardware, both had similar disk access speeds, yet one was over three times as fast as the other.&lt;br /&gt;We puzzled over what could be the cause of the difference.&lt;br /&gt;Can you take a guess?&lt;br /&gt;&lt;br /&gt;Turns out the fast machine was running the 64-bit version of Windows 2003 and the slow one was running the 32-bit version.  The fast 64-bit machine could load entire tables directly into its 8 Gig memory making it much faster.  The other machine, when it wasn't hammered by disk thrashing, was probably wondering what it was doing with all that extra memory it couldn't access.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1215373708753745687?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1215373708753745687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1215373708753745687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1215373708753745687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1215373708753745687'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/10/tale-of-two-servers.html' title='A Tale of Two Servers'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2653181720628307705</id><published>2011-10-14T16:03:00.000-07:00</published><updated>2011-10-14T16:03:26.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS5 upgrade'/><title type='text'>All My Apps Disappeared When Upgrading to iOS5</title><content type='html'>I upgraded my iPhone 3GS to iOS5.  All my apps disappeared promptly.  Here are instructions on restoring some of your apps:&lt;br /&gt;In ITunes, on the left side select your iphone under "DEVICES" (I don't know why they shout at us in all caps).  &lt;br /&gt;Then on the horizontal menu bar across the top, select "Apps".  &lt;br /&gt;In the upper left corner of the window, select the "Sync Apps" checkbox.  &lt;br /&gt;In the app list below, check all the apps you want to restore.&lt;br /&gt;Then in the bottom right select "Apply".&lt;br /&gt;&lt;br /&gt;This reloaded all but my apps living in a subfolder.  They are still missing.  I'll update here if I can bring them back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2653181720628307705?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2653181720628307705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2653181720628307705' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2653181720628307705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2653181720628307705'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/10/all-my-apps-disappeared-when-upgrading.html' title='All My Apps Disappeared When Upgrading to iOS5'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5125163684516472459</id><published>2011-10-11T07:06:00.000-07:00</published><updated>2011-10-11T07:06:31.795-07:00</updated><title type='text'>Pictures from HTML5tx October 8, 2011 Austin TX</title><content type='html'>This last Saturday the &lt;a href="http://html5tx.com/"&gt;HTML5tx&lt;/a&gt; conference was in Austin. &lt;br /&gt;The conference was very well organized with good food and good directions around the campus.  An Open Space component was running simultaneously with the prepared sessions.  To my surprise the Open Spaces were well attended.&lt;br /&gt;To me the major theme of last week's Pablo's Fiesta and this week's HTML5 was "Regressive Enhancement"; with modernizr and pollyfills we can actually start using the features in HTML5 now, even in older browsers, yes Virginia, even in IE6.&lt;br /&gt;&lt;br /&gt;Here's a few photos:&lt;br /&gt;Opening session&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-0835-IMG_4349.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-0835-IMG_4349.jpg" title="http://www.fincher.org/images/2011-10-08-0835-IMG_4349.jpg" /&gt;&lt;br /&gt;&lt;a href="http://miketaylr.com/"&gt;Mike Taylor&lt;/a&gt; from Opera gave a talk on the HTML5 DOM and the associated IDL.  I was impressed with Opera Dragonfly, a debugging environment shipped inside Opera.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-0931-IMG_4350.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-0931-IMG_4350.jpg" title="http://www.fincher.org/images/2011-10-08-0931-IMG_4350.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-0933-IMG_4351.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-0933-IMG_4351.jpg" title="http://www.fincher.org/images/2011-10-08-0933-IMG_4351.jpg" /&gt;&lt;br /&gt;Alex Sexton gave an excellent overview of modernizr and yepnope and the whole polyfill game.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-1025-IMG_4352.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-1025-IMG_4352.jpg" title="http://www.fincher.org/images/2011-10-08-1025-IMG_4352.jpg" /&gt;&lt;br /&gt;HTML5 even has its own gang sign (Be sure to remember it if your caught in a dark alley between a gang of Ror guys and those PHP punks)&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-1025-IMG_4354.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-1025-IMG_4354.jpg" title="http://www.fincher.org/images/2011-10-08-1025-IMG_4354.jpg" /&gt;&lt;br /&gt;Estelle Weyl at &lt;a href="http://www.standardista.com"&gt;www.standardista.com&lt;/a&gt; presented a very informative session on HTML5 forms.&lt;br /&gt;(If you see her, be sure to wish her a happy Columbus day).  Estelle showed how to style invalid input boxes with CSS.  I liked her presentation format of using &lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-1544-IMG_4355.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-1544-IMG_4355.jpg" title="http://www.fincher.org/images/2011-10-08-1544-IMG_4355.jpg" /&gt;&lt;br /&gt;We ended with a panel discussion&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-08-1633-IMG_4360.jpg" width="600" height="450" alt="http://www.fincher.org/images/2011-10-08-1633-IMG_4360.jpg" title="http://www.fincher.org/images/2011-10-08-1633-IMG_4360.jpg" /&gt;&lt;br /&gt;Mike Wilcox gave an interesting history of video on the web, including H.264 (based on Quicktime), MPEG/4, WebM.  Some browsers support some video encoders natively, but no video format enjoys support from all browsers.  Mike's solution?  Upload your video to YouTube and let them figure all that out.&lt;br /&gt;&lt;br /&gt;A few useful sites:&lt;br /&gt;&lt;a href="http://caniuse.com"&gt;CanIUse.com&lt;/a&gt; Summary of browser features like HTML5, CSS3 and SVG&lt;br /&gt;&lt;a href="http://html5boilerplate.com"&gt;html5boilerplate.com&lt;/a&gt; examples of best practice in html5 and CSS&lt;br /&gt;&lt;a href="www.schema.org"&gt;schema.org&lt;/a&gt; for schemas&lt;br /&gt;&lt;a href="http://microformats.org/"&gt;microformats.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5125163684516472459?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5125163684516472459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5125163684516472459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5125163684516472459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5125163684516472459'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/10/pictures-from-html5tx-october-8-2011.html' title='Pictures from HTML5tx October 8, 2011 Austin TX'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5369755554510808592</id><published>2011-10-10T09:04:00.000-07:00</published><updated>2011-10-10T09:04:55.475-07:00</updated><title type='text'>VS2P4 - A Visual Studio Plugin for Perforce</title><content type='html'>I've been using &lt;a href="http://vs2p4.codeplex.com/"&gt;VS2P4&lt;/a&gt; for a while and really like it.  VS2P4 automatically checks out files in Visual Studio.  Dale Brubaker has done a fantastic job with this plugin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5369755554510808592?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5369755554510808592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5369755554510808592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5369755554510808592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5369755554510808592'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/10/vs2p4-visual-studio-plugin-for-perforce.html' title='VS2P4 - A Visual Studio Plugin for Perforce'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-6552118271681689919</id><published>2011-10-08T18:39:00.000-07:00</published><updated>2011-10-08T18:39:27.619-07:00</updated><title type='text'>Pictures From Pablo's Fiesta - Open Space Austin TX Oct 30,2011</title><content type='html'>I went to my first Open Space Conference, &lt;a href="http://lostechies.com/"&gt;Los Techies&lt;/a&gt;'s &lt;a href="http://pablosfiesta.pbworks.com/w/page/37563890/Schedule2011"&gt;Pablo's Fiesta&lt;/a&gt;.  Here's a few photos:&lt;br /&gt;&lt;br /&gt;Doc Lister started by giving the ground rules of an Open Space Conference.  Four ideas and one rule; or was it four suggestions and two golden rules?  Whatever.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1757-IMG_4246.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1757-IMG_4246.jpg" title="http://www.fincher.org/images/2011-09-30-1757-IMG_4246.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1813-IMG_4249.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1813-IMG_4249.jpg" title="http://www.fincher.org/images/2011-09-30-1813-IMG_4249.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1814-IMG_4250.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1814-IMG_4250.jpg" title="http://www.fincher.org/images/2011-09-30-1814-IMG_4250.jpg" /&gt;&lt;br /&gt;Matt Hinze was one of the suggesters of sessions for the next day.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1818-IMG_4252.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1818-IMG_4252.jpg" title="http://www.fincher.org/images/2011-09-30-1818-IMG_4252.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1823-IMG_4253.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1823-IMG_4253.jpg" title="http://www.fincher.org/images/2011-09-30-1823-IMG_4253.jpg" /&gt;&lt;br /&gt;Jeffery Palermo suggested a session on how to hire programmers.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1827-IMG_4254.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1827-IMG_4254.jpg" title="http://www.fincher.org/images/2011-09-30-1827-IMG_4254.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1827-IMG_4255.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1827-IMG_4255.jpg" title="http://www.fincher.org/images/2011-09-30-1827-IMG_4255.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1845-IMG_4257.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1845-IMG_4257.jpg" title="http://www.fincher.org/images/2011-09-30-1845-IMG_4257.jpg" /&gt;&lt;br /&gt;Our list of sessions:&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1847-IMG_4261.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1847-IMG_4261.jpg" title="http://www.fincher.org/images/2011-09-30-1847-IMG_4261.jpg" /&gt;&lt;br /&gt;We did a "fishbowl" exercise with five chairs, one has to be empty, and people talked about software quality - reminded me of Zen and the Art of Motorcycle Repair.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1856-IMG_4263.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1856-IMG_4263.jpg" title="http://www.fincher.org/images/2011-09-30-1856-IMG_4263.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-30-1856-IMG_4264.jpg" width="600" alt="http://www.fincher.org/images/2011-09-30-1856-IMG_4264.jpg" title="http://www.fincher.org/images/2011-09-30-1856-IMG_4264.jpg" /&gt;&lt;br /&gt;Jeffery Palermo and Steve Done hosted a session on how to hire good employees.  Jeffery asked a good set of questions:&lt;br /&gt;How long does it take to learn you've made a mistake in hiring?  How can you simulate the process in hiring to avoid making that mistake?&lt;br /&gt;Jeffery did something very good near the end of the talk. He asked everyone who had contributed to the discussion to be quiet so we could hear from those who were quiet.  This had the effect, for a little while, of silencing those who had been a little too verbose early on.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-0936-IMG_4332.jpg" width="600" alt="http://www.fincher.org/images/2011-10-01-0936-IMG_4332.jpg" title="http://www.fincher.org/images/2011-10-01-0936-IMG_4332.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-0937-IMG_4335.jpg" width="600" alt="http://www.fincher.org/images/2011-10-01-0937-IMG_4335.jpg" title="http://www.fincher.org/images/2011-10-01-0937-IMG_4335.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-1056-IMG_4338.jpg" width="600" alt="http://www.fincher.org/images/2011-10-01-1056-IMG_4338.jpg" title="http://www.fincher.org/images/2011-10-01-1056-IMG_4338.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-1056-IMG_4339.jpg" width="600" alt="http://www.fincher.org/images/2011-10-01-1056-IMG_4339.jpg" title="http://www.fincher.org/images/2011-10-01-1056-IMG_4339.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-1225-IMG_4342.jpg" width="600" alt="http://www.fincher.org/images/2011-10-01-1225-IMG_4342.jpg" title="http://www.fincher.org/images/2011-10-01-1225-IMG_4342.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-1236-IMG_4343.jpg" width="600" alt="http://www.fincher.org/images/2011-10-01-1236-IMG_4343.jpg" title="http://www.fincher.org/images/2011-10-01-1236-IMG_4343.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-10-01-1617-IMG_1353.jpg" width="600"  alt="http://www.fincher.org/images/2011-10-01-1617-IMG_1353.jpg" title="http://www.fincher.org/images/2011-10-01-1617-IMG_1353.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;My random tidbits:&lt;br /&gt;Test your site in IE early.  Sometimes IE's JavaScript is so glacial your site is unusable.&lt;br /&gt;Check out Blueprint.css for web templates.&lt;br /&gt;&lt;a href="http://howtonode.org/"&gt;Node.js&lt;/a&gt; is a server-side JavaScript library to host simple web sites.&lt;br /&gt;Watin is preferred for Web GUI testing.&lt;br /&gt;Use Socket.IO library for web sockets&lt;br /&gt;&lt;a href="http://dailyjs.com/"&gt;http://dailyjs.com/&lt;/a&gt; for your daily dose of JS.&lt;br /&gt;Cloud9ide.com is an interesting site - your browser is the ide.  Cloud9 will publish your site directly to github.  Cloud9 doesn't do compiling, because the cool kids are writing in scripting languages.&lt;br /&gt;Checkout &lt;a href="http://lostechies.com/johnteague/"&gt;John Teague's&lt;/a&gt; blog.  He did a great session on Node.js&lt;br /&gt;coffeekup.org&lt;br /&gt;Use nhprof.com to profile your nhibernate code.  Other ORMs: dapper, petaPoco, Massive&lt;br /&gt;&lt;a href="http://www.devincook.com/goldparser/grammars/index.htm"&gt;Sql 98 GoldParse.txt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://martinfowler.com/bliki/CQRS.html"&gt;CQRS&lt;/a&gt; - Command Query Responsibility Segregation&lt;br /&gt;SignalR is an event sourcing library that degrades well over different browsers.  It tries WebSockets.  If the browser doesn't support them it tries a flash program, then long polling to communicate with the server.  (This can be bad if you have a lot of customers using old browser using long polling - can tie up threads on the web server)&lt;br /&gt;trello uses SignalR&lt;br /&gt;NServiceBus&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-6552118271681689919?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/6552118271681689919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=6552118271681689919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6552118271681689919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6552118271681689919'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/10/pictures-from-pablos-fiesta-open-space.html' title='Pictures From Pablo&apos;s Fiesta - Open Space Austin TX Oct 30,2011'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-181851028899520449</id><published>2011-09-13T08:22:00.000-07:00</published><updated>2011-09-13T08:22:24.534-07:00</updated><title type='text'>ADNUG:  Justin Pope on Advanced jQuery</title><content type='html'>&lt;img src="http://www.fincher.org/images/2011-09-12-2211-IMG_4269__Medium_.jpg" width="500" /&gt;&lt;br /&gt;&lt;br clear="all" /&gt;&lt;br /&gt;&lt;a href="http://www.JustinCPope.com"&gt;Justin Pope&lt;/a&gt; from &lt;a href="http://www.headspring.com"&gt;Headspring&lt;/a&gt; spoke to 70 people at the &lt;a href="http://www.adnug.org"&gt;Austin .Net Users Group&lt;/a&gt; last night on Advanced jQuery.  Justin started by giving a brief overview of jQuery, which I appreciated, and moved to major components like Datatables and UI.  Along the way Justin gave warnings of land mines in jQuery, like always use "thead" and "tbody" in tables.  Justin is a great presenter with a good sense of humor.&lt;br /&gt;My jumbled notes:&lt;br /&gt;Use a mirror site for JavaScript libraries so your page loads faster since browsers may limit simultaneous connections to a site.&lt;br /&gt;Put your JavaScript at the bottom of the page instead of the headers so the page loads faster.&lt;br /&gt;Golden Rule:  Select by class instead to id.&lt;br /&gt;Use Datatables from Datatables.net&lt;br /&gt;"Flot" is a great free graphing package; High Charts is great, but costs money. (protoviz was also mentioned by the audience.&lt;br /&gt;Diamond Rule:  Use special characters, like "-" in naming to make finding JavaScript classes easier.&lt;br /&gt;Platinum Rule:  Use separate classes for styles and functionality.&lt;br /&gt;Justin recommended the book "JavaScript: The Good Parts", and Rebbecca Murphy's site &lt;a href="http://jqfundamentals.com"&gt;jqfundamentals.com&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-09-12-2211-IMG_4270__Medium_.jpg" width="500" align="right" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-181851028899520449?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/181851028899520449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=181851028899520449' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/181851028899520449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/181851028899520449'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/09/adnug-justin-pope-on-advanced-jquery.html' title='ADNUG:  Justin Pope on Advanced jQuery'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-252296182207629325</id><published>2011-08-26T19:33:00.000-07:00</published><updated>2011-08-26T19:33:50.297-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malaria'/><category scheme='http://www.blogger.com/atom/ns#' term='smallpox'/><title type='text'>And the winner is ... SmallPox</title><content type='html'>Interesting visual about the most deadly diseases in history.&lt;br /&gt;Malaria kills almost 800,000 people a year and yet our first world news seldom mentions it.  Few organizations target it.  Malaria is the elephant in the room few  talk about.  Fortunately the Bill and Melinda Gates foundation takes the suffering of millions of people seriously.&lt;br /&gt;&lt;a href="http://www.visualnews.com/2011/08/24/the-deadliest-disease-outbreaks-visualized/"&gt;&lt;img src="http://visualnews.columnfivemedia.netdna-cdn.com/wp-content/uploads/2011/08/Outbreaks_1.jpg" alt="The Deadliest Disease Outbreaks Visualized" title="The Deadliest Disease Outbreaks Visualized" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.visualnews.com/"&gt;Infographic by Visual News&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-252296182207629325?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/252296182207629325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=252296182207629325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/252296182207629325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/252296182207629325'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/and-winner-is-smallpox.html' title='And the winner is ... SmallPox'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1942435113673402548</id><published>2011-08-26T15:23:00.000-07:00</published><updated>2011-08-26T15:23:55.491-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='austin arduino'/><title type='text'>Arduino Boot Camp II</title><content type='html'>Our intrepid band of Arduino wannabes met again and Blake Freeburg taught us how to read sensors, this is part two of an eight part series in learning the Arduino way.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1.jpg" width="800" height="600" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1__0_.jpg" width="800" height="600" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1__0_.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1__0_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1__1_.jpg" width="800" height="600" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1__1_.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1__1_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1__2_.jpg" width="800" height="600" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1__2_.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1__2_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1__5_.jpg" width="800" height="600" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1__5_.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1__5_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1__6_.jpg" width="800" height="600" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1__6_.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1__6_.jpg" /&gt;&lt;br /&gt;Rachel watched "Beauty and the Beast".&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-22-2130-Arduino1__3_.jpg" width="800" height="344" alt="http://www.fincher.org/images/2011-08-22-2130-Arduino1__3_.jpg" title="http://www.fincher.org/images/2011-08-22-2130-Arduino1__3_.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1942435113673402548?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1942435113673402548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1942435113673402548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1942435113673402548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1942435113673402548'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/arduino-boot-camp-ii.html' title='Arduino Boot Camp II'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2844765460484984194</id><published>2011-08-26T12:47:00.000-07:00</published><updated>2011-10-18T10:03:46.249-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bank of america'/><category scheme='http://www.blogger.com/atom/ns#' term='quicken'/><title type='text'>Quicken 2010 Cannot Connect to Bank of America</title><content type='html'>Quicken is so awful in many respects and somewhat competent in others, but I have used it for years and have a lot "invested" in the product.  &lt;br /&gt;Recently it stopped connecting to Bank of America and I got it to reconnect by basically disconnecting it from "OneStep Update" and then adding it back.  Here's my suggestions:&lt;br /&gt;&lt;br /&gt;1. Select your Bank of America account from the navigation pane on the left side.&lt;br /&gt;2. Click on the "Account Actions" dropdown list on the upper right side.&lt;br /&gt;3. Select "Edit Account Details".&lt;br /&gt;4. Select the "Online Services" tab.&lt;br /&gt;5. Select the "Remove from One Step Update" button.&lt;br /&gt;6. Then add the account back by selecting "Activate One Step Update".&lt;br /&gt;7. Bank of America will give you a challenge question.&lt;br /&gt;8. My account then successfully could connect again to Bank of America.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2844765460484984194?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2844765460484984194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2844765460484984194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2844765460484984194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2844765460484984194'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/quicken-2010-cannot-connect-to-bank-of.html' title='Quicken 2010 Cannot Connect to Bank of America'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7727607164608161924</id><published>2011-08-22T07:56:00.000-07:00</published><updated>2011-08-22T07:56:16.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software jobs austin'/><title type='text'>Why Software Is Eating The World</title><content type='html'>Marc Andreessen has a great &lt;a href="http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html"&gt; article &lt;/a&gt; in the wsj about why software matters more than most people think. (Granted he is heavily invested in software, and it's to his advantage for people to think software is important, but he makes valid points).&lt;br /&gt;"... every company I work with is absolutely starved for talent. Qualified software engineers, managers, marketers and salespeople in Silicon Valley can rack up dozens of high-paying, high-upside job offers any time they want, while national unemployment and underemployment is sky high."&lt;br /&gt;I am currently seeing this in Austin.  I bump into old friends in the industry and their companies are hiring not just one software developer but 8 - 10 people.  It's a great time to be a really good polyglot software developer.&lt;br /&gt;For the past decade enrollment in software as a major has been falling.  I think High School seniors hear the news about all the software jobs going to India and China and they think no more jobs will be left here.  The seniors are partially right.  The low skilled software jobs are going off-shore, but many of the highly technical jobs go begging for applicants here in the US.  So Seniors, if you have a love of programming and technology, heed Marc's advice, go into computer science and write the software that will eat the world.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7727607164608161924?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7727607164608161924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7727607164608161924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7727607164608161924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7727607164608161924'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/why-software-is-eating-world.html' title='Why Software Is Eating The World'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2913377129114004943</id><published>2011-08-10T08:24:00.000-07:00</published><updated>2011-08-10T08:25:37.952-07:00</updated><title type='text'>Austin .Net Users Group Meeting August 8th, 2011  Business Intelligence</title><content type='html'>&lt;a href="http://jeffreypalermo.com/"&gt;Jeffery Palermo&lt;/a&gt; spoke about how developers can make their data more usable by Business Intelligence software.  He talked about using Fact tables and Star schemas.  He gave a great example of some very ugly SQL to produce a report that was turned into clean SQL by using a fact table.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-08-1821-IMG_1144__Small_.jpg" width="400" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-08-1847-IMG_1146__Small_.jpg" width="400"  /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2913377129114004943?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2913377129114004943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2913377129114004943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2913377129114004943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2913377129114004943'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/austin-net-users-group-meeting-august.html' title='Austin .Net Users Group Meeting August 8th, 2011  Business Intelligence'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3262558407713293479</id><published>2011-08-06T16:05:00.000-07:00</published><updated>2011-08-06T16:05:57.067-07:00</updated><title type='text'>Arduino Boot Camp</title><content type='html'>Blake hosted an Intro to Arduino, the open design controller.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-06-0936-IMG_8841__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-06-0937-IMG_8845__Small_.jpg" /&gt;&lt;br /&gt;At the end I had my Arduino board blinking lights.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-06-1056-IMG_8850__Small_.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3262558407713293479?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3262558407713293479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3262558407713293479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3262558407713293479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3262558407713293479'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/arduino-boot-camp.html' title='Arduino Boot Camp'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1100743099412710001</id><published>2011-08-06T15:02:00.000-07:00</published><updated>2011-08-06T15:02:40.918-07:00</updated><title type='text'>Bruce Tate Speaking at Agile Austin August 2th, 2011</title><content type='html'>Bruce Tate gave a talk on "Languages and Leverage:  The impact of programming languages on high-leverage programming".  I'm a big fan of Bruce since he wrote Beyond Java, Bruce has been willing to move on to new technologies after making a huge investment in Java.&lt;br /&gt;Bruce took old movies and identified each one with a language making the time more fun.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-02-1828-IMG_8714__Small_.jpg" width="640" height="427" alt="2011/2011-08-02-1828-IMG_8714__Small_.jpg" title="2011/2011-08-02-1828-IMG_8714__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-02-1828-IMG_8713__Small_.jpg" width="640" height="427" alt="2011/2011-08-02-1828-IMG_8713__Small_.jpg" title="2011/2011-08-02-1828-IMG_8713__Small_.jpg" /&gt;&lt;img src="http://www.fincher.org/images/2011-08-02-1840-IMG_8719__Small_.jpg" width="640" height="427" alt="2011/2011-08-02-1840-IMG_8719__Small_.jpg" title="2011/2011-08-02-1840-IMG_8719__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-02-1840-IMG_8719.jpg" width="3888" height="2592" alt="2011/2011-08-02-1840-IMG_8719.jpg" title="2011/2011-08-02-1840-IMG_8719.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-02-1840-IMG_8718.jpg" width="3888" height="2592" alt="2011/2011-08-02-1840-IMG_8718.jpg" title="2011/2011-08-02-1840-IMG_8718.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-08-02-1840-IMG_8718__Small_.jpg" width="640" height="427" alt="2011/2011-08-02-1840-IMG_8718__Small_.jpg" title="2011/2011-08-02-1840-IMG_8718__Small_.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;My random notes (which may or may not be what Bruce actually said):&lt;br /&gt;Complexity is expensive; oversimplification leads to complexity.&lt;br /&gt;Scala is good for java developers to come to the functional party, but perhaps not a good language for those not vested in java.&lt;br /&gt;Lisp is the most powerful language with possible exception of Haskel.&lt;br /&gt;Every 3-5 years Lisp makes a comeback.&lt;br /&gt;The language matters a lot in a project, especially since it affects communication with team members.  The community around a language matters.&lt;br /&gt;Bruce uses RubyOnRails for his company.&lt;br /&gt;We are all polyglot programmers now - javascript, css, html, and our main language.&lt;br /&gt;Don't put in more languages on a whim, make sure adding a new language buys more than the overhead it costs.&lt;br /&gt;Every 10-15 years programming goes through a paradigm shift - we are starting the transition to functional programming to take advantage of all those cores that Intel gifts us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1100743099412710001?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1100743099412710001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1100743099412710001' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1100743099412710001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1100743099412710001'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/08/bruce-tate-speaking-at-agile-austin.html' title='Bruce Tate Speaking at Agile Austin August 2th, 2011'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3958631392227464328</id><published>2011-07-27T17:14:00.000-07:00</published><updated>2011-07-27T17:14:16.526-07:00</updated><title type='text'>Austin on Rails, July 25, 2001</title><content type='html'>&lt;img src="http://www.fincher.org/images/2011-07-26-1909-IMG_4186__Small_.jpg" align="right" width="300" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-07-26-1948-IMG_4188__Small_.jpg" align="right" width="300" /&gt;&lt;br /&gt;Eighty-five people packed into the space at Datran to hear speakers talk about the basics of Ruby on Rails.  Six people were looking for jobs and nine companies were looking for people - pretty good odds for good Rails developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3958631392227464328?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3958631392227464328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3958631392227464328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3958631392227464328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3958631392227464328'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/07/austin-on-rails-july-25-2001.html' title='Austin on Rails, July 25, 2001'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5948618324835991185</id><published>2011-07-16T13:41:00.000-07:00</published><updated>2011-07-16T13:41:50.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eestor super-capacitors nissan leaf austin lithium-ion'/><title type='text'>Saw My First Nissan Leaf in the Wild in Austin</title><content type='html'>&lt;img src="http://www.fincher.org/images/2011-06-10-1249-NissanLeaf__Small_.jpg" align="right" width="300" /&gt;&lt;br /&gt;While Frank and I were taking an afternoon walk, we came across the first all electric Nissan Leaf I've seen in the wild.  I've been reading about the Leaf and think it has great promise.  Awkwardly I decided to take a picture just as the owner walked up with four guys.  I introduced myself and the owner, Drew, said he loved the Leaf, got about 100 miles/charge and would buy one again.&lt;br /&gt;The big drawback of course for electric vehicles is the cost of the battery.  The Leaf has a 24-kilowatt-hour (KWH) battery rumored to cost between $1,000 to $375 per KWH.  This gives the battery pack a cost of $24,000 to $9,000.&lt;br /&gt;The Leaf gets about 4 miles per KWH giving the range of 96 miles.  My electric bill is 11 cents per kilowatt-hour giving a cost per mile of about 3 cents.  My Camry gets about 27 miles/gal, with gas at $3.60 per gallon that gives a cost of 13 cents a mile for the gas.&lt;br /&gt;Although the Leaf costs significantly less to operate (23%), the extra capital costs of the battery makes the economics a bit murkier - all depending on the future cost of gas.&lt;br /&gt;The future of cars will be electric much faster than most people appreciate.  The lithium-ion batteries are getting much better each year with a better price/performance ratio and these batteries will be the bridging technology to a new generation of super-capacitors, the ultimate power storage unit.&lt;br /&gt;Super-capacitors do not store power in chemical bonds, but purely electrical.  Super-capacitors can be charged very quickly and will easily last the life of the car.  Currently, our capacitors are too expensive, too bulky, and do not store enough power, but that will change.  Although it looks like eestor will not pan out, other super-capacitors are being researched and will be brought to market in the not too distant future and we can say goodbye to oil imports.  More on the particulars of that in a future post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5948618324835991185?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5948618324835991185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5948618324835991185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5948618324835991185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5948618324835991185'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/07/saw-my-first-nissan-leaf-in-wild-in.html' title='Saw My First Nissan Leaf in the Wild in Austin'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5910142962945091362</id><published>2011-07-06T08:34:00.000-07:00</published><updated>2011-07-06T08:34:43.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net .net vs2010'/><title type='text'>In Visual Studio 2010 the "Find and Replace" Panel Keeps Disappearing</title><content type='html'>I don't know why, but some days you wake up and things have just changed overnight.  You may find yourself in love with a co-worker or realize you really like jelly donuts for the first time.&lt;br /&gt;For me a change happened one morning when the "Find and Replace" panel in Visual Studio 2010 started disappearing after its first use.  Very annoying.  After a while, really, really annoying.  The fix in my case was to open "Tools/Options/Environment/Find and Replace" and uncheck "Hide Find and Replace Window...".  I don't know how it got set in the first place, but some mornings you wake up and things are just different - now where is my jelly donut?&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-07-06-FindReplaceDisappears.jpg" width='600' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5910142962945091362?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5910142962945091362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5910142962945091362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5910142962945091362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5910142962945091362'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/07/in-visual-studio-2010-find-and-replace.html' title='In Visual Studio 2010 the &quot;Find and Replace&quot; Panel Keeps Disappearing'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3656489242267954670</id><published>2011-06-29T12:47:00.000-07:00</published><updated>2011-06-29T12:47:53.235-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net .net vs2010'/><title type='text'>"You do not have sufficient privilege to access iis web sites on your machine."</title><content type='html'>While upgrading a solution from VS2005 to VS2010 in XP I got this error:&lt;br /&gt;"You do not have sufficient privilege to access iis web sites on your machine." which was puzzling since I thought I had enough privileges to access iis web sites.&lt;br /&gt;The "solution" to the problem was to execute this command:&lt;br /&gt;&lt;pre class="code"&gt;C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ga aa\fincher&lt;br /&gt;&lt;/pre&gt;which satisfied IIS and the upgrade worked great, well, after I went to IIS, right-clicked on the web site, selected "Properties/ASP.Net" and set the "ASP.NET version" to 4.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3656489242267954670?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3656489242267954670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3656489242267954670' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3656489242267954670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3656489242267954670'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/06/you-do-not-have-sufficient-privilege-to.html' title='&quot;You do not have sufficient privilege to access iis web sites on your machine.&quot;'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3764977124950452509</id><published>2011-06-29T11:08:00.000-07:00</published><updated>2011-06-29T11:08:37.318-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java austin gae gwt RoR Google'/><title type='text'>Austin Java Users Group:  Google's GWT and Google App Engine</title><content type='html'>&lt;img src="http://www.fincher.org/images/2011-06-28-1922-AustinJug.jpg" alt="pic" align="right" /&gt;&lt;br /&gt;Daniel Guemeur gave a talk to 70 people at last night's Java User's Group.  Pizza was provided from &lt;a href="http://www.daskeyboard.com"&gt;Das Keyboard&lt;/a&gt;, which was invented by Daniel.  (I've used a Das Keyboard for the last few years and love it).&lt;br /&gt;Google Web Toolkit translates Java code to JavaScript so it can run natively in browsers.  The advantage is that you can program in a friendlier language and environment than in javascript - debugging with 'Alert's is not much fun.&lt;br /&gt;With Google App Engine (GAE) you can take applications written in Java, Python, or Go and immediately deploy to Google's cloud servers without the hassle of managing and configuring servers.&lt;br /&gt;Interestingly, Daniel said he was moving one of his applications, &lt;a href="http://app.typrx.com"&gt;app.typrx.com&lt;/a&gt;, to GWT and GAE from Ruby on Rails.  Daniel thought RoR is good for smaller deployments, but that large enterprise software should be done in something like Java on a robust platform.  If you have the staff and machines, you can deploy to your own servers in a traditional way, or you can just use GAE.   He estimated that RoR development to be three times faster than Java, but that in the end Java is easier to maintain and scale.&lt;br /&gt;An audience member commented that GAE has been a disappointment to some for its lack of robustness.  Daniel agreed that its a problem, but that the advantages still outweighed the downtime.&lt;br /&gt;Gerald Cantor talked in the Technotizer time about the CamelOne conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3764977124950452509?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3764977124950452509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3764977124950452509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3764977124950452509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3764977124950452509'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/06/austin-java-users-group-googles-gwt-and.html' title='Austin Java Users Group:  Google&apos;s GWT and Google App Engine'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1204434103532953729</id><published>2011-05-26T13:59:00.000-07:00</published><updated>2011-05-26T13:59:26.321-07:00</updated><title type='text'>Free Programatic Interface to Excel in C# - EPPlus</title><content type='html'>Needing a way to programatically create Excel spreadsheets, I found EPPlus and it works great.  It took about 10 minutes to create my first multi-workbook excel file.&lt;br /&gt;You can download it at &lt;a href="http://epplus.codeplex.com/"&gt;epplus.codeplex.com&lt;/a&gt;.&lt;br /&gt;My toy code:&lt;br /&gt;&lt;pre class="code"&gt;private static void WriteExcelBrandsList(BrandAndCodeRepository brandsRepository, Choice choice)&lt;br /&gt;{&lt;br /&gt;  using (ExcelPackage pck = new ExcelPackage()) {&lt;br /&gt;    //Create the worksheet for each list&lt;br /&gt;    foreach (var listName in brandsRepository.GetLists())&lt;br /&gt;    {&lt;br /&gt;      ExcelWorksheet ws = pck.Workbook.Worksheets.Add(listName);&lt;br /&gt;      ws.Cells["A1"].Value = "Brand";&lt;br /&gt;      ws.Cells["B1"].Value = "Fieldwork";&lt;br /&gt;      var brandAndCodes = brandsRepository.GetList(listName);&lt;br /&gt;      int i = 2;&lt;br /&gt;      foreach (var brandAndCode in brandAndCodes)&lt;br /&gt;      {&lt;br /&gt;          ws.Cells["A" + i].Value = brandAndCode.BrandId;&lt;br /&gt;          ws.Cells["B" + i].Value = "2011-01";&lt;br /&gt;          i++;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    string fileName = string.Format("C:\\BrandLists_{0}_{1}.xlsx", choice.Category, choice.Locale);&lt;br /&gt;    Console.Out.WriteLine("writing to fileName = {0}", fileName);&lt;br /&gt;    pck.SaveAs(new FileInfo(fileName));&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1204434103532953729?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1204434103532953729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1204434103532953729' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1204434103532953729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1204434103532953729'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/05/free-programatic-interface-to-excel-in.html' title='Free Programatic Interface to Excel in C# - EPPlus'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1132316660971150317</id><published>2011-05-25T11:26:00.000-07:00</published><updated>2011-05-25T11:26:20.879-07:00</updated><title type='text'>Austin on Rails, May 24, 2011</title><content type='html'>I drop in on the Austin on Rails community occasionally to get a taste of what's coming to .Net in a few years.  Eighty people crammed into a stuffy room to catch the latest in Rails technology.&lt;br /&gt;Matt Thompson gave an overview of CoffeeScript, a semantically more pleasant version of JavaScript that gets translated into real JavaScript.&lt;br /&gt;Adam Michela, aka soopa, presented Sass, Syntactically Awesome Style Sheets, a layer of abstraction above css which get translated into real css files.&lt;br /&gt;The pairing of the technologies was a nice touch by Damon Clinkscales since both will be in the next version of Rails and both are essentially the same thing -  a more human language that gets translated down to a tried and true web component.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-24-1951-IMG_4104__Small_.jpg" width="400" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-24-1952-IMG_4108__Small_.jpg" width="400" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1132316660971150317?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1132316660971150317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1132316660971150317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1132316660971150317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1132316660971150317'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/05/austin-on-rails-may-24-2011.html' title='Austin on Rails, May 24, 2011'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-6646201737134866778</id><published>2011-05-03T20:07:00.000-07:00</published><updated>2011-05-03T20:15:57.529-07:00</updated><title type='text'>Agile Austin May 3, 2011 - Steven “Doc” List: The Agile Lego Game</title><content type='html'>Steven "Doc" List of ThoughtWorks led the Agile group in a fun game of learning agile principles by playing with Legos.  One member of each team volunteered to be the "customer", our team was fortunate enough to have Scott Killen.  The customer provided each team with a set of user stories like 'your animal should have wings'.  We walked through three iterations of estimating, planning, building, and retrospection.  The game was a fun way to learn Agile and get to know other members better.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-2136-IMG_0786__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1913-IMG_0770__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1919-IMG_0771__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1920-IMG_0772__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1924-IMG_0774__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1926-IMG_0776__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1950-IMG_0777__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-1951-IMG_0778__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-2002-IMG_0779__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-2010-IMG_0783__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-05-03-2018-IMG_0785__Small_.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-6646201737134866778?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/6646201737134866778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=6646201737134866778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6646201737134866778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6646201737134866778'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/05/agile-austin-may-3-2011-steven-doc-list.html' title='Agile Austin May 3, 2011 - Steven “Doc” List: The Agile Lego Game'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-713330205716600260</id><published>2011-05-03T07:54:00.000-07:00</published><updated>2011-05-03T07:54:26.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#:  Does a Close() automatically call a Flush()</title><content type='html'>The following C# code always looked a little clunky to me, because a Close() should probably perform a flush as well.  I quickly Googled around and my suspicions were confirmed that the Close() method would automatically do a Flush().&lt;br /&gt;&lt;pre class="code"&gt;Response.Write(qdbXml);&lt;br /&gt;Response.Flush();&lt;br /&gt;Response.Close();&lt;br /&gt;&lt;/pre&gt;So while cleaning up some other code I removed the Flush() call.  Then everything stopped working.  I thought it was the other changes I made at first.  Chrome gave this helpful message:      &lt;br /&gt;&lt;pre class="code"&gt;Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.&lt;br /&gt;&lt;/pre&gt;I restored the Flush() and everything worked great again.  The Response object above is a System.Web.Mvc.Controller.Response object which doesn't necessarily work like some other stream objects and needs flushing before closing.  &lt;br /&gt;TIL not all stream objects behave alike and I can get in trouble by assuming hastily gathered Googled results apply to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-713330205716600260?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/713330205716600260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=713330205716600260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/713330205716600260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/713330205716600260'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/05/c-does-close-automatically-call-flush.html' title='C#:  Does a Close() automatically call a Flush()'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3005345134113828312</id><published>2011-04-22T13:50:00.000-07:00</published><updated>2011-04-22T13:50:53.814-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql join sqlserver null'/><title type='text'>SQL Server: Joining on NULLs</title><content type='html'>Today I learned you can't join tables on NULLs because SQL Server deems a NULL to be an ambiguous quantity so two NULLs are not the same NULL.  You can force SQL Server to do the join by doing something like this&lt;br /&gt;&lt;pre class='code'&gt;... colors c JOIN points p ON (c.color = p.color OR (c.color IS NULL AND p.color IS NULL))&lt;br /&gt;&lt;/pre&gt;This example assumes only one team will have a NULL color.&lt;br /&gt;&lt;pre class='code'&gt;CREATE TABLE colors (&lt;br /&gt;  team      varchar(16) NOT NULL,&lt;br /&gt;  color     varchar(32) NULL,&lt;br /&gt;)&lt;br /&gt;CREATE TABLE points (&lt;br /&gt;  color     varchar(32) NULL,&lt;br /&gt;  points    int&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;INSERT INTO colors VALUES ('lobsters','red')&lt;br /&gt;INSERT INTO colors VALUES ('swans','white')&lt;br /&gt;INSERT INTO colors VALUES ('jellyfish',NULL)&lt;br /&gt;&lt;br /&gt;INSERT INTO points VALUES ('red',100)&lt;br /&gt;INSERT INTO points VALUES ('white',90)&lt;br /&gt;INSERT INTO points VALUES (NULL,80)&lt;br /&gt;SELECT * FROM colors c JOIN points p ON c.color = p.color&lt;br /&gt;-- returns:&lt;br /&gt;--lobsters         red                              red                              100&lt;br /&gt;--swans            white                            white                            90&lt;br /&gt;SELECT * FROM colors c JOIN points p ON (c.color = p.color OR (c.color IS NULL AND p.color IS NULL))&lt;br /&gt;-- returns:&lt;br /&gt;--lobsters         red                              red                              100&lt;br /&gt;--swans            white                            white                            90&lt;br /&gt;--jellyfish        NULL                             NULL                             80&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3005345134113828312?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3005345134113828312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3005345134113828312' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3005345134113828312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3005345134113828312'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/04/sql-server-joining-on-nulls.html' title='SQL Server: Joining on NULLs'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-447728386811340632</id><published>2011-03-30T20:21:00.000-07:00</published><updated>2011-03-30T20:21:00.573-07:00</updated><title type='text'>Austin Java User's Group March 29th, Android and OSGi</title><content type='html'>&lt;img src="http://www.fincher.org/images/2011-03-30-2156-JUG-OSGi-037__Small_.jpg" width="400" align="right" /&gt;&lt;br /&gt;We had a great meeting - it never hurts to start with free pizza.  &lt;br /&gt;Only five of the fifty two people attending were looking for jobs, and lots of jobs were being offered.  Charles Schwab had a few dozen &lt;a href="http://www.aboutschwab.com/careers"&gt; jobs&lt;/a&gt; available; HP and NetSpend also had positions to fill.  Jeff Hennigan from &lt;a href="http://www.kforce.com/"&gt;KForce&lt;/a&gt; was also present - it's always a good sign to have recruiters come to the JUG.&lt;br /&gt;Sam Griffin gave an excellent introduction to Android programming.  He gave a demo on how to create and publish an app to a phone.  Sam said it was very easy to access  features like GPS, Speech Recognition, TextToSpeech, OpenGL for 2 and 3d graphics.  Android also has SqlLite builtin.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-30-2156-JUG-OSGi-034__Small_.jpg" width="400" align="right" /&gt;&lt;br /&gt;Simon Chen talked about the basics of OSGi - which is a good thing since before the meeting I couldn't even spell OSGi.  Simon described OSGi as a fancy classloader that manages components of a java application.  It's like Service Oriented Architecture within an application; you call components embedded in bundles and you only have to load them once.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-30-2156-JUG-OSGi-038__Small_.jpg" width="400" align="right" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-30-2156-JUG-OSGi-035__Small_.jpg" width="400" align="right" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-30-2156-JUG-OSGi-036__Small_.jpg" width="400" align="right" /&gt;&lt;br /&gt;Thanks to Georgina Chen for the pictures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-447728386811340632?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/447728386811340632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=447728386811340632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/447728386811340632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/447728386811340632'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/austin-java-users-group-march-29th.html' title='Austin Java User&apos;s Group March 29th, Android and OSGi'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1317499811575064758</id><published>2011-03-23T11:14:00.000-07:00</published><updated>2011-03-23T11:14:17.138-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nunit'/><title type='text'>How to prevent NUnit from running some tests on the build server</title><content type='html'>Certain NUnit tests you only want to run on your local machine and some you only want to run on the build server.  To make this easy NUnit offers the "Category" attribute.&lt;br /&gt;&lt;pre class="code"&gt;[Test][Category("DoNotRunOnBuildServer")]&lt;br /&gt;public void ReadFromLocalWebServiceTest()&lt;br /&gt;{&lt;br /&gt;    var qdbBrandHttpReader = new QdbBrandHttpReader();&lt;br /&gt;    string xml = qdbBrandHttpReader.ReadFromLocalWebService();&lt;br /&gt;    ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;On your build server, when you invoke NUnit console add the option "/exclude:DoNotRunOnBuildServer", then it will not even try to run these tests.&lt;br /&gt;Typically this is used with a category like "LongRunningTests" to prevent tests from running on your local box.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1317499811575064758?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1317499811575064758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1317499811575064758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1317499811575064758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1317499811575064758'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/how-to-prevent-nunit-from-running-some.html' title='How to prevent NUnit from running some tests on the build server'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4284843896080224068</id><published>2011-03-21T14:56:00.000-07:00</published><updated>2011-03-21T15:01:22.709-07:00</updated><title type='text'>Where do good ideas come from?</title><content type='html'>Good RSA video.  Reminds me that our tech culture needs more "coffee house" type meeting spaces.&lt;br /&gt;&lt;iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/NugRZGDbPFU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Also see the &lt;a href="http://www.ted.com/talks/steven_johnson_where_good_ideas_come_from.html"&gt;TED Talk&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4284843896080224068?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4284843896080224068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4284843896080224068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4284843896080224068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4284843896080224068'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/where-do-good-ideas-come-from.html' title='Where do good ideas come from?'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/NugRZGDbPFU/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1718292715221742036</id><published>2011-03-21T14:30:00.001-07:00</published><updated>2011-03-21T14:32:26.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c# mvc2 aspose word'/><category scheme='http://www.blogger.com/atom/ns#' term='dto'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='automapper'/><title type='text'>AutoMapper for C#</title><content type='html'>&lt;p&gt;I finally got around to using &lt;a href="http://automapper.codeplex.com"&gt;AutoMapper&lt;/a&gt; from fellow Austinite &lt;a href="http://www.lostechies.com/blogs/jimmy_bogard/"&gt;Jimmy Bogard&lt;/a&gt;.  I watched Jimmy's helpful &lt;a href="http://www.dnrtv.com/default.aspx?showNum=155"&gt;video&lt;/a&gt; and the rest was easy.&lt;br /&gt;AutoMapper is a Data Transfer Object (DTO) helper framework that can map your domain objects to view objects.&lt;br /&gt;In my case I wanted to add extra formatting to render my domain objects as HTML, but realized a "ToHtml()" method on the domain object doesn't smell so good. I created  a View Model directly from the domain model via Automapper (with only the attributes I needed to display) and added the HTML rendering code there.&lt;br /&gt;Is that the smell of a pine forest after a Spring rain?&lt;/p&gt;&lt;div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;"&gt;&lt;a href="http://www.flickr.com/photos/roberts87/2798303714/" title="Pine Forest"&gt;&lt;img src="http://farm4.static.flickr.com/3022/2798303714_bc07ce3d44.jpg" alt="Pine Forest by ®DS" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="margin: 0;"&gt;&lt;a href="http://www.flickr.com/photos/roberts87/2798303714/"&gt;Pine Forest&lt;/a&gt; a photo by &lt;a href="http://www.flickr.com/people/roberts87/"&gt;®DS&lt;/a&gt; on Flickr.&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/30926081-1718292715221742036?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1718292715221742036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1718292715221742036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1718292715221742036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1718292715221742036'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/automapper.html' title='AutoMapper for C#'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3022/2798303714_bc07ce3d44_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-9046505526498045219</id><published>2011-03-19T11:41:00.000-07:00</published><updated>2011-03-19T11:41:10.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='David Anderson'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaizen'/><category scheme='http://www.blogger.com/atom/ns#' term='SPIN'/><category scheme='http://www.blogger.com/atom/ns#' term='agile austin'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>David Anderson in Austin - "Driving a Kaizen Culture Using Regular Operations Reviews"</title><content type='html'>David Anderson on March 17, 2011 spoke to a joint meeting of Austin SPIN, Lean Software Austin, IEEE CS Austin, and Agile Austin about a missing component of Kaizen culture, the Operations Review - what can your department do, how much of it did you do, and are you any good at it.&lt;br /&gt;(I thought it appropriate since he espouses lean methodologies that he was wearing skinny jeans.) &lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-17-1939-IMG_1255__Small_.jpg" width="500" align="right" /&gt;&lt;br /&gt;&lt;br clear="all"&gt;&lt;br /&gt;Now this picture is not creepy because the girl in the cartoon is hugging David.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-17-1940-IMG_1256__Small_.jpg" width="500" align="right" /&gt;&lt;br /&gt;The Agile-Lean-CS-Spinners:&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-17-1944-IMG_1260__Small_.jpg" width="500" align="right" /&gt;&lt;br /&gt;The main benefit of the standup meetings at a job was the after-meetings that allowed small teams of people, instant quality circles, to discuss and solve problems.  This also struck me as a real benefit of this meeting - a chance to catch up with long-lost tech friends in the Austin community.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-17-1944-IMG_1261__Small_.jpg" width="500" align="right" /&gt;&lt;br /&gt;My random jottings:&lt;br /&gt;Since academic software is seasonal, they share "Classes of Service" with car racing.&lt;br /&gt;At the StandUp meeting only manage exceptions.&lt;br /&gt;Many organizations only have a shallow implementation of Lean.&lt;br /&gt;Real Kaizen is people just doing their jobs.&lt;br /&gt;&lt;br /&gt;The meeting was a success - thanks to &lt;a href="http://gistlabs.com/john"&gt;John Heintz&lt;/a&gt; for buying meals for everyone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-9046505526498045219?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/9046505526498045219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=9046505526498045219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/9046505526498045219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/9046505526498045219'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/david-anderson-in-austin-driving-kaizen.html' title='David Anderson in Austin - &quot;Driving a Kaizen Culture Using Regular Operations Reviews&quot;'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5105123757636012619</id><published>2011-03-17T13:02:00.000-07:00</published><updated>2011-03-17T13:02:00.310-07:00</updated><title type='text'>Good Idea From Outgoing Chairman of the FDIC</title><content type='html'>In a recent &lt;a href="http://www.fdic.gov/news/news/speeches/chairman/spmar1611.html"&gt;speech&lt;/a&gt; outgoing FDIC Chairman Sheila C. Bair says, &lt;br /&gt;"I would like to propose to you a radical-sounding notion. And it is that increasing the size and profitability of the financial services industry is not - and should not be - the main goal of our national economic policy."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5105123757636012619?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5105123757636012619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5105123757636012619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5105123757636012619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5105123757636012619'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/good-idea-from-outgoing-chairman-of.html' title='Good Idea From Outgoing Chairman of the FDIC'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1717227102476710624</id><published>2011-03-15T07:32:00.000-07:00</published><updated>2011-03-15T07:32:49.821-07:00</updated><title type='text'>Pragmatic Programmers' Magazine</title><content type='html'>&lt;a href="http://pragprog.com/magazines"&gt;&lt;img src="http://assets0.pragprog.com/images/magazine-covers/2011-03.png?1299076501" align="right" alt="magazine cover" /&gt;&lt;/a&gt;&lt;br /&gt;If you haven't been over to see the Pragmatic Programmers' &lt;a href="http://pragprog.com/magazines"&gt;magazines&lt;/a&gt; lately, I'd highly recommend them.  The concepts are usually applicable to many languages and development environments.  The tone is upbeat and the articles are easily read in a sitting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1717227102476710624?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1717227102476710624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1717227102476710624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1717227102476710624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1717227102476710624'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/pragmatic-programmers-magazine.html' title='Pragmatic Programmers&apos; Magazine'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3536590599450061319</id><published>2011-03-14T19:10:00.000-07:00</published><updated>2011-03-14T19:10:28.575-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='vs2010'/><title type='text'>Austin's Microsoft WebMatrix to ASP.NET MVC Web Camp</title><content type='html'>Last Monday Scott Hanselmann and Jonathan Carter presented a seminar some new Microsoft technologies to a packed, standing-room-only crowd.&lt;img src="http://www.fincher.org/images/2011-03-07-1000-IMG_1234__Small_.jpg" width="350" alt="crowd" align="right"/&gt;&lt;br /&gt;I love Scott's podcasting so I was eager to hear him in person and I was not disappointed.  Although the technical details were sometimes dry, Scott's personality and the banter with Jonathan were fun.  Scott has the rare ability to be very technical and yet sociable.  &lt;br /&gt;&lt;img src="http://www.fincher.org/images/2011-03-07-1009-IMG_1242__Small_.jpg" width="350" alt="crowd" /&gt;&lt;br /&gt;Especially humorous were the Windows7 popups declaring, "You may be a victim of software counterfeiting."&lt;br /&gt;My jumbled notes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The emerging standard with jQuery is to present metadata about an xml element as attributes prepending "data-" so jQuery can easily pluck it off the element with the "data" function.  &lt;br /&gt;&lt;pre class="code"&gt;... data-xvalue="30.0" ... $(taget.data('xvalue')&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.modernizr.com/"&gt;Modernizr&lt;/a&gt; is a package to help simplify writing javascript for older browsers.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;preface fiddler's url with "ipv4.fiddler" to use in a browser.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;elmah is a usefullogging framework supported by nuget.  See nuget.org.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;VS2010 now has a Package Manager&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PM&gt;Install-Package AddMVC3ToWebForms&lt;br /&gt;&lt;/li&gt;&lt;li&gt;WebActivator&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PackageMangerConsole has MVC Scaffolding&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PM&amp;gt;Scaffold Controller Post&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Linq to SQL is now complete.  No new features planned.  The future is Entity Framework.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Web Platform INstaller&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Razor is a minimalist templating framework.  Viewbag is dynamic.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://www.fincher.org/images/2011-03-07-1028-IMG_1245__Small_.jpg" width="350" alt="crowd" /&gt;&lt;br /&gt;&lt;br /&gt;Scott and Jonathon made the day fun, but in the back of my mind I kept thinking, "with all this new technology the .Net community is now only five years behind those cool Ruby-on-Rails kids."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3536590599450061319?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3536590599450061319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3536590599450061319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3536590599450061319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3536590599450061319'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/austins-microsoft-webmatrix-to-aspnet.html' title='Austin&apos;s Microsoft WebMatrix to ASP.NET MVC Web Camp'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2865624813595429523</id><published>2011-03-14T18:29:00.000-07:00</published><updated>2011-03-14T18:29:39.477-07:00</updated><title type='text'>Book Review:  "The Big Short" by Michael Lewis</title><content type='html'>&lt;a href="http://www.amazon.com/gp/product/0393338827/ref=as_li_tf_tl?ie=UTF8&amp;tag=phonelistscom&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0393338827"&gt;&lt;img src="https://images-na.ssl-images-amazon.com/images/I/41IZD31gNDL._SL110_.jpg" align="right" /&gt;&lt;/a&gt;&lt;br /&gt;This is a great story about the collapse of the sub-prime housing market and how clueless the Wall Street mavens were.  Michael Lewis, author of The Blind Side, makes the story eerily compelling.  Three items stood out to me:  &lt;br /&gt;1. How the fund managers were paid well to be ignorant of the true details; they were making lots of money with no thought to the future ramifications of their actions other than their annual bonus.  &lt;br /&gt;2.  Almost all the people responsible for this terrible catastrophe actually came through the debacle making tons of money, which, for the most part, the taxpayers ended up paying.  &lt;br /&gt;3.  The problem really was OPM - Other People's Money.  Once the brokerage firms went from partnerships to publicly owned companies, the risks they were taking were not with their own money, but the stockholders money.  Hence the temptation to gamble with Other People's Money in a way they would not have done with their own.  If they bet right, they'd make a ton of money, if they bet wrong, well, they will lose their bonus and the stockholders will lose money.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2865624813595429523?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2865624813595429523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2865624813595429523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2865624813595429523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2865624813595429523'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/03/book-review-big-short-by-michael-lewis.html' title='Book Review:  &quot;The Big Short&quot; by Michael Lewis'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1102292772935959104</id><published>2011-02-17T08:53:00.001-08:00</published><updated>2011-02-17T08:53:46.126-08:00</updated><title type='text'>Emacs selection scrolling too fast</title><content type='html'>Something that annoyed me for a while was selecting a region that spanned multiple pages and emacs scrolling too fast.  An easy fix is to slow down the mouse with this in your .emacs file:&lt;br /&gt;&lt;pre class="code"&gt;(setq mouse-scroll-delay .25)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1102292772935959104?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1102292772935959104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1102292772935959104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1102292772935959104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1102292772935959104'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/02/emacs-selection-scrolling-too-fast.html' title='Emacs selection scrolling too fast'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5662769531756168501</id><published>2011-01-30T19:40:00.000-08:00</published><updated>2011-01-30T19:40:18.743-08:00</updated><title type='text'>Viewing Canon RAW files, .cr2 extension, on WindowsXP</title><content type='html'>Today I started using the RAW format for photos.  The normal XP thumbnail viewer didn't know what to make of the .cr2 extension, so I downloaded Google Picasa to edit them and the &lt;a href="http://www.microsoft.com/downloads/info.aspx?na=41&amp;SrcFamilyId=D48E808E-B10D-4CE4-A141-5866FD4A3286&amp;SrcDisplayLang=en&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fb%2fb%2f3%2fbb35c5c1-8059-4bef-83ba-3c44a5c0b2f1%2fRAWViewerSetup.exe"&gt;Microsoft extension&lt;/a&gt; to see them in Windows Explorer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5662769531756168501?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5662769531756168501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5662769531756168501' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5662769531756168501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5662769531756168501'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2011/01/viewing-canon-raw-files-cr2-extension.html' title='Viewing Canon RAW files, .cr2 extension, on WindowsXP'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2817631312400986311</id><published>2010-12-22T11:19:00.000-08:00</published><updated>2010-12-22T11:19:34.293-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c# mvc2 aspose word'/><title type='text'>A way to download an Aspose Word document to a browser using MVC2</title><content type='html'>Perhaps there's a better way, but here is what I did quickly to get an Aspose Word document down to a browser.  In the controller class use a MemoryStream to feed a FileStreamResult.&lt;br /&gt;&lt;pre class="code"&gt;//Controller&lt;br /&gt;public ActionResult MergeAndDownload(Choice choice) {&lt;br /&gt; MemoryStream memoryStream = new MemoryStream();&lt;br /&gt; Document document = ... // get your Aspose document&lt;br /&gt; document.Save(memoryStream, SaveFormat.Docx);&lt;br /&gt; memoryStream.Position = 0;&lt;br /&gt; var fileStreamResult = new FileStreamResult(memoryStream, "application/ms-word");&lt;br /&gt; fileStreamResult.FileDownloadName = "MySuggestedFilename.docx";&lt;br /&gt; return fileStreamResult;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;In the View just do a Model.Save()&lt;br /&gt;&lt;pre class="code"&gt;//View&lt;br /&gt;&amp;lt;%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage&amp;lt;Aspose.Words.Document&amp;gt;" %&amp;gt;&lt;br /&gt;&amp;lt;asp:Content ID="Content1" runat=server ContentPlaceHolderID="MainContent"&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace="Aspose.Words" %&amp;gt;&lt;br /&gt;&amp;lt;% &lt;br /&gt;    Response.setContentType("application/msword"); &lt;br /&gt;    Model.Save(Response.OutputStream, SaveFormat.WordML); %&amp;gt;&lt;br /&gt;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;/pre&gt;If you know a simpler way, please post in comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2817631312400986311?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2817631312400986311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2817631312400986311' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2817631312400986311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2817631312400986311'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/12/way-to-download-aspose-word-document-to.html' title='A way to download an Aspose Word document to a browser using MVC2'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3892507443211148091</id><published>2010-12-04T08:22:00.000-08:00</published><updated>2010-12-04T08:22:09.085-08:00</updated><title type='text'>Google Docs Revisited</title><content type='html'>I watched the &lt;a href="http://www.youtube.com/docs"&gt;Google Docs&lt;/a&gt; videos this morning.  The Visio replacement, "Drawings", looks very useful, and I didn't know they had a PowerPoint replacement, "Presentations".  If I were a company that made &lt;a href="http://www.tannerhelland.com/882/where-does-microsoft-make-its-money/"&gt; 32%&lt;/a&gt; of its income from office software, I'd be nervous.&lt;br /&gt;I didn't even know about their online survey tool:&lt;br /&gt;&lt;object style="height: 390px; width: 640px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/csoftt-PNy8?version=3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/csoftt-PNy8?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3892507443211148091?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3892507443211148091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3892507443211148091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3892507443211148091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3892507443211148091'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/12/google-docs-revisited.html' title='Google Docs Revisited'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5976624490268194203</id><published>2010-11-22T10:53:00.000-08:00</published><updated>2010-11-22T10:54:34.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming vs2014 3D'/><title type='text'>Can't wait for 3D programming environments</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-11-23-3DCoding.jpg"  width="300" align="right" /&gt;&lt;br /&gt;Ok, I'm a big fan of 3D movies and waiting patiently, (OK, not so patiently for TimeWarner to rollout its Discovery3D channel), for mainstream 3D TV.&lt;br /&gt;I've seen a few computer 3D monitors advertised and pondering what that will mean for programming environments.  &lt;br /&gt;I have a pair of prescription glasses with a prism effect for easing eye-strain.  Oddly enough the glasses present a 3D effect based on color.  Key words colored red float about an eighth of an inch off the screen, key words in blue sink into the monitor.&lt;br /&gt;It will be great when we all have 3D monitors for coding and can tell VS2014 to make the inner loops of program float a little off the monitor.  Not as great as when color coding made its appearance, but it'll be welcome just the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5976624490268194203?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5976624490268194203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5976624490268194203' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5976624490268194203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5976624490268194203'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/11/cant-wait-for-3d-programming.html' title='Can&apos;t wait for 3D programming environments'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2986540545719003534</id><published>2010-11-19T07:30:00.000-08:00</published><updated>2010-11-19T07:30:23.724-08:00</updated><title type='text'>The Future of Arial Dogfights?</title><content type='html'>This could well be the future of dogfights (not with virtual missiles, but real ones).  It could also be the future of attacks on individuals, like the Predator strikes in Pakistan and Afghanistan - or terrorist attacks. &lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CG5pqTWVahQ?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/CG5pqTWVahQ?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2986540545719003534?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2986540545719003534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2986540545719003534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2986540545719003534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2986540545719003534'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/11/future-of-arial-dogfights.html' title='The Future of Arial Dogfights?'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1439369495863926894</id><published>2010-11-18T18:54:00.000-08:00</published><updated>2010-11-18T18:54:04.513-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone Waze traffic review'/><title type='text'>Waze, a crowd-sourced traffic advisor</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-11-18-1011-IMG_0279.png" width="300" align="right" /&gt;&lt;br /&gt;I've been playing with Waze, an iphone app, for a few days.  I love the promise of Waze - it gets traffic conditions in real time from other Waze users.  Waze could see that several of its users are traveling at 3 mph up I35 and can redirect you automatically to another route.  No need to have a human traffic seer to punch in recommendations.&lt;br /&gt;Waze can learn how fast different routes get you to work on different days and times; then advise you on the fastest way to work - taking into account how fast all the other Waze users are traveling.&lt;br /&gt;Alas it shows much potential, but its still in growing pains.  Several times it directed me in the wrong direction and had trouble locating the destination I typed in.&lt;br /&gt;I'd love to see the product when it matures - it shows so much promise to reduce fuel consumption and make our travel times shorter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1439369495863926894?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1439369495863926894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1439369495863926894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1439369495863926894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1439369495863926894'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/11/waze-crowd-sourced-traffic-advisor.html' title='Waze, a crowd-sourced traffic advisor'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-8845030261886729757</id><published>2010-11-18T18:42:00.000-08:00</published><updated>2010-11-18T18:42:33.206-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone 3d games'/><title type='text'>IPhone with a 3D Camera</title><content type='html'>This is what I'd like for Christmas, a 3D IPhone. Softbank is &lt;a href="http://current.com/1b9sl4c"&gt;launching&lt;/a&gt; a 3D phone that can show 3D pictures and video without the special glasses.  Surely an IPhone that could take and show 3D pictures and play 3D games is not too much to ask for?  The width of the IPhone is perfect for a second camera to mimic the distance between the Homo Sapiens' eyeballs.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-11-18-1257-3D-IPhoneSmall.jpg" width="600" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-8845030261886729757?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/8845030261886729757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=8845030261886729757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8845030261886729757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8845030261886729757'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/11/iphone-with-3d-camera.html' title='IPhone with a 3D Camera'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5399225648046154019</id><published>2010-11-04T12:56:00.000-07:00</published><updated>2010-11-04T13:50:54.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile software agileaustin headspring'/><title type='text'>Agile Austin Meeting Nov 2, 2010</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-11-02-1921-IMG_0911__Small_.jpg" width="640" height="480" alt="http://www.fincher.org/images/2010-11-02-1921-IMG_0911__Small_.jpg" title="http://www.fincher.org/images/2010-11-02-1921-IMG_0911__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-11-02-1848-IMG_0905__Small_.jpg" width="640" height="466" alt="http://www.fincher.org/images/2010-11-02-1848-IMG_0905__Small_.jpg" title="http://www.fincher.org/images/2010-11-02-1848-IMG_0905__Small_.jpg" /&gt;&lt;br /&gt;At this month's &lt;a href="http://www.agileaustin.org/"&gt;Agile Austin&lt;/a&gt; meeting 60 people came to hear &lt;a href="http://jeffreypalermo.com/"&gt;Jeffrey "Party with" Palermo&lt;/a&gt; and &lt;a href="http://mhinze.com/"&gt;Matt Hinze&lt;/a&gt; both from &lt;a href="http://www.headspringsystems.com/"&gt;&lt;/a&gt; talk about "Iteration Zero", setting up a project's source control, build environments and deployment.  Below is my jumble of takeaway items:&lt;br /&gt;&lt;br /&gt;They recommended the book "Configuration Management" by  Aiello&lt;br /&gt;When the audience was asked which version control they used the raised hands indicated percentages like this:  Svn 30 git 30 hg 20 Visual Source Safe 5 other 15  &lt;br /&gt;Don't centralize libraries for all your projects; each project should have its own hibernate libraries so they can upgrade individually.&lt;br /&gt;You can get hosted version control for about $10 per month &lt;br /&gt;Headspring uses bitbucket by Atlassian for source control, Psake for building, TeamCity by Jetbrains for Continuous Automation (other popular ones are Hudson or CruiseControl.Net), Watin for GUI testing, Rackspace cloud for servers&lt;br /&gt;Matt:  "We are digging a pit of success and pushing you into it."&lt;br /&gt;Developers should have their test database on their own box so development can continue without a network&lt;br /&gt;The USPS hosts some sort of Address validation&lt;br /&gt;In batch files include an "&amp; pause" so the windows stay open for inspection  &lt;br /&gt;&lt;br /&gt;I was surprised how much Headspring uses the cloud for their servers.  Jeffrey said they like the pay-by-the-hour usage model of spinning up a server, doing their work on it, and then closing it.  &lt;br /&gt;Headspring is an interesting company in that they do training, but they also develop software commercially for profit.  I like the fact that their advice is not some academic thinking of a subject, but hard-won knowledge based on what really works in the trenches.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-11-02-1901-IMG_0908__Small_.jpg" width="640" height="480" alt="http://www.fincher.org/images/2010-11-02-1901-IMG_0908__Small_.jpg" title="http://www.fincher.org/images/2010-11-02-1901-IMG_0908__Small_.jpg" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-11-02-1900-IMG_0907__Small_.jpg" width="640" height="480" alt="http://www.fincher.org/images/2010-11-02-1900-IMG_0907__Small_.jpg" title="http://www.fincher.org/images/2010-11-02-1900-IMG_0907__Small_.jpg" /&gt;&lt;br /&gt;Scott Bellware was present to add the Lean perspective to the evening.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-11-02-2005-IMG_0917__Small_.jpg" width="640" height="480" alt="pic" title="pic" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5399225648046154019?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5399225648046154019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5399225648046154019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5399225648046154019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5399225648046154019'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/11/agile-austin-meeting-nov-2-2010.html' title='Agile Austin Meeting Nov 2, 2010'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-285569965472484102</id><published>2010-10-16T12:59:00.000-07:00</published><updated>2010-10-16T12:59:58.776-07:00</updated><title type='text'>A Signpost to the Future - Genetically Engineered Silkworms Spin Like Spiders</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-10-16-SpiderWeb2.jpg" align="right" width="300" /&gt;&lt;br /&gt;Spiders have very strong silk, but it's difficult to obtain commercially.  We can gather silk easily from silkworms, but its not as strong as spider silk.&lt;br /&gt;Very interesting article at &lt;a href="http://news.discovery.com/tech/spider-silk-silkworms-genetic-engineering.html"&gt;discovery.com&lt;/a&gt; about injecting dna from a spider into silkworms to create stronger silk more easily.  &lt;br /&gt;This is a signpost to the future.  More and more of our products will be made this way.  Chemical factories could be replaced with vats of bacteria churning out desired chemicals much easier, safer, and more environmentally friendly.&lt;br /&gt;Do you think this is a good thing?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-285569965472484102?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/285569965472484102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=285569965472484102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/285569965472484102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/285569965472484102'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/10/signpost-to-future-genetically.html' title='A Signpost to the Future - Genetically Engineered Silkworms Spin Like Spiders'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3136389859235670285</id><published>2010-10-13T11:01:00.000-07:00</published><updated>2010-10-13T11:01:00.980-07:00</updated><title type='text'>Austin .Net User's Group, October 11, 2010</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-10-11-1832-IMG_0098__Small_.jpg" width="400" /&gt;&lt;br /&gt;&lt;a href="http://www.userinexperience.com/"&gt;Brandon Satrom&lt;/a&gt; presented "Testing the right thing: Behavior-Driven Development in ASP.NET using Gherkin, SpecFlow and WatiN" to a crowd of 70 developers.  Brandon started by saying this was his journey of testing for his projects and not necessarily the way to test all projects.  (I do appreciate his humility and think he will be a good Microsoft Developer Evangelist).  &lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-10-11-1941-IMG_0106__Small_.jpg" width="400" /&gt;&lt;br /&gt;After his presentation, Brandon graciously allowed Scott Bellware to present a counter point - basically that the "customer readable" scripts were too detailed and customers would not read them anyway and that the overly-detailed scripts just get in the way of the total process.  The discussion between Scott, Brandon and the audience was refreshing.&lt;br /&gt;(BTW, TeKSystems opened the session saying that $60/hr was a good contracting rate, business is heating up in Austin, and Silverlight is getting some traction.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3136389859235670285?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3136389859235670285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3136389859235670285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3136389859235670285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3136389859235670285'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/10/austin-net-users-group-october-11-2010.html' title='Austin .Net User&apos;s Group, October 11, 2010'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-8300417498688670771</id><published>2010-10-11T13:18:00.000-07:00</published><updated>2010-10-11T13:18:20.490-07:00</updated><title type='text'>F# has Units of Measure</title><content type='html'>&lt;p&gt;One of the great things about F# it that it allows you to annotate values with Units of Measure.  (Remember the &lt;a href="http://en.wikipedia.org/wiki/Metrication_in_the_United_States"&gt;Mars Climate Orbiter&lt;/a&gt; burning up because all subcontractors used metric except Lockheed Martin?) F# will do limited testing to make sure your units are consistent.  Units of Measure doesn't really understand the concepts of length, volume, force, or currency, but used wisely can be a great help. A little example:&lt;/p&gt;&lt;div class="codeblock"&gt;&lt;pre class='sh_csharp'&gt;[&amp;lt;Measure&amp;gt;]&lt;br /&gt;type cm&lt;br /&gt;[&amp;lt;Measure&amp;gt;]&lt;br /&gt;type inch&lt;br /&gt;val cmPerInch : float&amp;lt;cm/inch&amp;gt; = 2.54&lt;br /&gt;&lt;br /&gt;&amp;gt; let length1 = 1.0&amp;lt;cm&amp;gt;&lt;br /&gt;let length2 = 1.0&amp;lt;inch&amp;gt;;;&lt;br /&gt;&lt;br /&gt;val length1 : float&amp;lt;cm&amp;gt; = 1.0&lt;br /&gt;val length2 : float&amp;lt;inch&amp;gt; = 1.0&lt;br /&gt;&lt;br /&gt;&amp;gt; let length3 = length1 + length2;;&lt;br /&gt;&lt;br /&gt;  let length3 = length1 + length2;;&lt;br /&gt;  ------------------------^^^^^^^&lt;br /&gt;&lt;br /&gt;stdin(41,25): error FS0001: The unit of measure 'inch' does not match the unit of measure 'cm'&lt;br /&gt;&amp;gt; let length3 = length1 + length2 * cmPerInch;;&lt;br /&gt;&lt;br /&gt;val length3 : float&amp;lt;cm&amp;gt; = 3.54&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-8300417498688670771?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/8300417498688670771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=8300417498688670771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8300417498688670771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8300417498688670771'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/10/f-has-units-of-measure.html' title='F# has Units of Measure'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7012470124263910315</id><published>2010-10-11T11:00:00.000-07:00</published><updated>2010-10-11T11:00:46.197-07:00</updated><title type='text'>Wonderful "Paper" Cartoon of Star Wars</title><content type='html'>I don't often post videos, but this one is just too well made and clever not to share.  The video is made with just paper cutouts, something anyone could do.  Enjoy.&lt;br /&gt;&lt;object width="640" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Fp7UzGSg8g0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Fp7UzGSg8g0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7012470124263910315?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7012470124263910315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7012470124263910315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7012470124263910315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7012470124263910315'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/10/wonderful-paper-cartoon-of-star-wars.html' title='Wonderful &quot;Paper&quot; Cartoon of Star Wars'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2930248516445176927</id><published>2010-09-29T11:25:00.000-07:00</published><updated>2010-09-29T11:25:57.658-07:00</updated><title type='text'>Austin Java User's Group September 28th - Cassandra, MapReduce, and Roo</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-09-28-1952-IMG_0067.jpg" align="right" /&gt;&lt;br /&gt;Forty people heard Jeremy Hanna present integrating Cassandra and MapReduce.  My jumble of notes:&lt;br /&gt;Cassandra, a horizontally scalable key-value database, was born at facebook.&lt;br /&gt;It has no "master" node, just a bunch of peer databases.&lt;br /&gt;Very fast for writting, fast for random reads, not good with ad hoc queries.&lt;br /&gt;"Pig" is a scripting language used at yahoo that compiles down to MapReduce.&lt;br /&gt;"Hive" used at Facebook is similar to "Pig", but more SQL like.&lt;br /&gt;&lt;br /&gt;Ryan Stewart demoed Spring Roo, a scaffolding system that builds common code blocks like screens for create, edit, delete and data access functions for java; much like scaffolding pioneered by Ruby on Rails.  I was very impressed by the intelligence built into Roo.  My notes:&lt;br /&gt;Roo accomplishes its magic by creating AspectJ files that are blended into the java objects.  (C# has a more straight forward method with partial classes).&lt;br /&gt;Roo is a process that runs in the background that can update its AspectJ files when it detects a change to a java object file.&lt;br /&gt;Roo has a great help and guidence system.&lt;br /&gt;Eclipse can be used to access Roo commands.&lt;br /&gt;&lt;br /&gt;A few years ago our Java Users Group had demos of amazing code building tools shown by companies that charged thousands of dollars per seat for their software, now the amazing software is mostly free open source projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2930248516445176927?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2930248516445176927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2930248516445176927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2930248516445176927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2930248516445176927'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/09/austin-java-users-group-september-28th.html' title='Austin Java User&apos;s Group September 28th - Cassandra, MapReduce, and Roo'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4068469556503349172</id><published>2010-09-03T13:42:00.000-07:00</published><updated>2010-09-03T13:42:43.209-07:00</updated><title type='text'>Playing with AutoHotKey</title><content type='html'>After reading so much about &lt;a href="http://www.autohotkey.com/"&gt;AutoHotKey&lt;/a&gt; I decided to take the plunge and tackle one of my annoying manual tasks - toggling the text and background colors in Firefox from normal to my most coveted, easy on the eyes, "white-on-black" theme.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-10-03-AutoHotKey.jpg" alt="screen shot" width="600" /&gt;&lt;br /&gt;With AutoHotKeys handy recorder I saved this script to c:\home\mfincher\bin\toggleff.ahk:&lt;br /&gt;&lt;pre class="code"&gt;Send, {ALTDOWN}{ALTUP}to&lt;br /&gt;WinWait, Options, &lt;br /&gt;IfWinNotActive, Options, , WinActivate, Options, &lt;br /&gt;WinWaitActive, Options, &lt;br /&gt;Send, {TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{ENTER}&lt;br /&gt;WinWait, Colors, &lt;br /&gt;IfWinNotActive, Colors, , WinActivate, Colors, &lt;br /&gt;WinWaitActive, Colors, &lt;br /&gt;Send, {TAB}{TAB}{SPACE}{TAB}{TAB}{TAB}{TAB}{SPACE}{TAB}{ENTER}&lt;br /&gt;WinWait, Options, &lt;br /&gt;IfWinNotActive, Options, , WinActivate, Options, &lt;br /&gt;WinWaitActive, Options, &lt;br /&gt;Send, {TAB}{TAB}{ENTER}&lt;br /&gt;&lt;/pre&gt;Then in "My Documents\AutoHotkey.ahk" startup script created a mapping for "Windows-f" to run my script:&lt;br /&gt;&lt;pre class="code"&gt;#f::Run c:\home\mfincher\bin\toggleff.ahk&lt;br /&gt;&lt;/pre&gt;Now if Firefox is the active window, and the Options panel has "Content" preselected I can just enter "Windows-f" and my colors are toggled.&lt;br /&gt;Next, how to auto select Firefox and set the Options tab to be "Content".&lt;br /&gt;Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4068469556503349172?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4068469556503349172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4068469556503349172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4068469556503349172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4068469556503349172'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/09/playing-with-autohotkey.html' title='Playing with AutoHotKey'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7808971421347360806</id><published>2010-09-03T12:42:00.000-07:00</published><updated>2010-09-03T12:42:24.697-07:00</updated><title type='text'>Java User's Group August 31, 2010</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-08-31-1934-JavaUsersGroup.jpg" alt="pic" align="right" width="200" /&gt;&lt;br /&gt;My jumbled take-aways from the JUG meeting:&lt;br /&gt;The meeting started with Jeff Hennigan from Kforce answering questions about the local job market.&lt;br /&gt;Employers are looking for Spring, Struts and Hibernate framework experience.&lt;br /&gt;Knowing syntax is still important for interviews&lt;br /&gt;Technical tests are common&lt;br /&gt;Experience is better than certifications&lt;br /&gt;Good degrees like physics and EE from top 25 schools still matter&lt;br /&gt;More database experience the better.&lt;br /&gt;Cloud computing is taking off&lt;br /&gt;Few android or iPhone jobs being requested&lt;br /&gt;Enterprise skills in high demand&lt;br /&gt;Upper 80Ks to 90Ks good salary for senior java developers&lt;br /&gt;&lt;br /&gt;When asked who was looking for a job only 4 people out of 45 raised their hands.&lt;br /&gt;&lt;br /&gt;Peter Donton, who has won the free pass to NFJS two years in a row,  talked about his thoughts on two talks from the NFJS conference.  &lt;br /&gt;The first was Smart Java - systems using rules or Bayesian logic.  Peter demoed a java library for using Bayesian logic, Classifier4j.&lt;br /&gt;&lt;br /&gt;Neal Ford said programming java is like smithing in the 21st century.  Once blacksmithing was a secure job, but with the rise of the industrial revolution, demand declined.  In the same way we need to upgrade our skills for the next revolution.  Can you say functional programming?  Groovy?&lt;br /&gt;&lt;br /&gt;Peter's second topic was Nosql databases.&lt;br /&gt;He said you can pick any two:  Consistency, availability, and partition tolerance&lt;br /&gt;Instead of ACID, nosqler's are fond of the acronym BASE - Basically Available, Soft-state, Eventually consistent&lt;br /&gt;&lt;br /&gt;Chris Aniszczyk talked about the latest in Eclipse technology.  The items that struck me:&lt;br /&gt;Dependency injection is big&lt;br /&gt;Git really is better than svn&lt;br /&gt;Eclipse is trying to get into the web development business&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7808971421347360806?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7808971421347360806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7808971421347360806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7808971421347360806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7808971421347360806'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/09/java-users-group-august-31-2010.html' title='Java User&apos;s Group August 31, 2010'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-899793917200403239</id><published>2010-08-31T14:00:00.000-07:00</published><updated>2010-08-31T14:01:15.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c# resharper code style'/><title type='text'>Resharper's Code Style Sharing</title><content type='html'>One of the problems working with a team of programmers is personal taste in variable naming and general code style.  Now Resharper comes to our rescue with the "Code Style Sharing" feature.  Now all the developers on a project can share the same style if you export your preferred settings to a file called "&amp;lt;SolutionName&amp;gt;.resharper.xml", check it into version control under the same directory as your solution, and everyone selects to use the "Shared across the team, per solution".  Enjoy.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-08-31-ResharperCodeStyleSharing.jpg" alt="screen shot" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-899793917200403239?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/899793917200403239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=899793917200403239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/899793917200403239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/899793917200403239'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/08/resharpers-code-style-sharing.html' title='Resharper&apos;s Code Style Sharing'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-666255673946440413</id><published>2010-08-31T11:52:00.000-07:00</published><updated>2010-08-31T11:52:30.753-07:00</updated><title type='text'>Small Remote-Controlled Helicopter Can Pickup Objects</title><content type='html'>&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/03FDr2jFJd4&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/03FDr2jFJd4&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Surprisingly the first bank robbery in the United States did not occur until 13 February 1866 at Clay County Savings Association in Liberty, Missouri.  &lt;br /&gt;With remote vehicles like this how long until someone commandeers one from a hospital, puts a bomb on it, flies it to a bank and demands money?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-666255673946440413?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/666255673946440413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=666255673946440413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/666255673946440413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/666255673946440413'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/08/small-remote-controlled-helicopter-can.html' title='Small Remote-Controlled Helicopter Can Pickup Objects'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5466782370051925143</id><published>2010-08-13T11:13:00.000-07:00</published><updated>2010-08-13T11:20:54.943-07:00</updated><title type='text'>David Smith at Austin SPIN and IEEE Meeting</title><content type='html'>The always entertaining and thought provoking David Smith talked to a crowd last night of the Austin SPIN and IEEE.&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-08-12-2033-DavidSmithAtSPIN.jpg" width="500" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-08-12-2034-DavidSmithAtSPIN.jpg" width="500" /&gt;&lt;br /&gt;&lt;img src="http://www.fincher.org/images/2010-08-12-2042-DavidSmithAtSPIN.jpg" width="500" /&gt;&lt;br /&gt;Some random thoughts I jotted down:&lt;br /&gt;The world in increasing real time&lt;br /&gt;Continuous integration is moving to continuous delivery of software&lt;br /&gt;No system is 100% secure, you just make your tradeoffs&lt;br /&gt;David recommended the book, "&lt;a href="http://www.amazon.com/dp/1591394449?tag=phonelistscom"&gt;Does IT matter?&lt;/a&gt;"&lt;br /&gt;His mantra through the night was "Digital content + ubiquitous communication + ubiqutious computing" is changing the world - are you ready?&lt;br /&gt;Network communication used to be "People to people", then "People to things", now most traffic on networks is "Things to things".&lt;br /&gt;The future is in biological computing.&lt;br /&gt;"My geek is more powerful than a nuclear bomb"  Cyber-warfare is incredibly powerful.&lt;br /&gt;"Go" is the fastest growing language in &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;Tiobe&lt;/a&gt;'s history of tracking.&lt;br /&gt;David said we passed "Sarnoff's law" on the way to "Metcalfe's law" and are now in the territory of "&lt;a href="http://en.wikipedia.org/wiki/Reed%27s_law"&gt;Reed's law&lt;/a&gt;" which says the power of the network of N nodes is equal to 2 raised to the N power.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5466782370051925143?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5466782370051925143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5466782370051925143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5466782370051925143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5466782370051925143'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/08/david-smith-at-austin-spin-and-ieee.html' title='David Smith at Austin SPIN and IEEE Meeting'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1813894716575489750</id><published>2010-08-13T10:52:00.000-07:00</published><updated>2010-08-13T10:52:46.801-07:00</updated><title type='text'>TiVo Blue Screen of Death</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-08-07-1026-TivoBSOD.jpg" width="500" /&gt;&lt;br /&gt;My TiVo crashed the other night and left me this instead of a Blue Screen of Death (BSD).  I was watching a talking head show when TiVo froze and then randomly started changing colors on the screen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1813894716575489750?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1813894716575489750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1813894716575489750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1813894716575489750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1813894716575489750'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/08/tivo-blue-screen-of-death.html' title='TiVo Blue Screen of Death'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2626126336752307874</id><published>2010-08-07T17:01:00.000-07:00</published><updated>2010-08-07T17:01:12.361-07:00</updated><title type='text'>Works great in Opera, Firefox, Safari, and Chrome - looks awful in IE</title><content type='html'>Realizing that an HTML tag was really just a placeholder for some css code was a 'Eureka' moment for me years ago.  So while doing some maintenance on my web site today I wanted to style all the elements semantically with css code backing them, not with "&amp;lt;p class='quote'&amp;gt; ... &amp;lt;/p&gt;", but with "&amp;lt;quote&amp;gt; ... &amp;lt;/quote&amp;gt;".  This would be like a Domain Specific Language written in css,&lt;br /&gt;&lt;pre class="code" style="border: thin black solid"&gt;quote {&lt;br /&gt;  display: block;&lt;br /&gt;  margin: 2em 0.5em 0 0.5em; &lt;br /&gt;  padding: 0.5em;&lt;br /&gt;  text-align: left;&lt;br /&gt;  background: #bbbbff; &lt;br /&gt;  border:1px solid black;&lt;br /&gt;}&lt;br /&gt;author {&lt;br /&gt;  display: block;&lt;br /&gt;  margin: 0 0.5em; &lt;br /&gt;  padding: 0.1em 1em 0.1em 0;&lt;br /&gt;  text-align: right;&lt;br /&gt;  border:1px solid black;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;so, in the HTML it looks like this,&lt;br /&gt;&lt;pre class="code" style="border: thin black solid"&gt;&amp;lt;quote&amp;gt;&lt;br /&gt;Everyone thinks of changing the world, &lt;br /&gt;but no one thinks of changing himself.&lt;br /&gt;&amp;lt;/quote&amp;gt;&lt;br /&gt;&amp;lt;author&amp;gt;&lt;br /&gt; Leo Tolstoy&lt;br /&gt;&amp;lt;/author&amp;gt;&lt;br /&gt;&lt;/pre&gt;Sadly, this works in all my major browsers, and the iPhone, but alas, not in IE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2626126336752307874?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2626126336752307874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2626126336752307874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2626126336752307874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2626126336752307874'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/08/works-great-in-opera-firefox-safari-and.html' title='Works great in Opera, Firefox, Safari, and Chrome - looks awful in IE'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-43736056465281780</id><published>2010-08-07T08:39:00.000-07:00</published><updated>2010-08-07T08:39:20.012-07:00</updated><title type='text'>Good "one sentence stories" from http://www.onesentence.org/</title><content type='html'>One of the great things about the web is aggregating and voting on user-generated content like these.&lt;br /&gt;Good "one sentence stories" from http://www.onesentence.org/ :&lt;br /&gt;Bree&lt;br /&gt;After seventeen years of feeling like a disappointment to my mum, and writing a story about how she screwed my life, nothing feels as good as deleting the story after over hearing her exclaim to strangers about how proud she is of me.&lt;br /&gt;&lt;br /&gt;Daughter&lt;br /&gt;She cried as her daughter and her best friends shaved their heads too, so she wouldn't have to be bald alone.&lt;br /&gt;&lt;br /&gt;Dear Sis&lt;br /&gt;I watched her vomit blood for an hour and assured her she was fine because I was too high to drive her to the hospital.&lt;br /&gt;&lt;br /&gt;Hollie&lt;br /&gt;At 22 my father carried me to my old bed, and cried as he tucked me in minding not to touch the bruises that were a road map of pain and abuse I had hidden from him for almost two years.&lt;br /&gt;&lt;br /&gt;Randy&lt;br /&gt;Waking in the street after the motorcycle accident, I knew it was bad when I saw one of the paramedics throwing up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-43736056465281780?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/43736056465281780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=43736056465281780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/43736056465281780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/43736056465281780'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/08/good-one-sentence-stories-from.html' title='Good &quot;one sentence stories&quot; from http://www.onesentence.org/'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5892095128274347040</id><published>2010-07-28T12:32:00.000-07:00</published><updated>2010-07-28T12:32:31.525-07:00</updated><title type='text'>SQL to find non-consecutive numbers in a column</title><content type='html'>We had a need to find non-consecutive numbers in a sequence of numbers.  This snippet of SQL finds userIDs which are non-consecutive.&lt;br /&gt;&lt;pre class="code"&gt;SELECT A.userID + 1&lt;br /&gt;FROM MyTable AS A&lt;br /&gt;WHERE NOT EXISTS (&lt;br /&gt;    SELECT B.userID FROM MyTable AS B &lt;br /&gt;    WHERE A.userID + 1 = B.userID)&lt;br /&gt;GROUP BY A.userID;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5892095128274347040?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5892095128274347040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5892095128274347040' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5892095128274347040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5892095128274347040'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/sql-to-find-non-consecutive-numbers-in.html' title='SQL to find non-consecutive numbers in a column'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-8561579404481342387</id><published>2010-07-26T11:46:00.000-07:00</published><updated>2010-07-26T11:46:30.438-07:00</updated><title type='text'>Who's to blame for the recent economic meltdown?</title><content type='html'>A good summary from an interview with Nouriel Roubini at &lt;a href="http://www.amazon.com/Crisis-Economics-Course-Future-Finance/dp/1594202508/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1280115108&amp;sr=8-1"&gt;Amazon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;cite&gt;The Fed kept interest rates too low for too long in the earlier part the past decade and fed — pun intended — the housing and credit bubble. Bankers and investors on Wall Street and in financial institutions were greedy, arrogant and reckless in their risk taking and build-up of leverage because they were compensated based on short term profits. As a result, they generated toxic loans – subprime mortgages and other mortgages and loans – that borrowers could not afford and then packaged these mortgages and loans into toxic securities – the entire alphabet soup of structured finance products, so-called “SIVs” like MBSs – Mortgage-Backed Securities, or CDOs – Collateralized Debt Obligations -- and even CDOs of CDOs. These were new, complex, exotic, non-transparent, non-traded, marked-to-model rather than market-to-market and mis-rated by the rating agencies. Indeed, the rating agencies were also culprits as they had massive conflicts of interest: they made most of their profits from mis-rating these new instruments and being paid handsomely by the issuers. Also, the regulators and supervisors were asleep at the wheel as the ideology in Washington for the last decade was one of laissez faire “Wild West” capitalism with little prudential regulation and supervision of banks and other financial institutions.&lt;br /&gt;&lt;/cite&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-8561579404481342387?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/8561579404481342387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=8561579404481342387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8561579404481342387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8561579404481342387'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/whos-to-blame-for-recent-economic.html' title='Who&apos;s to blame for the recent economic meltdown?'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2270378786353332394</id><published>2010-07-21T11:04:00.000-07:00</published><updated>2010-07-21T11:15:55.809-07:00</updated><title type='text'>Default length of Delicious RSS feeds is 15</title><content type='html'>I use GoogleReader to keep track of interesting news stories, but I also use Firefox's live bookmarks combined with tagging at delicious.com.&lt;br /&gt;As I find a site I'd like to add to my daily news reading I tag it with "news" and "daily".  Long ago, I created a live bookmark in Firefox named &lt;a href="http://del.icio.us/rss/fincher42/news+daily"&gt;"news+daily"&lt;/a&gt; to "http://del.icio.us/rss/fincher42/news+daily".  I also have one for &lt;a href="http://del.icio.us/rss/fincher42/energy+daily?count=100"&gt;"energy+daily"&lt;/a&gt; and &lt;a href="http://del.icio.us/rss/fincher42/blogs+daily?count=100"&gt;"blogs+daily"&lt;/a&gt;.&lt;br /&gt;In the morning I select in Firefox "Bookmarks/news+daily/Open All in Tabs" and it churns away and opens all my daily news sites in their own tidy little tab.&lt;br /&gt;The problem I noticed lately is that the maximum number of tabs showing up was 15.  After a little investigation I had to change my Firefox live bookmark source to append "?count=100" and now everything is rosy and &lt;a href="http://del.icio.us/rss/fincher42/news+daily?count=100"&gt;"news+daily"&lt;/a&gt; has up to 100 bookmarks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2270378786353332394?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2270378786353332394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2270378786353332394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2270378786353332394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2270378786353332394'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/default-length-of-delicious-rss-feeds.html' title='Default length of Delicious RSS feeds is 15'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2598228932050357913</id><published>2010-07-16T12:54:00.001-07:00</published><updated>2010-07-16T12:58:44.467-07:00</updated><title type='text'>Emacs lisp code to backup current buffer</title><content type='html'>I've upgraded to the latest emacs and doing a little cleanup work.  Just wrote this tiny elisp method to backup a file and embed the current date in the new file name.  I use this right before I start making major changes in a file not under version control to have a temp file to go back to when things go awry - and they always go awry.&lt;br /&gt;&lt;pre class="code"&gt;&lt;br /&gt;(defun backup-current-file ()&lt;br /&gt;  "backs up a file with date embedded. e.g., '.emacs' is copied to '.emacs-2010-07-16'"&lt;br /&gt;  (interactive)&lt;br /&gt;  (let ((backupfilename (concat  (buffer-file-name) "-" (format-time-string "%C%y-%m-%d" (current-time)))))&lt;br /&gt;  (message (concat "copying file " (buffer-file-name) " to " backupfilename) )&lt;br /&gt;  (copy-file (buffer-file-name) backupfilename)&lt;br /&gt;  ))&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2598228932050357913?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2598228932050357913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2598228932050357913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2598228932050357913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2598228932050357913'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/emacs-lisp-code-to-backup-current.html' title='Emacs lisp code to backup current buffer'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7066285650481973767</id><published>2010-07-14T15:41:00.000-07:00</published><updated>2010-07-14T15:47:47.158-07:00</updated><title type='text'>Using Emacs Tramp with Dreamhost</title><content type='html'>I finally got Emacs 23.2.1 to work using Tramp, a remote editing utility, with my hosting provider, Dreamhost.  The secret was to use &lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"&gt;plink&lt;/a&gt;, which connects to PuTTY, as the transport.  I had been using Ange-Ftp, but it transmits passwords in the clear, which is not safe in today's world.  Now I can edit files on my hosting site in the comfort of Emacs, knowing my password is encrypted.  In my .emacs file:&lt;br /&gt;&lt;pre class="code"&gt;(if (string= emacs-version "23.2.1")&lt;br /&gt;    (progn   &lt;br /&gt;          (require 'tramp)&lt;br /&gt;          (setq tramp-default-method "plink")&lt;br /&gt;          (setq tramp-verbose 10)&lt;br /&gt;          (setq tramp-debug-buffer t)&lt;br /&gt;    )&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7066285650481973767?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7066285650481973767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7066285650481973767' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7066285650481973767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7066285650481973767'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/using-emacs-tramp-with-dreamhost.html' title='Using Emacs Tramp with Dreamhost'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-9196868675371118114</id><published>2010-07-14T10:23:00.000-07:00</published><updated>2010-07-14T15:41:26.361-07:00</updated><title type='text'>The Petroleum-Electric Myth is Alive and Well</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-07-14-PetroleumUsage2008.jpg" width="400" align="right" /&gt;&lt;br /&gt;The International Business Times had an &lt;a href="http://www.ibtimes.com/articles/35195/20100713/nuclear-power-could-see-revival.htm"&gt;article&lt;/a&gt; today referenced in slashdot which starts:&lt;br /&gt;&lt;cite&gt;"As the U.S. moves to reduce dependence on oil, the nuclear industry is looking to expand, with new designs making their way through the regulatory process."&lt;/cite&gt;&lt;br /&gt;The introductory paragraph is just wrong because it implies if we just had enough electricity we wouldn't need as much oil, but we don't use petroleum to generate electricity.  If Prometheus came down to earth and created enough new nuclear power plants overnight to supply 100% of the electricity in the US, do you know how much this would cut our oil dependency?  Zero, zilch, zip.  We need the oil to run our cars.  Having all the electricity in the world won't power our cars - yet.  The real path to energy independence is electric cars that we can power with nuclear, coal, hydro, wind, or solar.  Then we can use our domestic oil for industry.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eia.doe.gov/emeu/aer/pdf/pecss_diagram.pdf"&gt;source&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-9196868675371118114?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/9196868675371118114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=9196868675371118114' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/9196868675371118114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/9196868675371118114'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/petroleum-electric-myth-is-alive-and.html' title='The Petroleum-Electric Myth is Alive and Well'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3725485289722301999</id><published>2010-07-03T07:12:00.000-07:00</published><updated>2010-07-03T07:18:12.344-07:00</updated><title type='text'>A Fun Retro HTML5 Game</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EfTI_uHMUnY/TC9GMvL62QI/AAAAAAAAAD0/WuNRODhx-GA/s1600/Astroids.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 319px;" src="http://2.bp.blogspot.com/_EfTI_uHMUnY/TC9GMvL62QI/AAAAAAAAAD0/WuNRODhx-GA/s320/Astroids.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5489683655426758914" /&gt;&lt;/a&gt;&lt;br /&gt;HTML5 holds plenty of promise - drawing directly on a canvas via JavaScript with GPU acceleration.  A glimpse is an asteroid game &lt;a href="http://www.kevs3d.co.uk/dev/asteroids/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3725485289722301999?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3725485289722301999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3725485289722301999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3725485289722301999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3725485289722301999'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/07/fun-retro-html5-game.html' title='A Fun Retro HTML5 Game'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EfTI_uHMUnY/TC9GMvL62QI/AAAAAAAAAD0/WuNRODhx-GA/s72-c/Astroids.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5919980333970383554</id><published>2010-06-14T19:36:00.000-07:00</published><updated>2010-06-18T11:57:47.549-07:00</updated><title type='text'>.Net User Group Meeting June 14, 2010</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EfTI_uHMUnY/TBbnwS05B6I/AAAAAAAAADs/Sk_BXIvp95Y/s1600/2010-06-14-1835-IMG_1029.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_EfTI_uHMUnY/TBbnwS05B6I/AAAAAAAAADs/Sk_BXIvp95Y/s320/2010-06-14-1835-IMG_1029.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5482824413243574178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EfTI_uHMUnY/TBbnkEHf1pI/AAAAAAAAADk/s93qvBCiOxw/s1600/2010-06-14-1835-IMG_1028.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_EfTI_uHMUnY/TBbnkEHf1pI/AAAAAAAAADk/s93qvBCiOxw/s320/2010-06-14-1835-IMG_1028.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5482824203136652946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The topic was ".Net Build Tools", but the theme was "Diversity".&lt;br /&gt;&lt;br /&gt;John Teague talked about using Nant. He said it's a really mature product and it's so successful support is on simmer since most things have already been done.  XML is  the downside.  He showed how to use the tag "Xmlpoke" to inject into config files and  Mkiisdir to create virtual directories.&lt;br /&gt;John demo visual studio on a Macintosh which caused quite a buzz; he is using VMWare's Unity setting to have VS act like another Mac window.  About half of the laptops at the meeting were Macs.&lt;br /&gt;&lt;br /&gt;Derick Bailey talked about using Rake for building and deploying.  Since XML is a declarative language, we have to shoehorn in programming.  He has an article about Albacore, a series of Rake tasks for building .Net projects &lt;a href="http://code-magazine.com/Article.aspx?QuickID=1006101"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Jorge Matos talked about the Psake project, a PowerShell dsl to help build .Net projects. It is based in Github.  A few notes:&lt;br /&gt;PowerShell has remoting so you can easily execute commands on other machines&lt;br /&gt;Psake just a script.&lt;br /&gt;Exec shows errors.&lt;br /&gt;Jorge showed a suite of tests functioning just like NUnit&lt;br /&gt;You have to modify the Executionppolicy to get Psake to run.  Enable-PSremoting on remote servers&lt;br /&gt;&lt;br /&gt;Eric Hexter presented Pstrami, a PowerShell module for deploying projects.&lt;br /&gt;&lt;br /&gt;For future meeting topics everyone was encouraged to go http://adnug.uservoice.com and vote for their favorite topics.&lt;br /&gt;&lt;br /&gt;Some projects were hosted by Google, some by GitHub, some laptops were Windows and others Macs, build systems were presented based on Ruby, PowerShell, and C#.&lt;br /&gt;&lt;br /&gt;Fears of a Microsoft monoculture are overblown.  Diversity is the word.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5919980333970383554?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5919980333970383554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5919980333970383554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5919980333970383554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5919980333970383554'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/06/net-user-group-meeting-june-14-2010.html' title='.Net User Group Meeting June 14, 2010'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EfTI_uHMUnY/TBbnwS05B6I/AAAAAAAAADs/Sk_BXIvp95Y/s72-c/2010-06-14-1835-IMG_1029.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4435399429668348498</id><published>2010-06-07T07:54:00.000-07:00</published><updated>2010-06-07T08:06:40.333-07:00</updated><title type='text'>Sumatra PDF Reader is Fast, Free Alternative to Adobe</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/File:Panthera_tigris_sumatran_subspecies.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 120px; height: 90px;" src="http://4.bp.blogspot.com/_EfTI_uHMUnY/TA0JwsnSDZI/AAAAAAAAADc/99q5N_3esXM/s320/120px-Panthera_tigris_sumatran_subspecies.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5480047053794053522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I just upgraded to &lt;a href="http://blog.kowalczyk.info/software/sumatrapdf/download.html"&gt;Sumatra&lt;/a&gt; 1.1, a free PDF reader.  Sumatra is very fast compared to the glacial Adobe PDF reader.  I've only had one PDF file that Sumatra did not handle correctly.  Sumatra is definitely worth using on a windows machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4435399429668348498?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4435399429668348498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4435399429668348498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4435399429668348498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4435399429668348498'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/06/sumatra-pdf-reader-is-very-fast.html' title='Sumatra PDF Reader is Fast, Free Alternative to Adobe'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EfTI_uHMUnY/TA0JwsnSDZI/AAAAAAAAADc/99q5N_3esXM/s72-c/120px-Panthera_tigris_sumatran_subspecies.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1125643430244836759</id><published>2010-06-04T13:41:00.000-07:00</published><updated>2010-06-04T13:46:23.722-07:00</updated><title type='text'>RSA Animate - A Great Way to Reinforce Speaking</title><content type='html'>&lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;Jeremy Miller&lt;/a&gt; had a link to the following video.  I loved the way the cartoon artist reinforces the speaker via quick drawings.&lt;br /&gt;(I'm not sure if what the speaker is saying is true, but it's a marvelous medium.)&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/u6XAPnuFjJc&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/u6XAPnuFjJc&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1125643430244836759?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1125643430244836759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1125643430244836759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1125643430244836759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1125643430244836759'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/06/rsa-animate-great-way-to-reinforce.html' title='RSA Animate - A Great Way to Reinforce Speaking'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2741005080144306392</id><published>2010-06-03T10:49:00.000-07:00</published><updated>2010-06-03T13:53:54.518-07:00</updated><title type='text'>Agile Austin Celebrates 501C6 Non-profit Tax Status</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EfTI_uHMUnY/TAfsSli3TlI/AAAAAAAAADE/YJdRIfsj_aw/s1600/2010-06-01-1843-Agile1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_EfTI_uHMUnY/TAfsSli3TlI/AAAAAAAAADE/YJdRIfsj_aw/s320/2010-06-01-1843-Agile1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5478607275779640914" /&gt;&lt;/a&gt;&lt;br /&gt;This last Tuesday's Agile Austin meeting was kicked off by Matt Roberts talking about Agile and Leadership.  Matt's extensive experience in the industry gave extra weight to his talk.&lt;br /&gt;He started off by talking about Self Leadership and knowing how to motivate yourself before motivating others.  Sprinkled throughout the talk were good boating analogies.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Matt recommended these three books:&lt;br /&gt; &lt;br clear="all" /&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0136066453/phonelistscom"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41t6waQClbL.jpg" alt="book"  height="200" /&gt;&lt;/a&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0061339202/phonelistscom"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41LDXwmSGNL.jpg" alt="book"  height="200" /&gt;&lt;/a&gt; &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0767907698/phonelistscom"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51WWcD7KybL.jpg" alt="book"  height="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br clear="all" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Random bits which caught my attention:&lt;br /&gt;Seek first to understand then to be understood&lt;br /&gt;Leadership for dummies&lt;br /&gt;Stop doing stupid stuff like annual reviews and collecting crazy metrics&lt;br /&gt;Pragmatic agilist&lt;br /&gt;Do fun crazy stuff like Karoke on bus&lt;br /&gt;To take pride in their work people need control&lt;br /&gt;Talk to Teddy bear&lt;br /&gt;Leaders must get rid of "Virus", people who preventing work getting done.&lt;br /&gt;Responding to change is good, but too much can be crazy&lt;br /&gt;Every team needs a dragon to slay otherwise it will slay itself&lt;br /&gt;Listers law:  People under time pressure don't think faster&lt;br /&gt;Leaders must clearly articulation the short-term pain of new processes&lt;br /&gt;Leaders must followup,followup,followup on projects&lt;br /&gt;Change is hard. Some people will not like it. Be prepared.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alan Bickerstaff talked about mistakes startups often make.  He had practical solutions like founders should get vesting common shares and use the corporation not a llc.&lt;br /&gt;&lt;br /&gt;At the end of the meeting we had a party replete with sparkling wine and cheeses.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EfTI_uHMUnY/TAfsftoX1BI/AAAAAAAAADM/2WNoX9zGTlA/s1600/2010-06-01-2028-Agile2.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_EfTI_uHMUnY/TAfsftoX1BI/AAAAAAAAADM/2WNoX9zGTlA/s320/2010-06-01-2028-Agile2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5478607501288526866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EfTI_uHMUnY/TAfsxzm3D6I/AAAAAAAAADU/exzY69lyIQU/s1600/2010-06-01-2030-IPhone_0980.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_EfTI_uHMUnY/TAfsxzm3D6I/AAAAAAAAADU/exzY69lyIQU/s320/2010-06-01-2030-IPhone_0980.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5478607812130443170" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2741005080144306392?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2741005080144306392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2741005080144306392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2741005080144306392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2741005080144306392'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/06/agile-austin-celebrates-501c6-non.html' title='Agile Austin Celebrates 501C6 Non-profit Tax Status'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EfTI_uHMUnY/TAfsSli3TlI/AAAAAAAAADE/YJdRIfsj_aw/s72-c/2010-06-01-1843-Agile1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1579041877438172914</id><published>2010-05-10T19:48:00.000-07:00</published><updated>2010-05-10T19:58:03.610-07:00</updated><title type='text'>.Net Uses Group Meeting May 10, 2010 - Optimizing SQL</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EfTI_uHMUnY/S-jFyoXsURI/AAAAAAAAAC8/oiMVmMm3qNo/s1600/2010-05-10-1812-DotNetUsersGroup.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_EfTI_uHMUnY/S-jFyoXsURI/AAAAAAAAAC8/oiMVmMm3qNo/s320/2010-05-10-1812-DotNetUsersGroup.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5469839221062390034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/blogs/sqlmanofmystery/"&gt;Wes Brown&lt;/a&gt; talked to 55 attendees about how to optimize SQL queries.  My random notes:&lt;br /&gt;Your DBA should be updating the STATS at least once a day for databases with changes.&lt;br /&gt;Before running trial queries use "Set statistics io on" and Set statistics time on"&lt;br /&gt;A Clustered index is a must for any table, whether it really needs it or not.&lt;br /&gt;Optimize Logical Reads first, before looking at cpu.&lt;br /&gt;&lt;br /&gt;The usual .Net crowd was noticeable by their absence; perhaps a sign that NHibernate is doing all the optimization people think they need.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1579041877438172914?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1579041877438172914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1579041877438172914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1579041877438172914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1579041877438172914'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/05/net-uses-group-meeting-may-10-2010.html' title='.Net Uses Group Meeting May 10, 2010 - Optimizing SQL'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EfTI_uHMUnY/S-jFyoXsURI/AAAAAAAAAC8/oiMVmMm3qNo/s72-c/2010-05-10-1812-DotNetUsersGroup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-6143461731187112758</id><published>2010-04-27T20:18:00.000-07:00</published><updated>2010-04-28T14:02:00.026-07:00</updated><title type='text'>Java User's Group: Flex and ForkJoin</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-04-27-1927-IPhone_0846.jpg" align="right" width="250" /&gt;&lt;br /&gt;Three companies said they were hiring java developers and only 6 people were actively looking for work.  This is quite a change from a year ago when dozens of people were looking.&lt;br /&gt; David Sheth talked to the 80 attendees about the new Fork-Join coming in Java7 and when to use threads, the executor, or Fork-Join.  He gave a great overview of the problems in optimizing parallel operations in multi-core cpus.&lt;br /&gt;&lt;a href="http://www.jamesward.com"&gt;James Ward&lt;/a&gt; flew down from Denver to talk about Adobe's Flex.  He recommended visiting &lt;a href="http://www.flex.org/tour"&gt;www.flex.org/tour&lt;/a&gt; to see samples of flex programming.  Flex has a free IDE available for download along with unit test and mocking library.  &lt;br /&gt;Adobe AIR is a superset of the flex api designed to run outside the sandbox as a native application so it can do things like access the harddrive.  AIR can run on Android, but oddly enough not on the iphone or ipad.&lt;br /&gt;James talked about a data transfer protocol, Amf, which was 10 times faster than transferring raw xml; works like gzip to compress xml.  A version of Amf is on the .Net platform.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-6143461731187112758?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/6143461731187112758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=6143461731187112758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6143461731187112758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6143461731187112758'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/04/java-users-group-flex-and-forkjoin.html' title='Java User&apos;s Group: Flex and ForkJoin'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5340106616713904077</id><published>2010-04-20T08:06:00.000-07:00</published><updated>2010-04-20T08:09:50.819-07:00</updated><title type='text'>Encyclopaedia Britannica Online Becoming More Wikipediaesque</title><content type='html'>Encyclopaedia Britannica Online is starting to beta test new functionalities to become more democratic.  Now, if you are a member of EB Online, you can submit comments or suggest edits to articles.&lt;br /&gt;A very positive step.  Wikipedia is useful, but you can never fully trust it.  Encyclopaedia Britannica Online at least you can reference in school work and not be ridiculed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5340106616713904077?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5340106616713904077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5340106616713904077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5340106616713904077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5340106616713904077'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/04/encyclopaedia-britannica-online.html' title='Encyclopaedia Britannica Online Becoming More Wikipediaesque'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-8548500064241878154</id><published>2010-04-15T12:40:00.000-07:00</published><updated>2010-04-15T12:55:42.858-07:00</updated><title type='text'>Software has the shelf life of bananas</title><content type='html'>&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321125215/phonelistscom"&gt;&lt;br /&gt;&lt;img src="http://images.amazon.com/images/P/0321125215.01.MZZZZZZZ.jpg" alt="Click to read reviews or buy Domain Driven Design" align="right"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I just finished Eric Evan's Domain Driven Design book (see my notes &lt;a href="http://www.fincher.org/tips/General/SoftwareEngineering/DomainDrivenDesign.shtml"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I'm struck by his Epilogues section about how most of the great software he and his colleagues sweated over is quickly brushed aside in a few years as business needs change.  All that work lost, like tears in the rain.&lt;br /&gt;&lt;br /&gt;That's the thing about software. It's so easily discarded.  Most of the software I've written in my career has been used for a few years and then thrown out, or never even put into production.  As software professionals we don't have the satisfaction of our friends in Civil Engineering or literature as Robinson Jeffers so eloquently says:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;To the Stonecutters &lt;/h3&gt;&lt;br /&gt;Stone cutters fighting time with marble, &lt;br /&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp;  you foredefeated challengers of oblivion&lt;br /&gt;Eat cynical earnings, knowing rock splits, records fall down&lt;br /&gt;The square-limbed Roman letters&lt;br /&gt;Scale in the thaws, wear in the rain.  &lt;br /&gt;The poet as well&lt;br /&gt;Builds his monument mockingly,&lt;br /&gt;For man will be blotted out, the blithe earth die, the brave sun&lt;br /&gt;Die blind and blacken to the heart:&lt;br /&gt;Yet stones have stood for a thousand years,&lt;br /&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp;  and pained thoughts found&lt;br /&gt;The honey of peace in old poems. &lt;br /&gt;&lt;br /&gt;-Robinson Jeffers, 1887-1962&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-8548500064241878154?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/8548500064241878154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=8548500064241878154' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8548500064241878154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/8548500064241878154'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/04/software-has-shelf-life-of-bananas.html' title='Software has the shelf life of bananas'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-522600969390135109</id><published>2010-04-06T12:39:00.000-07:00</published><updated>2010-04-06T12:41:32.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='podcasting'/><category scheme='http://www.blogger.com/atom/ns#' term='autos'/><title type='text'>Great PodCast on the American Auto Industry</title><content type='html'>This American Life has a great podcast on &lt;a href="http://www.thisamericanlife.org/radio-archives/episode/403/nummi"&gt;NUMMI&lt;/a&gt;; searching for what is wrong with the American Auto Industry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-522600969390135109?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/522600969390135109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=522600969390135109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/522600969390135109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/522600969390135109'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/04/great-podcast-on-american-auto-industry.html' title='Great PodCast on the American Auto Industry'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7068344299111386583</id><published>2010-04-06T12:26:00.001-07:00</published><updated>2010-04-06T12:31:45.817-07:00</updated><title type='text'>Two useful utilities:  Console and SpaceSniffer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EfTI_uHMUnY/S7uLsUPo3oI/AAAAAAAAAC0/qb9eWUJIvYc/s1600/SpaceSniffer.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 152px;" src="http://3.bp.blogspot.com/_EfTI_uHMUnY/S7uLsUPo3oI/AAAAAAAAAC0/qb9eWUJIvYc/s400/SpaceSniffer.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5457108966954294914" /&gt;&lt;/a&gt;&lt;br /&gt;I download two interesting Windows tools today.&lt;br /&gt;&lt;a href="http://www.uderzo.it/main_products/space_sniffer/download.html"&gt;Space Sniffer&lt;/a&gt; tells you where your disk space is being used.  It's entertaining as it scans your disk.&lt;br /&gt;&lt;p&gt;&lt;a href="http://sourceforge.net/projects/console/"&gt;Console&lt;/a&gt;  is a replacement for the 70s style Windows Cmd.exe windows.  Console has tabs and real text selection.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7068344299111386583?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7068344299111386583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7068344299111386583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7068344299111386583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7068344299111386583'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/04/two-useful-utilities-console-and.html' title='Two useful utilities:  Console and SpaceSniffer'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EfTI_uHMUnY/S7uLsUPo3oI/AAAAAAAAAC0/qb9eWUJIvYc/s72-c/SpaceSniffer.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5507911492230082544</id><published>2010-04-01T06:31:00.000-07:00</published><updated>2010-04-01T06:44:53.318-07:00</updated><title type='text'>Java User's Group:  REST tools in Java</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EfTI_uHMUnY/S7ShDN1LNtI/AAAAAAAAACs/G1fVD5I-w80/s1600/2010-03-30-2008-JavaUsersGroup.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_EfTI_uHMUnY/S7ShDN1LNtI/AAAAAAAAACs/G1fVD5I-w80/s400/2010-03-30-2008-JavaUsersGroup.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5455162125276886738" /&gt;&lt;/a&gt;&lt;br /&gt;Srini Penchikala presented "REST Web Services Support in Java EE 6 and Spring 3.0" to about sixty java enthusiasts last Tuesday.&lt;br /&gt;The meeting was sponsored by TEK who provided the pizza.  The TEK spokesman said Agile skills would probably become a de facto requirement for most jobs within a year.&lt;br /&gt;Srini talked about the different syntax for supporting REST within EE6 and Spring, with examples of doing things in both frameworks.&lt;br /&gt;A small discussion centered around the movement of configuration data from code, then into XML, and now a trend back into code with the use of annotations.  John Heinz made the point that annotations, although in code, are really declarative programming.&lt;br /&gt;Srini mentioned that with Spring3 annotation in the code can be overridden by XML configuration, which seems to be the best of both worlds.  He also used &lt;a href="http://code.google.com/p/rest-client/"&gt;RestClient&lt;/a&gt; from Wiztool.org to test his demo code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5507911492230082544?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5507911492230082544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5507911492230082544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5507911492230082544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5507911492230082544'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/04/java-users-group-rest-tools-in-java.html' title='Java User&apos;s Group:  REST tools in Java'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EfTI_uHMUnY/S7ShDN1LNtI/AAAAAAAAACs/G1fVD5I-w80/s72-c/2010-03-30-2008-JavaUsersGroup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-6626516610066501862</id><published>2010-03-29T06:49:00.000-07:00</published><updated>2010-04-01T09:36:55.555-07:00</updated><title type='text'>Taking the Pulse of Shopper's Identity</title><content type='html'>A great story about the future of shopping and identity management using finger vein patterns instead of credit cards is at &lt;a href="http://www.newlaunches.com/archives/hitachi_brings_out_finger_vein_identification_technology.php"&gt;NewLauncher.com&lt;/a&gt;.  &lt;br /&gt;We need to use credit cards less since they are so easily stolen or forgotten at home.  I like the finger vein method or iris pictures to confirm identity, although neither is perfect, it takes criminals a lot more work than swiping a credit card blank through a magnetic writer.&lt;br /&gt;&lt;br /&gt;A related story on using finger vein identity in a coke machine is here &lt;br /&gt;&lt;object width="400" height="225"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10521163&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=10521163&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/10521163"&gt;VeinID - Finger Pulse Vending Machine&lt;/a&gt; from &lt;a href="http://vimeo.com/user1887877"&gt;CScout&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-6626516610066501862?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/6626516610066501862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=6626516610066501862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6626516610066501862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/6626516610066501862'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/03/taking-pulse-of-shoppers-identity.html' title='Taking the Pulse of Shopper&apos;s Identity'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3476366611021007302</id><published>2010-03-18T17:33:00.000-07:00</published><updated>2010-03-18T17:41:21.045-07:00</updated><title type='text'>Agile ATX Lunch Crowd at Central Market</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EfTI_uHMUnY/S6LGlTYmVaI/AAAAAAAAACk/C-xYCBf2y10/s1600-h/2010-03-18-1252-IPhone_0691.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_EfTI_uHMUnY/S6LGlTYmVaI/AAAAAAAAACk/C-xYCBf2y10/s400/2010-03-18-1252-IPhone_0691.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5450136843232630178" /&gt;&lt;/a&gt;&lt;br /&gt;I had a great time at the Agile ATX lunch today at Central Market on 38th and Lamar.  The group meets every other Thursday at 11:30.&lt;br /&gt;Some of today's topics were Mercurial vs. Git vs. Subversion, Domain Driven Design, SSIS and &lt;a href="http://ayende.com/Blog/archive/2008/01/16/Rhino-ETL-2.0.aspx"&gt;RhinoETL&lt;/a&gt;, and raising babies.&lt;br /&gt;As usual I didn't understand many of the conversations, but its good to be humbled sometimes.&lt;br /&gt;Come join us if you enjoy talking about the latest trends in software development especially in the Agile arena.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3476366611021007302?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3476366611021007302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3476366611021007302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3476366611021007302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3476366611021007302'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/03/agile-atx-lunch-crowd-at-central-market.html' title='Agile ATX Lunch Crowd at Central Market'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EfTI_uHMUnY/S6LGlTYmVaI/AAAAAAAAACk/C-xYCBf2y10/s72-c/2010-03-18-1252-IPhone_0691.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-5404137788764500395</id><published>2010-03-13T08:53:00.001-08:00</published><updated>2010-03-13T08:55:16.935-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Can You Name the Most Popular Programming Languages?</title><content type='html'>Fun &lt;a href="http://www.sporcle.com/games/moogles/programlanguages"&gt;Quiz&lt;/a&gt; to test your knowledge of the most popular programming language (well, fun if you are a languages geek).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-5404137788764500395?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/5404137788764500395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=5404137788764500395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5404137788764500395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/5404137788764500395'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/03/can-you-name-most-popular-programming.html' title='Can You Name the Most Popular Programming Languages?'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4377969544358281836</id><published>2010-03-03T18:14:00.000-08:00</published><updated>2010-03-03T18:21:57.856-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='austin'/><title type='text'>Java User's Group on March 2, 2010</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EfTI_uHMUnY/S48XvsGlWbI/AAAAAAAAACc/baScETm0fD0/s1600-h/IMG_0645.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_EfTI_uHMUnY/S48XvsGlWbI/AAAAAAAAACc/baScETm0fD0/s320/IMG_0645.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5444596582574283186" /&gt;&lt;/a&gt;&lt;br /&gt;Norman Richards, long time java guru, gave a presentation to about 40 people on JSR 299: "Contexts and Dependency Injection for the JavaTM EE platform".  It was very interesting to hear about the merging of Spring, Seam, and other technologies being baked into the latest version of Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4377969544358281836?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4377969544358281836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4377969544358281836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4377969544358281836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4377969544358281836'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/03/java-users-group-on-march-2-2010.html' title='Java User&apos;s Group on March 2, 2010'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EfTI_uHMUnY/S48XvsGlWbI/AAAAAAAAACc/baScETm0fD0/s72-c/IMG_0645.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1413135856827935491</id><published>2010-02-05T08:03:00.000-08:00</published><updated>2010-02-05T09:23:28.196-08:00</updated><title type='text'>EventBrite Integrates Amzaingly Well With Twitter, Facebook, and Calendaring</title><content type='html'>In &lt;a href="http://twitter.com/mhinze"&gt;Matt Hinze's&lt;/a&gt; tweets this morning was a link to Austin Code Camp registration at &lt;a href="http://austin-codecamp-2010.eventbrite.com"&gt;EventBrite&lt;/a&gt;.  While registering I noticed a myriad options for publicizing the event - you can click on convenient links to post on Facebook, your Yahoo or Google calendars - or even Twitter which is how I got to EventBrite in the first place.  It's an amazing self-reinforcing process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1413135856827935491?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1413135856827935491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1413135856827935491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1413135856827935491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1413135856827935491'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/02/eventbrite-integrates-amzaingly-well.html' title='EventBrite Integrates Amzaingly Well With Twitter, Facebook, and Calendaring'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-1185855724615795647</id><published>2010-01-19T13:21:00.000-08:00</published><updated>2010-01-19T13:25:15.644-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><category scheme='http://www.blogger.com/atom/ns#' term='free software'/><title type='text'>Wiping Disks Clean with Free Software from dban.org</title><content type='html'>Recently I needed to wipe the hard drives of a few machines.  I was very pleased with Darik's Boot and Nuke ("DBAN"), a free program from &lt;a href="http://dban.org"&gt;dban.org&lt;/a&gt;.  Before you donate your old computer, or even put it out at the curb for trash pickup, be sure to wipe the drive clean; even erased Quicken data can be read from your old hard drives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-1185855724615795647?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/1185855724615795647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=1185855724615795647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1185855724615795647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/1185855724615795647'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/01/wiping-disks-clean-with-free-software.html' title='Wiping Disks Clean with Free Software from dban.org'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2895268962244524895</id><published>2010-01-06T13:13:00.000-08:00</published><updated>2010-01-06T13:54:57.096-08:00</updated><title type='text'>Agile Austin - Peer Code Review – An Agile Process</title><content type='html'>&lt;img src="http://www.fincher.org/images/2010-01-05-AgileAustin-GreggSporar.jpg" align="right" alt="2010-01-05-AgileAustin-Gregg Sporar.jpg" width="250" /&gt;At last night's &lt;a href="http://www.agileaustin.org"&gt;Agile Austin &lt;/a&gt; meeting, Gregg Sporar gave an excellent talk on Peer Code Reviews to seventy attendees.  Here are a few of my cryptic notes:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;  Professional writers have editors, why shouldn't coders?  In fact, in the US we are blessed with twice as many professional editors as writers.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  We need to move the feedback closer to origin when writing code.  The earlier the code is peer reviewed the better.  Should code be reviewed before being checked-in?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  One of our Agile principles is Collective Code Ownership.  Peer reviews aids this process by helping everyone understand the code.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  If coders know their code will be reviewed they code better.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  Peer reviews help everyone learn new techniques for programming.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Michael Fagan, the founding father of code reviews encouraged lots of meetings.  Is roi there for lots of meetings?  Only 4% of bugs are found in meetings.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  Types of Code Reviews:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt; Over the shoulder code review.  Just grab a friend and have them look over your shoulder at your code.&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  email&lt;br /&gt;  &lt;/li&gt;&lt;li&gt; pair programming&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;  Automated tools&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; How long to review code. Studies show most bugs found in 60-90 minutes.  On average 1 bug per 10 min.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; How many lines of code to review?  200 loc per hour seems to be the sweet spot.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  Regarding checklists:  Don't put too many items in a checklist.  5-9.  Error handling would be a good item for a checklist.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; One way to review code is to only review unit tests to make sure they are thorough, and then the code should be fine.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  A few suggestions for not letting the reviews get to heated:  Remember it's the tone that counts.  Also "Ask don't tell", (e.g., Why did you use this API?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  Smartbear offers a free book at Codereviewbook.com&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  Gregg blogs at &lt;a href="http://blog.smartbear.com"&gt;Blog.smartbear.com&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2895268962244524895?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2895268962244524895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2895268962244524895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2895268962244524895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2895268962244524895'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2010/01/agile-austin-peer-code-review-agile.html' title='Agile Austin - Peer Code Review – An Agile Process'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-701884612030752309</id><published>2009-12-22T11:23:00.000-08:00</published><updated>2009-12-22T11:40:37.584-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='embedding date time'/><category scheme='http://www.blogger.com/atom/ns#' term='windows xp'/><category scheme='http://www.blogger.com/atom/ns#' term='date time'/><title type='text'>Embedding date and time into a file in windows - "But it worked last night"</title><content type='html'>I'm patching a tiny project at work with duct tape until we can get an enterprise solution. A small batch job runs on the windows scheduler doing something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;MyCommand.exe  --output=Saturday1201amUS_%date:~10,4%-%date:~4,2%-%date:~7,2%-%time:~0,2%-%time:~3,2%-%time:~6,5%.txt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I ran it yesterday afternoon and it worked great.  It created a file named&lt;br /&gt;Saturday1201amUS_2009-12-21-15-46-00.21.log.  This morning I did another test with my client and it failed miserably after creating a file named 'Saturday1201amUS_2009-12-22-'.  A little investigation turned up that windows does not prepend a zero in front of the hours before noon so my executable file was getting a space in front of 9 oclock:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;MyCommand.exe  --output=Saturday1201amUS_Saturday1201amUS_2009-12-22- 9-47-20.31.log&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It worked great after putting quotes around the file name.&lt;br /&gt;&lt;pre class="code"&gt;MyCommand.exe  --output="Saturday1201amUS_%date:~10,4%-%date:~4,2%-%date:~7,2%-%time:~0,2%-%time:~3,2%-%time:~6,5%.txt"&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-701884612030752309?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/701884612030752309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=701884612030752309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/701884612030752309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/701884612030752309'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/12/embedding-date-and-time-into-file-in.html' title='Embedding date and time into a file in windows - &quot;But it worked last night&quot;'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-2137239699993617424</id><published>2009-12-21T08:16:00.000-08:00</published><updated>2010-01-01T07:41:19.719-08:00</updated><title type='text'>One Stock Trading Company Claims Compute Power of Lawrence Livermore</title><content type='html'>Interesting article from &lt;a href="http://www.technologyreview.com/computing/24167/page4/"&gt;Technology Review&lt;/a&gt; about the computing power of the high-speed stock traders:&lt;br /&gt;&lt;cite&gt;The explosion in high-speed automated trading has engendered a massive buildup in technology; Renaissance Technologies, a hedge fund based in East Setauket, NY, boasts that its computing power is equal to that of the Lawrence Livermore National Laboratory.&lt;/cite&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-2137239699993617424?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/2137239699993617424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=2137239699993617424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2137239699993617424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/2137239699993617424'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/12/one-stock-trading-company-claims.html' title='One Stock Trading Company Claims Compute Power of Lawrence Livermore'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-7334373767747983121</id><published>2009-12-02T11:21:00.000-08:00</published><updated>2009-12-02T11:25:06.687-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='NHibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='intellisense'/><title type='text'>NHibernate Intellisense for Visual Studio 2008</title><content type='html'>From the NHibernate distribution, I renamed nhibernate-mapping.xsd to nhibernate-mapping-2.2.xsd and nhibernate-configuration.xsd to nhibernate-configuration-2.2.xsd.  Then I copied those two files to C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas and immediately intellisense started working for me in Visual Studio 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-7334373767747983121?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/7334373767747983121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=7334373767747983121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7334373767747983121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/7334373767747983121'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/12/nhibernate-intellisense-for-visual.html' title='NHibernate Intellisense for Visual Studio 2008'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3076231889689891520</id><published>2009-11-24T07:44:00.001-08:00</published><updated>2009-11-24T07:46:06.668-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><title type='text'>Bitter Refactoring</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/kamoda/3185926085/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3509/3185926085_9cf1654948_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/kamoda/3185926085/"&gt;Kimberley Bitter&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/kamoda/"&gt;kamoda&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;After reading Martin Fowler's book on Refactoring I've been a big fan of the practice.  We all know that adding in tests to insure the refactoring doesn't change the results is essential.  &lt;br /&gt;But this last week the real world crept into our world of programming paradigms.  We refactored a complicated section of code to make it simpler, more readable, and faster - a big win; except that after the code was fielding, one of our customers reported a problem.&lt;br /&gt;Their use of our product actually depended on a bug in the old version.  Refactoring the code fixed the bug and caused our customers grief.&lt;br /&gt;I'm still a big fan of refactoring and continue to do it, but now I'm a little wiser that refactoring carries more risk than I'd thought before.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3076231889689891520?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3076231889689891520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3076231889689891520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3076231889689891520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3076231889689891520'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/11/bitter-refactoring.html' title='Bitter Refactoring'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3509/3185926085_9cf1654948_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-3012611102659686882</id><published>2009-11-13T11:27:00.000-08:00</published><updated>2009-11-13T11:37:03.307-08:00</updated><title type='text'>Simian - a code duplication finder</title><content type='html'>&lt;img src="http://www.redhillconsulting.com.au/products/simian/simian.jpg" align="right" /&gt;&lt;br /&gt;Today I downloaded &lt;a href="http://www.redhillconsulting.com.au/products/simian/"&gt;simian&lt;/a&gt;, a code duplication detector.  It's very easy to download and run.  Simian detected a few chunks of duplicated code, which need to be refactored into a single method, or pushed up into a parent object.  Simian is worth a quick download  to test your code.  Eval copy is available for free.&lt;br /&gt;&lt;pre class="code"&gt;&lt;br /&gt;C:\opt\simian\bin\simian-2.2.24.exe -reportDuplicateText -threshold=5 *.cs &gt; simian.txt&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-3012611102659686882?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/3012611102659686882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=3012611102659686882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3012611102659686882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/3012611102659686882'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/11/simian-code-duplication-finder.html' title='Simian - a code duplication finder'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4107452102078589250</id><published>2009-11-04T13:40:00.001-08:00</published><updated>2009-11-04T13:48:50.155-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile austin'/><category scheme='http://www.blogger.com/atom/ns#' term='domain driven design'/><category scheme='http://www.blogger.com/atom/ns#' term='ddd'/><category scheme='http://www.blogger.com/atom/ns#' term='jmatter'/><title type='text'>Agile Austin - Domain Driven Design and the Naked Objects Pattern</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EfTI_uHMUnY/SvH06NjPZgI/AAAAAAAAACQ/9pOiJF0zw5w/s1600-h/2009-11-03-AgileAustinSuez.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_EfTI_uHMUnY/SvH06NjPZgI/AAAAAAAAACQ/9pOiJF0zw5w/s320/2009-11-03-AgileAustinSuez.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400366709100996098" /&gt;&lt;/a&gt;&lt;br /&gt;Last night at Agile Austin Eitan Suez explored the relationship of Domain Driven Design and the Naked Objects Architectural pattern to a packed house of 60 people.&lt;br /&gt;The thing that struck me the most was how using the Naked Objects concept of having the objects themselves create the GUI forces a Ubiquitous Language on the developer since the user will see the object and method names on the screen.&lt;br /&gt;Eitan gave a great example by having the &lt;a href="http://jmatter.org/"&gt;jMatter&lt;/a&gt;  framework autogenerates a permissions table with objects and their actions on the vertical axis and the types of users on the horizontal axis by reflecting the code and dynamically discovering the objects, their methods, and the types of users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4107452102078589250?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4107452102078589250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4107452102078589250' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4107452102078589250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4107452102078589250'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/11/agile-austin-domain-driven-design-and.html' title='Agile Austin - Domain Driven Design and the Naked Objects Pattern'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EfTI_uHMUnY/SvH06NjPZgI/AAAAAAAAACQ/9pOiJF0zw5w/s72-c/2009-11-03-AgileAustinSuez.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-4516744808696723931</id><published>2009-10-29T13:44:00.001-07:00</published><updated>2009-10-29T13:49:33.714-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='health'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputers'/><category scheme='http://www.blogger.com/atom/ns#' term='dna'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='computing power'/><title type='text'>When Will We Have Enough Computing Power?</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/ynse/542370154/" title="photo sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1081/542370154_a8575631cc_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/ynse/542370154/"&gt;DNA rendering&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/ynse/"&gt;ynse&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;At the last Java User's Group meeting here in Austin, Gary Frost mentioned that if he took his $300 Gateway computer with its $300 graphics card back in time 6 years, his computer would be in the top ten fastest super computers in the world.  Which got me thinking, "How fast do computers need to get?".&lt;br /&gt;Well obviously a lot faster.  I'll be happy when computers can do either of the following (I'm not picky):&lt;br /&gt;1.  Store every person's DNA and their medical history.  That's 3 billion base pairs per person times almost 7 billion people gives 2.1 × 10^19 base pairs or about a Zettabyte.   Then compare and contrast every person's DNA with their illnesses with everyone else and produce a report showing which diseases are related to which DNA differences.  For example, asthma could be related to any of 307 combinations of 24 genes being different.  Then we should be able to design drugs to compensate for the "defective" genes, or perhaps tweak those genes with a small bit of DNA from a friendly virus.&lt;br /&gt;Storing a Zettabyte seems reasonably straightforward, diff'ing all the genes will take enormous computing power- but that's the power we need.&lt;br /&gt;2.  Predict the future health issues of a fertilized human egg based on its DNA.  We would need the power to replicate division of all the cells grow the egg into an adult and simulate the running of the biology in each cell and predict the health issues.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-4516744808696723931?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/4516744808696723931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=4516744808696723931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4516744808696723931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/4516744808696723931'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/10/dna-renderingwhen-will-we-have-enough.html' title='When Will We Have Enough Computing Power?'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1081/542370154_a8575631cc_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30926081.post-275775173584386342</id><published>2009-10-27T17:14:00.000-07:00</published><updated>2009-10-28T20:05:03.393-07:00</updated><title type='text'>Austin Java Users Group</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EfTI_uHMUnY/SukEffvR0fI/AAAAAAAAACI/D_xas1haO0A/s1600-h/2009-10-JavaUsersGroup.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_EfTI_uHMUnY/SukEffvR0fI/AAAAAAAAACI/D_xas1haO0A/s320/2009-10-JavaUsersGroup.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397850567522505202" /&gt;&lt;/a&gt;&lt;br /&gt;Random Notes from the meeting (entered via my shiny new IPhone):&lt;br /&gt;Big Mike is starting a Certification group.&lt;br /&gt;Gary Frost from Amd talked about OpenCL, the Open Computing Language.  This provides binding to Java via C for running parallel operations on Graphics Processing Units.  Gary's demo showed the n-body problem being accelerated by using the GPU to do calculations, while the GPU was also updating the screen.&lt;br /&gt;The demo was very impressive, but the OpenCL seemed a bit clunky.  I think the masses of programmers will need a much smarter compiler to inspect the java code and imply what the GPU can do in paralle.&lt;br /&gt;&lt;br /&gt;The second part of the meeting Deb Ayers talked about Oracle's Enterprise Service Bus (ESB).  She said ESB is a natural progression from client Server.  Many of her clients don't use soap, just Plain Old XML (POX) over http.&lt;br /&gt;For a dozen services you don't need an ESB, but some Telcos have hundreds of services and need an ESB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30926081-275775173584386342?l=mitchfincher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitchfincher.blogspot.com/feeds/275775173584386342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30926081&amp;postID=275775173584386342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/275775173584386342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30926081/posts/default/275775173584386342'/><link rel='alternate' type='text/html' href='http://mitchfincher.blogspot.com/2009/10/austin-java-users-group.html' title='Austin Java Users Group'/><author><name>Mitch Fincher</name><uri>http://www.blogger.com/profile/06517680094800899962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.fincher.org/images/MitchFincher.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EfTI_uHMUnY/SukEffvR0fI/AAAAAAAAACI/D_xas1haO0A/s72-c/2009-10-JavaUsersGroup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
