<?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-8919860543765866292</id><updated>2012-01-07T06:16:15.452-06:00</updated><category term='isanti'/><category term='Big Stone'/><category term='meeker'/><category term='Volcano'/><category term='Probability'/><category term='Universe'/><category term='norman'/><category term='Missile'/><category term='pope'/><category term='Concurrency'/><category term='Itasca'/><category term='truth'/><category term='Hell'/><category term='Cass'/><category term='Conservatives'/><category term='Logitech'/><category term='Debugging'/><category term='email'/><category term='Command and Control'/><category term='alien cultures'/><category term='Ken Overstreet'/><category term='atlas'/><category term='rant'/><category term='New word'/><category term='Nature'/><category term='selfishness'/><category term='nuclear physics'/><category term='Ad'/><category term='murray'/><category term='God'/><category term='mille lacs'/><category term='Children&apos;s Literature'/><category term='Torture'/><category term='Winter'/><category term='Binary Search'/><category term='Le Sueur'/><category term='Simplicity'/><category term='Beltrami'/><category term='Motorcycles'/><category term='Creationism'/><category term='SysML'/><category term='Forklift'/><category term='Software Spelunking'/><category term='Rosetta'/><category term='Evolution'/><category term='Bloat'/><category term='Snow'/><category term='Hypothesis'/><category term='Eclipse'/><category term='JGNAT'/><category term='Civil War'/><category term='eyewitness'/><category term='design'/><category term='Trikes'/><category term='large hadron collider'/><category term='freeborn'/><category term='polk'/><category term='static typing'/><category term='porting'/><category term='Python'/><category term='Anoka'/><category term='Aitkin'/><category term='computer virus'/><category term='doubt'/><category term='Trident'/><category term='magic'/><category term='kanabec'/><category term='Art. Tesla'/><category term='Brown'/><category term='lesstif'/><category term='GOP'/><category term='Ingenuity'/><category term='fillmore'/><category term='Koochiching'/><category term='Marshall'/><category term='Elements'/><category term='fringe'/><category term='Mathematics'/><category term='hypocrisy'/><category term='Biology'/><category term='otters'/><category term='Obama'/><category term='Grant'/><category term='Home improvement'/><category term='Law'/><category term='Negative Campaigning'/><category term='Spam'/><category term='Bic'/><category term='martin'/><category term='FAIL'/><category term='radio'/><category term='Happy'/><category term='Gitmo'/><category term='Carlton'/><category term='Nicollet'/><category term='Software Development'/><category term='cook'/><category term='BLM'/><category term='Pipestone'/><category term='gtk'/><category term='Mars'/><category term='Lac qui Parle'/><category term='Intelligent Design'/><category term='Fun'/><category term='Algorithms'/><category term='nobles'/><category term='widgets'/><category term='Alternate History'/><category term='War Story'/><category term='Chisago'/><category term='human culture'/><category term='cecropia'/><category term='Children'/><category term='Software Archeology'/><category term='Lake'/><category term='Becker'/><category term='Christianity'/><category term='douglas'/><category term='Smoke'/><category term='luna'/><category term='2020'/><category term='management'/><category term='Helicopter'/><category term='Overprotectiveness'/><category term='crow wing'/><category term='Imaginary Numbers'/><category term='Reading'/><category term='Red Lake'/><category term='Lake of the Woods'/><category term='times change'/><category term='Remembrance'/><category term='Wavy'/><category term='Project Failure'/><category term='antiference'/><category term='hennepin'/><category term='Crime'/><category term='Fire'/><category term='Afghanistan'/><category term='Lyon'/><category term='mcleod'/><category term='Sibley'/><category term='Pennington'/><category term='extra-solar planets'/><category term='UFOs'/><category term='software engineering'/><category term='Body Art'/><category term='cottonwood'/><category term='Africa'/><category term='Greatest Generation'/><category term='Jesus'/><category term='LED'/><category term='Scaling'/><category term='Skeptical Fiction'/><category term='xbae'/><category term='motif'/><category term='Electrical'/><category term='Cool Picture'/><category term='competence'/><category term='Vote'/><category term='Morrison'/><category term='Rice'/><category term='Dodge'/><category term='Bush'/><category term='Olmsted'/><category term='Entertainment'/><category term='Palin'/><category term='UML'/><category term='goodhue'/><category term='Roseau'/><category term='houston'/><category term='Lincoln'/><category term='Theory'/><category term='Sun Dog'/><category term='segfault'/><category term='FCYF'/><category term='movie'/><category term='Redwood'/><category term='dynamic typing'/><category term='kickouts'/><category term='Faribault'/><category term='Commuting'/><category term='Benton'/><category term='Space Exploration'/><category term='Mouse'/><category term='Game Show'/><category term='sherburne'/><category term='Cosmology'/><category term='Chippewa'/><category term='hubris'/><category term='Craig Ferguson'/><category term='architecture'/><category term='bathroom'/><category term='What a world'/><category term='Humans'/><category term='Intelligence Community'/><category term='Science Fiction'/><category term='Lighting'/><category term='hubbard'/><category term='McCain'/><category term='Obituary'/><category term='moon'/><category term='SNL'/><category term='Darwinism'/><category term='Recreation'/><category term='cern'/><category term='insects'/><category term='America'/><category term='Programming'/><category term='Politics'/><category term='Mahnomen'/><category term='Election'/><category term='Carver'/><category term='Renville'/><category term='dakota'/><category term='Clean Water'/><category term='Clay'/><category term='Weather'/><category term='Rock'/><category term='Writing'/><category term='jackson'/><category term='President'/><category term='alabama'/><category term='Animation'/><category term='Ada'/><category term='Phoenix'/><category term='Born Again'/><category term='Blue Earth'/><category term='kittson'/><category term='B2 Stealth Bomber'/><category term='Eco-friendly'/><category term='Primary'/><category term='mower'/><category term='Art'/><category term='Science'/><category term='Java'/><category term='reddit'/><category term='television'/><category term='Antartica'/><category term='kandiyohi'/><category term='mind trick'/><category term='Fantasy'/><category term='drought'/><category term='defense industry'/><category term='religion'/><category term='Otter Tail'/><category term='Ramsey'/><category term='Clearwater'/><category term='fusion'/><category term='Scott'/><category term='Totally Obvious'/><category term='NASA'/><title type='text'>Kickin' the Darkness</title><subtitle type='html'>Nothing worth having comes without some kind of fight&lt;br&gt;
Got to kick at the darkness till it bleeds daylight&lt;br&gt;
&lt;br&gt;
Bruce Cockburn, "Lovers in a Dangerous Time"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default?start-index=101&amp;max-results=100'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>138</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3642223996006615926</id><published>2011-04-14T10:34:00.005-05:00</published><updated>2011-04-14T11:25:22.212-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sibley'/><category scheme='http://www.blogger.com/atom/ns#' term='Alternate History'/><category scheme='http://www.blogger.com/atom/ns#' term='Civil War'/><title type='text'>What if there had been no Civil War?</title><content type='html'>&lt;a href="http://www.blogger.com/en.wikipedia.org/wiki/Alternate_history"&gt;Alternate histories&lt;/a&gt; are a well-known genre of fiction, with "What if the South had won the Civil War" a &lt;a href="http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;amp;field-keywords=alternate+history+civil+war&amp;amp;x=0&amp;amp;y=0"&gt;common topic of speculation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This was on my mind lately because I live in Alabama and the 150th anniversary of the start of the Civil War was marked just a few days ago.&lt;br /&gt;&lt;br /&gt;I started wondering, though, not what if the South had won, but suppose there had been &lt;span style="font-style: italic;"&gt;no&lt;/span&gt; Civil War. That when the Southern states began to secede, Lincoln and the Federal government had instead said: We don't like it, we think you're wrong, but we're not going to go to war over it.&lt;br /&gt;&lt;br /&gt;What kind of alternate history would this country, &lt;span style="font-style: italic;"&gt;these countries&lt;/span&gt;, and the world, have seen?&lt;br /&gt;&lt;br /&gt;First, we can take as a given that slavery would have continued through the 1860s and '70s. Following these decades, between the Abolitionist movement and the mechanization of agriculture (which drastically reduced the amount of manual labor needed for farming in the predominantly agricultural South), slavery might well have become, well, to put it bluntly, &lt;span style="font-style: italic;"&gt;no longer cost-effective&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The following decades of alternate history are ripe with story lines:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Suppose slavery had been maintained into the 20th century, perhaps then a Civil War did still eventually occur, say in 1905. And with increased weaponry and mechanization, might well have been even more bloody and destructive to North and South.&lt;/li&gt;&lt;li&gt;If slavery didn't end as a result of later civil war, did it end abruptly, or was it phased out? How does a country and its people manage something like this? Surely more than the Civil Rights Movement of the 1960s, even if it doesn't approach the full intensity of a civil war. Or maybe it did and happened as a result of a full-scale revolution.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Or at some point in the late 1800s slavery was abolished, but rather than "freedom", the Confederate States of America (CSA) becomes an apartheid state, not unlike South Africa, and perhaps persists well into the 20th century, like South Africa. Perhaps the two nations, both having eventually become pariah states, would have allied out of necessity and common culture.&lt;/li&gt;&lt;li&gt;How much would the remaining USA's economic and technological growth be stunted?&lt;/li&gt;&lt;li&gt;Would there have been ongoing friction with the occasional flareup between the two countries, similar to Israel and its neighbors in the Middle East? Would there have been a "Cold War" of sorts? What about immigration issues, legal and illegal, between an industrialized USA and an agricultural CSA?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How would the World Wars have been affected without the unified economic might of the USA? Given that the Civil War affected foreign nations to some degree large or small, what sort of effect on other nations would a separate USA and CSA have had in the late 1800s and into the early 1900s? Would Germany in WW1 have sought alliance with the CSA against the USA, as they &lt;a href="http://europeanhistory.about.com/cs/americainww1/p/przimmermantele.htm"&gt;attempted with Mexico&lt;/a&gt;? That's assuming that something resembling WW1 even still occurred.&lt;/li&gt;&lt;li&gt;What, if any, effect would a separate USA and CSA have had on the establishment of the Soviet Union? Any? What about the Cold War? The space program? Would the Soviets simply have taken over Europe piecemeal, with no military bulwark to oppose them? Is this what drives the USA and CSA to rejoin into a single United Confederated States of America?&lt;/li&gt;&lt;/ul&gt;I can't write fiction worth a flip, so...just thinking...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3642223996006615926?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3642223996006615926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3642223996006615926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3642223996006615926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3642223996006615926'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2011/04/what-if-there-had-been-no-civil-war.html' title='What if there had been no Civil War?'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2804559898441765995</id><published>2010-12-03T09:51:00.013-06:00</published><updated>2010-12-04T07:02:06.078-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='defense industry'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><category scheme='http://www.blogger.com/atom/ns#' term='sherburne'/><title type='text'>Defensive programming: Fortran, Ada, C++, Java, ???</title><content type='html'>I've worked in the defense software industry for over 25 years, and lately I've been thinking about programming languages.&lt;br /&gt;&lt;br /&gt;I'm concerned.&lt;br /&gt;&lt;br /&gt;Now first off, the vast majority of defense systems  take a &lt;span style="font-style: italic;"&gt;long &lt;/span&gt;time to develop and deploy. No small part of that is because of what these systems are intended to do, which is to directly or indirectly destroy an opponent's equipment, infrastructure, and people, and prevent their weaponry from doing the same to you.&lt;br /&gt;&lt;br /&gt;This is something you &lt;span style="font-style: italic;"&gt;want to get right&lt;/span&gt;, and so a great deal of care is warranted.&lt;br /&gt;&lt;br /&gt;There are perils endemic to a long, drawn-out, (justifiably) risk-averse development process. Such as working with and deploying old technology, requirements creep, bureaucracy, hierarchies of reviews and sign-offs, and expending lots of effort on a multitude of specification and management tasks and documents, far too few of which really have much to do with actually putting a weapon system in the field.&lt;br /&gt;&lt;br /&gt;There's a number of issues that could be gone into about this industry and its development practices, but as a software guy, I want to focus on programming, specifically the issue of the succession of defense software implementation languages.&lt;br /&gt;&lt;br /&gt;My characterization of programming language succession within the defense software industry from the early 80s to the present is that this industry lags about 10 years or so behind commercial practices. Sure, there are pockets of development that are concurrent with commercial development, but a programming language doesn't achieve widespread use--which means used on major program starts and upgrades--on DOD (Department of Defense) projects until at least ten years after its use is widespread in the commercial software industry. And the defense industry is pretty cocooned when it comes to programming language practices, i.e. for the most part developers and technical leads don't really realize just how far behind they are. (One software architect expressed shock when I told him that Perl was not considered one of the hottest technologies in software development, and the days when it was cool and leading edge to program in Perl were now many years in the past. Another co-worker was equally surprised to hear that Java is now often considered the language you &lt;span style="font-style: italic;"&gt;have&lt;/span&gt; to program in &lt;span style="font-style: italic;"&gt;for work&lt;/span&gt;.)&lt;br /&gt;&lt;br /&gt;I entered the industry just when the defense industry was trying a new approach, at that time trying to deal with a proliferation of industry and system-specific programming languages (&lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Fortran"&gt;Fortran&lt;/a&gt;, &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/JOVIAL"&gt;JOVIAL&lt;/a&gt;, &lt;a href="http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl?_key=CMS-2"&gt;CMS-2&lt;/a&gt;, and numerous assembly languages). The &lt;a href="https://secure.wikimedia.org/wikibooks/en/wiki/Ada_Programming"&gt;Ada&lt;/a&gt; programming language was the result of a language competition and it was subsequently mandated for all defense system starts and major upgrades. For a variety of reasons, mostly involving politics, organizational resistance, and greed, the initiative failed. There were a few technical flaws in the language, but it was quite capable of meeting defense software requirements at the time (and did and does so in deployed systems today), but by the time the flaws and the greed were dealt with, the window of opportunity for mainstream acceptance of Ada had passed.&lt;br /&gt;&lt;br /&gt;Commercial software development, which was starting to become the driver of computer technology innovation (rather than the military) was driving towards C and then C++ at this time, and with the Commercial Off-The-Shelf "COTS Initiative" and "best industry practices" becoming defense industry focuses, the defense industry began looking to the commercial world for its software development technologies.&lt;br /&gt;&lt;br /&gt;By the mid-90s many (but not all :-) defense programmers were becoming disdainful of Ada, and it was not uncommon to hear laments about not being able to have C++ on one's resume.&lt;br /&gt;&lt;br /&gt;I had the opportunity in the mid-90s to do a clean-sheet redesign of a poorly-designed and implemented command &amp;amp; control subsystem. It had been implemented in Ada, but the developers were skeptical of the language, and barred the use of features of the language that they didn't understand, sometimes &lt;span style="font-style: italic;"&gt;very basic&lt;/span&gt; features (like subtyping, for those of you familiar with Ada). I had no such qualms, the team now supporting the system was well-versed in Ada (with only one of the original developers remaining), and so the redesign took advantage of Ada's strengths and capabilities, rather than fearing them.&lt;br /&gt;&lt;br /&gt;My biggest obstacles were two system engineers, who were adamant that the reimplementation should be done in C++. One even went so far as to surreptitiously add a slide to my presentation the night before  a customer review stating that while we were reimplementing in Ada now, the long term plan was to move to C++. It was not, and I had to explain this in front of the customer, because it was too late to pull the slides. (Still pissed about that? Why yes, I'm soaking in it.) These two were not in my management chain, from whom I had full confidence, but they lobbied the Chief Engineer to try to get him to mandate a language change, to no avail, and to his credit.&lt;br /&gt;&lt;br /&gt;The point of this whole little rant of mine on this particular career event is what one of those "engineer's" put forth as a primary justification to use C++:&lt;br /&gt;&lt;br /&gt;"C++ is where the market is going."&lt;br /&gt;&lt;br /&gt;How silly does that sound today? Yes, there's a lot of C++ around, now mostly considered legacy stuff, and my sense is that young programmers seem to hold C++ with about the same disdain that defense programmers had for Ada in the mid-90s. The market changes, and committing large, long-lived system development to "where the market is going", as if that's where it's going to settle at for all time, is ridiculously naive and short-sighted.&lt;br /&gt;&lt;br /&gt;Java is now all the rage in the defense software development industry, and while it is probably still the most widely used programming language for commercial software development, there's definitely the sense that it has passed its prime and has begun to wane in mindshare and interest. The reasons why aren't my point, my point is that it's hot in defense, while outside of that industry Java is now "your father's programming language" from 15 years ago.&lt;br /&gt;&lt;br /&gt;There's been debate then about what "the next big programming language" is going to be. Javascript? Python? C#? Some other dark horse language (Erlang?) or some new up-and-comer?&lt;br /&gt;&lt;br /&gt;I don't know, and that's the part that bothers me about where the defense software industry is heading.&lt;br /&gt;&lt;br /&gt;The programming language that's grabbing the commercial industry now I would be expecting to be dominating defense software development in about 10 or 15 years. And, well, first off I don't perceive a dominating candidate yet, and the candidates that I do see lack an aspect I consider fundamental to safety- and mission-critical software systems.&lt;br /&gt;&lt;br /&gt;That aspect is an intentional, well thought out, unifying principle, ideally envisioned by an individual or small team of language designers.&lt;br /&gt;&lt;br /&gt;Ada was explicitly designed for safety-critical systems and was designed around a "&lt;a href="http://blog.kickin-the-darkness.com/2007/08/fundamental-theory-of-ada.html"&gt;type model&lt;/a&gt;". The original version was designed by &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Jean_Ichbiah"&gt;Jean Ichbiah&lt;/a&gt;, and the first and only &lt;span style="font-style: italic;"&gt;major &lt;/span&gt;revision of the language (Ada 95) was done by &lt;a href="http://www.simple-talk.com/opinion/geek-of-the-week/tucker-taft-geek-of-the-week/"&gt;Tucker Taft&lt;/a&gt;. (Subsequent enhancements are essentially incrementally improving its capabilities.)&lt;br /&gt;&lt;br /&gt;C is a "&lt;a href="http://blog.kickin-the-darkness.com/2007/09/fundamental-theory-of-c.html"&gt;portable assembly language&lt;/a&gt;", designed by &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/The_C_Programming_Language_%28book%29"&gt;Kernighan &amp;amp; Ritchie&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While I think C++ is inappropriate for critical software outside of the hands of experts, it was consciously designed by &lt;a href="http://www2.research.att.com/%7Ebs/"&gt;Bjarne Stroustrop&lt;/a&gt; as "&lt;a href="http://www2.research.att.com/%7Ebs/bs_faq.html#invention"&gt;C with classes&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;And I feel that the fundamental feature of &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/James_Gosling"&gt;James Gosling's&lt;/a&gt; Java is that it is designed around the "interface" concept and construct.&lt;br /&gt;&lt;br /&gt;I don't get any sense of this kind of intentional, unified, design from the currently up-and-coming languages; they exist to make string handling easier, or programming easier, or Web development easier. That's all great, but is that foundation industrial strength enough that you'd trust it to guide and target a missile moving at Mach 2 that &lt;span style="font-style: italic;"&gt;has to take out an incoming nuke&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;Like I said at the beginning, I'm concerned. Maybe I'm just being a Luddite here, and VMs and programming language refinements will meet the requirements of the warfighter by the time the defense industry moves past Java.&lt;br /&gt;&lt;br /&gt;There's just nothing jumping out at me right now, and given the iconoclasm and cocooning of defense software industry programmers, I am concerned about "where the market is going."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2804559898441765995?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2804559898441765995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2804559898441765995' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2804559898441765995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2804559898441765995'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2010/12/defensive-programming-fortran-ada-c.html' title='Defensive programming: Fortran, Ada, C++, Java, ???'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3390405193751619649</id><published>2010-11-30T11:59:00.005-06:00</published><updated>2010-11-30T12:40:28.893-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott'/><category scheme='http://www.blogger.com/atom/ns#' term='magic'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>Why Science is Better Than Magic and Movies</title><content type='html'>I don't really care for those "Making of..." and "How'd they do that?" type of shows and DVD extras. Don't get me wrong, I enjoy a good magic show and I really like movies, but I find the behind-the-scenes look always ends up detracting from my enjoyment of the original show. So I avoid them.&lt;br /&gt;&lt;br /&gt;Now I know "magic" is simply misdirection, deception, and sleight of hand; and movies are rarely shot in the sequence that they appear on the screen, and that film techniques and "tricks" are used to &lt;span style="font-style: italic;"&gt;convey &lt;/span&gt;a story in a particular way. I deeply appreciate the craft of magicians/illusionists and filmmakers that enable them to entertain me, and, sometimes, to give me new things to think about.&lt;br /&gt;&lt;br /&gt;But underneath both...it's all contrivance (excepting documentaries for the most part).&lt;br /&gt;&lt;br /&gt;I find that aspect saddening, it's not that I'd hoped that any of this was true, I know what I'm getting into, to me it's just a melancholy aspect of these constructions. So that's why I avoid seeking out any knowledge of what goes on under the surface, and simply rest in my cocoon of delusion :-)&lt;br /&gt;&lt;br /&gt;But, when it comes to science, it's a whole different story.&lt;br /&gt;&lt;br /&gt;Pick any natural phenomenon--blue sky, planetary  and electron orbits, genetic mutation, and so on--and figure out what's going on beneath the surface. You won't find any contrivances or fakery, the higher level observation and behavior is invariably a natural outcome of the underlying processes and participants consistently interacting with one another. Then analyze any of the discovered processes and participants, and you'll find the same thing--causation and consistency. As you go down the stack, analyzing, identifying, and understanding the contributors, the veracity of operation stays the same all the way down (until you hit quantum physics, but there's a whole lot of meandering you can do along your trip there :-).&lt;br /&gt;&lt;br /&gt;This is a big part of why science and the scientific process interests and excites me, and I gain a great deal of satisfaction from the act of learning about the natural world (and the universe). There's no contrivance there, it's all honest chemistry/physics/biology, and the story that is uncovered is honest, without artifice, immersive, and energizing.&lt;br /&gt;&lt;br /&gt;Even better than a good movie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3390405193751619649?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3390405193751619649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3390405193751619649' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3390405193751619649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3390405193751619649'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2010/11/why-science-is-better-than-magic-and.html' title='Why Science is Better Than Magic and Movies'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4963745953755930532</id><published>2010-07-16T08:11:00.004-05:00</published><updated>2010-07-16T08:25:05.306-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Totally Obvious'/><category scheme='http://www.blogger.com/atom/ns#' term='Roseau'/><category scheme='http://www.blogger.com/atom/ns#' term='Humans'/><title type='text'>All Your Ancestors Survived "at least long enough"</title><content type='html'>(Since Steve Yegge's back &lt;a href="http://steve-yegge.blogspot.com/2010/07/blogger-finger.html"&gt;blogging again&lt;/a&gt;, it kicked me just enough to take another crack at it :-)&lt;br /&gt;&lt;br /&gt;This is in the "ridiculously and totally obvious" department, but still quite astounding when you really think about it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Every single one&lt;/span&gt; of your ancestors lived long enough to either father a child or birth a child. Two parents, four grandparents, eight great-gandparents, sixteen..., etc. Every ancestor of yours, across the centuries and millenia parented a child.&lt;br /&gt;&lt;br /&gt;Despite famine, disease, accident, war and every other depredation throughout history that killed off humans, your and my ancestors all survived "long enough".&lt;br /&gt;&lt;br /&gt;The human race is tough.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4963745953755930532?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4963745953755930532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4963745953755930532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4963745953755930532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4963745953755930532'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2010/07/all-your-ancestors-survived-at-least.html' title='All Your Ancestors Survived &quot;at least long enough&quot;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8284443690488793443</id><published>2010-02-23T19:12:00.007-06:00</published><updated>2010-02-23T19:42:08.562-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rock'/><category scheme='http://www.blogger.com/atom/ns#' term='Snow'/><title type='text'>'bama Snows</title><content type='html'>North Alabama normally doesn't get too much snow. This one has been different, there's been the most snow I've seen since moving down here almost ten years ago.&lt;br /&gt;&lt;br /&gt;So a little over a week ago we got about 2 inches of snow in less than 2 hours. No big deal for where I grew up, but impressive here. Enjoy...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/S4R_Cnt2qYI/AAAAAAAAAG8/Bw0biS5RMZ0/s1600-h/SnowyTrail.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/S4R_Cnt2qYI/AAAAAAAAAG8/Bw0biS5RMZ0/s320/SnowyTrail.jpg" alt="" id="BLOGGER_PHOTO_ID_5441613932768176514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The trail through the woods.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/S4R_7SYOOQI/AAAAAAAAAHE/a5UHdZKVl6s/s1600-h/RockSnow2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/S4R_7SYOOQI/AAAAAAAAAHE/a5UHdZKVl6s/s320/RockSnow2.jpg" alt="" id="BLOGGER_PHOTO_ID_5441614906292844802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Rain, snow, and time have been working on this for centuries.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/S4R_7_DENWI/AAAAAAAAAHM/vxxdDGY6Qt4/s1600-h/FossilsSnow.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/S4R_7_DENWI/AAAAAAAAAHM/vxxdDGY6Qt4/s320/FossilsSnow.jpg" alt="" id="BLOGGER_PHOTO_ID_5441614918283703650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Look close, there's a couple fossilized &lt;a href="http://en.wikipedia.org/wiki/Crinoid"&gt;crinoid&lt;/a&gt; stems visible here, can you spot them?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/S4R_8tXc82I/AAAAAAAAAHc/m33QJg-DKko/s1600-h/IciclesAndCactus.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_r4IV1FbaUpc/S4R_8tXc82I/AAAAAAAAAHc/m33QJg-DKko/s320/IciclesAndCactus.jpg" alt="" id="BLOGGER_PHOTO_ID_5441614930717242210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cactus? In Alabama? With snow?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/S4R_8deeMQI/AAAAAAAAAHU/sGWK6PlVlyk/s1600-h/BehindTheIcicles.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/S4R_8deeMQI/AAAAAAAAAHU/sGWK6PlVlyk/s320/BehindTheIcicles.jpg" alt="" id="BLOGGER_PHOTO_ID_5441614926451716354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Behind the ice. Scale can be deceiving, the overhang is only about 18" above the ground. (Ignore the cactus and the hand holding it aside :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/S4SCagnHP2I/AAAAAAAAAHk/o_W-BXtAenk/s1600-h/RockStack.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/S4SCagnHP2I/AAAAAAAAAHk/o_W-BXtAenk/s320/RockStack.jpg" alt="" id="BLOGGER_PHOTO_ID_5441617641712598882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just a boulder stacked on a rock -- again with the eons of erosion.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/S4SCbI4pfDI/AAAAAAAAAHs/9cLyfeNTVyI/s1600-h/UpGully.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/S4SCbI4pfDI/AAAAAAAAAHs/9cLyfeNTVyI/s320/UpGully.jpg" alt="" id="BLOGGER_PHOTO_ID_5441617652523564082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are no permanent streams on the hill behind my home, but a lot of "wet springs" that run off into gulleys, some of which can really get roaring during a heavy rain. Here, though, just frozen in place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8284443690488793443?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8284443690488793443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8284443690488793443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8284443690488793443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8284443690488793443'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2010/02/bama-snows.html' title='&apos;bama Snows'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/S4R_Cnt2qYI/AAAAAAAAAG8/Bw0biS5RMZ0/s72-c/SnowyTrail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4853239247460797816</id><published>2009-11-12T09:39:00.009-06:00</published><updated>2009-11-12T09:58:15.275-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rice'/><category scheme='http://www.blogger.com/atom/ns#' term='Trikes'/><category scheme='http://www.blogger.com/atom/ns#' term='Motorcycles'/><title type='text'>Symmetries on a Trike</title><content type='html'>My neighbor recently bought one of these:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arkansastrikecenter.com/atc/images/Stallion-BlackCherry.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 360px; CURSOR: hand; HEIGHT: 178px" alt="" src="http://www.arkansastrikecenter.com/atc/images/Stallion-BlackCherry.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;He probably is literally the only one in the county that owns a &lt;a href="http://www.thoroughbred-motorsports.com/"&gt;Thoroughbred Stallion&lt;/a&gt;. I can only imagine the DMV person's response when he went in and said he needed to register his &lt;em&gt;thoroughbred stallion&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Then yesterday I was picking up some oil for my 4-wheeler at a local power sports dealer and saw this on the showroom floor:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rc-trucks.org/Can-Am-Spyder-Motorcycle.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 300px; CURSOR: hand; HEIGHT: 198px" alt="" src="http://www.rc-trucks.org/Can-Am-Spyder-Motorcycle.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's a &lt;a href="http://spyder.brp.com/en-US"&gt;Can Am Spyder Roadster&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ehhh, neither of these are really my thing. Though I grant they're eye catching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4853239247460797816?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4853239247460797816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4853239247460797816' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4853239247460797816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4853239247460797816'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/11/symmetries-on-trike.html' title='Symmetries on a Trike'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3918860977096782626</id><published>2009-10-17T08:57:00.002-05:00</published><updated>2009-11-12T09:59:52.150-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wavy'/><category scheme='http://www.blogger.com/atom/ns#' term='Craig Ferguson'/><category scheme='http://www.blogger.com/atom/ns#' term='Renville'/><category scheme='http://www.blogger.com/atom/ns#' term='Happy'/><title type='text'>What-a-do, everyone...</title><content type='html'>This just makes me happy:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bhPkyrHmaN4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/bhPkyrHmaN4&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&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/8919860543765866292-3918860977096782626?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3918860977096782626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3918860977096782626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3918860977096782626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3918860977096782626'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/10/what-do-everyone.html' title='What-a-do, everyone...'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2562504958026960347</id><published>2009-10-06T08:16:00.005-05:00</published><updated>2009-10-06T09:06:42.079-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Redwood'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>The Futility of Eclipse Based Development</title><content type='html'>I'm a fan of &lt;a href="http://eclipse.org/"&gt;Eclipse&lt;/a&gt; when it comes to Java programming -- I've never had a bad experience with it. I'm sure this is due in no small part to the fact that Eclipse is written in Java, and was initially targeted for Java development. &lt;a href="http://queue.acm.org/"&gt;ACM Queue&lt;/a&gt; magazine (which I highly recommend), when it still did dead tree distribution, had a regular feature called "&lt;a href="http://queue.acm.org/results.cfm?SearchableText=what%27s+on+your+hard+drive"&gt;What's On Your Hard Drive?&lt;/a&gt;" In it developer's would briefly list and comment on the development tools they loved, and those they hated. Eclipse would show up on both lists. At the time I'd used Eclipse only for Java development, and had only positive experiences, and so couldn't understand how a developer could find Eclipse so onerous as to be a tool they hated. Heh, not so mysterious any more...&lt;br /&gt;&lt;br /&gt;When it comes to utilizing an Eclipse plugin-based application for doing pretty much anything other than Java, I invariably find it monumentally frustrating and soul draining. I'm not exaggerating.&lt;br /&gt;&lt;br /&gt;I've used Eclipse-based applications for XML, XSL, modeling, diagramming, report generation, etc. Eclipse is &lt;a href="http://queue.acm.org/detail.cfm?id=1053345"&gt;ridiculously brittle&lt;/a&gt;--getting a consistent installation of all the application's required plug-ins is so problematic that Eclipse distributions are provided as &lt;a href="http://eclipse.org/downloads/"&gt;pre-built bundles&lt;/a&gt; so that you can at least have a fighting chance to just get &lt;em&gt;something&lt;/em&gt; started. Upgrading to newer versions of plug-ins is a recipe for breakage, and Eclipse is nearly impenetrable when it comes to figuring the cause and fix of any non-trivial problem that arises.&lt;br /&gt;&lt;br /&gt;Yet at exhibits you'll see these whiz bang demos of powerful, productivity-enhancing Eclipse plug-in and Rich Client Platform based applications. Makes you just want to go get them and start producing. There's so much power in that platform, and here you're seeing that power being harnessed right in front of your eyes, so &lt;em&gt;what is the problem&lt;/em&gt;??&lt;br /&gt;&lt;br /&gt;I read an article about "&lt;a href="http://unqualified-reservations.blogspot.com/2009/07/wolfram-alpha-and-hubristic-user.html"&gt;Wolfram Alpha and Hubristic User Interfaces&lt;/a&gt;" that concisely makes a point about the the "hubristic UI" of Wolfram Alpha, and that applies equally well to Eclipse:&lt;br /&gt;&lt;blockquote&gt;The actual developers (a) have enormous experience with the hubristic UI, (b) have enormous patience with its flaws, and (c) most important, know how it actually works. So their internal model can be, and typically is, orders of magnitude better than that of any naive user. So the product actually seems to work for them, and does.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I'm not interested in becoming an Eclipse developer, or a plug-in developer. I'm looking for tools to help me do my job. Occasionally I'll still get seduced by the functionality of an Eclipse plug-in and think that may be this time it will be different, and it'll just work as advertised to the point that the platform "disappears" into the background and all I'll need to concern myself with is the task I'm trying to accomplish.&lt;br /&gt;&lt;br /&gt;Still getting burned.&lt;br /&gt;&lt;br /&gt;Every time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2562504958026960347?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2562504958026960347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2562504958026960347' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2562504958026960347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2562504958026960347'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/10/futility-of-eclipse-based-development.html' title='The Futility of Eclipse Based Development'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6646949514637275097</id><published>2009-08-10T07:14:00.001-05:00</published><updated>2009-08-10T07:16:34.006-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red Lake'/><category scheme='http://www.blogger.com/atom/ns#' term='human culture'/><title type='text'>98% of Human Irrationality Explained</title><content type='html'>"Why are they doing 'X'?"&lt;br /&gt;&lt;br /&gt;"Because they think it causes 'Y'."&lt;br /&gt;&lt;br /&gt;"Does it?"&lt;br /&gt;&lt;br /&gt;"No."&lt;br /&gt;&lt;br /&gt;"Then why do they do it?"&lt;br /&gt;&lt;br /&gt;"Because they think it does."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6646949514637275097?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6646949514637275097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6646949514637275097' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6646949514637275097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6646949514637275097'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/08/98-of-human-irrationality-explained.html' title='98% of Human Irrationality Explained'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4622745060860548787</id><published>2009-06-24T14:01:00.003-05:00</published><updated>2009-06-24T14:25:16.919-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hypocrisy'/><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><category scheme='http://www.blogger.com/atom/ns#' term='Ramsey'/><title type='text'>Democratic Scandals vs Republican Scandals</title><content type='html'>I noticed some time ago that there was a distinction in the nature of the scandals American politicians tended to get caught up in that seemed to depend on their party affiliation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Generally speaking&lt;/span&gt;, Democrats have economic fairness as one of their foundational issues. There's a lot of focus on poverty, the minimum wage, unions, the "safety net", and so on.&lt;br /&gt;&lt;br /&gt;And so what's often  the nature of their scandals? Money-oriented. They take &lt;a href="http://en.wikipedia.org/wiki/Abscam#John_Murtha.27s_involvement"&gt;bribes&lt;/a&gt;, neglect to &lt;a href="http://gawker.com/5139875/our-tax+cheat-treasury-secretary"&gt;pay their own taxes&lt;/a&gt;, or don't pay the required taxes for their &lt;a href="http://abcnews.go.com/Politics/wireStory?id=6793823"&gt;hired help&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Republicans of course are the "family values" party, with the big emphasis on the moral issues. (You can see this coming, can't you... :-)&lt;br /&gt;&lt;br /&gt;Their scandals? &lt;a href="http://en.wikipedia.org/wiki/Larry_Craig#2007_arrest_and_consequences"&gt;Larry Craig&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Mark_Foley"&gt;Mark Foley&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/David_Vitter#Prostitution_scandal"&gt;David Vitter&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Ted_Haggard#Homosexual_sex_and_methamphetamine_drugs_scandal"&gt;Ted Haggard&lt;/a&gt;, and today's latest addition: conservative GOP governor and (now former) prospective presidential candidate &lt;a href="http://www.cbsnews.com/blogs/2009/06/24/politics/politicalhotsheet/entry5110133.shtml"&gt;Mark Sanford&lt;/a&gt; of South Carolina.&lt;br /&gt;&lt;br /&gt;Interesting, eh? Like I said, this is just a general observation, it's easy to find Democrats in sex scandals, and Republicans in financial ones, but there just seems to be a party-dependent bias in the nature of scandals.&lt;br /&gt;&lt;br /&gt;Those principles to which a party most strongly clings seem to also be the ones on which their weaker members seem  most likely to stumble.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4622745060860548787?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4622745060860548787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4622745060860548787' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4622745060860548787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4622745060860548787'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/06/democratic-scandals-vs-republican.html' title='Democratic Scandals vs Republican Scandals'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2630881217881335678</id><published>2009-04-23T16:25:00.006-05:00</published><updated>2009-04-27T09:32:40.662-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Skeptical Fiction'/><category scheme='http://www.blogger.com/atom/ns#' term='Bush'/><category scheme='http://www.blogger.com/atom/ns#' term='Torture'/><title type='text'>Summary Report of a Speculative Incarceration and Interrogation Experience</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Excerpt from "Enhanced Interrogation Orientation":&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"Let me start off by saying that we do not torture. We are a civilized, modern nation. I want to make that perfectly clear. We interrogate intensively and relentlessly, but we conform to all Enhanced Interrogation procedures and practices as documented in memos produced as part of the United States government's Bush administration interrogation policy. Again, we do not torture.&lt;br /&gt;&lt;br /&gt;"I understand that you claim to know little of the particular American defense program from which we are seeking information, and that you in fact claim to be merely a computer programmer on that project. Our information indicates otherwise, and I caution you that maintaining your claim of only peripheral knowledge of the information we seek will not make things easy for you.&lt;br /&gt;&lt;br /&gt;"In the interests of full disclosure of what you can expect, and with the hope that with this knowledge you will quickly realize that providing us with the necessary information will make your time here less onerous, let me provide you with an overview of our enhanced interrogation program.&lt;br /&gt;&lt;br /&gt;"You will be questioned intensely and relentlessly. You will be shackled to a chair and/or table and/or floor during these sessions. We have found that the attention of obstinate  individuals will sometimes 'drift' and therefore require a "facial slap" to restore their attention. Such slaps would not be sufficient to cause physical harm, and would occur over periods not to exceed 1 hour of every morning interrogation session, one hour of every afternoon interrogation session, one hour of every evening interrogation session, and one hour of every overnight interrogation session.&lt;br /&gt;&lt;br /&gt;"If you remain recalcitrant for more than two weeks, we will seek to more fully engage your attention. The way we will do this is by, after having suitably cushioned your neck and collarbone, 'slamming' you into a free-standing wall. This is called 'walling' and can be rather disorienting. Be aware that we do have trained medical and psychological personnel standing by to ensure that no permanent physical or mental damage will result from your interrogation.&lt;br /&gt;&lt;br /&gt;"Occasionally we may deprive you of sleep for up to 72 hours as, frankly, the desire to get some Z's has been known to encourage detainees to be more forthcoming with their information.&lt;br /&gt;&lt;br /&gt;"We have found some individuals to be especially resistant to the enhanced interrogation techniques I have described--and I do hope you're not one of them--such that we've have to 'take it up to the next level', so to speak.&lt;br /&gt;&lt;br /&gt;"If you are one of those obstinate individuals, then to encourage your cooperation you will be stripped and doused with a cold water firehose. Be aware that the force of the water is not sufficient to harm you in any significant way, however it is very uncomfortable, and you will be left to 'air dry'. You will at times be confined within a cramped, dark container box for extended periods of time. During this confinement you will not be allowed to exit, therefore we will provide you with a diaper for your excretory requirements.&lt;br /&gt;&lt;br /&gt;"I believe you are familiar with 'waterboarding'. The most obstinate detainees, with the most critically required information, will be subjected to waterboarding. I do wish to inform that you are one of those that possesses such critically required information. So you have been forewarned.&lt;br /&gt;&lt;br /&gt;"To summarize, if you continue to refuse to provide the information we require, you will at first be subjected to facial slapping to help maintain your focus on the interrogation. Continued resistance will force the intensity of your interrogation to escalate to 'walling', cold water 'hose downs', prolonged nudity and sleep deprivation and confinement, and eventual waterboarding.&lt;br /&gt;&lt;br /&gt;"These practices would then soon be occurring every hour ... of every day ... of every week ... of every month ... of every year that you are in our custody and refusing to provide the information we require.&lt;br /&gt;&lt;br /&gt;"These interrogation practices are approved at the highest level of our government, and based on the comprehensive legal analyses undertaken by the United States Department of Justice under former President George W. Bush.&lt;br /&gt;&lt;br /&gt;"They do not comprise torture.  And they are effective.&lt;br /&gt;&lt;br /&gt;"Your first interrogation session begins at 10 am tomorrow morning. Sleep well."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Excerpts from "Diplomatic Executive Summary" regarding release from custody:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"A series of diplomatic negotiations eventually resulted in the release from foreign custody and return to the United States..."&lt;br /&gt;&lt;br /&gt;"The time from initial detainment until release into US custody was 19 months, 21 days."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Excerpt from a report provided by a neighbor who unintentionally overheard a conversation between the former detainee and his brother:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"It was the second night after he'd gotten back. There had been all the 'Welcome Home' stuff going on, but it was kept kinda low-key, since that was what they had said would begin to help get him readjusted to being back home quicker.&lt;br /&gt;&lt;br /&gt;"So it was late at night, it was warm, and everyone in the house had gone to bed. It was just him and his brother out on the back deck. I was just having a fit of insomnia, and so had been seeing if I couldn't drop off on the lounger on my back porch when I heard them come out.&lt;br /&gt;&lt;br /&gt;"They each had a beer or something, and I heard the brother say, 'There's no way I can ever understand what you want through over there, no way in hell. But I want you to know, bro, that I love you, and I will do anything for you. If you need someone to talk to, or cry on the shoulder of, any time day or night, you know who to call. If you need something done, call. If you need me to be somewhere, right then, I will be there.'&lt;br /&gt;&lt;br /&gt;"He then leaned back in his chair--I heard it squeak--and said, 'Thank God at least they didn't torture you.'"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2630881217881335678?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2630881217881335678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2630881217881335678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2630881217881335678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2630881217881335678'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/04/summary-report-of-speculative.html' title='Summary Report of a Speculative Incarceration and Interrogation Experience'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8453962308059792751</id><published>2009-03-11T12:31:00.005-05:00</published><updated>2009-03-11T12:54:29.647-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Weather'/><category scheme='http://www.blogger.com/atom/ns#' term='pope'/><category scheme='http://www.blogger.com/atom/ns#' term='What a world'/><title type='text'>From Looking for a Landfill to Finding Grass-Roots Weather</title><content type='html'>On the local news yesterday there was a report of a meeting being held by concerned residents of a very small community about the possibility of a landfill being built near their homes. As I live about 8 miles from this community I took notice. They're talking about the construction of an "&lt;a href="http://www.landfill-site.com/html/inert_waste.html"&gt;inert landfill&lt;/a&gt;", meaning that all that's supposed to go into it is stuff like tree branches, cleared brush, and inert construction debris. I was very interested to see just &lt;span style="font-style: italic;"&gt;where&lt;/span&gt; this potential site was, since they mentioned it was off of a road I take to work each day. But there was no map in any of the reports from the local television news or on-line editions of the newspaper. The only specific location mentioned was that it would be adjacent to a particular subdivision.&lt;br /&gt;&lt;br /&gt;So I went to Google to try to find that subdivision. I found some real estate listings for houses for sale in it, but realtors don't like to post addresses in listings any more so I still couldn't get an actual location.&lt;br /&gt;&lt;br /&gt;One thing that Google did come up with, though, was a weather report from a weather station located in the subdivision. I thought that somewhat odd, and so followed the link...&lt;br /&gt;&lt;br /&gt;And discovered the &lt;a href="http://www.wunderground.com/"&gt;Weather Underground&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Weather Underground is a commercial weather service that, among other things, collects and distributes weather information acquired by individuals' weather stations that are members of the network. So I checked for my zip code, and boom, there's a weather station located on the same road on which I live not two miles from my house. This is just totally cool.&lt;br /&gt;&lt;br /&gt;I checked to see if there were any stations near my parent's home in Minnesota and yep, despite their living in a very small town, someone is running a Weather Underground weather station about three or four miles from their house--through which I discovered they were enjoying &lt;span style="font-style: italic;"&gt;sub-zero&lt;/span&gt; temperatures this morning (which is a significant factor in my preferring to live in North Alabama rather than anywhere in Minnesota :-).&lt;br /&gt;&lt;br /&gt;So I bookmarked my local weather station, and the one near my parents, and was just very pleased to discover that something like this exists.&lt;br /&gt;&lt;br /&gt;(As for the landfill, there's still a lot of studies to be done, and so I'll be keeping an eye on it.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8453962308059792751?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8453962308059792751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8453962308059792751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8453962308059792751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8453962308059792751'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/03/from-looking-for-landfill-to-finding.html' title='From Looking for a Landfill to Finding Grass-Roots Weather'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7850107183781144520</id><published>2009-03-09T11:05:00.006-05:00</published><updated>2009-03-09T13:03:30.884-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polk'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>The Disappointment of Religulous</title><content type='html'>I Netflixed and watched Bill Maher's &lt;a href="http://www.imdb.com/title/tt0815241/"&gt;Religuous&lt;/a&gt; over the weekend--well, watched much of it anyway.&lt;br /&gt;&lt;br /&gt;What I anticipated was a snarky skewering of religious ignorance and hypocrisy. What I got was ignorant, shallow, ham-fisted, third-rate insult "comedy".&lt;br /&gt;&lt;br /&gt;To me, the intellectual depth of mainstream American conservative evangelicalism can be aptly characterized as "kindergarten-Sunday-school-Jesus-loves-me-this-I-know-for-the-Bible-tells-me-so". Evangelicals don't want to wrestle with any questions, confront any doubts, or go anywhere beyond the shallow depths of Christianity--and always wear &lt;a href="http://www.saveonpoolsupplies.com/shopping/product.aspx?productid=SKU1711&amp;amp;e7=Y&amp;amp;e8=T5025&amp;amp;pcode=102&amp;amp;keyword=T5025"&gt;water wings&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;An incisive, respectful skewering of this shallowness might get some people thinking, and might get some to dig below the surface, deal with some real questions about their faith, and might even &lt;span style="font-style: italic;"&gt;enrich&lt;/span&gt; their lives by going through such a self-examination.&lt;br /&gt;&lt;br /&gt;Just don't count on Religulous inspiring any such introspection.&lt;br /&gt;&lt;br /&gt;Two segments in the movie pretty much sum up my annoyance and disappointment with Maher.&lt;br /&gt;&lt;br /&gt;In one he's interviewing &lt;a href="http://en.wikipedia.org/wiki/Francis_Collins_%28geneticist%29"&gt;Francis Collins&lt;/a&gt;, the highly respected geneticist who headed up the &lt;a href="http://www.ornl.gov/sci/techresources/Human_Genome/home.shtml"&gt;Human Genome Project&lt;/a&gt;, and who is also an evangelical Christian. Maher is questioning him not about evangelical hot-button issues like evolution, or faith vs science, but whether an individual named Jesus ever actually existed in history. He lists some criticisms that undermine the claim that Jesus was a historical person, and then asks Dr. Collins whether, given these criticisms he's just leveled, his belief in the physical, historical existence of Jesus rises above his threshold for scientific truth.&lt;br /&gt;&lt;br /&gt;I was a little disappointed in Collins' response, because what he should have said was, "Bill, what an ignorant question, didn't you do any preparation for this interview? Scientific research is performed using the &lt;a href="http://en.wikipedia.org/wiki/Scientific_method"&gt;scientific method&lt;/a&gt;--observe, hypothesize, experiment, refine theory, repeat--which is wholly inappropriate to the ascertainment of historical events. For historical research you use &lt;a href="http://en.wikipedia.org/wiki/Historical_method"&gt;historical methods&lt;/a&gt;, whether you're researching the existence of Jesus, Socrates, King Arthur, William the Conquerer, the Trojan War or the Battle of Hastings. Asking for &lt;span style="font-style: italic;"&gt;scientific proof&lt;/span&gt; that Jesus lived two thousand years ago is akin to my asking you for &lt;span style="font-style: italic;"&gt;scientific proof&lt;/span&gt; that you're not a tool."&lt;br /&gt;&lt;br /&gt;The second segment was Maher's interview with Vatican astronomer &lt;a href="http://en.wikipedia.org/wiki/George_Coyne"&gt;Father George V. Coyne&lt;/a&gt;. Father Coyne is well-versed in science and the scientific method, is grounded in the reality that science has illuminated for us, and knows full well--far better than your average evangelical or attack interviewer--when and where to apply the tenets of science and the tenets of faith. He even explicitly describes, and Religulous illustrates with a helpful graphic, that the Bible was written between approximately 2000 BC and 200 AD, while the practice of modern science began in the 1600s. Therefore there is &lt;span style="font-style: italic;"&gt;no science in the Bible&lt;/span&gt;. Well, this just draws Bill up completely short, he appears to have no idea on how to heap scorn on a religious believer that understands the proper roles of science and faith, and therefore finds them a solid and compatible foundation on which to live, work, and believe.&lt;br /&gt;&lt;br /&gt;Gary Thompson's&lt;a href="http://www.philly.com/dailynews/columnists/gary_thompson/Mahers_Religulous_fights_to_a_draw.html"&gt; review&lt;/a&gt; of Religulous captures my sentiment about this segment, and the disappointment with the movie, really well:&lt;br /&gt;&lt;blockquote&gt;"There is a briefly provocative exchange with a Vatican astronomer, the closest 'Religulous' comes to a fair fight. It's an inconclusive draw, and leaves the viewer wondering how much more interesting the movie might have been had Maher picked on more people his own intellectual size."&lt;/blockquote&gt;That's my problem with this movie, Maher just constantly goes for the cheap shot, the easy snicker, the splicing in a brief shot of campy footage from somewhere to illustrate some &lt;a href="http://en.wikipedia.org/wiki/Beavis_and_Butt-head"&gt;Beavis &amp;amp;Butthead&lt;/a&gt; grade "irony".&lt;br /&gt;&lt;br /&gt;I was very disappointed at the shallowness and ignorance of this movie, the only difference between it and a similar movie made by some college age jerkwad is that Maher had a bigger budget and is far snarkier and quick on the take than almost anyone else.&lt;br /&gt;&lt;br /&gt;When Maher goes after the hypocrisy and sanctimoniousness of politics and politicians I'm fine with this approach, they're all down in the mud then. But if you're going to purport to show the ridiculousness of religion, at least take on the varsity squad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7850107183781144520?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7850107183781144520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7850107183781144520' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7850107183781144520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7850107183781144520'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/03/disappointment-of-religulous.html' title='The Disappointment of Religulous'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4471051798757184084</id><published>2009-03-04T07:56:00.001-06:00</published><updated>2009-03-04T07:58:58.676-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Commuting'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipestone'/><category scheme='http://www.blogger.com/atom/ns#' term='Ad'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Who needs a personal helicopter???</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0DiAjL72FVE&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/0DiAjL72FVE&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&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/8919860543765866292-4471051798757184084?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4471051798757184084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4471051798757184084' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4471051798757184084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4471051798757184084'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/03/who-needs-personal-helicopter.html' title='Who needs a personal helicopter???'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5312010658484480344</id><published>2009-03-03T08:20:00.003-06:00</published><updated>2009-03-03T08:24:11.911-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mind trick'/><category scheme='http://www.blogger.com/atom/ns#' term='Pennington'/><category scheme='http://www.blogger.com/atom/ns#' term='eyewitness'/><title type='text'>I KNOW what I saw!</title><content type='html'>Are you &lt;a href="http://www.youtube.com/watch?v=vBPG_OBgTWg"&gt;sure&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;(I'd embed this YouTube video, but its owner isn't allowing that. Whatever.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5312010658484480344?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5312010658484480344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5312010658484480344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5312010658484480344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5312010658484480344'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/03/i-know-what-i-saw.html' title='I KNOW what I saw!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5985652372991314776</id><published>2009-03-01T09:55:00.010-06:00</published><updated>2009-03-04T07:59:53.349-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='Otter Tail'/><category scheme='http://www.blogger.com/atom/ns#' term='Forklift'/><title type='text'>Forklift FAIL</title><content type='html'>Crikey, what happened here????&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqwyQJNXWI/AAAAAAAAAEY/OiSOdn1Upy4/s1600-h/CraneFAIL.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqwyQJNXWI/AAAAAAAAAEY/OiSOdn1Upy4/s400/CraneFAIL.jpg" alt="" id="BLOGGER_PHOTO_ID_5308249488183090530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's go back and start from the beginning...&lt;br /&gt;&lt;br /&gt;Alright, here it is coming off the truck from the rental place.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/SaqwzYFX2mI/AAAAAAAAAEg/lLXfG5YvwOM/s1600-h/Ready2Go.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_r4IV1FbaUpc/SaqwzYFX2mI/AAAAAAAAAEg/lLXfG5YvwOM/s400/Ready2Go.jpg" alt="" id="BLOGGER_PHOTO_ID_5308249507494353506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Okay, got the pool all strapped up and on the hooks. So far, so good.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saqw0FTdnCI/AAAAAAAAAEo/cIzev13WdPA/s1600-h/StartingPoolMove.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saqw0FTdnCI/AAAAAAAAAEo/cIzev13WdPA/s400/StartingPoolMove.jpg" alt="" id="BLOGGER_PHOTO_ID_5308249519633046562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's start movin'!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/Saqw0dP6_LI/AAAAAAAAAEw/AaifztWDjew/s1600-h/OnItsWay.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/Saqw0dP6_LI/AAAAAAAAAEw/AaifztWDjew/s400/OnItsWay.jpg" alt="" id="BLOGGER_PHOTO_ID_5308249526060645554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Uh, is it supposed to be up on two wheels like that?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saqw05YKYPI/AAAAAAAAAE4/30d7ycdthmc/s1600-h/TwoWheelin.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saqw05YKYPI/AAAAAAAAAE4/30d7ycdthmc/s400/TwoWheelin.jpg" alt="" id="BLOGGER_PHOTO_ID_5308249533611401458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;YIKES!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saq14wqGFMI/AAAAAAAAAFA/EuRFVXZgAJA/s1600-h/Yikes.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saq14wqGFMI/AAAAAAAAAFA/EuRFVXZgAJA/s400/Yikes.jpg" alt="" id="BLOGGER_PHOTO_ID_5308255097548313794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alright, the driver's gotten out...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/Saq2dLaoQ4I/AAAAAAAAAFI/nnc5I2Xtl6o/s1600-h/Escapin.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_r4IV1FbaUpc/Saq2dLaoQ4I/AAAAAAAAAFI/nnc5I2Xtl6o/s400/Escapin.jpg" alt="" id="BLOGGER_PHOTO_ID_5308255723206493058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(N.B.: The photographer did not blithely continue snapping pictures while all this was happening. These photos were taken from the front porch of the house, which is &lt;span style="font-style: italic;"&gt;where the phone is&lt;/span&gt;, and the driver's co-workers immediately let it be known that there were no serious injuries and so no need to call 911.)&lt;br /&gt;&lt;br /&gt;Okay, so now what. Here's a reminder of the current situation:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqwyQJNXWI/AAAAAAAAAEY/OiSOdn1Upy4/s1600-h/CraneFAIL.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqwyQJNXWI/AAAAAAAAAEY/OiSOdn1Upy4/s400/CraneFAIL.jpg" alt="" id="BLOGGER_PHOTO_ID_5308249488183090530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The forklift (it's actually called a "variable reach forklift") has its boom extended and it has rolled &lt;span style="font-style: italic;"&gt;down hill&lt;/span&gt;, so it's not like the thing simply has to be rolled back up 90 degrees, it's more like 100+ degrees.&lt;br /&gt;&lt;br /&gt;So bring in the rescue rig...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq5CWa1D-I/AAAAAAAAAFQ/IrGuggcdMGE/s1600-h/RescueRig.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq5CWa1D-I/AAAAAAAAAFQ/IrGuggcdMGE/s400/RescueRig.jpg" alt="" id="BLOGGER_PHOTO_ID_5308258560838537186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Give it a go and try to pull it back up the hill...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq5b5l71yI/AAAAAAAAAFY/ejPAzks7JNI/s1600-h/AboveAttempt1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq5b5l71yI/AAAAAAAAAFY/ejPAzks7JNI/s400/AboveAttempt1.jpg" alt="" id="BLOGGER_PHOTO_ID_5308258999777089314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Okay, that's not working so well.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/Saq5cZuH-oI/AAAAAAAAAFg/PYpGHfhQGhc/s1600-h/AboveNotSoWell.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_r4IV1FbaUpc/Saq5cZuH-oI/AAAAAAAAAFg/PYpGHfhQGhc/s400/AboveNotSoWell.jpg" alt="" id="BLOGGER_PHOTO_ID_5308259008401373826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's see if we can't raise it up from below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/Saq6IxytaTI/AAAAAAAAAF4/RlryXgM9ACY/s1600-h/BelowShowingProgress.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_r4IV1FbaUpc/Saq6IxytaTI/AAAAAAAAAF4/RlryXgM9ACY/s400/BelowShowingProgress.jpg" alt="" id="BLOGGER_PHOTO_ID_5308259770777299250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Okay, getting there...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq6IexxLII/AAAAAAAAAFo/6AZnxZAXHQU/s1600-h/BelowAlmost.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq6IexxLII/AAAAAAAAAFo/6AZnxZAXHQU/s400/BelowAlmost.jpg" alt="" id="BLOGGER_PHOTO_ID_5308259765673077890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chunk!  Ahhhhh...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saq6I-MO70I/AAAAAAAAAFw/cq0NKWTEN18/s1600-h/BelowBackUpright.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/Saq6I-MO70I/AAAAAAAAAFw/cq0NKWTEN18/s400/BelowBackUpright.jpg" alt="" id="BLOGGER_PHOTO_ID_5308259774105579330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Okay, everybody check it out.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq7VB-KTDI/AAAAAAAAAGA/ZLaa_8JBr4s/s1600-h/Assessment.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq7VB-KTDI/AAAAAAAAAGA/ZLaa_8JBr4s/s400/Assessment.jpg" alt="" id="BLOGGER_PHOTO_ID_5308261080790354994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Crap, the operator cage got bent and the boom couldn't get stowed. Well, there's an easy way to fix that.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq7Vhn0ssI/AAAAAAAAAGI/eshd5oYBdd0/s1600-h/CabCageRemoved.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq7Vhn0ssI/AAAAAAAAAGI/eshd5oYBdd0/s400/CabCageRemoved.jpg" alt="" id="BLOGGER_PHOTO_ID_5308261089286599362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mission accomplished!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq7V0B3JHI/AAAAAAAAAGQ/DBT0tJBJqMg/s1600-h/MissionAccomplished.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/Saq7V0B3JHI/AAAAAAAAAGQ/DBT0tJBJqMg/s400/MissionAccomplished.jpg" alt="" id="BLOGGER_PHOTO_ID_5308261094227649650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Epilogue&lt;br /&gt;&lt;br /&gt;The forklift operator/pool contractor is fine. He slightly injured his foot, but that was it, and after a &lt;a href="http://www.drugs.com/percocet.html"&gt;Percocet&lt;/a&gt; and a good night's sleep, he was back at work the next day.&lt;br /&gt;&lt;br /&gt;The crew from &lt;a href="http://ur.com/"&gt;United Rentals&lt;/a&gt; did an excellent job righting the forklift, they took things slowly and safely, ending up taking about 2 hours to get the forklift back on its wheels. And after letting the oil and whatnot percolate back into everything, the machine started right back up and ran fine.&lt;br /&gt;&lt;br /&gt;The pool shell had actually gotten set down in one piece when the operator realized he was starting to lose it, but when he went over the straps--which can support &lt;span style="font-style: italic;"&gt;12 tons&lt;/span&gt;, pulled the shell over so bad it cracked on both sides. So we get to try this again in a couple weeks, hopefully with a somewhat better outcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5985652372991314776?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5985652372991314776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5985652372991314776' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5985652372991314776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5985652372991314776'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/03/forklift-fail.html' title='Forklift FAIL'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqwyQJNXWI/AAAAAAAAAEY/OiSOdn1Upy4/s72-c/CraneFAIL.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3835892951574912895</id><published>2009-03-01T07:40:00.003-06:00</published><updated>2009-03-01T07:43:52.906-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Olmsted'/><category scheme='http://www.blogger.com/atom/ns#' term='alabama'/><category scheme='http://www.blogger.com/atom/ns#' term='Recreation'/><category scheme='http://www.blogger.com/atom/ns#' term='Snow'/><title type='text'>Why God Invented Hot Tubs</title><content type='html'>It's snowing in North Alabama...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqQfpjwv0I/AAAAAAAAAEQ/sZAVQZvGOsg/s1600-h/HotTub-Snow.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqQfpjwv0I/AAAAAAAAAEQ/sZAVQZvGOsg/s400/HotTub-Snow.jpg" alt="" id="BLOGGER_PHOTO_ID_5308213984215744322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;30.3 degrees.  About an inch on the ground so far. This is actually the most snow we've gotten here in over five years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3835892951574912895?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3835892951574912895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3835892951574912895' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3835892951574912895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3835892951574912895'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/03/why-god-invented-hot-tubs.html' title='Why God Invented Hot Tubs'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/SaqQfpjwv0I/AAAAAAAAAEQ/sZAVQZvGOsg/s72-c/HotTub-Snow.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8922174901314451345</id><published>2009-01-30T06:56:00.004-06:00</published><updated>2009-01-30T07:30:28.776-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='selfishness'/><category scheme='http://www.blogger.com/atom/ns#' term='doubt'/><category scheme='http://www.blogger.com/atom/ns#' term='hubris'/><category scheme='http://www.blogger.com/atom/ns#' term='norman'/><title type='text'>What characteristic do you despise?</title><content type='html'>I got one of those email questionnaires that asks a bunch of questions about yourself that you fill out and then pass on (along with sending a copy back to the originator). Since it came from a friend I was going through it and came to the question, "What characteristic do you despise?".&lt;br /&gt;&lt;br /&gt;Easy, I thought, and typed in "Hypocrisy."&lt;br /&gt;&lt;br /&gt;But this one kept nagging at me, and just kept pushing its way back into my thoughts.&lt;br /&gt;&lt;br /&gt;Okay, so why does part of my brain thinks "hypocrisy" is an inadequate answer?&lt;br /&gt;&lt;br /&gt;Well, where does hypocrisy come from?&lt;br /&gt;&lt;br /&gt;Self-centeredness, the notion that the whole world revolves around one and that the most important thing to the person is satisfying their own wants and desires. And anything goes in that pursuit, including spouting high-minded ideals if they'll help you get what you want--hence hypocrisy flows from self-centeredness.&lt;br /&gt;&lt;br /&gt;But I still wasn't totally convincing myself that was what the characteristic I &lt;span style="font-style: italic;"&gt;most&lt;/span&gt; despised.&lt;br /&gt;&lt;br /&gt;I thought maybe &lt;a href="http://en.wikipedia.org/wiki/Narcissism"&gt;&lt;span style="font-style: italic;"&gt;narcissism&lt;/span&gt;&lt;/a&gt;, but that trait is more personal, being focused entirely on one's self, and so has less of the external effects of other personality defects.&lt;br /&gt;&lt;br /&gt;I finally figured it out then. &lt;a href="http://en.wikipedia.org/wiki/Hubris"&gt;Hubris&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;With self-centeredness it's still possible that you might recognize that in pursuit of your own gratification you're screwing over others, but they're just not as important as you are, so them's the breaks.&lt;br /&gt;&lt;br /&gt;Hubris, though, is different. It's self-centeredness without the potential for guilt. Because one afflicted with hubris believes that they are always right, in everything, all the time. Any idea or action of theirs is always right, because they thought of it. There's no questioning, no self-doubt. Everything they do is by definition the right thing to do.&lt;br /&gt;&lt;br /&gt;This can be highly destructive.&lt;br /&gt;&lt;br /&gt;I've known and known of business owners, religious leaders, and governors and presidents afflicted with hubris, and the result has been damage in all scales across the spectrum.&lt;br /&gt;&lt;br /&gt;Doubt is an essential component of a personality, the possibility that despite your best efforts you could still be wrong. It tempers one's actions, encourages one to plan contingencies if case  things don't work out, and keeps your attention focused on what you're doing.&lt;br /&gt;&lt;br /&gt;I'm a self-confident person, a software developer, and I've been very successful at my career over the years. Still, though, a not insignificant part of that success derives from the fact that I'm well aware that I make design and coding mistakes, and so I'm always on the watch for them. (Which led to my "&lt;a href="http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html"&gt;Confessions of a Terrible Programmer&lt;/a&gt;".)&lt;br /&gt;&lt;br /&gt;Doubt is part-and-parcel of a healthy, self-confident person, and those lacking it, those infused with hubris, can seriously harm those in their sphere of influence. That therefore is the characteristic I most despise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8922174901314451345?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8922174901314451345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8922174901314451345' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8922174901314451345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8922174901314451345'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/01/what-characteristic-do-you-despise.html' title='What characteristic do you despise?'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6781233763870654228</id><published>2009-01-27T17:07:00.005-06:00</published><updated>2009-02-02T19:36:23.798-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='nobles'/><category scheme='http://www.blogger.com/atom/ns#' term='competence'/><title type='text'>The "Any Competent Programmer" BS</title><content type='html'>An &lt;a href="http://www.embedded.com/"&gt;Embedded.com&lt;/a&gt; columnist wrote an article asking "&lt;a href="http://www.embedded.com/columns/technicalinsights/212902632"&gt;Why aren't developers interested in Ada&lt;/a&gt;", which was pretty good, but the first comment on the article kinda got me going.&lt;br /&gt;&lt;br /&gt;Scottish Martin's comments do absolutely make some good points, and I had no quibble with them.  He ends his comment, though, with one of my pet peeves: "A professional team can develop quality software whatever the chosen implementation language and toolset." (And that just set me off--though Martin's just in the wrong place at the wrong time.  :-)&lt;br /&gt;&lt;br /&gt;That statement is analogous to the "Any competent programmer can write good code in any language" trope.&lt;br /&gt;&lt;br /&gt;The advocated language could be Ada, Lisp, Haskell, or any of many others that face an uphill struggle for acceptance. The advocacy is dismissed with the claim that programming language choice just doesn't make much difference, and after all, a competent programmer can write quality software in any language.&lt;br /&gt;&lt;br /&gt;While this claim about the &lt;i&gt;ability &lt;/i&gt;to create good code may be true, it's irrelevant, and is usually thrown in the face of a developer who is advocating the use of a programming language that differs from the corporate herd selection, in order to shut them up, which it too often does. The claim, though, begs the question of how much it costs, in time and money, to develop that quality software using a chosen language and toolset. And whether a different choice could lead to quality software being developed faster and more cheaply, thereby encouraging the creation of even more quality software.&lt;br /&gt;&lt;br /&gt;I've &lt;a href="http://blog.kickin-the-darkness.com/2007/09/picking-right-tool-is-tautology.html"&gt;argued about this before&lt;/a&gt;. Programming language choice does matter, programming toolsets do matter. Programming language and development tools are where the bits hit the hardware, and if you want quality work from a developer, you need to use quality tools.&lt;br /&gt;&lt;br /&gt;Seriously, do Indy and Formula One racing mechanics get their tools at &lt;a href="http://www.walmart.com/"&gt;WalMart&lt;/a&gt; and &lt;a href="http://www.harborfreight.com/cpi/ctaf/Category.taf?f=displaysubcats&amp;amp;CategoryID=17&amp;amp;tab=1"&gt;Harbor Freight&lt;/a&gt;? Because "a professional mechanic ..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6781233763870654228?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6781233763870654228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6781233763870654228' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6781233763870654228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6781233763870654228'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/01/any-programmer-bs.html' title='The &quot;Any Competent Programmer&quot; BS'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8676780083786761563</id><published>2009-01-20T06:00:00.001-06:00</published><updated>2009-01-20T06:00:03.457-06:00</updated><title type='text'>"Here Reverend, have a seat."</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/SXOmqAZxmbI/AAAAAAAAADw/Hxva4ogObZw/s1600-h/mlkmountaintop1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 270px;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/SXOmqAZxmbI/AAAAAAAAADw/Hxva4ogObZw/s400/mlkmountaintop1.JPG" alt="" id="BLOGGER_PHOTO_ID_5292757227683289522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Like anybody, I would like to live a long life. Longevity has its place. But I'm  not concerned about that now. I just want to do God's will. And He's allowed me  to go up to the mountain. And I've looked over. And I've seen the Promised Land.  I may not get there with you. But I want you to know tonight, that we, as a  people, will get to the promised land!"&lt;span style="font-weight: 400;"&gt;&lt;span&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Martin Luth&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;er Kin&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;g, Jr.&lt;/span&gt; &lt;span style="font-family:verdana;"&gt;3 April 1968, Mason Temple     (Church of God in Christ Headquarters)&lt;/span&gt; &lt;span style="font-family:verdana;"&gt;Memphis, Tennessee&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/SXOnySNtG1I/AAAAAAAAAEA/T7-BdK4lQoM/s1600-h/officialportrait.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 294px; height: 400px;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/SXOnySNtG1I/AAAAAAAAAEA/T7-BdK4lQoM/s400/officialportrait.jpg" alt="" id="BLOGGER_PHOTO_ID_5292758469415082834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/SXOni11o4KI/AAAAAAAAAD4/swTeKgA_cOc/s1600-h/officialportrait.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: 400;"&gt;&lt;span&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;"I am the son of a black man from Kenya and a white woman from Kansas. I was raised with the help of a white grandfather who survived a Depression to serve in Patton's Army during World War II and a white grandmother who worked on a bomber assembly line at Fort Leavenworth while he was overseas. I've gone to some of the best schools in America and lived in one of the world's poorest nations. I am married to a black American who carries within her the blood of slaves and slaveowners - an inheritance we pass on to our two precious daughters. I have brothers, sisters, nieces, nephews, uncles and cousins, of every race and every hue, scattered across three continents, and for as long as I live, I will never forget that &lt;span style="font-style: italic;"&gt;in no other country on Earth is my story even possible&lt;/span&gt;."&lt;br /&gt;&lt;br /&gt;Barack Hussein Obama, II&lt;br /&gt;44th President of the United States of America&lt;span style="font-weight: 400;"&gt;&lt;span&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8676780083786761563?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8676780083786761563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8676780083786761563' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8676780083786761563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8676780083786761563'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2009/01/here-reverend-have-seat.html' title='&quot;Here Reverend, have a seat.&quot;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/SXOmqAZxmbI/AAAAAAAAADw/Hxva4ogObZw/s72-c/mlkmountaintop1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6933734924242883240</id><published>2008-12-26T11:01:00.011-06:00</published><updated>2009-01-21T08:31:34.403-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ada'/><category scheme='http://www.blogger.com/atom/ns#' term='Command and Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Nicollet'/><category scheme='http://www.blogger.com/atom/ns#' term='War Story'/><title type='text'>Coding War Story - Sometimes You Just Have to be Facing the Right Direction</title><content type='html'>Sometimes seeing something flicker out of the corner of your eye turns out to be the key to tracking down a bug.&lt;br /&gt;&lt;div id="doc-contents"&gt;&lt;br /&gt;One Monday morning I came in and saw that one of the processes in the missile command &amp;amp; control (C2) system our team was developing had crashed, throwing up an exception traceback. This system ran across several rack-mounted workstations when it was deployed. However, it also functioned just fine on a single workstation, which simplified the development tasks for the developers. It was not uncommon for me to leave it running on my workstation overnight or over the weekend so that I could just pick up again when I came in the next morning. Since the system had been idle for hours, and had been fine when I left for the weekend it was a little puzzling that it would spontaneously crash like that. The first thing that pops into mind is some kind of memory exhaustion, but when I looked at the state of the system, and where the traceback showed the crash occurring, it didn't look to be memory, nor was there any other readily apparent cause.&lt;br /&gt;&lt;br /&gt;When this system was idling, it was pretty much literally idling. I'll get into some of the details in a bit, but basically in the idle state all the threads are suspended waiting to be notified of there being something to do. And since there was no command and control activity going on on my workstation over the weekend, everything should have just stayed quietly suspended.&lt;br /&gt;&lt;br /&gt;And the other odd thing was what the traceback indicated. A subprogram had been invoked that went and retrieved some data for processing, and since there was no data for processing--the system was idle and had been for hours--it started trying to process garbage and just crashed out. And the weird thing was that there was no rational explanation for why that subprogram chain got invoked. It was called only when a specific message had come in, and there was no record in the logs of that having occurred, nor was there any reason to transmit that message when the system was idle.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.navy.mil/navydata/policy/vision/vis00/p96.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 276px;" src="http://www.navy.mil/navydata/policy/vision/vis00/p96.gif" alt="This is not what we were working on, but it kinda looks like it" border="0" /&gt;&lt;/a&gt;I tasked one of the developer to go off and see what he could track down, and some time later he came back, just as puzzled as I was about the cause.&lt;br /&gt;&lt;br /&gt;So we let it go for the time being, and other than letting the system run overnight (and the problem didn't repeat), chalked it up at the time as just one of those intermittent bugs that would hopefully manifest itself more helpfully later.&lt;br /&gt;&lt;br /&gt;Time goes by, and more development happens.&lt;br /&gt;&lt;br /&gt;One of the other developers comes to me and asks for help in finding out why the system crashed on their desktop workstation. It had been simply idling and they could find no clear reason why a particular sequence of subprograms calls had been made that led to the exception being raised that crashed it out.&lt;br /&gt;&lt;br /&gt;This was familiar, but again we could find no reason for the idle system to crash out like this.&lt;br /&gt;&lt;br /&gt;More weeks go by.&lt;br /&gt;&lt;br /&gt;This system did a lot of detailed logging of what it was doing, so a common practice amongst the developers was to "&lt;a href="http://www.techonthenet.com/unix/basic/tail.php"&gt;tail -f&lt;/a&gt;" one or more of its logs while the system was running so as to get some immediate feedback about what was going on under the hood as the developer checked out their changes.&lt;br /&gt;&lt;br /&gt;I was doing a code review or something at my desk when I noticed something flicker over on my workstation monitor. I hadn't yet written any code or done any testing that day, so everything should've been quietly idling. Looking at the monitor to see what had just happened I saw it--the exception traceback and crash had just happened, which took down the process that was running in its own window, and recorded some tracing in the logfile I happened to be tailing.&lt;br /&gt;&lt;br /&gt;This time I noticed something about the freshly logged entries, versus those that immediately preceded it: the timestamps differed by one day and a fraction of a second.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;That&lt;/i&gt; was suggestive.&lt;br /&gt;&lt;br /&gt;Now this C2 system was written in &lt;a href="http://en.wikipedia.org/wiki/Ada_programming_language"&gt;Ada&lt;/a&gt;, and I'd been working with that programming language for around 15 years by this time. So I knew the language &lt;i&gt;REALLY&lt;/i&gt; well. And also over that interval I'd gained a deep understanding of the runtime environments (RTEs) within which Ada programs executed. It's not that I explicitly set out to learn about the Ada RTE, but over years of development and debugging you just absorb information about data formats, layouts, byte boundaries, thread suspension, scheduling, resumption policies, etc.&lt;br /&gt;&lt;br /&gt;So when I saw that there had been a nearly exact 24-hour interval between the last nominal log message and the crash, the first connection I made in my mind was to the &lt;a href="http://www.blogger.com/www.calpoly.edu/%7Eias/userguides/CentralUNIX/pdf/AIX40101.PDF"&gt;Alsys Ada&lt;/a&gt; &lt;i&gt;Duration&lt;/i&gt; type. Why that type? Well, &lt;a href="http://archive.adaic.com/standards/83lrm/html/lrm-09-06.html#9.6"&gt;Duration&lt;/a&gt; is a predefined Ada type used to represent time, in the form of seconds and fractions thereof.&lt;br /&gt;&lt;br /&gt;Now for those unfamiliar with the Ada programming language, Ada is a strongly typed programming language that allow programmers to define application-specific types, both composite (records, arrays) and scalar (integer-based, float-based, character, and enumeration). And for scalar type definitions, one can specify its range and, in the case of real types, precision.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.adaic.com/standards/ada83.html"&gt;Ada 83 programming standard&lt;/a&gt; does not specify a range and precision for the Duration type, those were left to the implementor to make common-sense choices appropriate to the hardware/OS being targeted by the compiler.&lt;br /&gt;&lt;br /&gt;While I don't recall the precision specification, I do know that Alsys Ada running under &lt;a href="http://en.wikipedia.org/wiki/HP-UX"&gt;HP-UX&lt;/a&gt; predefined the Duration type to have a range of 0.0 .. 86400.0, i.e. 24 hours. And that was the only place I knew of in the Alsys Ada RTE that had a &lt;i&gt;direct association with a 24-hour time period&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;So how exactly could Duration's 24 hour type definition be related to this crash? Well, there was no clear and obvious relationship, there were no delays or anything going in the vicinity of the code where the crash sequence appeared to initiate.&lt;br /&gt;&lt;br /&gt;But, once again, there was another connection to be made.&lt;br /&gt;&lt;br /&gt;Duration is closely associated with Ada's tasking functionality, in fact they're both covered in the &lt;a href="http://archive.adaic.com/standards/83lrm/html/lrm-09.html#9"&gt;same chapter&lt;/a&gt; of the Ada Language Reference Manual. And tasking did play a significant role in this C2 system.&lt;br /&gt;&lt;br /&gt;Tasks are Ada's built-in concurrency constructs, and are conceptually rather similarly to threads. Rather then employing a separate library of functions or classes for implementing parallelism, Ada's concurrency features are built in to the language itself. Nowadays most Ada compiler implementations implement tasking on top of the native OS or VM threads, but there's no requirement that they do that. The semantics of Ada tasking specified by the standard usually don't match up &lt;i&gt;exactly&lt;/i&gt; with the thread primitives provided by an OS, so the vendor may just let the differences slide if the inconsistencies are minor or trivial. Or, a vendor (or third party) can create a tasking RTE that &lt;a href="http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gnat_ugn_unw/Choosing-between-Native-and-FSU-Threads-Libraries.html"&gt;manages all tasks completely on its own&lt;/a&gt;, with no reliance on any underlying OS thread capabilities. There are pros and cons to system-supplied versus vendor-created tasking/threading approaches, but especially with the state of compiler and threading technology in the early days of Ada, having the tasking implementation totally under the vendor's control could usually be justified in order to reliably get the right tasking behavior. And that's what Alsys Ada did.&lt;br /&gt;&lt;br /&gt;A task that is going to &lt;a href="http://archive.adaic.com/standards/83lrm/html/lrm-09-05.html#9.5"&gt;communicate with other tasks&lt;/a&gt;, including the main program, does so via "entries", which specify a name and parameters for the data that is to be exchanged. The actual language statement that receives an entry invocation is the "accept" statement. So if you had a task, like Command_Processor, that had an entry "Receive_Command", you would see this somewhere in the task:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;accept Receive_Command(Command_Buffer : Buffer_Type) do&lt;br /&gt;   -- Extract the command data to a local buffer before processing&lt;br /&gt;   &lt;i&gt;... statements ...&lt;/i&gt;&lt;br /&gt;end Receive_Command;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When the thread of control within the task hits such an accept statement, task execution is suspended and blocked. And it stays blocked until a call is made on that entry. The task will stay blocked even if the main program is ready to exit. Ada requires that until all tasks are terminated the program cannot perform a normal exit.&lt;br /&gt;&lt;br /&gt;If a task needs multiple entries so that is able to perform multiple functions (including being explicitly told to terminate), the "select" statement is used to block the task until any one of multiple entries is invoked. For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;select&lt;br /&gt;   accept Receive_Command(Command_Buffer : Buffer_Type) do&lt;br /&gt;      -- Extract the command data to a local buffer before processing&lt;br /&gt;&lt;i&gt;         ... statements ...&lt;/i&gt;&lt;br /&gt;   end Receive_Command;&lt;br /&gt;or&lt;br /&gt;   accept Shutdown_System;&lt;br /&gt;end select;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now this task is suspended and blocked waiting for either of its two entries to be called. (And note in the latter accept statement that there need be no parameters if no data is to be exchanged, and no body of statements to execute while the task rendezvous is occurring--a call to an entry defined like this is effectively simply a notification that the task can exit the select statement and resume executing at the first statement following the select.)&lt;br /&gt;&lt;br /&gt;Now while there's nothing wrong with this form of select statement usage in a task, it is a bit of an atypical usage of Ada's tasking idiom. The reason for that is that it provides no way to shut itself down when the main program is ready to exit. The task with this select statement is going to remain suspended until one of those two entries is invoked, and it wouldn't have mattered whether that second one was named Shutdown_System or "Queue_Message", to the enclosing task they're all simply entries to wait on.&lt;br /&gt;&lt;br /&gt;So the typical composition of a select statement in a task includes a "terminate" alternative:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;select&lt;br /&gt;   accept Receive_Command(Command_Buffer : Buffer_Type) do&lt;br /&gt;      -- Extract the command data to a local buffer before processing&lt;br /&gt;&lt;i&gt;         ... statements ...&lt;/i&gt;&lt;br /&gt;   end Receive_Command;&lt;br /&gt;or&lt;br /&gt;   accept Shutdown_System;&lt;br /&gt;or&lt;br /&gt;   terminate;&lt;br /&gt;end select;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://archive.adaic.com/standards/83lrm/html/lrm-09-04.html#9.4"&gt;Terminate&lt;/a&gt; is an Ada reserved word that in the context of a select statement terminates its enclosing task if the entire application is attempting to perform a normal exit. Thus there's no requirement that either of the entries be explicitly called in order to terminate the task and accomplish a program exit.&lt;br /&gt;&lt;br /&gt;There are &lt;a href="http://archive.adaic.com/standards/83lrm/html/lrm-09-07.html#9.7"&gt;two alternatives&lt;/a&gt; to the "terminate alternative" that can be employed: The delay alternative and the conditional alternative. The delay alternative, which looks like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;select&lt;br /&gt;   accept Receive_Command(Command_Buffer : Buffer_Type) do&lt;br /&gt;      -- Extract the command data to a local buffer before processing&lt;br /&gt;&lt;i&gt;         ... statements ...&lt;/i&gt;&lt;br /&gt;   end Receive_Command;&lt;br /&gt;or&lt;br /&gt;   accept Shutdown_System;&lt;br /&gt;or&lt;br /&gt;   delay Time_To_Wait;&lt;br /&gt;end select;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;causes the select statement, after the delay interval has elapsed, to stop waiting for any entry calls, unblock task execution, and continue execution after the select statement. The delay expression can either be a literal, like 2.0, or a variable of type...&lt;i&gt;Duration&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The other option is an "else clause" in the select statement, which means that if upon hitting the select statement there's no invocations pending on any of the accept alternatives that execution should go right into the sequence of statements that follow the "else".&lt;br /&gt;&lt;br /&gt;Now the thing is that any one select statement can contain only one of these three alternatives: terminate, delay, or conditional. (I'm sure there's a very good reason for this, but I've never dug into the rationale.) This means that if you have a select statement enclosed in a loop that is supposed to cycle every so often--based on the delay expression--that you need to have an explicit way to shut down the task, because you're not allowed to have a terminate alternative to do it for you. Also, if your task holds system resources that need to be explicitly closed/released, you don't want to use the terminate alternative, because that just directly shuts down the task on program exit, with no opportunity within that task to release the resources.&lt;br /&gt;&lt;br /&gt;So what what was in it in our problematic C2 system that was triggering a subprogram invocation from a task that was supposed to be blocked on a select statement?&lt;br /&gt;&lt;br /&gt;Studying the code I saw that the select statement in the task was of that first, rather atypical select/accept style, i.e. just selecting on entry accept statements, there was no delay, terminate, or conditional alternative. It was written that way because that task held resources that were best explicitly released by the task itself, hence the terminate alternative was out; there was no reason for any kind of timeout, so no delay alternative was provided; nor was there any reason for a conditional alternative.&lt;br /&gt;&lt;br /&gt;Since this was an uncommon form for a select statement, and 24-hour intervals of total inactivity are also rather unusual for a C2 software system, I decided to try something. I wrapped the select statement in a loop and added a delay alternative:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  loop&lt;br /&gt;     select&lt;br /&gt;        accept Receive_Command(Command_Buffer : Buffer_Type) do&lt;br /&gt;           -- Extract the command data to a local buffer before processing&lt;br /&gt;&lt;i&gt;            ... statements ...&lt;/i&gt;&lt;br /&gt;        end Receive_Command;&lt;br /&gt;     or&lt;br /&gt;        accept Shutdown_System;&lt;br /&gt;     &lt;b&gt;or&lt;/b&gt;&lt;b&gt;&lt;br /&gt;        delay Duration'Last - 10.0;&lt;/b&gt;&lt;br /&gt;     end select;&lt;br /&gt;  end loop;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Basically I just told the select statement to timeout after 23 hours, 59 minutes, and 50 seconds had elapsed. Once it did it would simply abort the select then loop back up and reinitiate it. Now there were two other instances of this particular select statement usage in the system, but I left them unchanged as a control.&lt;br /&gt;&lt;br /&gt;I rebuilt the system, kicked it off, waited for it to go idle, noted the time, and went off and did some other stuff for the rest of the day.&lt;br /&gt;&lt;br /&gt;Came back the next day, and waited for the 24 hours of idle time to elapse. The time approached, and I got a crash and traceback--but this time a &lt;i&gt;different&lt;/i&gt; subprogram chain had gotten invoked, which it was quick to verify had originated from one of the unmodified control select statements. I changed both of the remaining select statements to the same loop/delay composition, and started it off again.&lt;br /&gt;&lt;br /&gt;Work, go home, come back to work, blah blah... 24 hours. Nothin'. No crash, no traceback, everything just kept idling. I ran through a verification scenario and everything performed just fine.&lt;br /&gt;&lt;br /&gt;So that was it, somehow that particular "select/accept/no alternatives" sequence could not stand being suspended for 24 hours. Maybe it had something to do with the range definition of the Duration type, and maybe not, I never knew for sure, since Alsys Ada was almost an orphaned product by then, and support was pretty much negligible.&lt;br /&gt;&lt;br /&gt;We let the other co-contractors know about this issue, since it is not impossible, or even improbable, that a C2 system would sit idle for many hours, and the last thing you want in a time and place of elevated tensions is for one of your missile command &amp;amp; control systems to abruptly crash on you, when it had been running just fine for hours!&lt;br /&gt;&lt;br /&gt;Y'know, if I hadn't happened to be facing in the general direction of the monitor when that crash happened I might never have noticed it. It would've been easy for me to have an updated build ready to test, and so simply blindly terminated the current run without even noticing its state before doing so. But one little flicker of movement seen out of the corner of my eye caught my attention, and years of experience with the language and its RTE guided me right down the path to tracing it to a &lt;i&gt;vendor&lt;/i&gt; bug, and instituting a work-around before it ever came near to being deployed.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6933734924242883240?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6933734924242883240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6933734924242883240' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6933734924242883240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6933734924242883240'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/12/coding-war-story-sometimes-you-just.html' title='Coding War Story - Sometimes You Just Have to be Facing the Right Direction'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5578663200803706653</id><published>2008-12-04T07:35:00.004-06:00</published><updated>2008-12-04T07:41:04.540-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='murray'/><category scheme='http://www.blogger.com/atom/ns#' term='alabama'/><category scheme='http://www.blogger.com/atom/ns#' term='Snow'/><title type='text'>Snow in the Higher Elevations</title><content type='html'>We got a little bit of snow here in North Alabama a couple days ago.  Though it snowed around much of the area, the weather forecasters said it might amount to something only in the higher elevations.&lt;br /&gt;&lt;br /&gt;Well, I can see the higher elevations from my front porch, and they were right:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/STfdFnRCWhI/AAAAAAAAADY/-5JDpqBRcFw/s1600-h/SnowHigherElevations.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/STfdFnRCWhI/AAAAAAAAADY/-5JDpqBRcFw/s400/SnowHigherElevations.JPG" alt="" id="BLOGGER_PHOTO_ID_5275928576997349906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The elevation of that ridge is about a thousand feet above my house, so it looks to me that about the top 100-200 feet of it were high enough to hold the snow for the day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5578663200803706653?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5578663200803706653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5578663200803706653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5578663200803706653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5578663200803706653'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/12/snow-in-higher-elevations.html' title='Snow in the Higher Elevations'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r4IV1FbaUpc/STfdFnRCWhI/AAAAAAAAADY/-5JDpqBRcFw/s72-c/SnowHigherElevations.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2951149283254453221</id><published>2008-11-15T09:18:00.004-06:00</published><updated>2008-11-15T09:28:00.916-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FCYF'/><category scheme='http://www.blogger.com/atom/ns#' term='Ken Overstreet'/><category scheme='http://www.blogger.com/atom/ns#' term='mower'/><title type='text'>The Chirp Song (Lyrics)</title><content type='html'>&lt;pre&gt;When you're out in the woods&lt;br /&gt;And you've lost your way.&lt;br /&gt;And the trials and tribulations of the day&lt;br /&gt;   Catch...&lt;br /&gt;        You...&lt;br /&gt;           Un-...&lt;br /&gt;              -a-...&lt;br /&gt;                 -ware...&lt;br /&gt;You...just...&lt;br /&gt;Lift your fingers to your pits...&lt;br /&gt;Raise your elbows high...&lt;br /&gt;Open up your mouth&lt;br /&gt;   and...&lt;br /&gt;            CHIRP!&lt;br /&gt;CHIRP! your blues away...&lt;br /&gt;NIGHT...will turn to day...&lt;br /&gt;IT'S...the only way...&lt;br /&gt;So&lt;br /&gt;     CHIRP!      (&lt;span style="font-style:italic;"&gt;chirp&lt;/span&gt;)&lt;br /&gt;     CHIRP!      (&lt;span style="font-style:italic;"&gt;chirp&lt;/span&gt;)&lt;br /&gt;            CHIIIIIIRRRRRRRRPPPPP!!!!&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pardon this regression back to my youthful sing-a-longs.&lt;br /&gt;&lt;br /&gt;(Corresponding participatory movements are left to your imagination.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2951149283254453221?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2951149283254453221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2951149283254453221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2951149283254453221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2951149283254453221'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/chirp-song.html' title='The Chirp Song (Lyrics)'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2189941926533121793</id><published>2008-11-10T09:47:00.003-06:00</published><updated>2008-11-10T10:00:11.120-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gitmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Born Again'/><category scheme='http://www.blogger.com/atom/ns#' term='Torture'/><category scheme='http://www.blogger.com/atom/ns#' term='Christianity'/><title type='text'>Restoring the Integrity of America</title><content type='html'>&lt;a href="http://www.time.com/time/politics/article/0,8599,1857866,00.html"&gt;Obama Planning US Trials for Guantanamo Detainees - TIME&lt;/a&gt;: "'In reality and symbolically, the idea that we have people in legal black holes is an extremely serious black mark,' Tribe said. 'It has to be dealt with.'"&lt;br /&gt;&lt;br /&gt;Thank God.&lt;br /&gt;&lt;br /&gt;And how those individuals that professed to be born-again Christians--and I grew up as one--could defend and justify &lt;span style="font-style: italic;"&gt;torture&lt;/span&gt; and imprisonment without trial I find absolutely unfathomable.&lt;br /&gt;&lt;br /&gt;What part of Matthew 7:12...&lt;br /&gt;&lt;br /&gt;"do to others what you would have them do to you"&lt;br /&gt;&lt;br /&gt;and Matthew 5:44...&lt;br /&gt;&lt;br /&gt;"love your enemies, and pray for those who persecute you"&lt;br /&gt;&lt;br /&gt;justifies this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://time.blogs.com/photos/uncategorized/abugrahib4_gallery__470x3750_1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 470px; height: 375px;" src="http://time.blogs.com/photos/uncategorized/abugrahib4_gallery__470x3750_1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A lot of Christians are going to have some serious shit to answer for on Judgment Day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2189941926533121793?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2189941926533121793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2189941926533121793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2189941926533121793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2189941926533121793'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/restoring-integrity-of-america.html' title='Restoring the Integrity of America'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6898407010039281147</id><published>2008-11-07T15:12:00.003-06:00</published><updated>2008-11-07T15:57:11.592-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Conservatives'/><category scheme='http://www.blogger.com/atom/ns#' term='Obama'/><category scheme='http://www.blogger.com/atom/ns#' term='Morrison'/><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><category scheme='http://www.blogger.com/atom/ns#' term='GOP'/><title type='text'>Tuning out the Right Wing Noise Machine</title><content type='html'>One side effect of the Obama administration that I'm looking forward to is that I can finally stop paying any significant attention to the hard-core right wing's bloviating. &lt;a href="http://www.foxnews.com/hannityandcolmes/index.html"&gt;Hannity&lt;/a&gt;, &lt;a href="http://www.foxnews.com/oreilly/index.html"&gt;O'Reilly&lt;/a&gt;, &lt;a href="http://www.foxnews.com/"&gt;Fox News&lt;/a&gt; in general, &lt;a href="http://www.rushlimbaugh.com/home/today.guest.html"&gt;Limbaugh&lt;/a&gt;, &lt;a href="http://hughhewitt.townhall.com/blog"&gt;Hewitt&lt;/a&gt;, etc. have their agenda, and unfortunately because for the last two decades there have been politicians wielding real power in Congress and the Presidency that supported that agenda, one had to keep up with it if you wanted to oppose it. They couldn't be ignored--"know your enemy" and all that.&lt;br /&gt;&lt;br /&gt;Even with the Democratic takeover of Congress in 2006 there was still a Conservative president vetoing, and sufficient GOP Senate representation to threaten filibusters over anything that attempted to roll back the accomplished parts of the agenda. (This is why nothing got done in Congress for the last two years--classic gridlock.)&lt;br /&gt;&lt;br /&gt;Now, though, with Obama soon to take office, the gridlock breaks. While the GOP can still filibuster, that's the only weapon they've got left, and they just ain't going to be able to wield it every time they don't like something.&lt;br /&gt;&lt;br /&gt;The key point, then, is that there's no longer any political muscle left for pushing through the conservative agenda, nor to stop it from being rolled back as needed. And while Hannity/Limbaugh/Hewitt will continue blaring the tune, there's no longer anyone there to dance.&lt;br /&gt;&lt;br /&gt;And what with the GOP and conservative right manning up their &lt;a href="http://www.cnn.com/2008/POLITICS/11/07/conservatives.election/index.html"&gt;circular firing squads&lt;/a&gt;, &lt;a href="http://redstatemobile.com/node/217078"&gt;ejecting those that fail the purity test&lt;/a&gt; from the movement &lt;a href="http://www.youtube.com/watch?v=T_NMZv6Vfh8"&gt;left&lt;/a&gt; and &lt;a href="http://www.thedailybeast.com/blogs-and-stories/2008-10-14/sorry-dad-i-was-fired"&gt;right&lt;/a&gt;, the whole conservative movement is &lt;span style="font-style: italic;"&gt;becoming irrelevant&lt;/span&gt;&lt;span&gt;. This means I no longer have to pay any attention to them, because they're &lt;span style="font-style: italic;"&gt;ineffectual&lt;/span&gt;. (Fox News is even starting to &lt;a href="http://www.youtube.com/watch?v=9eSJuWgZGYo"&gt;eat&lt;/a&gt; &lt;a href="http://www.huffingtonpost.com/2008/11/03/fox-news-major-garrett-de_n_140503.html"&gt;itself&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Now here's the thing though, in my book anyway. I prefer a strong, "loyal opposition" to the party in charge. It keeps everybody sharp, and smart, and keeps things from getting too far out of hand.&lt;br /&gt;&lt;br /&gt;"Iron sharpens iron, so one man sharpens another." Proverbs 27:17&lt;br /&gt;&lt;br /&gt;The GOP needs to &lt;a href="http://www.amazon.com/Conservative-Soul-How-Lost-Back/dp/0060188774"&gt;get their act back together&lt;/a&gt;, sooner rather than later, though I'm seeing no evidence that that's going to happen for awhile.&lt;br /&gt;&lt;br /&gt;In the meantime, though, I can drop Fox News from my TV channel listings and remove the spit guards protecting my car radio, and watch and support the adults trying to get some real work done.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://graphics8.nytimes.com/images/2008/11/07/us/obama.600.11.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 600px; height: 301px;" src="http://graphics8.nytimes.com/images/2008/11/07/us/obama.600.11.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6898407010039281147?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6898407010039281147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6898407010039281147' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6898407010039281147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6898407010039281147'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/tuning-out-right-wing-noise-machine.html' title='Tuning out the Right Wing Noise Machine'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-1424170543963386225</id><published>2008-11-05T09:15:00.007-06:00</published><updated>2008-11-05T11:09:03.336-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='static typing'/><category scheme='http://www.blogger.com/atom/ns#' term='mille lacs'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamic typing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>An old, staticky guy does Python</title><content type='html'>For my entire 25+ year software development career I've used statically (and strongly to varying degrees) typed programming languages: Pascal, Modula-2, Ada, C, C++, and Java. I knew I needed to get some exposure to the current up-and-comer's--or pretty-much-already-here's--and so I decided to try Python.&lt;br /&gt;&lt;br /&gt;The experience has been enjoyable, but there have been dubious aspects to it.&lt;br /&gt;&lt;br /&gt;Definitely on the good side is the inclusion of lists, dictionaries, and tuples as first-class constructs within the language. It is an unalloyed joy to have these constructs available to the programmer as built-in, highly capable features of the language. I can't say enough good things about them. In the last few years I've become a great fan of maps/dictionaries as a &lt;a href="http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html"&gt;fundamental approach&lt;/a&gt; to solving a variety of software development issues, and Python's comprehensive support for these and related constructs simplifies so many things.&lt;br /&gt;&lt;br /&gt;List comprehensions are another valuable member of the Python toolkit. As I came up to speed with them I was reminded of Fortran's "&lt;a href="http://docs.hp.com/cgi-bin/doc3k/B3150190022.12120/15"&gt;Implied Do Loop&lt;/a&gt;" that I learned about way back in my college computer science classes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cs.kent.edu/%7Evolkert/cs23021/F08/Keypunch.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 768px; height: 512px;" src="http://www.cs.kent.edu/%7Evolkert/cs23021/F08/Keypunch.jpg" title="I actually used one of these things in college..and this was a *newer* model" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;List comprehensions are certainly a very powerful language feature for constructing kernels of concise, effective code.&lt;br /&gt;&lt;br /&gt;The personal project I chose to implement using Python was a configuration file builder for which I wanted a graphical user interface. Having a fair amount of past experience with &lt;a href="http://www.gtk.org/"&gt;GTK+&lt;/a&gt;, I decided to go with &lt;a href="http://pygtk.org/"&gt;PyGTK&lt;/a&gt;. This worked out very well. The integration of GTK with Python is extremely well-done, very flexible and easy to use. Many of the issues I had to deal with in the past regarding transferring information between the core app and the GTK API pertaining to data formatting and management just aren't there. Definite kudos to the PyGTK team. So Python and (Py)GTK is a Big Win in my book.&lt;br /&gt;&lt;br /&gt;Now although this is rather a minor feature of Python, I've found the ability to return multiple results from a function extraordinarily valuable as it eliminates the need to define and manage parameters that are used for nothing more than passing back two or more results that are produced within a method.&lt;br /&gt;&lt;br /&gt;I've done very little with the functional programming features of Python, other than lifting some quick little functions from tutorials or examples that I've needed to do some special-purpose task, like simple filtering. I know the functional programming features are very powerful, and from reading up on them I can certainly see their use, so I look forward to investigating exploiting them in the near future.&lt;br /&gt;&lt;br /&gt;Now here's the part where I've yet to see the value.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Type_system#Dynamic_typing"&gt;Dynamic typing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;AIEIEE!! Not the static vs dynamic typing argument!!&lt;br /&gt;&lt;br /&gt;I won't get into a full-blown argument, just going to point out where this keeps biting me, which causes me to question whether its value is worth the cost. (And keep in mind that I come from a hard-core strong/static typing background--Ada--so that obviously distorts my perspective :-)&lt;br /&gt;&lt;br /&gt;The benefits of dynamic typing seem to revolve around the programmer not having to worry about types, therefore compilation and link errors are reduced so one can get to executing code faster, that when there's a bug manifesting itself during run-time there's more info available for debugging, it's easier to change types to adapt to changing requirements, and you get things like late binding and duck typing.&lt;br /&gt;&lt;br /&gt;Okay, those are all true, but a) my code blows up a lot more often, and b) with no explicit type information in the code finding out why it's blowing up takes time, where with static typing the damn thing wouldn't have compiled in the first place--and therefore &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; have blowed up real good &lt;span style="font-style: italic;"&gt;at all&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Here's a method spec:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;def setupEventDefinitionsList(self, availableLogEntries,&lt;br /&gt;     availableEventDefinitions, eventLogEntries,&lt;br /&gt;     eventPrereqEvent, eventEntries, eventNames):&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Some of these parameters are dictionaries, some are lists, some are class instances. Which are which? If I change the implementation of this method such that, say, eventLogEntries, is now a dictionary, I won't know that I possibly missed making the corresponding adjustment to the argument in an invoking method until I actually execute that method. Which, if the caller is in a little-used part of the application, could be a long time coming.&lt;br /&gt;&lt;br /&gt;Similarly, if I haven't looked at this code for six months, how do I quickly refresh myself with what each of these parameters is, and is for? Maybe I was a conscientious programmer and documented each parameter, but maybe not (and comments tend to rot anyway). If in a new app I want to call this function I can't just look at the signature and tell in what form I need to provide the arguments, I have to review the code itself, either in the body of the method or in others callers, so as to &lt;span style="font-style: italic;"&gt;derive&lt;/span&gt; what type of argument is expected.&lt;br /&gt;&lt;br /&gt;Versus putting my cursor on the type indicator and right-clicking "Show declaration".&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;function Create_Source_Stream&lt;br /&gt;        (Format_Kind        : File_Format.File_Format_Kinds;&lt;br /&gt;         Filename           : String;&lt;br /&gt;         Timestamp          : Timestamps.Time_Formats;&lt;br /&gt;         Timestamp_Kind     : Timestamps.Time_Kinds;&lt;br /&gt;         Supplementary_Data : Supplementary_Generator_Info)&lt;br /&gt;   return Log_Source_Streams.Log_Source_Ref;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Maybe it's simply a matter that I'm not yet thinking "Pythonic" enough, and that with more experience in the language the benefits of dynamic typing will become more obvious to me. Maybe I've not yet immersed myself deeply enough in the language that dynamic typing reveals itself as being critical to certain software development practices. I don't know, for me the jury is still out on this aspect of Python, and so most likely for the rest of the dynamically typed languages.&lt;br /&gt;&lt;br /&gt;There's certainly enough clearly beneficial strengths to Python that I will continue to use it for various projects, as I mentioned above it's been very pleasant to use for creating my configuration file builder.&lt;br /&gt;&lt;br /&gt;For the really hard-core, more expansive projects though, I'm going to be sticking with Ada or other strongly/statically typed languages (yes, not least because I know them very well) because I find tracking down type-mismatch problems occurring during run-time that could've been trivially caught at compile time &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; tedious.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-1424170543963386225?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/1424170543963386225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=1424170543963386225' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1424170543963386225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1424170543963386225'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/old-staticky-guy-does-python.html' title='An old, staticky guy does Python'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-1422172408621933788</id><published>2008-11-03T08:22:00.003-06:00</published><updated>2008-11-05T06:46:16.751-06:00</updated><title type='text'>Whoof. &lt;snap&gt; &lt;crack&gt;</title><content type='html'>That's the sound of 62+ million Americans (and hundreds of millions of people around the world) releasing the breath they've been holding, and uncrossing fingers and toes as Barack Obama is projected to be the next President of the United States.&lt;br /&gt;&lt;br /&gt;"[I]n no other country on Earth is my story even possible."&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.chicagotribune.com/media/photo/2008-11/43200290.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 500px; height: 333px;" src="http://www.chicagotribune.com/media/photo/2008-11/43200290.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"In the unlikely story that is America, there has never been                 anything false about hope."&lt;br /&gt;&lt;br /&gt;Thank you, Barack Obama, for inspiring and leading Americans to take back their country.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/biVUZwBAc9I&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/biVUZwBAc9I&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;It's time to start.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-1422172408621933788?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/1422172408621933788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=1422172408621933788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1422172408621933788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1422172408621933788'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/whoof.html' title='Whoof. &amp;lt;snap&amp;gt; &amp;lt;crack&amp;gt;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-332065578160258142</id><published>2008-11-03T07:07:00.002-06:00</published><updated>2008-11-03T07:11:38.011-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='meeker'/><category scheme='http://www.blogger.com/atom/ns#' term='President'/><category scheme='http://www.blogger.com/atom/ns#' term='Election'/><title type='text'>Bi-polar Nation</title><content type='html'>So within 36-48 hours we'll hopefully know who the next President of the United States will be.&lt;br /&gt;&lt;br /&gt;Americans' reactions reactions will likely be split amongst:&lt;br /&gt;&lt;br /&gt;Case 1:   Huge relief/Inconceivability (with a smattering of gobsmacked)&lt;br /&gt;Case 2:  Crushing depression/Whooping&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-332065578160258142?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/332065578160258142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=332065578160258142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/332065578160258142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/332065578160258142'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/bi-polar-nation.html' title='Bi-polar Nation'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-9020142435377825419</id><published>2008-11-02T07:19:00.004-06:00</published><updated>2008-11-02T07:32:45.540-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='martin'/><category scheme='http://www.blogger.com/atom/ns#' term='Election'/><category scheme='http://www.blogger.com/atom/ns#' term='Negative Campaigning'/><title type='text'>Spewing for the sake of spewing</title><content type='html'>&lt;span style="font-style: italic;"&gt;Spewing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not me, the political campaigns.&lt;br /&gt;&lt;br /&gt;I just get this sense during the last week or so of campaign season, when all the negative advertising goes into overdrive with smears, ridiculous distortions, and bald-faced lies based on out-of-context quotes, that it's not really about convincing the remaining "undecideds" any more.&lt;br /&gt;&lt;br /&gt;Setting aside the presidential race for a moment, I'm seeing laughably over-the-top attack ads amongst the HR candidates, judicial contests (yes, in Alabama judges are &lt;span style="font-style: italic;"&gt;elected&lt;/span&gt;, which I think is stupid), and others. Many of these ads are so "out there" that they're not going to be taken seriously by (meaning, influence) anybody.&lt;br /&gt;&lt;br /&gt;So it seems to me that this is just spewing vitriol because campaigns just don't know what else to do: they're wired up, tired, angry at having to actually compete against this putz, and so just end up with this visceral need to yell, scream, and throw shit at their opponent.&lt;br /&gt;&lt;br /&gt;Maybe it makes the campaign feel good--though tantrums have a tendency to be self-reinforcing--but it just stinks to the rest of us.&lt;br /&gt;&lt;br /&gt;IMHO.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-9020142435377825419?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/9020142435377825419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=9020142435377825419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/9020142435377825419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/9020142435377825419'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/11/spewing-for-sake-of-spewing.html' title='Spewing for the sake of spewing'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2520527664308173544</id><published>2008-10-23T12:18:00.006-05:00</published><updated>2008-10-23T12:54:30.632-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Obituary'/><category scheme='http://www.blogger.com/atom/ns#' term='Marshall'/><category scheme='http://www.blogger.com/atom/ns#' term='Remembrance'/><category scheme='http://www.blogger.com/atom/ns#' term='Greatest Generation'/><title type='text'>Mr. Lindstrom Drives Off Into the Sunset</title><content type='html'>Glen Lindstrom, er... MR. Lindstrom, was  my high school driving instructor. He had kind of a quirky personality, was very forthright, and pretty much fearless -- which I expect comes in handy for high school student driving instructors. Literally the first time I drove a car, with him in the passenger seat and ready on his set of Driving Instructor Brakes (tm), he had me head out and &lt;span style="font-style: italic;"&gt;drive on the freeway&lt;/span&gt;! That was the only time I did that during the driving instruction course, everything else was driving around my home town's residential streets, with lots of parallel parking practice. When it finally came time to take my written and driving exams, he was there and was very interested in how I and the other student taking her exam at the same time did. (I got an 87 on the written and 88 driving, I believe you needed 80 to pass).&lt;br /&gt;&lt;br /&gt;In checking the obituaries in my home town newspaper on the web, I see that Mr. Lindstrom passed away.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pinecitymn.com/uploads/original/1224623319_23e2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 534px; height: 667px;" src="http://www.pinecitymn.com/uploads/original/1224623319_23e2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This photo pretty much does him justice, he looks pretty much as I remember him from 30 years ago (though I don't know when this one was actually taken).&lt;br /&gt;&lt;br /&gt;What I just learned now, though, from reading his &lt;a href="http://www.pinecitymn.com/detail/33489.html"&gt;obituary&lt;/a&gt;, was that he served in World War 2 on the battleship &lt;a href="http://www.ussalabama.com/"&gt;USS Alabama&lt;/a&gt;, which happens to a) be the name of the state in which I now reside (the "Alabama" part) and b) anchors an exhibit a few hours down the road from me in Mobile. The Alabama was quite active in the Pacific theater, and Mr. Lindstrom got his share of medals as a crewman in these campaigns.&lt;br /&gt;&lt;br /&gt;He was a good man, worked hard to make his students good drivers, and while his quirkiness sometimes resulted in students making fun of him out of earshot, he deserved a lot more respect, not just from the students, but I see now from all Americans.&lt;br /&gt;&lt;br /&gt;Thanks, Mr. Lindstrom, drive safe.&lt;br /&gt;&lt;br /&gt;P.S. I've been at fault for only one minor fender-bender,  and gotten one speeding ticket in 30 years, so you did good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2520527664308173544?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2520527664308173544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2520527664308173544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2520527664308173544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2520527664308173544'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/10/mr-lindstrom-drives-off-into-sunset.html' title='Mr. Lindstrom Drives Off Into the Sunset'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8999848219099854880</id><published>2008-09-29T09:44:00.003-05:00</published><updated>2008-09-29T09:49:33.337-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mahnomen'/><category scheme='http://www.blogger.com/atom/ns#' term='Hell'/><category scheme='http://www.blogger.com/atom/ns#' term='Antartica'/><category scheme='http://www.blogger.com/atom/ns#' term='Winter'/><title type='text'>Even Minnesota didn't get THIS bad!</title><content type='html'>&lt;object width="464" height="392"&gt;&lt;param name="movie" value="http://embed.break.com/NDg3MzM5"&gt;&lt;embed src="http://embed.break.com/NDg3MzM5" type="application/x-shockwave-flash" width="464" height="392"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://view.break.com/487339"&gt;http://view.break.com/487339&lt;/a&gt; - Watch more &lt;a href="http://www.break.com/"&gt;free videos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Laugh-a while you can, monkey boy!&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8999848219099854880?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8999848219099854880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8999848219099854880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8999848219099854880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8999848219099854880'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/09/even-minnesota-didnt-get-this-bad.html' title='Even Minnesota didn&apos;t get THIS bad!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4126156355202314340</id><published>2008-09-21T07:02:00.005-05:00</published><updated>2008-09-21T07:34:55.890-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mcleod'/><category scheme='http://www.blogger.com/atom/ns#' term='Science Fiction'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><category scheme='http://www.blogger.com/atom/ns#' term='fringe'/><title type='text'>"Fringe" and the "Off" button</title><content type='html'>I'd seen the ads and so decided to give the new Fox series "&lt;a href="http://en.wikipedia.org/wiki/Fringe_%28TV_Series%29"&gt;Fringe&lt;/a&gt;" a try. Since &lt;a href="http://www.imdb.com/name/nm0009190/"&gt;J. J. Adams&lt;/a&gt;, the originator of ABC's "&lt;a href="http://en.wikipedia.org/wiki/Lost_%28TV_series%29"&gt;Lost&lt;/a&gt;" (which I very much enjoy) was one of those behind the new series, I deemed it worth a look.&lt;br /&gt;&lt;br /&gt;I knew there was going to be some gore and violence in it--what sci-fi based thriller nowadays doesn't? I'll put up with a limited amount of gore if it's incidental to the show and there's a good storyline going on ("&lt;a href="http://en.wikipedia.org/wiki/Heroes_%28TV_series%29"&gt;Heroes&lt;/a&gt;" was kinda iffy in this regard at first, but then settled down). And I don't have a problem with violence per se so long as it's done smartly; I just watched "&lt;a href="http://www.imdb.com/title/tt0477348/"&gt;No Country for Old Men&lt;/a&gt;" last night, and even enjoyed--if that's the right word for it--the brutal "&lt;a href="http://www.imdb.com/title/tt0401792/"&gt;Sin City&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;I watched the Fringe premiere, and then the second show of the series. This second episode opens with a prostitute having just gotten impregnated with some sort of abomination, which rapidly grows within her, inflicting excruciating pain, and is then followed by her agonizing death. The next victim is another woman, picked up at a bar, drugged, and then upon awakening subjected to open brain surgery, accessed through her face, and in full conscious awareness.&lt;br /&gt;&lt;br /&gt;The episode then broke for a commercial. I stopped playback and cancelled the DVR's recording of the series.&lt;br /&gt;&lt;br /&gt;I know it's the stock-in-trade of many crime shows and thrillers, but I have very little tolerance for seeing women, even if they are fictional, being tortured in the name of TV entertainment.&lt;br /&gt;&lt;br /&gt;I don't know what rationale the producers of such shows use to defend this little plot device--"Don't be a prostitute", "Don't leave a bar to go to a warehouse with some creepy guy", or "See how monstrous this guy is, think of the catharsis you'll feel when he's caught and justice is served!"&lt;br /&gt;&lt;br /&gt;No.&lt;br /&gt;&lt;br /&gt;The acts may be fictional, and it's all just "acting", but the images are real, and stick in your brain. There's enough real brutality in the world that there's no need for me to bring high-definition, Dolby Audio, you-are-there in-closeup visuals into my home.&lt;br /&gt;&lt;br /&gt;I fiercely oppose censorship, but I do favor the "Off" button, and that's all that  Fringe and shows of its ilk are ever going to get from me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4126156355202314340?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4126156355202314340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4126156355202314340' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4126156355202314340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4126156355202314340'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/09/fringe-and-off-button.html' title='&quot;Fringe&quot; and the &quot;Off&quot; button'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-149440877080094743</id><published>2008-09-10T07:42:00.006-05:00</published><updated>2008-09-10T07:56:19.284-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='Bloat'/><category scheme='http://www.blogger.com/atom/ns#' term='Mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='Logitech'/><category scheme='http://www.blogger.com/atom/ns#' term='Lyon'/><title type='text'>The 50 Meg Mouse Driver</title><content type='html'>I use a nice wireless &lt;a href="http://reviews.cnet.com/mice/logitech-vx-nano-cordless/4505-3148_7-32554802.html"&gt;Logitech VX Nano&lt;/a&gt; mouse with my laptop. I'm very happy with it, it of course acts like a mouse, and has a couple nice extra features like "sideways scrolling" and "Document flip" (like Alt-Tab, only better).&lt;br /&gt;&lt;br /&gt;I did a Windows update this morning, and then after the reboot I got a Logitech dialog telling me there was an update available.  Well, God knows what a Windows update could impact so I figured I'd go get the updated mouse driver...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/SMfCXGbImaI/AAAAAAAAACM/fTQcF-lUf6Y/s1600-h/LVXN.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/SMfCXGbImaI/AAAAAAAAACM/fTQcF-lUf6Y/s400/LVXN.jpg" alt="" id="BLOGGER_PHOTO_ID_5244373993213434274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;...and it still had a few thousand more bytes to get.&lt;br /&gt;&lt;br /&gt;56+ Meg for a mouse driver and settings tool???&lt;br /&gt;&lt;br /&gt;It's a MOUSE! For pointing and clicking on things!&lt;br /&gt;&lt;br /&gt;So after fifteen minutes of downloading and installation (most of that being installation) there's only one step left. Altogether now: "Reboot!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-149440877080094743?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/149440877080094743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=149440877080094743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/149440877080094743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/149440877080094743'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/09/50-meg-mouse-driver.html' title='The 50 Meg Mouse Driver'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r4IV1FbaUpc/SMfCXGbImaI/AAAAAAAAACM/fTQcF-lUf6Y/s72-c/LVXN.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4658649025278429794</id><published>2008-09-09T09:37:00.004-05:00</published><updated>2008-09-09T13:09:56.918-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game Show'/><category scheme='http://www.blogger.com/atom/ns#' term='Probability'/><category scheme='http://www.blogger.com/atom/ns#' term='Lincoln'/><title type='text'>The Monty Hall Problem Explained! Clearly explained!</title><content type='html'>I finally came across a clear explanation of the "&lt;a href="http://montyhallproblem.com/"&gt;The Monty Hall Problem&lt;/a&gt;", explaining why you should always change your pick.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greatdance.com/danceblog/archives/images/letsmakeadeal.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://greatdance.com/danceblog/archives/images/letsmakeadeal.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The "Monty Hall Problem" is:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greatdance.com/danceblog/archives/images/letsmakeadeal.jpg"&gt;&lt;/a&gt;&lt;blockquote&gt;[Y]ou are given the opportunity to select one closed door of three, behind one of which there is a prize. The other two doors hide “goats” (or some other such “non–prize”), or nothing at all. Once you have made your selection, Monty Hall will open one of the remaining doors, revealing that it does &lt;i&gt;not&lt;/i&gt; contain the prize. He then asks you if you would like to switch your selection to the other unopened door, or stay with your original choice. Here is the problem: &lt;b&gt;&lt;i&gt;Does it matter if you switch?&lt;/i&gt;&lt;/b&gt;&lt;/blockquote&gt;The obvious answer is "No", since while it was originally a 1 in 3 change of picking correctly, after Monty opens one of the remaining doors the odds merely improve to 50/50, so it doesn't matter if you switch or not.&lt;br /&gt;&lt;br /&gt;The thinking that leads you to that conclusion is in fact wrong, and by switching you actually increase your odds of winning to 2 in 3. The &lt;a href="http://montyhallproblem.com/"&gt;link above&lt;/a&gt; gives a nice readable explanation of how this works, but I just want to cheat here and give you an example that I think will help you more quickly grasp how making the switch improves your odds.&lt;br /&gt;&lt;br /&gt;Suppose that instead of three doors there were a hundred, so your odds of originally picking the right door would be 1/100. So now Monty has &lt;a href="http://www.letsmakeadeal.com/carol.htm"&gt;Carol&lt;/a&gt; or Vanna or whoever open all but one of the remaining doors, leaving just two: the one you chose and one other. The chance that you originally chose the right door was 1 in a 100, but now that there's only two unseen doors do you &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; think that your odds have somehow magically improved to 50/50? It's the same principle whether you started with a hundred doors, fifty, twenty, or...three.&lt;br /&gt;&lt;br /&gt;So, are you going to switch?&lt;br /&gt;&lt;br /&gt;Deal or no deal?&lt;br /&gt;&lt;br /&gt;(Unrelated side note: Looking at &lt;a href="http://www.letsmakeadeal.com/carol.htm"&gt;Carol Merrill's bio&lt;/a&gt; I see that she was &lt;a href="http://maps.google.com/maps?q=frederic,+wi&amp;amp;ie=UTF8&amp;amp;oe=utf-8&amp;amp;client=firefox-a&amp;amp;ll=45.667086,-92.469521&amp;amp;spn=0.049904,0.110378&amp;amp;z=13&amp;amp;iwloc=addr"&gt;born about 30 miles&lt;/a&gt; from where I grew up. Small world.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4658649025278429794?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4658649025278429794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4658649025278429794' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4658649025278429794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4658649025278429794'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/09/monty-hall-problem-explained-clearly.html' title='The Monty Hall Problem Explained! Clearly explained!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2795347078336475034</id><published>2008-09-06T14:23:00.014-05:00</published><updated>2008-09-08T07:55:40.426-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Intelligent Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Le Sueur'/><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='Creationism'/><title type='text'>HOWTO: Talk to an Evolutionist Without Being Dismissed as Ignorant and Stupid</title><content type='html'>Okay, I'm actually serious here. I'm going to try not to get snarky or anything, the intent of that title is just to catch your attention. If you're an adherent of Creationism or Intelligent Design (ID), I am actually going to give you some legitimate advice on how to talk to an evolutionist in such a way that they don't immediately dismiss you as an idiot. Okay, that sounds a little provocative, and I'm sorry, but surely you're aware that one of the most common accusations by evolutionists about those who question their theories is that the questioner is &lt;i&gt;obviously&lt;/i&gt; ignorant of evolution and so they're not going to waste their time trying to carry on an intelligent conversation with such a person.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;The goal here is to get you past that objection, so that the evolutionist can't just dismiss you out-of-hand and so actually has to answer both your objections to evolutionary theory and your promotion of an alternative view of life's origins.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Evolutionists are People Too&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First off, you need to understand (and respect) who and what evolutionists &lt;i&gt;actually&lt;/i&gt; are. They're ordinary people, just like everybody else. They're husbands and wives, they live in the city, suburbs, rural areas. Some are Democrats, some are Republicans, Independents, Tories, Conservatives, Liberals, Libertarians, etc. They pay taxes, drive their kids to school, go to Little League games and tennis matches, go on vacation, hike, watch TV, mow their lawn, plant a garden, and on and on and on. They are normal, ordinary people.&lt;br /&gt;&lt;br /&gt;They are not all atheists, they are not out to destroy humanity or our morality, they are not trying to erase the distinction between humans and the rest of the animal kingdom. They are not trying to turn us into "biological machines". They are not trying to promote promiscuity, or narcissism, or selfishness, or self-absorption. They are not intellectually deficient, they are not morally deficient, they have not had their minds "clouded by Satan". They are not "coldly rational", devoid of emotion, wonder, and awe. That do not advocate any particular moral philosophy as being a natural outcome of evolution. (Though they, like everyone else, may advocate a particular moral philosophy for &lt;i&gt;other&lt;/i&gt; reasons.)&lt;br /&gt;&lt;br /&gt;Evolution proponents live, and love, and experience elation, joy, frustration, and depression. They love their family and their country.&lt;br /&gt;&lt;br /&gt;Think for a moment: If you talked a Republican or a Democrat into switching to your  preferred party, what has &lt;i&gt;really&lt;/i&gt; changed in them? They have the same personality, same history, same experience, same skills, but now just a different way of looking at how one should politically engage with our society. Likewise, if you convince an evolutionist of the validity of ID or creationism, what core aspects of their personality, skills, and experience, have actually changed? None. They're still the same person, just now with a different way of looking at our biological and cosmological history.&lt;br /&gt;&lt;br /&gt;Look, the bottom line is that an evolutionist is just like you and me, and if you respect them, acknowledge that they &lt;i&gt;rationally&lt;/i&gt; came to accept evolution as a guiding principle of the development of life as it exists today, that this made sense to them intellectually, and that it wasn't Satan who podcasted the theory directly  into their brain, then you've taken the first step on having an evolutionist respect &lt;i&gt;you&lt;/i&gt; enough to at least give you an initial hearing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;"Most of the theories have no concrete evedience [sic]. just like the evolution theory"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;The above heading is from an actual comment on a blog post. It pretty much summarizes in a nutshell why evolutionists believe creationists and IDers are ignorant and stupid. Why? Because this is an ignorant and stupid statement. It betrays a breathtaking ignorance of just science in general, without even getting into the particulars of biology or evolution.&lt;br /&gt;&lt;br /&gt;So what are we going to do about it here? Well, I'm going to give you the basics on just what a theory &lt;i&gt;really&lt;/i&gt; is, which explains why theories are taken very seriously by &lt;i&gt;all&lt;/i&gt; scientists--not just the evolutionary biologist types, and which therefore also explains why you can't dismiss evolution as "just a theory".&lt;br /&gt;&lt;br /&gt;Look, if you want to be taken seriously in your discussions with an evolutionist, you have to learn to play on &lt;i&gt;their&lt;/i&gt; turf, and understand how and why science works the way it does. You can't just stand on the sidelines and yell "You're wrong, the Bible says so!" and expect to be taken in any way seriously. Nor can you claim to be able to point out gaps, inconsistencies, and fallacies if you aren't even aware of the principles and methods (and rationales for them) that are being practiced by biologists. Doing that is the fastest way to get yourself written off as ...ignorant and stupid.&lt;br /&gt;&lt;br /&gt;So...theories:&lt;br /&gt;&lt;br /&gt;First, let's look at the difference between the way scientists use the term "scientific theory" and the way "theory" is used in casual conversation. If you've paid any attention at  all when an evolutionist defends evolution, you'll have heard them claim that there is a difference. Well, there is. It's not just wordplay or defensiveness on their part, there &lt;i&gt;is&lt;/i&gt; a difference, and not knowing it, or disbelieving their claim that there's a difference, is the quickest way to get you written off as... well... you know.&lt;br /&gt;&lt;br /&gt;There's nothing unusual about the same word being used to mean different things, even if those different meanings are similar. Take "swearing" for example, as in "swearing an oath to tell the truth". If you watch any "reality" TV shows like Survivor or Big Brother, you'll always see the players "swearing" they're telling the truth, or swearing allegiance to another player or their alliance. And you'll also see them regularly breaking these sworn promises. When that happens there's almost always some drama and hurt feelings, and maybe some game-oriented  revenge, but that's all that really comes of it. However, if you "swear an oath to tell the truth" in a court of law, and then don't--you can get yourself into REAL trouble, including prison time, because violating that oath is called perjury, and it's a criminal offense. In both cases you're "swearing" to tell the truth, but the import and ramifications differ significantly between the two contexts.&lt;br /&gt;&lt;br /&gt;Likewise, saying something is "just a theory" in casual conversation is a far cry from the rigor embodied in the term when used in the scientific context of theories for such things as gravity, relativity, or evolution. And here's why:&lt;br /&gt;&lt;br /&gt;In total opposition to our commenter's claim above that most theories have no concrete evidence, all &lt;i&gt;scientific &lt;/i&gt;theories &lt;i&gt;start&lt;/i&gt; with concrete evidence. Without evidence, without facts, measurements, and observations that have all been objectively acquired, &lt;i&gt;there is no theory&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Facts, measurements, and observations are the "what" of scientific investigation. For example, when I find a fossil up in the hills behind my house, I have these &lt;i&gt;facts&lt;/i&gt;: &lt;ul&gt;&lt;li&gt;This is a fossil&lt;/li&gt;&lt;li&gt;It was found within a layer of limestone &lt;/li&gt;&lt;li&gt;There are visible layers of rock above and below the layer in which the fossil was found&lt;/li&gt;&lt;li&gt;&lt;a title="Limestone" href="http://en.wikipedia.org/wiki/Limestone"&gt;Limestone&lt;/a&gt; is a sedimentary rock comprised mostly of calcite (calcium carbonate)&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_r4IV1FbaUpc/SMLZa9kFRXI/AAAAAAAAACE/d0t-Oy8nbUw/s1600-h/fossil1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_r4IV1FbaUpc/SMLZa9kFRXI/AAAAAAAAACE/d0t-Oy8nbUw/s400/fossil1.jpg" alt="I really found these in the hills behind my house!" id="BLOGGER_PHOTO_ID_5242991973438408050" border="0" /&gt;&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No one, creationist or evolutionist, can argue with the facts. They are simply "what is".&lt;br /&gt;&lt;br /&gt;The fundamental thing you have to understand about the definition of "theory" is that a theory is an &lt;i&gt;explanation&lt;/i&gt; of the observed facts. It is an attempt to explain how those facts came to be, what relationships exist between those facts, and how &lt;i&gt;those&lt;/i&gt; relationships came to be.&lt;br /&gt;&lt;br /&gt;Again, a theory is an &lt;i&gt;explanation&lt;/i&gt;. It is not a guess, it is not even an "educated guess", it is not some made up idea, it is an &lt;i&gt;explanation of the facts that are sitting right in front of you&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Evolutionists came up with the theory of evolution to &lt;i&gt;explain&lt;/i&gt; what biologists were seeing in present day lifeforms and in what was recorded in the fossil record.&lt;br /&gt;&lt;br /&gt;There are a couple more things that you must understand about scientific theories in order to deal with them intelligently.&lt;br /&gt;&lt;br /&gt;First, they allow one to make predictions about facts that "should" exist, but haven't been observed yet. For example, if geologists date a layer of rock in a cliff to be 50 million years old, and a lower layer of rock to be 100 million years old, their theory of sedimentary deposition would predict that dating a layer of rock anywhere between those two layers would reveal an age somewhere between the two known ones. So if they go out and date a couple more layers, and one turns out to be 60 million years old and another, lower one (but still above the 100 million year layer) is 80 million, then this provides some confirmation of their theory. They don't need to verify that there is a continuous variation from 50,000,001 years old to 99,999,999 years old in that cliff face in order to say they've got a good theory. That the theory explains the layering, and whenever a prediction that was made based on the theory is checked out always conforms to the theory's explanation, indicates that geologists can have confidence in the theory.&lt;br /&gt;&lt;br /&gt;Second, as more facts are uncovered, sometimes the associated theory can't explain them. And this means the theory, the explanation, needs to be revised to incorporate the new facts. &lt;i&gt;There's nothing sneaky about this, it's the way science is SUPPOSED to work&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;If your car doesn't start in the morning, it might be because no gas is getting to your engine. If you then notice that your gas tank reads 'E', you might call up your boss to explain that you ran out of a gas and you're going to be late to work. You go get some gas, put it in the tank, and try to start your car, and it still doesn't start. So knowing a little something about cars you check the fuel line and discover the fuel filter is clogged. Now you alter your explanation, gas was not getting to your engine not because you were out of it, but because you had a clogged filter. So (and this is the part you need to grasp about how theories change) the fact that gas was not getting to your engine was accurate, but you had to refine your explanation as to why that was (not) happening. No one thinks twice about modifying such explanations as new facts are uncovered. The explanation in this case was on the right track, it just underwent refinement as more facts were uncovered. It would be ridiculous for your boss to wholesale reject your claim that gas was not getting to the engine simply because what you initially thought was the cause turned out to not be the actual cause.&lt;br /&gt;&lt;br /&gt;So to summarize: &lt;ul&gt;&lt;li&gt;Facts are the "what"&lt;/li&gt;&lt;li&gt;Theories are "explanations"&lt;/li&gt;&lt;li&gt;Theories always start from the facts and try to explain why those facts are the way they are.&lt;/li&gt;&lt;li&gt;Theories can make predictions about as-yet-undiscovered facts that can then be checked. &lt;/li&gt;&lt;li&gt;Newly discovered facts can conflict with the current explanation, requiring the explanation--the theory--to be refined. &lt;i&gt;Repeating: This is normal&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Scientific theories&lt;/i&gt; are powerful tools for understanding how the universe works, from atoms to stars, and are the foundation of our modern technologies.&lt;/li&gt;&lt;/ul&gt; You should now no longer be ignorant about what a theory is, unlike the commenter that headlined this section.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Some Ignorant and Stupid Critiques Not to Try to Make With Evolutionists&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are some very tired, long debunked critiques that creationists/IDers keep trying to make with evolutionists that do nothing but try the patience of said evolutionists. These particular points have been long dealt with, which pretty much anyone can see for themselves if they'd do 30 minutes of research on the web--looking at resources &lt;i&gt;OTHER&lt;/i&gt; than creationist websites. You can almost hear the evolutionist rolling his/her eyes when one of these comes up. And this is a big reason as to why evolutionists regard creationists as ignorant and stupid--very few creationists bother to take the time to learn the least little thing about the scientific theory of evolution before trying to level supposedly devastating critiques against it. If it was that easy to knock evolution down, don't you think it would have long ago been relegated to a footnote in history?&lt;br /&gt;&lt;br /&gt;Instead, creationist authors and seminars bring up the same old discredited objections, which (the more patient) evolutionists once again discredit. You end up then with creationists only reinforcing other uninformed creationists' belief that evolution is a frail house of cards while Intelligent Design is a rock-solid framework of origins and biological development. And the evolutionary biologists (justifiably) write the whole lot off as ignorant and stupid.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ignorant Point #1: There are no transitional forms in the fossil record&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Okay, go to &lt;a title="wikipedia" href="http://en.wikipedia.org/wiki/Main_Page"&gt;wikipedia&lt;/a&gt;. In the search box type "List of transitional fossils". Note the page that comes up, &lt;a title="&amp;quot;List of transitional fossils&amp;quot;" href="http://en.wikipedia.org/wiki/List_of_transitional_fossils"&gt;"List of transitional fossils"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That particular list is incomplete and merely a first cut at a list. For a really irritating summary of how evolutionary theory was buttressed by the discovery of the fossil of a transitional (between fish and amphibian) creature--not just regarding evolutionary theory's predictions about its transitional form, but also how the theory guided the paleontologists as to &lt;i&gt;where in the world&lt;/i&gt; to search for the remains of such a theoretical animal--read up on the &lt;a title="tiktaalik" href="http://en.wikipedia.org/wiki/Tiktaalik"&gt;tiktaalik&lt;/a&gt;, particularly the part about its &lt;a title="discovery" href="http://en.wikipedia.org/wiki/Tiktaalik#Discovery"&gt;discovery&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you can't acknowledge, and aren't ready to deal with evidence for evolution like this, then you needn't waste your, or any evolutionist's, time. This is the kind of evidence with they use to support the theory, and denying or ignoring it just makes you look ignorant and stupid.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ignorant Point #2: There are gaps in the fossil record&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, there are.&lt;br /&gt;&lt;br /&gt;Just as there are gaps in your personal life record. Can you provide incontrovertible proof that you were ever 9 years, 2 months, 25 days, 6 hours, and 15 minutes old? Unlikely, because we don't keep a continuous video record of our existence from birth to death. Yet there are photos from your 9th birthday party, and photos from your 10th birthday party, so we have tangible records of those points in space and time, and that, combined with the theory of how time passes in this universe indicates that it is overwhelmingly like you were at one instant 9 years, 2 months, 25 days, 6 hours, and 15 minutes old.&lt;br /&gt;&lt;br /&gt;Getting a fossil to survive for millions of years on a planet that is subject to erosion, volcanic activity, and tectonic movement is no mean feat. Not to mention that the original plant or animal had to have been trapped in its fossilizing medium sufficiently gently and quickly so as not to have been almost instantly destroyed by its immediate environment.&lt;br /&gt;&lt;br /&gt;Given these limitations it's understandable that the fossil record is going to be sporadic, but "absence of evidence is not evidence of absence". And whenever a fossil is found that fits into one of the known gaps a side-effect of that is that where once there was one gap, now there are two smaller ones. So an evolutionist will tell you that all a gap represents is that a transitional form that fits into that gap has not yet been found--but you can make predictions about what's in that gap that may at some point be testable--reread about the &lt;a title="tiktaalik" href="http://en.wikipedia.org/wiki/Tiktaalik"&gt;tiktaalik&lt;/a&gt; to see how that works.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ignorant Point #3: If we're descended from monkeys, how come there's still monkeys?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See, this is where that whole "ignorant" thing really comes into play.&lt;br /&gt;&lt;br /&gt;Evolutionists &lt;i&gt;do not&lt;/i&gt; claim that humans are descended from moneys, yet creationists continue to attribute this claim to them and treat the present-day existence of monkeys as some supposedly devastating critique of evolutionary theory.&lt;br /&gt;&lt;br /&gt;Evolution does state that modern humans, &lt;i&gt;and&lt;/i&gt; modern monkey species, descended from an earlier primate species. Now this common ancestor may have somewhat resembled a modern-day monkey (hence the bit about being "descended from monkeys") but it does not correspond to any modern-day species of monkey. So, there &lt;i&gt;aren't&lt;/i&gt; any contemporaneous primate species from which we (and the monkeys) evolved. Although while evolution claims the descendants of this early primate species evolved (changed) into modern humans and monkeys, there was nothing that actually forced &lt;i&gt;all &lt;/i&gt;of its descendants to change one way or another. A line of descent could have remained faithful to the original creature, with evolution driving the changes of just the sibling descendants, thereby leaving a fair representation of that original primate still among us today. But there's no evidence that happened, so it's now just us and the monkeys.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ignorant Point #4: Evolutionary theory cannot explain the complexity of the circulatory system&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, evolutionists say, it actually &lt;a title="can" href="http://icb.oxfordjournals.org/cgi/reprint/39/2/189"&gt;can&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ignorant Point #5: The eubacterial flagellum is an irrefutable example of "irreducible complexity"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An individual being unable to conceive how some specific thing, like a bacterial flagellum, could have evolved into existence &lt;a title="doesn't make it a scientific impossibility" href="http://www.millerandlevine.com/km/evol/design2/article.html"&gt;doesn't make it happening a scientific impossibility&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ignorant point #6: Bananas were obviously intelligently designed for human consumption&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bananas are &lt;i&gt;not&lt;/i&gt; an "&lt;a title="Atheist's Nightmare" href="http://www.youtube.com/watch?v=Y4yBvvGi_2A"&gt;Atheist's Nightmare&lt;/a&gt;".  From the biology department at the University of California     &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Times New Roman;"&gt; &lt;/span&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;i&gt;&lt;span style="font-size:100%;"&gt;“When humankind first encountered this fruit thousands of years ago we were probably not impressed by the almost inedible giant wild bananas. Historic mutations, rare and accidental, produced seedless bananas through chromosome triplication. Ancient humans focused on these seedless, pollen-less mutants to generate progressively more edible crops. Eventually, edible banana flesh retained only a few vague traces of the viable seeds once carried in the ancestral wild stock. Ancient plant breeders grew edible bananas by grafting sterile mutants onto wild stems. This process was repeated for thousands of years to produce the emasculated, sterile -- and defenceless -- plantation banana that currently feeds millions of people globally.”&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Ignorant point #7: Evolution doesn't occur in a jar of peanut butter...so therefore the theory is false&lt;/span&gt;&lt;/p&gt;&lt;a title="Words fail" href="http://www.youtube.com/watch?v=FZFG5PKw504"&gt;Words fail&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;So where are you now?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Being not ignorant and not stupid is not easy. If you're unwilling to understand the evidence and the argument for evolution &lt;i&gt;on its own terms&lt;/i&gt;, then there's no point or value in your disbelieving it or trying to argue about it, because regurgitating what you heard in some ill-informed seminar or ID book that also shies away from the evidence and theory is going to fail you when you think you're criticizing evolutionary theory. It's very easy to fall into a victimization mode, where you think you're being discriminated against because you believe in God, or the Bible, or whatever.&lt;br /&gt;&lt;br /&gt;No, you simply don't know what you're talking about.&lt;br /&gt;&lt;br /&gt;So fix that first.&lt;br /&gt;&lt;br /&gt;This can be done. &lt;a title="Francis S. Collins" href="http://en.wikipedia.org/wiki/Francis_Collins_%28geneticist%29"&gt;Francis S. Collins&lt;/a&gt; is a self-professed evangelical Christian, and has authored books on &lt;a title="science and faith" href="http://www.amazon.com/Language-God-Scientist-Presents-Evidence/dp/1416542744/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1218032079&amp;amp;sr=8-1"&gt;science and faith&lt;/a&gt;. Did I mention he's also a world-famous geneticist and led the &lt;a title="Human Genome Project" href="http://www.ornl.gov/sci/techresources/Human_Genome/home.shtml"&gt;Human Genome Project&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;The problem isn't with what you believe, the problems are with what you &lt;i&gt;don't&lt;/i&gt; know, and &lt;i&gt;won't&lt;/i&gt; learn. The first problem leaves you ignorant, and the second one makes you stupid.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The ramifications of gaining an informed, intelligent understanding of evolution prior to talking to an evolutionist&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you're still with me, and think you're willing to do the work so you can take a shot at holding an informed, intelligent discussion with an evolutionist about the merits of ID versus evolution, you might find yourself in some unexpected situations, which have associated with them some pretty serious ramifications.&lt;br /&gt;&lt;br /&gt;I can tell you right up front that when you understand what a &lt;i&gt;theory&lt;/i&gt; is, how it's created, and how it gets refined as more facts are uncovered, you're going to be very impressed with the power of the concept. And you should be, since theories are the foundation for our modern technology and civilization. Whether it's cell phones, television, space travel, weather forecasting, nutrition, antibiotics, CAT scans, and so on and on, the development and advancement of our technological society all trace back to the theories--the explanations--of how things work, and therefore what might be expected when trying, and guidance on how, to make new things&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;            &lt;/div&gt; And the thing you're going to find out about sound biological theories, like evolution, is that the evidence for them is every bit as solid as the evidence for physics and chemistry theories. And not only is the evidence there, but the same careful, methodical, analysis, development, and refinement that was used to develop the theories of physics and chemistry is also used to develop and refine the theory of evolution.&lt;br /&gt;&lt;br /&gt;I can't emphasize enough what this means for you when discussing creationism or ID with an evolutionist. There's an astounding amount of evidence for evolution, the theories are sound and their development conforms in all ways with the development of the theories on which all of our technology is based. In fact, evolutionary theory is at the heart of biomedical research and development, and is a fundamental concept for the development of modern pharmaceuticals, diagnostics, treatments, prosthetics, and so on.&lt;br /&gt;&lt;br /&gt;You have to realize that you're really going to have your work cut out for you when trying to argue that evolution is an intrinsically flawed theory and that Intelligent Design provides a better explanation for the biological world as we understand it today. To put it all in a nutshell: Evolution is an explanation of observed biological and paleontological facts that accurately reflects, explains, and provides reliable information about the biological state of the earth.&lt;br /&gt;&lt;br /&gt;This can be a bit harsh at first to acknowledge, but doing so really opens one up to the wondrous variety of life on this planet, and to understand how throughout billions of years and the pressure of natural selection that we've arrived at the amazing diversity of life that we see today. I've found it, belatedly, fascinating. I never used to care for biology, but once I gained a really good understanding of how evolution brought us to this point, and what it tells us about the interconnectedness of life past and present, I'm awed by it.&lt;br /&gt;&lt;br /&gt;And I can now hold an intelligent and informed conversation with an evolutionist. Just as you can with me--just don't be ignorant and stupid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2795347078336475034?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2795347078336475034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2795347078336475034' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2795347078336475034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2795347078336475034'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/09/howto-talk-to-evolutionist-without.html' title='HOWTO: Talk to an Evolutionist Without Being Dismissed as Ignorant and Stupid'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_r4IV1FbaUpc/SMLZa9kFRXI/AAAAAAAAACE/d0t-Oy8nbUw/s72-c/fossil1.jpg' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7652131474135627887</id><published>2008-09-05T09:43:00.005-05:00</published><updated>2008-09-05T09:49:34.741-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Lake of the Woods'/><category scheme='http://www.blogger.com/atom/ns#' term='Palin'/><category scheme='http://www.blogger.com/atom/ns#' term='Entertainment'/><title type='text'>Saturday Night Live Premiere: Has this conversation already taken place?</title><content type='html'>Lorne Michaels: "Tina, hey, I was wondering..."&lt;br /&gt;&lt;br /&gt;Tina Fey: "I've already drafted the sketch."&lt;br /&gt;&lt;br /&gt;Lorne: "Thanks, Tina, see ya next week.&lt;br /&gt;&lt;br /&gt;Tina: "I'll be there."&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cache.defamer.com/assets/images/defamer/2008/08/both.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://cache.defamer.com/assets/images/defamer/2008/08/both.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7652131474135627887?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7652131474135627887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7652131474135627887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7652131474135627887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7652131474135627887'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/09/saturday-night-live-premiere-has-this.html' title='Saturday Night Live Premiere: Has this conversation already taken place?'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6713772291850509196</id><published>2008-08-26T09:00:00.006-05:00</published><updated>2008-08-26T09:24:47.250-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lake'/><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Elements'/><category scheme='http://www.blogger.com/atom/ns#' term='Art'/><title type='text'>The Elemental Kickin' the Darkness</title><content type='html'>I learned the &lt;a href="http://www.periodictable.com/Posters/Poster2.2000.low.JPG"&gt;Periodic Table of the Elements&lt;/a&gt; by the time I was in the 4th grade and could easily name any element just by looking at its symbol (of course at that time the last known element was element 103, &lt;a href="http://periodictable.com/Elements/103/index.html"&gt;Lawrencium&lt;/a&gt;/Lr, so it was easier back then :-)&lt;br /&gt;&lt;br /&gt;My fascination with that table and illustrations of it have stuck with me over the years. I came upon a site that sells the table as a &lt;a href="http://www.periodictable.com/Posters/index.html"&gt;beautifully illustrated poster&lt;/a&gt;, and also provides a "&lt;a href="http://theodoregray.com/PeriodicTable/MSP/ElementBanners"&gt;Create an Element Banner&lt;/a&gt;" feature for your choice of word, name, or phrase (if it can be spelled with elements) that you can then purchase, so I couldn't resist:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://theodoregray.com/PeriodicTable/MSP/ElementBanners"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/SLQNuCpYEII/AAAAAAAAAB8/mZG4fDvOE74/s400/KTD-Elems.jpg" alt="" id="BLOGGER_PHOTO_ID_5238827351174287490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/mcriley/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6713772291850509196?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6713772291850509196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6713772291850509196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6713772291850509196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6713772291850509196'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/08/elemental-kickin-darkness.html' title='The Elemental Kickin&apos; the Darkness'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/SLQNuCpYEII/AAAAAAAAAB8/mZG4fDvOE74/s72-c/KTD-Elems.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2678275532015061674</id><published>2008-08-25T12:57:00.002-05:00</published><updated>2008-08-25T13:02:24.859-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Election'/><category scheme='http://www.blogger.com/atom/ns#' term='Lac qui Parle'/><category scheme='http://www.blogger.com/atom/ns#' term='Vote'/><category scheme='http://www.blogger.com/atom/ns#' term='America'/><title type='text'>Are you ready to vote?</title><content type='html'>Check your registration status and find out everything you need to know to vote on Election Day.&lt;br /&gt;&lt;br /&gt;Yes, it's the Obama campaign that's providing this &lt;a href="https://www.voteforchange.com/"&gt;on-line service&lt;/a&gt;, but you can vote for anybody you want to at the polls...so long as you're registered.&lt;br /&gt;&lt;br /&gt;It's the American thing to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2678275532015061674?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2678275532015061674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2678275532015061674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2678275532015061674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2678275532015061674'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/08/are-you-ready-to-vote.html' title='Are you ready to vote?'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5866162843761537209</id><published>2008-06-10T12:14:00.003-05:00</published><updated>2008-06-10T13:11:57.512-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Obama'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>What George the Manager Taught Me About Presidential Qualifications</title><content type='html'>George was the best manager I've ever reported to, or been around, in my military-industrial complex career. He wasn't a manager in the "&lt;a href="http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439"&gt;Peopleware&lt;/a&gt;" sense, i.e. an inspirational, motivational, visionary leader for whom his department would commit to, and accomplish, great things and experience a richness of work and personal life beyond what any reasonable person has any reason to expect from a job.&lt;br /&gt;&lt;br /&gt;No, George was a manager in the old school sense, that of being an &lt;span style="font-style: italic;"&gt;effective administrator&lt;/span&gt;. He wasn't the greatest guy in the world, but the thing is that his department ran well, ran efficiently, and got things done. George knew how to organize his department, plan ahead, acquire the resources, make the deals, and such that were necessary for him and his department to carry out their assignments.&lt;br /&gt;&lt;br /&gt;He wasn't the smartest guy in the room, but he knew how to pick 'em, and those are the ones he made into his department leads. His ego didn't require stroking from the leads to reassure him that he was indeed the smartest guy around. George openly stated that his goal was to surround himself with smart people, since from such individuals success is much more likely. He certainly didn't have the technical skills or talent we did, and he knew that to presume that he somehow possessed superior technical insight was, for him, laughable.&lt;br /&gt;&lt;br /&gt;He demanded hearing only accurate statuses about our projects, and took what we said at our word, and worked to clear the path to our achieving project success. Whatever we told him needed to be done, he went and made it possible, dealing with all that noisome management and administrative political-type stuff that managers are supposed to deal with day in and day out (which is why too many managers, promoted up from doing techie work, flounder on the managerial tasks and step back into technical whenever they get the chance--it's a lot easier, and less frustrating).&lt;br /&gt;&lt;br /&gt;Working in his department was a very positive experience for me, the other leads, and most of those in the department, despite George' personality deficiencies. The fact that our actual work in the company proceeded smoothly, with little drama, with the needed resources, allowed one a sense of accomplishment about their job. Progress was actually getting made, and one got to spend their time doing what they were good at, rather than having to fight with other engineers or departments in order to get their jobs done-George cleared the paths and administered the interactions in all those areas.&lt;br /&gt;&lt;br /&gt;Seeing this first hand made it clear to me what it takes to run an organization effectively, and the skill set that it requires.&lt;br /&gt;&lt;br /&gt;In this US presidential race I see those organizing and administration skills in full display by the Obama campaign. Seeing Obama's well-organized, disciplined, and foresighted approach to campaigning deeply reverberated with my experience working for George.&lt;br /&gt;&lt;br /&gt;The ironic thing is that although I haven't seen George in over a dozen years, I think it's pretty unlikely that he would be an Obama supporter, yet it's the very practices, abilities, and competencies that he exhibited, and demonstrated the importance of, that have impressed me with Obama's demonstrated abilities to meet the demands of being the nation's Chief Executive.&lt;br /&gt;&lt;br /&gt;(And just imagine what happens when you combine that kind of executive competence with vision &lt;span style="font-style: italic;"&gt;and&lt;/span&gt; the fact that he will not infrequently actually &lt;span style="font-style: italic;"&gt;be&lt;/span&gt; the smartest guy in the room :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5866162843761537209?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5866162843761537209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5866162843761537209' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5866162843761537209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5866162843761537209'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/06/what-george-manager-taught-me-about.html' title='What George the Manager Taught Me About Presidential Qualifications'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3331211398794258856</id><published>2008-06-06T20:30:00.002-05:00</published><updated>2008-06-06T20:45:47.019-05:00</updated><title type='text'>Presidential Generational Transitions</title><content type='html'>I was born less than a year after John Kennedy was elected president.&lt;br /&gt;&lt;br /&gt;He was the first president of the 20th century to be born &lt;span style="font-style: italic;"&gt;in&lt;/span&gt; the 20th century, May 29, 1917 to be exact.&lt;br /&gt;&lt;br /&gt;He, and then all the subsequent presidents up through the elder Bush, all had the Depression and/or World War II playing a significant role in shaping their personal natures.&lt;br /&gt;&lt;br /&gt;And all these presidents were at least 35 years older than me.&lt;br /&gt;&lt;br /&gt;So it was a bit jarring at first when Bill Clinton was elected, since he was the first president in my life that was more of my parents generation, than that of my grandparents.&lt;br /&gt;&lt;br /&gt;Clinton, and George W. Bush, were shaped for good or ill by the 60s/Vietnam era.&lt;br /&gt;&lt;br /&gt;Two of the three candidates competing prior to the recently concluded primaries were also of that era, Hillary Clinton and John McCain.&lt;br /&gt;&lt;br /&gt;And now, we're looking at a possible transition to the next generation of presidents. Barack Obama is literally only 7 weeks older than me.  We were 8 when the 60s ended. I grew up as a small town kid in that time, and I have only the haziest recollections of Vietnam, hippies, and Nixon. I have no recollection of the assassinations of MLK or Robert Kennedy (although oddly enough I do recall my mom pointing at the TV and telling me the president had been shot when I was a little over 2 years old).&lt;br /&gt;&lt;br /&gt;Moving beyond that whole 60s and Vietnam era and mindset is something I have long been looking forward to, and I'm very happy to see that the first candidate of my generation to have a shot at the presidency is one who really is an embodiment of the best that we have to offer.&lt;br /&gt;&lt;br /&gt;Obama '08!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3331211398794258856?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3331211398794258856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3331211398794258856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3331211398794258856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3331211398794258856'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/06/presidential-generational-transitions.html' title='Presidential Generational Transitions'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8434372714528888157</id><published>2008-06-05T06:23:00.006-05:00</published><updated>2008-06-05T07:32:53.309-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='President'/><category scheme='http://www.blogger.com/atom/ns#' term='Primary'/><category scheme='http://www.blogger.com/atom/ns#' term='Obama'/><category scheme='http://www.blogger.com/atom/ns#' term='McCain'/><category scheme='http://www.blogger.com/atom/ns#' term='Koochiching'/><title type='text'>Americans take back America!</title><content type='html'>On the one hand it seems unbelievable.&lt;br /&gt;&lt;br /&gt;But on the other, of course it's believable, we're Americans.&lt;br /&gt;&lt;br /&gt;The presidential primary season is over, and we're left with the best candidates from each of their respective parties.&lt;br /&gt;&lt;br /&gt;Obama beats the most formidable political machine and brand name of modern times.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/SEfajLTYMbI/AAAAAAAAABk/vQBsfEEWyQY/s1600-h/ObamaInStPaul.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/SEfajLTYMbI/AAAAAAAAABk/vQBsfEEWyQY/s400/ObamaInStPaul.jpg" alt="" id="BLOGGER_PHOTO_ID_5208371791941611954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And McCain resurrects his campaign from the dead to show that you can't keep a good man down.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/SEfa9TUZyUI/AAAAAAAAABs/j6OMr1Je8hw/s1600-h/mccain.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/SEfa9TUZyUI/AAAAAAAAABs/j6OMr1Je8hw/s400/mccain.jpg" alt="" id="BLOGGER_PHOTO_ID_5208372240769993026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is the result I wanted to see when the primary season began, and I'm still a little startled to see it actually come to be.&lt;br /&gt;&lt;br /&gt;The voters of both parties, each one American through and through, decided we were sick of cut-throat politicking and fear-based campaigns, and chose the candidates who had the integrity and vision to remember, and to understand, the core principles of this country, and the hope of its people.&lt;br /&gt;&lt;br /&gt;Congratulations Barack and John.&lt;br /&gt;&lt;br /&gt;Let's make it a good clean fight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8434372714528888157?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8434372714528888157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8434372714528888157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8434372714528888157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8434372714528888157'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/06/americans-take-back-america.html' title='Americans take back America!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r4IV1FbaUpc/SEfajLTYMbI/AAAAAAAAABk/vQBsfEEWyQY/s72-c/ObamaInStPaul.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3262964782567210199</id><published>2008-05-22T10:41:00.004-05:00</published><updated>2008-05-22T10:56:08.045-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ada'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='kittson'/><category scheme='http://www.blogger.com/atom/ns#' term='JGNAT'/><title type='text'>JGNAT is coming back!</title><content type='html'>(If you're not interested in the &lt;a href="http://en.wikipedia.org/wiki/Ada_%28programming_language%29"&gt;Ada&lt;/a&gt; programming language, then this post has nothing for you  :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adacore.com/home/"&gt;AdaCore&lt;/a&gt; has announced in their latest &lt;a href="http://www.adacore.com/wp-content/uploads/2008/05/adacore_news_0508_web.pdf"&gt;newsletter&lt;/a&gt; that JGNAT, their Ada-to-Java Byte Code compiler, is being updated and will be made available in the 2nd quarter of 2008 (see the "In The Pipeline" sidebar):&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;A collection of add-on tools for interfacing between Ada and&lt;br /&gt;Java is scheduled for release during Q2 2008. They support&lt;br /&gt;mixed-language Ada/Java development, in particular:&lt;br /&gt;&lt;br /&gt;- Calling natively-compiled Ada code from Java&lt;br /&gt;- Compiling Ada to JVM bytecodes and communicating between Ada and Java directly.&lt;br /&gt;&lt;br /&gt;The toolsuite exploits the Java Native Interface (JNI) for the&lt;br /&gt;first scenario, but automates the generation of the JNI-related&lt;br /&gt;“glue code” to ease the job of the developer. &lt;span style="font-weight: bold;"&gt;An updated&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;version of AdaCore’s JGNAT product handles the second&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;scenario&lt;/span&gt;. The tools take advantage of Ada 2005’s new&lt;br /&gt;features to provide an interfacing mechanism that complies&lt;br /&gt;with the Ada standard.&lt;br /&gt;A future version of the toolsuite will support the invocation of&lt;br /&gt;Java methods from natively-compiled Ada code.&lt;br /&gt;&lt;/blockquote&gt;The original release was never updated beyond version 1.1p, which I used a fair amount. I felt it was almost, but not quite, production quality. My experience was that it worked pretty well with Java 1.2, tasking broke in 1.3, and was pretty much a non-starter for 1.4.&lt;br /&gt;&lt;br /&gt;Robert Dewar, AdaCore's president, &lt;a href="http://gcc.gnu.org/ml/gcc/2004-07/msg00312.html"&gt;commented in 2004&lt;/a&gt; that "the status of JGNAT is that we have kept the sources updated to the minimal extent that they compile, but we no longer support this product and it was never fully completed."&lt;br /&gt;&lt;br /&gt;I don't know the impetus behind restarting JGNAT support, but I'm glad to see it happening.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3262964782567210199?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3262964782567210199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3262964782567210199' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3262964782567210199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3262964782567210199'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/05/jgnat-is-coming-back.html' title='JGNAT is coming back!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2997027873937824670</id><published>2008-05-21T12:35:00.004-05:00</published><updated>2008-05-21T12:47:41.267-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='antiference'/><category scheme='http://www.blogger.com/atom/ns#' term='kandiyohi'/><category scheme='http://www.blogger.com/atom/ns#' term='New word'/><title type='text'>New Word: "Antiference"</title><content type='html'>Antiference&lt;br /&gt;&lt;br /&gt;an-tif-er-&lt;span style="font-style: italic;"&gt;uh&lt;/span&gt;ns, an-tif-r&lt;span style="font-style: italic;"&gt;uh&lt;/span&gt;ns&lt;br /&gt;- noun.&lt;br /&gt;&lt;br /&gt;1. A preference &lt;span style="font-style: italic;"&gt;against&lt;/span&gt; a choice.&lt;br /&gt;2. That which is preferred to be avoided.&lt;br /&gt;3. A &lt;a href="http://www.antiference.tv/"&gt;manufacturer&lt;/a&gt; of aerials and distribution equipment.&lt;br /&gt;&lt;br /&gt;Ex. "I don't really have a preference among these projects, but my &lt;span style="font-style: italic;"&gt;antiference&lt;/span&gt; is the one coding a CORBA app in C++.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2997027873937824670?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2997027873937824670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2997027873937824670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2997027873937824670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2997027873937824670'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/05/new-word-antiference.html' title='New Word: &quot;Antiference&quot;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8191196563561303023</id><published>2008-05-21T10:34:00.003-05:00</published><updated>2008-05-21T12:48:24.139-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Phoenix'/><category scheme='http://www.blogger.com/atom/ns#' term='Mars'/><category scheme='http://www.blogger.com/atom/ns#' term='kanabec'/><title type='text'>Phoenix Descending</title><content type='html'>The &lt;a href="http://phoenix.lpl.arizona.edu/"&gt;Phoenix&lt;/a&gt; Mars probe is scheduled to land this Sunday at 23:38:32 UTC Spacecraft time (23:53:52 UTC Earth received time).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://phoenix.lpl.arizona.edu/images/invite_lander.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://phoenix.lpl.arizona.edu/images/invite_lander.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://www.dmuller.net/phoenix/ert.php"&gt;Phoenix Mars Landing Real-Time Simulation&lt;/a&gt; to help you see what has happened, and what is going to be happening and when.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8191196563561303023?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8191196563561303023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8191196563561303023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8191196563561303023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8191196563561303023'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/05/phoenix-descending.html' title='Phoenix Descending'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7534927691451009311</id><published>2008-05-12T11:04:00.009-05:00</published><updated>2008-05-20T21:57:45.084-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cecropia'/><category scheme='http://www.blogger.com/atom/ns#' term='jackson'/><category scheme='http://www.blogger.com/atom/ns#' term='insects'/><category scheme='http://www.blogger.com/atom/ns#' term='alabama'/><category scheme='http://www.blogger.com/atom/ns#' term='luna'/><category scheme='http://www.blogger.com/atom/ns#' term='drought'/><title type='text'>The Lunas Are Back!</title><content type='html'>North Alabama has suffered through a drought the last two years, with last year's being "&lt;a href="http://www.drought.unl.edu/dm/archive/99/classify.htm"&gt;exceptional&lt;/a&gt;". Because of this the local insect populations appear to have had significantly declined. While this means less of the pesty bugs, it also means fewer sightings of the neater ones.&lt;br /&gt;&lt;br /&gt;Like I hadn't see a &lt;a href="http://en.wikipedia.org/wiki/Actias_luna"&gt;Luna moth&lt;/a&gt; here at all in the last couple years, while in prior years there were always some showing up in the spring.&lt;br /&gt;&lt;br /&gt;This year, rainwise, has been different. We're basically getting normal rainfall--though technically the drought is not yet broken--and starting to see some critters that I haven't seen for awhile. I was very happy to again see one of the Lunas:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/SCht93Eo5vI/AAAAAAAAABM/vMi8xFAKyps/s1600-h/Luna1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/SCht93Eo5vI/AAAAAAAAABM/vMi8xFAKyps/s400/Luna1.jpg" alt="" id="BLOGGER_PHOTO_ID_5199526679322093298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The big, furry &lt;strike&gt;&lt;a href="http://en.wikipedia.org/wiki/Cecropia_moth"&gt;Cecropia moths&lt;/a&gt;&lt;/strike&gt; &lt;a href="http://en.wikipedia.org/wiki/Antheraea_polyphemus"&gt;Polyphemus moths&lt;/a&gt; have managed to show up each year, despite the drought, and this year was no different:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/SChuzHEo5wI/AAAAAAAAABU/lpipblwJmD0/s1600-h/Cecropia2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/SChuzHEo5wI/AAAAAAAAABU/lpipblwJmD0/s400/Cecropia2.jpg" alt="" id="BLOGGER_PHOTO_ID_5199527594150127362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cool, eh?&lt;br /&gt;&lt;br /&gt;And I don't know what this guy is, but he's certainly pullin' in Shanghai off the shortwave...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_r4IV1FbaUpc/SChvV3Eo5xI/AAAAAAAAABc/hPhz_7UYGuU/s1600-h/AntennaDude.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_r4IV1FbaUpc/SChvV3Eo5xI/AAAAAAAAABc/hPhz_7UYGuU/s400/AntennaDude.jpg" alt="" id="BLOGGER_PHOTO_ID_5199528191150581522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Later this year we should be getting the big "rhinoceros" beetles. Stay tuned...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7534927691451009311?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7534927691451009311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7534927691451009311' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7534927691451009311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7534927691451009311'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/05/lunas-are-back.html' title='The Lunas Are Back!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_r4IV1FbaUpc/SCht93Eo5vI/AAAAAAAAABM/vMi8xFAKyps/s72-c/Luna1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5622520806205831966</id><published>2008-05-08T07:05:00.003-05:00</published><updated>2008-05-08T07:11:50.623-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Binary Search'/><category scheme='http://www.blogger.com/atom/ns#' term='Itasca'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorithms'/><title type='text'>Binary Search -- Mmmm, tasty!</title><content type='html'>I stumbled across Tim Bray's article on &lt;a href="http://www.tbray.org/ongoing/When/200x/2003/03/22/Binary"&gt;binary search&lt;/a&gt;, and simply felt compelled to pass it along.&lt;br /&gt;&lt;br /&gt;It's well-written, concise, and even if as a software developer you've got binary search down pat, it's still a pleasure to read a well-written explanatory article about something so fundamental to our craft.&lt;br /&gt;&lt;br /&gt;So if you need a little refresher on the details of binary search, and why it's so gosh darn useful, or you need to roll your own because you need to make some small variations to the basic algorithm (which was my situation and why I went looking for some articles on this subject), give it a read.&lt;br /&gt;&lt;br /&gt;Good technical writing stands the test of time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5622520806205831966?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5622520806205831966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5622520806205831966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5622520806205831966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5622520806205831966'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/05/binary-search-mmmm-tasty.html' title='Binary Search -- Mmmm, tasty!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5137167861348201476</id><published>2008-05-06T07:21:00.004-05:00</published><updated>2008-05-06T07:43:46.323-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Space Exploration'/><category scheme='http://www.blogger.com/atom/ns#' term='isanti'/><category scheme='http://www.blogger.com/atom/ns#' term='moon'/><category scheme='http://www.blogger.com/atom/ns#' term='extra-solar planets'/><title type='text'>Send Your Loved Ones Into Space -- And You Too!</title><content type='html'>A couple of upcoming missions have announced that the public can submit their names, which will then be attached to the spacecraft that is launched into space. I've done this with a couple previous space missions, and it's a cute thing, you can even get a certificate :-)&lt;br /&gt;&lt;br /&gt;The two missions that I just became aware of that are doing this are:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lunar.gsfc.nasa.gov/"&gt;Lunar Reconnaissance Orbiter&lt;/a&gt; - whose purpose is to "to [find] safe landing sites, locate potential resources, characterize the radiation environment, and demonstrate new technology." &lt;a href="http://lro.jhuapl.edu/NameToMoon/index.php"&gt;Send your name&lt;/a&gt; (and those of your family and friends) to the moon!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lunar.gsfc.nasa.gov/images/banner00.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://lunar.gsfc.nasa.gov/images/banner00.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kepler.nasa.gov/"&gt;Kepler Mission&lt;/a&gt; - "specifically designed to survey our region of the Milky Way galaxy to detect and characterize hundreds of Earth-size and smaller planets in or near the habitable zone." &lt;a href="http://www.seti.org/kepler/names"&gt;Submit your name&lt;/a&gt; (and a brief message if you want) to be carried along on the spacecraft that may be the first to detect a possibly habitable extra-solar planet.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://kepler.nasa.gov/images/HomeKepler2006.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://kepler.nasa.gov/images/HomeKepler2006.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5137167861348201476?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5137167861348201476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5137167861348201476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5137167861348201476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5137167861348201476'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/05/send-your-loved-ones-into-space-and-you.html' title='Send Your Loved Ones Into Space -- And You Too!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8054420343579627932</id><published>2008-04-22T09:20:00.003-05:00</published><updated>2008-04-22T10:03:54.540-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='segfault'/><category scheme='http://www.blogger.com/atom/ns#' term='hubbard'/><category scheme='http://www.blogger.com/atom/ns#' term='porting'/><category scheme='http://www.blogger.com/atom/ns#' term='lesstif'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Spelunking'/><title type='text'>Why the Chart Wasn't Opening</title><content type='html'>Here's a not atypical experience when porting a humongous (1.3ish MSLOC) legacy application from one platform to another; in this case from SG/IRIX to Linux.&lt;br /&gt;&lt;br /&gt;During a simulation run the operator can click on a button that opens up a chart displaying some statistics depicted as a line graph. In the working version of the port that chart wasn't opening up.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Because the chart module never received a "Create Line Graph message".&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Because that message is sent only when the simulation's "current time counter" is not 0.0, and it was not getting incremented.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Because no "Timestamp" message had been received.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;(At this point I embarked on a &lt;a href="http://idioms.thefreedictionary.com/wild-goose+chase"&gt;Wild Goose Chase&lt;/a&gt; -- Marc)&lt;br /&gt;&lt;br /&gt;Because the sending process never sent one.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Because when reading a file it turned out the file was unexpectedly empty and so froze up, having thrown an "End_Error" exception.&lt;br /&gt;&lt;br /&gt;What did the original version do?&lt;br /&gt;&lt;br /&gt;Err..I guess the file is empty there too, but it throws an "Out_Of_Data" exception.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Ah...race condition.&lt;br /&gt;&lt;br /&gt;So what's the net effect of the difference between how the two exceptions are handled?&lt;br /&gt;&lt;br /&gt;Huh. None. They're both taken to mean "no data", which is a not unexpected condition, and so the exceptions are resolved and processing continues.&lt;br /&gt;&lt;br /&gt;-- End of Wild Goose Chase. Backtracking to where I left off:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Why?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Because no "Timestamp" message had been received.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Why?&lt;br /&gt;&lt;br /&gt;Because the sending module is experiencing a &lt;a href="http://en.wikipedia.org/wiki/Segmentation_violation"&gt;SEGFAULT&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Why?&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Because some data being extracted from a database is getting stomped on with bad, bad values, triggering the segfault.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Compiler bug.&lt;br /&gt;&lt;br /&gt;Really??&lt;br /&gt;&lt;br /&gt;Looks that way. Though 99% of the time that I start to think "compiler bug" it turns out to be a programming error, this is one time it looks legit. A procedure is getting called that does some calling of additional subprograms to retrieve the data from the DB. Down at the bottom an exception is thrown that propagates back up to the calling routine. This is a "no data found" exception that is perfectly legitimate to have occur and propagate back up. When control returns to the controlling procedure, though, some of the local variables have gotten clobbered--&lt;span style="font-style: italic;"&gt;even those that are not part of the calling sequence&lt;/span&gt;. Everything is fine until that exception is handed up to the calling procedure. So the work-around for this was to catch the exception within that first called procedure, and change the function parameter list to include a "found" flag, which is set according to whether the exception occurred or not. The caller than checks the flag and handles the response &lt;span style="font-style: italic;"&gt;as if&lt;/span&gt; the exception had occurred.&lt;br /&gt;&lt;br /&gt;And then?&lt;br /&gt;&lt;br /&gt;The chart still doesn't open.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;In a color setting function, the name of the color is passed in and checked against a table that maps each color name to some internal data. That function lower-cases the color name parameter, since all the names in the table are lower case. The function, though, is modifying (via tolower()) the color name &lt;span style="font-style: italic;"&gt;within&lt;/span&gt; the parameter itself, rather than to a local variable. For some reason trying to overwrite the parameter in place is causing another segfault. This is a less-than-desireable thing to be doing anyway, i.e. modifying the passed-in argument that should only be used as a lookup value, so the function was modified to lower-case the value into a local variable, which was then used for the table lookup.&lt;br /&gt;&lt;br /&gt;Now?&lt;br /&gt;&lt;br /&gt;The chart kinda opens, and then freezes.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Segfault.&lt;br /&gt;&lt;br /&gt;Again??&lt;br /&gt;&lt;br /&gt;Yes, down in the &lt;a href="http://www.lesstif.org/"&gt;Lesstif&lt;/a&gt; code a null dereference is occurring.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Beats the hell out of me on this one. I built Lesstif from source, with debug, so I can find the line of code that's causing the problem but I really don't know what exact sequence of events is leading to this problem (I'm an applications, not a systems, programmer!) It does seem to be happening with the ScrolledList widget, when doing something pertaining to fonts.&lt;br /&gt;&lt;br /&gt;What now?&lt;br /&gt;&lt;br /&gt;Try exploratory code removal. Comment out the line that sets the font list and see if maybe some sort of default gets used.&lt;br /&gt;&lt;br /&gt;And...?&lt;br /&gt;&lt;br /&gt;Chart correctly opened and displayed, although the text is not italicized like it is on the original platform.&lt;br /&gt;&lt;br /&gt;I can live with that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8054420343579627932?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8054420343579627932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8054420343579627932' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8054420343579627932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8054420343579627932'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/04/why-chart-wasnt-opening.html' title='Why the Chart Wasn&apos;t Opening'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2211806611020798467</id><published>2008-03-26T07:17:00.005-05:00</published><updated>2008-03-26T07:32:12.106-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spam'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='houston'/><title type='text'>Decades of Spam</title><content type='html'>I have some contact-the-author email accounts that are provided in README files that accompany some open source software I've released, and which I knew would sooner or later get scraped up by spambots. They were, and now I get anywhere from 20-100 spams a day on them. The Gmail filter is pretty good so I rarely see more than one every couple weeks that gets through. Still, because every now and then a legitimate email comes in and sometimes gets marked as spam I have to take a quick look at the spam jail pretty much daily and make sure that nothing got caught that should have gotten through.&lt;br /&gt;&lt;br /&gt;And I wonder, how long is this going to go on? Is this something I and every other email user that needs to provide a publicly accessible email address going to have to deal with...for &lt;span style="font-style: italic;"&gt;decades&lt;/span&gt;?? Geeze that's depressing.&lt;br /&gt;&lt;br /&gt;About the only thing more depressing in this matter is the poor slob whose job it is to write those ridiculously lame come-on one-liners for "enlargement" products. That's a soul-killing job if there ever was one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2211806611020798467?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2211806611020798467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2211806611020798467' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2211806611020798467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2211806611020798467'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/03/decades-of-spam.html' title='Decades of Spam'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-486879398212813658</id><published>2008-03-24T07:41:00.005-05:00</published><updated>2008-05-21T12:55:17.089-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bathroom'/><category scheme='http://www.blogger.com/atom/ns#' term='Home improvement'/><category scheme='http://www.blogger.com/atom/ns#' term='hennepin'/><title type='text'>The Toilevator</title><content type='html'>One thing I've noticed over the last decade or so is the increasing likelihood that some mundane item that one thinks &lt;span style="font-style: italic;"&gt;ought&lt;/span&gt; to exist, more often than not &lt;span style="font-style: italic;"&gt;does&lt;/span&gt; exist. At least in the areas of household items, tools, and home improvement type stuff.&lt;br /&gt;&lt;br /&gt;That said, I give you...the &lt;a href="http://www.dynamic-living.com/product/toilevator-a-raised-seat-alternative/"&gt;Toilevator&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/31t7yQewGhL._SL500_AA200_.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://ecx.images-amazon.com/images/I/31t7yQewGhL._SL500_AA200_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No, it's not for me. But thanks for asking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-486879398212813658?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/486879398212813658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=486879398212813658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/486879398212813658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/486879398212813658'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/03/toilevator.html' title='The Toilevator'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4203042944440298462</id><published>2008-03-17T08:24:00.002-05:00</published><updated>2008-03-17T08:36:19.244-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Grant'/><category scheme='http://www.blogger.com/atom/ns#' term='Art. Tesla'/><title type='text'>Let's see one of you telekinesisists do THIS</title><content type='html'>&lt;a href="http://bea.st/sight/lightbulb/"&gt;Levitating and wirelessly powering&lt;/a&gt; a lightbulb...with SCIENCE!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://web.media.mit.edu/%7Exercyn/sight/lightbulb/pics/01.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://web.media.mit.edu/%7Exercyn/sight/lightbulb/pics/01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And no small amount of imagination.&lt;br /&gt;&lt;br /&gt;I love this stuff.&lt;br /&gt;&lt;br /&gt;Check out the &lt;a href="http://media.mit.edu/%7Exercyn/sight/lightbulb/lightbulbSmall.mov"&gt;movie&lt;/a&gt; too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4203042944440298462?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4203042944440298462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4203042944440298462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4203042944440298462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4203042944440298462'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/03/lets-see-one-of-you-telekinesisists-do.html' title='Let&apos;s see one of you telekinesisists do &lt;i&gt;THIS&lt;/i&gt;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2424806669322698612</id><published>2008-03-13T11:02:00.005-05:00</published><updated>2008-03-13T11:36:21.194-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='porting'/><category scheme='http://www.blogger.com/atom/ns#' term='otters'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Spelunking'/><category scheme='http://www.blogger.com/atom/ns#' term='goodhue'/><title type='text'>Otters Should Not Be Allowed to Design Software</title><content type='html'>I got nothing against otters.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://library.thinkquest.org/6068/pages/looking_otter.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://library.thinkquest.org/6068/pages/looking_otter.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;They're cute, playful, inquisitive, and so on. We should take joy in their simple life, and protect their habitat.&lt;br /&gt;&lt;br /&gt;Neither they nor their human analogues, however, should be allowed to design software.&lt;br /&gt;&lt;br /&gt;When you're porting a large software system from one platform to another you spend a lot of time dealing with the design and implementation..uh..quirks of the original builders. Sometimes it's just stylistic stuff like typedef'ing (C) or renaming (Ada) every single freakin' standard type name. Other times, though, you'd swear that otters had been tasked with coming up with the design.&lt;br /&gt;&lt;br /&gt;So the part I'm porting now has a central control process and a GUI process that communicates via sockets. All well and fine.&lt;br /&gt;&lt;br /&gt;The latest issue I've been dealing with has to do with the operator clicking on a field in a table to change it, which pops up a menu of valid entries, one of which is selected and then the "Done" button is clicked. Somewhere, though, in the update processing chain the value was getting trashed, causing the update to fail.&lt;br /&gt;&lt;br /&gt;In other words, run-of-the-mill porting issues.&lt;br /&gt;&lt;br /&gt;So I traced through the code and verified that the operator's selection was getting properly packaged up into a message and sent out through the socket. I followed it right up to the socket write, so there was no doubt.&lt;br /&gt;&lt;br /&gt;I then went to the recipient of the message, the central control process, and verified that the message was being properly received and decoded.&lt;br /&gt;&lt;br /&gt;The next thing that's done after receiving the message is calling a function called Update_Table(). The invalid data error is being detected inside this function. However, the data from the message I just read in is &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; being passed into Update_Table.  WTF? Why is it failing then?&lt;br /&gt;&lt;br /&gt;So I dig down into Update_Table and see that what it's doing is going out to query for the data in the table row that's about to be updated. But it's not getting this data from a database. Nor is it accessing some internal data structure model. It's sending out a message.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;To the GUI process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And so now I go back to the GUI process and start tracing from where that message is received. So is the GUI process maintaining some data store itself that it maintains and both displays to the operator and keeps for queries from the controlling process? Why, no, no it doesn't. Instead it goes and gets the data out of the graphical widget that's displaying it. If the value is a number, it converts the displayed string representation of the number back to a number, otherwise it passes it back as a string.&lt;br /&gt;&lt;br /&gt;So not only does the central controlling process &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; have control of the data, it's outsourced that responsibility to the GUI, and that in turn is using the display widget as its data store.&lt;br /&gt;&lt;br /&gt;Whoever came up with this bright idea is a complete, raving, ... otter.&lt;br /&gt;&lt;br /&gt;Imagine, in a distributed system that does in fact utilize a database for data storage you can lose all your active data &lt;span style="font-style: italic;"&gt;if the GUI crashes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;(Oh, the problem turned out to be a data alignment mismatch due to the change in word sizes between the different platforms.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2424806669322698612?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2424806669322698612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2424806669322698612' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2424806669322698612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2424806669322698612'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/03/otters-should-not-be-allowed-to-design.html' title='Otters Should Not Be Allowed to Design Software'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3550763708374125235</id><published>2008-03-11T12:38:00.003-05:00</published><updated>2008-03-11T12:53:58.855-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freeborn'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><title type='text'>Solve the First Problem, and Don't Keep Going After It Breaks!</title><content type='html'>I cannot emphasize enough the truth and importance of &lt;a href="http://smuglispweeny.blogspot.com/2008/03/tiltons-law-solve-first-problem.html"&gt;Tilton's Law: Solve the First Problem&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Normally Tilton's Law refers to two or three observed issues that seem to be in the same ballpark. The law says pick out the one that seems most firstish and work on that and only that until it is solved. There is a terrific chance the other problems will just go away, and even if not the last thing we need to do while working on one problem is be looking over our shoulders at possible collateral damage from some other problem.&lt;/blockquote&gt;What I've experienced and expressed over my career is that once a bug has acted, &lt;span style="font-style: italic;"&gt;you can no longer trust anything the software is doing&lt;/span&gt;. You've busted the state of the program, and everything that happens from that point on is suspect.&lt;br /&gt;&lt;br /&gt;It drives me nuts when a tester has experienced a problem in the system being tested, logs it, &lt;span style="font-style: italic;"&gt;and then keeps on going&lt;/span&gt;, writing error reports for every bit of collateral damage that is now cropping up. All of which have to be analyzed, dispositioned, and closed, and other than the first, none of which should have been written at all.&lt;br /&gt;&lt;br /&gt;It's a waste of time, effort, and money for developers trying to uncover and fix bugs that are the after-effects of the "first" bug, or testers logging reports of the after-effects of a bug.&lt;br /&gt;&lt;br /&gt;Report the first bug, fix the first bug, and move on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3550763708374125235?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3550763708374125235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3550763708374125235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3550763708374125235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3550763708374125235'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/03/solve-first-problem-and-dont-keep-going.html' title='Solve the First Problem, and Don&apos;t Keep Going After It Breaks!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7859328772821068203</id><published>2008-03-11T10:42:00.008-05:00</published><updated>2008-03-11T11:29:06.390-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='porting'/><category scheme='http://www.blogger.com/atom/ns#' term='widgets'/><category scheme='http://www.blogger.com/atom/ns#' term='motif'/><category scheme='http://www.blogger.com/atom/ns#' term='fillmore'/><category scheme='http://www.blogger.com/atom/ns#' term='xbae'/><title type='text'>Primordial Program Porting Perils</title><content type='html'>Porting &lt;span style="font-style: italic;"&gt;old&lt;/span&gt; code can be a pain.&lt;br /&gt;&lt;br /&gt;I'm currently working on porting a large (well over a million SLOC of Ada and C) wargaming simulation system from a Silicon Graphics/IRIX platform to PC/Linux.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.answerbag.com/q_view/162950"&gt;98.3%&lt;/a&gt; of the porting effort has gone pretty smoothly, but there have occasionally been some real showstoppers.&lt;br /&gt;&lt;br /&gt;The latest issues I've been working with on the port have to do with the &lt;a href="http://xbae.sourceforge.net/"&gt;Xbae widget set&lt;/a&gt;. The developers of the original SG version of this app had grabbed a version of Xbae source code and frozen it to be evermore part of the code base.&lt;br /&gt;&lt;br /&gt;Well, there were serious problems with that version of Xbae versus the Motif distribution that was installed on the designated Linux platform. Those have pretty much been taken care of, but there's been one thing left: When a particular text edit box is updated, it's supposed to automatically update the corresponding cell in an Xbae-provided matrix table, and that wasn't happening.&lt;br /&gt;&lt;br /&gt;Since I'd grabbed all the source code for this stuff I was able to walk through what was going on in the debugger, and I discovered that when calling XmTextFieldSetString() to update the matrix cell, a check made in that function was rejecting the update. The check? Well, a quite reasonable one to make sure that the widget being updated was an XmText widget, so as to ensure that one was actually updating what one thought was being updated.&lt;br /&gt;&lt;br /&gt;Okay, waitaminnit. It's checking that the widget is an &lt;span style="font-style: italic;"&gt;XmText&lt;/span&gt; widget, but the code is expecting it to be an &lt;span style="font-style: italic;"&gt;XmTextField &lt;/span&gt;widget. And isn't the latter what the XbaeMatrixWidget says is actually used?&lt;br /&gt;&lt;br /&gt;Er...no. Or yes. Um, it depends on what you read.&lt;br /&gt;&lt;br /&gt;The "What is it?" &lt;a href="http://xbae.sourceforge.net/"&gt;Xbae Matrix Widget page&lt;/a&gt; says: "While XbaeMatrix looks and acts like a grid of &lt;span style="font-weight: bold;"&gt;XmTextField &lt;/span&gt;widgets, it actually contains only one &lt;span style="font-weight: bold;"&gt;XmTextField&lt;/span&gt;."&lt;br /&gt;&lt;br /&gt;But the &lt;a href="http://xbae.sourceforge.net/XbaeMatrix.html"&gt;Xbae Matrix Documentation page&lt;/a&gt; says: "While &lt;b&gt;XbaeMatrix&lt;/b&gt; looks and acts like a grid of &lt;b&gt;XmText&lt;/b&gt; widgets, it actually contains only one &lt;b&gt;XmText&lt;/b&gt;".&lt;br /&gt;&lt;br /&gt;So, the source code says it's an XmText widget. When did that happen?&lt;br /&gt;&lt;br /&gt;Spelunking on Google we &lt;a href="http://www.ibiblio.org/pub/X11/contrib/widgets/Xbae-4.7.README"&gt;find&lt;/a&gt;:&lt;pre&gt;&lt;blockquote&gt;* Swapped out the XmTextField widget to use the XmText&lt;br /&gt; widget to enable multi line rows and the like.&lt;/blockquote&gt;&lt;/pre&gt;When did this happen? Version 4.7, from &lt;span style="font-style: italic;"&gt;mid-1999&lt;/span&gt;. What version of Xbae am I using? 4.60. And this portion of the app was written in early 1997, well prior to the Xbae's conversion from the XmTextField to the XmText widget.&lt;br /&gt;&lt;br /&gt;So, I can't say the information wasn't out there, it was properly published in the release notes back then.&lt;br /&gt;&lt;br /&gt;But because this is an old application, a "&lt;a href="http://blog.kickin-the-darkness.com/2008/01/software-development-in-mines-of-moria.html"&gt;Mines of Moria&lt;/a&gt;" project, much of the code hasn't been looked at in years, and so there was never any incentive, hell, any &lt;span style="font-style: italic;"&gt;reason&lt;/span&gt;, to keep it current with evolving utilities. I expect I'm going to run into this sort of thing again, but what I've got to get onto right now is locating and fixing any additional expectations of XmTextField widgets being used when interacting with the Xbae matrix.&lt;br /&gt;&lt;br /&gt;This is gonna be so cool when it's done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7859328772821068203?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7859328772821068203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7859328772821068203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7859328772821068203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7859328772821068203'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/03/primordial-program-porting-perils.html' title='Primordial Program Porting Perils'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8782796635773147910</id><published>2008-02-29T07:52:00.004-06:00</published><updated>2008-02-29T08:51:04.642-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Faribault'/><category scheme='http://www.blogger.com/atom/ns#' term='Space Exploration'/><category scheme='http://www.blogger.com/atom/ns#' term='Rosetta'/><title type='text'>It's only a millionth of the vehicle's velocity...</title><content type='html'>The &lt;a href="http://www.planetary.org/"&gt;Planetary Society&lt;/a&gt; has an article up about the "&lt;a href="http://planetary.org/news/2008/0228_Researchers_Investigate_New_Cosmic.html"&gt;Flyby Anomaly&lt;/a&gt;", wherein scientists at &lt;a href="http://www.jpl.nasa.gov/index.cfm"&gt;JPL&lt;/a&gt; have discovered that space exploration probes that use the earth as a &lt;a href="http://en.wikipedia.org/wiki/Gravity_assist"&gt;gravitational slingshot&lt;/a&gt; are gaining a tiny amount of speed that exceeds the gain expected by the maneuver.&lt;br /&gt;&lt;br /&gt;This amount is small, "only about one millionth the velocity of the spacecraft", but that's still detectable.&lt;br /&gt;&lt;br /&gt;(That ain't much, right? How much of an effect could that &lt;span style="font-style: italic;"&gt;possibly have&lt;/span&gt;?)&lt;br /&gt;&lt;br /&gt;According to the article, the effect was first detected when the Jupiter probe &lt;a href="http://solarsystem.nasa.gov/galileo/?CFID=11548834&amp;amp;CFTOKEN=11465322"&gt;Galileo&lt;/a&gt; got its first gravitational assist from the Earth back in 1990. It was subsequently detected on similar maneuvers by the &lt;a href="http://near.jhuapl.edu/"&gt;NEAR&lt;/a&gt; and &lt;a href="http://rosetta.esa.int/science-e/www/area/index.cfm?fareaid=13"&gt;ROSETTA&lt;/a&gt; spacecraft, to varying degrees. (Two other spacecraft, &lt;a href="http://saturn.jpl.nasa.gov/home/index.cfm"&gt;Cassini&lt;/a&gt; and &lt;a href="http://messenger.jhuapl.edu/"&gt;MESSENGER&lt;/a&gt;, also swung by Earth as part of their trajectories, but the anomaly was not detected, though for reasons that are understood.)&lt;br /&gt;&lt;br /&gt;So I got to thinking--exactly what does "one millionth [of] the velocity of the spacecraft" actually add up to? And is it really &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; likely to have any kind of significant effect?&lt;br /&gt;&lt;br /&gt;Caveat: I'm not an &lt;a href="http://www.badastronomy.com/"&gt;astronomer&lt;/a&gt; or an orbital mechanics guy, so I'm just going by the numbers I found in the article and web searches. I mean, you're only going to get "so" accurate when you're going by "about a millionth" :-)&lt;br /&gt;&lt;br /&gt;According to a ROSETTA &lt;a href="http://www.esa.int/esaCP/Pr_13_2005_p_EN.html"&gt;press release&lt;/a&gt;, it made its March 5, 2005 Earth flyby at a speed of around 38,000 kph. I'm going to use that velocity for these calculations, knowing full well that the purpose of the flyby was to increase the speed of the spacecraft, but that number will serve for what I'm trying to show regarding the scale of the anomalous speed gain.&lt;br /&gt;&lt;br /&gt;So what is one millionth of 38,000 kph? Well, 0.038 kph, or 38 meters/hour. In non-metric terms this &lt;a href="http://www.onlineconversion.com/speed_all.htm"&gt;converts&lt;/a&gt; to 0.0236 miles per hour.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://rosetta.esa.int/science-e-media/img/a5/31397_ros_4.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://rosetta.esa.int/science-e-media/img/a5/31397_ros_4.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That may not seem like much, especially when compared with the vast distances a spacecraft, even an interplanetary one, must travel to reach its destination. On the other hand, because of those vast distances, flight times are usually quite lengthy, which gives such small values plenty of time to grow into significant ones.&lt;br /&gt;&lt;br /&gt;So the small ROSETTA velocity discrepancy grew within one day to 0.5664 miles. Yikes, that means it's already half a mile further along in its trajectory than it was expected to be. Within a week it's nearly &lt;span style="font-style: italic;"&gt;4 miles&lt;/span&gt; further along.&lt;br /&gt;&lt;br /&gt;Now the destination of the ROSETTA craft is the comet &lt;a href="http://rosetta.esa.int/science-e/www/object/index.cfm?fobjectid=14615"&gt;67P/Churyumov-Gerasimenko&lt;/a&gt;, which is itself only 5 km by 3 km size (3 x 1.8 miles), so a week after the flyby ROSETTA would already be off in its expected position by more than a full span of its target's size. And since ROSETTA is on a 10 year trajectory, this discrepancy would keep adding up with each subsequent year, at 206+ miles per year, making the "flyby anomaly" quite a significant factor in mission planning and success.&lt;br /&gt;&lt;br /&gt;Obviously the mission planners have taken this all into account now, and we can look forward to a successful ROSETTA flight and mission.&lt;br /&gt;&lt;br /&gt;But this certainly does demonstrate that being off by "about a millionth" can have some real consequences, despite how insignificant that sounds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8782796635773147910?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8782796635773147910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8782796635773147910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8782796635773147910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8782796635773147910'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/its-only-millionth-of-vehicles-velocity.html' title='It&apos;s only a &lt;i&gt;millionth&lt;/i&gt; of the vehicle&apos;s velocity...'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2857055332439974278</id><published>2008-02-28T12:12:00.003-06:00</published><updated>2008-02-28T12:24:42.225-06:00</updated><title type='text'>What we fought against in World War II</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://andrewsullivan.theatlantic.com/the_daily_dish/images/2008/02/27/oldantitortureposter.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://andrewsullivan.theatlantic.com/the_daily_dish/images/2008/02/27/oldantitortureposter.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No "What if's", no "But maybe's". Torture is &lt;span style="font-style: italic;"&gt;wrong&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2857055332439974278?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2857055332439974278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2857055332439974278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2857055332439974278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2857055332439974278'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/what-we-fought-against-in-world-war-ii.html' title='What we fought against in World War II'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-535122847507758376</id><published>2008-02-25T12:29:00.003-06:00</published><updated>2008-02-25T13:15:25.697-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cern'/><category scheme='http://www.blogger.com/atom/ns#' term='nuclear physics'/><category scheme='http://www.blogger.com/atom/ns#' term='atlas'/><category scheme='http://www.blogger.com/atom/ns#' term='douglas'/><category scheme='http://www.blogger.com/atom/ns#' term='large hadron collider'/><title type='text'>Not Your Average Cubicle Farm</title><content type='html'>Man, I think it'd be &lt;span style="font-weight: bold;"&gt;cool&lt;/span&gt; to go to work &lt;a href="http://public.web.cern.ch/Public/Welcome.html"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://antwrp.gsfc.nasa.gov/apod/image/0802/atlas_cern_big.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://antwrp.gsfc.nasa.gov/apod/image/0802/atlas_cern_big.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click on the above for a &lt;span style="font-weight: bold;"&gt;BIG&lt;/span&gt; version, 3008 x 1960 pixels.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://antwrp.gsfc.nasa.gov/apod/image/0802/atlas_cern_big.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-535122847507758376?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/535122847507758376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=535122847507758376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/535122847507758376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/535122847507758376'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/not-your-average-cubicle-farm.html' title='Not Your Average Cubicle Farm'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2977595170627832584</id><published>2008-02-19T12:05:00.004-06:00</published><updated>2008-02-19T12:31:06.420-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dodge'/><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='Lighting'/><category scheme='http://www.blogger.com/atom/ns#' term='Eco-friendly'/><title type='text'>I Want a Gravity Powered Lamp</title><content type='html'>I want one of these:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/R7seiYvdObI/AAAAAAAAAA8/bN3VXfPlJZo/s1600-h/GraviaLamp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/R7seiYvdObI/AAAAAAAAAA8/bN3VXfPlJZo/s400/GraviaLamp.jpg" alt="" id="BLOGGER_PHOTO_ID_5168758573443660210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;"&lt;a href="http://www.core77.com/competitions/greenergadgets/projects/4306/"&gt;Gravia&lt;/a&gt; is an LED-lit floorlamp energized by people. To light Gravia, the user places a mass approximately 48" above the ground, that, in falling, powers a mechanism, generating electricity. Gravia harnesses the potential energy imparted by the user, rather than relying on any existing electrical infrastructure."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Update: &lt;/span&gt;This may &lt;a href="http://reddit.com/r/science/info/699a9/comments/c0382jg"&gt;not actually work&lt;/a&gt;.  Damn :-(&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2977595170627832584?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2977595170627832584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2977595170627832584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2977595170627832584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2977595170627832584'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/i-want-gravity-powered-lamp.html' title='I Want a Gravity Powered Lamp'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_r4IV1FbaUpc/R7seiYvdObI/AAAAAAAAAA8/bN3VXfPlJZo/s72-c/GraviaLamp.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4771703893153872992</id><published>2008-02-18T07:22:00.006-06:00</published><updated>2008-02-18T07:44:52.383-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smoke'/><category scheme='http://www.blogger.com/atom/ns#' term='dakota'/><category scheme='http://www.blogger.com/atom/ns#' term='Fire'/><category scheme='http://www.blogger.com/atom/ns#' term='Electrical'/><title type='text'>Smoked Jumpers</title><content type='html'>Consider what happens when you attempt to jumpstart a vehicle with a dead, dead, dead battery and, unbeknownst to you at the time, this vehicle is now experiencing a rather sturdy short in its electrical system (which is why the battery is so very dead).&lt;br /&gt;&lt;br /&gt;With such a short there is no electrical load on the circuit and so lots of amps start pouring through the jumper cables.  Here's what can happen:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/R7mH9ovdOZI/AAAAAAAAAAs/AZIC7FMC-HE/s1600-h/SmokedJumpers.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/R7mH9ovdOZI/AAAAAAAAAAs/AZIC7FMC-HE/s400/SmokedJumpers.JPG" alt="" id="BLOGGER_PHOTO_ID_5168311540362590610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Not surprisingly much smoke is generated as well in this particular electrical scenario (which transpired in my garage). The elimination of which is the reason why God invented high volume industrial fans.&lt;br /&gt;&lt;br /&gt;All turned out well, though, as far as the vehicles were concerned anyways. The cables...well...it all led to a blog post, so it wasn't a total loss.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4771703893153872992?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4771703893153872992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4771703893153872992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4771703893153872992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4771703893153872992'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/smoked-jumpers.html' title='Smoked Jumpers'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/R7mH9ovdOZI/AAAAAAAAAAs/AZIC7FMC-HE/s72-c/SmokedJumpers.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7322894791898220817</id><published>2008-02-12T09:48:00.000-06:00</published><updated>2008-02-12T09:52:44.311-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Africa'/><category scheme='http://www.blogger.com/atom/ns#' term='dakota'/><category scheme='http://www.blogger.com/atom/ns#' term='Clean Water'/><category scheme='http://www.blogger.com/atom/ns#' term='Ingenuity'/><title type='text'>Bringing Clean Water to Africa, One Merry-Go-Round at a Time</title><content type='html'>Ideas like this are just brilliant, and restore my faith in human ingenuity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="373"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uQu_Jppvzyk&amp;rel=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/uQu_Jppvzyk&amp;rel=1&amp;border=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="373"&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/8919860543765866292-7322894791898220817?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7322894791898220817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7322894791898220817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7322894791898220817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7322894791898220817'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/bringing-clean-water-to-africa-one.html' title='Bringing Clean Water to Africa, One Merry-Go-Round at a Time'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-1681723028230349290</id><published>2008-02-11T08:43:00.000-06:00</published><updated>2008-02-11T09:48:45.009-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ada'/><category scheme='http://www.blogger.com/atom/ns#' term='static typing'/><category scheme='http://www.blogger.com/atom/ns#' term='crow wing'/><title type='text'>Concretizing Static Typing Metadata</title><content type='html'>Well, that's a pretentious title, doncha think?&lt;br /&gt;&lt;br /&gt;Steve Yegge writes in &lt;a title="Portrait of a Noob" href="http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html" id="msvv"&gt;Portrait of a Noob&lt;/a&gt; that static typing is effectively meta-data ("we also know that static types are just metadata"), like comments, and so isn't strictly required for the compilation and execution of software. He's right in a limited context. If static typing is being used for nothing more than ensuring "type matching", and really doesn't add anything beyond that, then it is effectively just a stronger form of commenting, with the compiler acting in the role of object compatibility inspector.&lt;br /&gt;&lt;br /&gt;This does get at why the argument for "type safety" has never achieved much success as a compelling reason for using a strongly typed language. Merely making sure your objects are compatible is a good thing, but it does constrain flexibility, extensibility, and adds type management overhead (to the programmer).&lt;br /&gt;&lt;br /&gt;If strong typing is going to be seriously valuable it has to do more than merely ensure type safety, it needs to actually add concrete information to the software.&lt;br /&gt;&lt;br /&gt;Take a programming language like Ada, considered one of the paragons of strongly typed programming languages. It does all the type safety stuff, and Ada advocates are more than happy to promote that as one of its great virtues for creating and delivering reliable, safety-critical software. All true, but obviously type safety, accompanied by its supporting syntax and semantics, was not sufficiently compelling to drive any significant adoption outside the defense and aerospace industries (and in those fields, of course, much of the initial impetus was mandate-driven anyway).&lt;br /&gt;&lt;br /&gt;What most of the Ada programming language advocates overlooked was the productivity gain possible by the language's &lt;i&gt;specific implementation &lt;/i&gt;of strong typing. When its advocates talked about strong typing aiding productivity, it was nearly always in terms of &lt;i&gt;error avoidance&lt;/i&gt;. Again, true, and a good thing, but hardly sexy. After all, how many programmers are going to &lt;a title="concede that they write buggy code" href="http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html" id="l3cs"&gt;willingly admit that they write buggy code&lt;/a&gt; and that maybe they should look into using a programming language that would help them avoid errors?&lt;br /&gt;     &lt;br /&gt;I went into some detail about this in &lt;a title="The Fundamental Theory of Ada" href="http://blog.kickin-the-darkness.com/2007/08/fundamental-theory-of-ada.html" id="t4lr"&gt;The Fundamental Theory of Ada&lt;/a&gt;, describing how the specifics of Ada's "type model" allows the Ada programmer to implicitly embed scads of additional information &lt;i&gt;with no effort beyond that of defining a type&lt;/i&gt;. The language specifies all the additional programmatic information directly accessible to the programmer pertaining to that type. In a sense, user-defined type definitions implicitly declare an associated class instance with information relevant to that type. Here's an excerpt from &lt;a title="Ada" href="http://blog.kickin-the-darkness.com/2007/08/fundamental-theory-of-ada.html" id="r3yr"&gt;Ada&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;   type Speed_Range is range 0 .. 1000;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With nothing more than a reference to an object of that type:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;  Speed : Speed_Range;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;One can know its minimum value (Speed_Range'First), maximum value (Speed_Range'Last), the minimum number of bits needed to represent all possible values of the type (Speed_Range'Size), the actual number of bits representing a variable of that type (Speed'Size, which is often larger than the type size since objects almost always occupy a whole number of bytes), the number of characters needed to represent the longest possible string representation of values of that type (Speed_Range'Width), etc. You can convert values to and from strings (Speed_Range'Image, Speed_Range'Value), do min/max comparisons (Speed_Range'Min(100, Speed), Speed_Range'Max(Current_Max, Speed)), and use the type as a loop controller ("for S in Speed_Range loop" and "while S in Speed_Range loop"), and more. And &lt;i&gt;none&lt;/i&gt; of this information needs to be explicitly programmed by a developer, it is &lt;i&gt;all&lt;/i&gt; implicitly provided by the mere definition of the type.&lt;/blockquote&gt; This is where strong typing is far more than disposable metadata, like comments. This "aggressive" approach to strong typing, whether in Ada or a similarly conceived programming language, "concretizes" the metadata into practical use to not merely aid error avoidance, but to actively &lt;i&gt;increase &lt;/i&gt;programmer productivity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-1681723028230349290?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/1681723028230349290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=1681723028230349290' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1681723028230349290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1681723028230349290'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/concretizing-static-typing-metadata.html' title='Concretizing Static Typing Metadata'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-1984457468962129101</id><published>2008-02-06T09:37:00.000-06:00</published><updated>2008-02-06T13:20:21.937-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cook'/><category scheme='http://www.blogger.com/atom/ns#' term='radio'/><title type='text'>Pandora Plug</title><content type='html'>I'm not exactly on the leading edge of technology. It was literally years after DVDs became available that I finally got a DVD player. And the one I did get cost $1 as it came as part of a cell phone sign up bonus. &lt;span style="font-style: italic;"&gt;And&lt;/span&gt; the cell phone is a bare bones phone.&lt;br /&gt;&lt;br /&gt;So this is hardly breaking technology news, but I wanted to put in a plug for &lt;a href="http://www.pandora.com/"&gt;Pandora&lt;/a&gt; internet radio.&lt;br /&gt;&lt;br /&gt;The way it works is that it initially asks you for a "seed" artist or song, and then it picks songs based on that seed and streams them to you. You can set up separate radio stations seeded with different songs and artists, and a given station can have multiple seeds, and I just love it. As songs play you can "thumbs up" or "thumbs down" them, which will alter the parameters and tune the playlist to more what you want for that station.&lt;br /&gt;&lt;br /&gt;I've got 8 stations so far, tailored for styles from &lt;a href="http://cockburnproject.net/"&gt;Bruce Cockburn&lt;/a&gt; to &lt;a href="http://www.sonicyouth.com/"&gt;Sonic Youth&lt;/a&gt; to &lt;a href="http://www.edgarwinter.com/"&gt;Edgar Winter&lt;/a&gt; ("&lt;a href="http://www.youtube.com/watch?v=x1mV_5-bRPo"&gt;Frankenstein&lt;/a&gt;"!).&lt;br /&gt;&lt;br /&gt;Pandora solved a vexing problem for me. I like music, but I despise commercial radio with its mass merchandized playlists and juvenile DJs. I literally gave up on it over 6 years ago. Public radio is overwhelmingly classical, except for Philadelphia's &lt;a href="http://www.xpn.org/index.php"&gt;WXPN&lt;/a&gt;, which I enjoyed when I lived up there (they're on the Web, but I was looking for more variety).&lt;br /&gt;&lt;br /&gt;So I could buy songs I knew from artists I knew, but how am I going to hear anything new then? I could catch the musical guests on the late night talk shows or SNL, but that's only a very limited number of venues.&lt;br /&gt;&lt;br /&gt;With Pandora, though, having access to music old and new, they give me the exposure to the new artists and songs that fit my tastes; and conversely give those artists exposure to a potential new fan.&lt;br /&gt;&lt;br /&gt;Highly recommended!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-1984457468962129101?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/1984457468962129101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=1984457468962129101' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1984457468962129101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1984457468962129101'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/pandora-plug.html' title='Pandora Plug'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3830024921431343201</id><published>2008-02-02T07:05:00.000-06:00</published><updated>2008-02-02T07:20:00.029-06:00</updated><title type='text'>I'm With Tuscaloosa On This One</title><content type='html'>I will be voting in this week's "Super Tuesday" primary here in Alabama. I encourage everyone to take an active role in their caucus or primary, whether it's part of Super Tuesday or takes place subsequent to that.&lt;br /&gt;&lt;br /&gt;Liberal, conservative, or moderate, Democrat or Republican, take part in the process. This is &lt;span style="font-style: italic;"&gt;your&lt;/span&gt; country, so it's up to you to cast your vote for the direction you want to see us go.&lt;br /&gt;&lt;br /&gt;The Tuscaloosa News has &lt;a href="http://www.tuscaloosanews.com/article/20080120/NEWS/801200303/1012/TL05"&gt;endorsed Barack Obama and John McCain&lt;/a&gt; in Tuesday's primary, and they happen to agree with me on this, so I endorse their endorsement :-) I don't agree with either of them on everything, but I have confidence that both possess the faith in, and respect for, this country and what it had always stood for.&lt;br /&gt;&lt;br /&gt;I'll be voting for Obama Tuesday, and I hope again in the fall. I wouldn't dread a McCain presidency, which is why I'd like to see him on the Republican ticket, but I'd &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; like to see Obama in the Oval office.&lt;br /&gt;&lt;br /&gt;YMMV.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3830024921431343201?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3830024921431343201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3830024921431343201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3830024921431343201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3830024921431343201'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/02/im-with-tuscaloosa-on-this-one.html' title='I&apos;m With Tuscaloosa On This One'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3311270697130728942</id><published>2008-01-25T14:46:00.000-06:00</published><updated>2008-01-25T14:54:22.663-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kickouts'/><title type='text'>Kickouts 0801251446</title><content type='html'>Kickouts, Reddit link within [...].&lt;br /&gt;&lt;br /&gt;&lt;div id="titlerow_t3_66lbc" class="titlerow"&gt;&lt;a id="title_t3_66lbc" onmousedown="setClick(this)" class="title loggedin" href="http://www.youtube.com/watch?v=Y6fXpfE_D20" rel="nofollow"&gt;The World is NOT Doomed. Asteroid to NOT Strike Earth. So Says Bad Astronomer&lt;/a&gt; &lt;a href="http://reddit.com/r/science" class="link-subreddit"&gt;&lt;/a&gt;[&lt;a href="http://reddit.com/r/science/info/66lbc/comments/"&gt;science&lt;/a&gt;] &lt;span class="little"&gt;(youtube.com)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="titlerow_t3_66l53" class="titlerow"&gt;&lt;a id="title_t3_66l53" onmousedown="setClick(this)" class="title loggedin" href="http://www2.adacore.com/home/ada_answers/lorenz-code" rel="nofollow"&gt;Joachim vs Colossus: Breaking the Lorenz Cipher&lt;/a&gt; &lt;a href="http://reddit.com/r/programming" class="link-subreddit"&gt;&lt;/a&gt;[&lt;a href="http://reddit.com/r/programming/info/66l53/comments/"&gt;programming&lt;/a&gt;] &lt;span class="little"&gt;(adacore.com)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="titlerow_t3_66l3y" class="titlerow"&gt;&lt;a id="title_t3_66l3y" onmousedown="setClick(this)" class="title loggedin" href="http://news.nationalgeographic.com/news/2008/01/080123-comet.html" rel="nofollow"&gt;Stardust Mission to Comet Returns with ... Asteroid Dust?&lt;/a&gt; &lt;a href="http://reddit.com/r/science" class="link-subreddit"&gt;&lt;/a&gt;[&lt;a href="http://reddit.com/r/science/info/66l3y/comments/"&gt;science&lt;/a&gt;] &lt;span class="little"&gt;(news.nationalgeographic.com)&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/8919860543765866292-3311270697130728942?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3311270697130728942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3311270697130728942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3311270697130728942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3311270697130728942'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/kickouts-0801251446.html' title='Kickouts 0801251446'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2775500491316408099</id><published>2008-01-24T11:43:00.000-06:00</published><updated>2008-01-24T11:49:18.258-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer virus'/><category scheme='http://www.blogger.com/atom/ns#' term='times change'/><category scheme='http://www.blogger.com/atom/ns#' term='cottonwood'/><title type='text'>Your Picture Frame is Infected</title><content type='html'>It was only a scant few years ago that the notion of a picture frame getting infected with a computer virus would have been met with a glassy stare...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.news.com/8301-10784_3-9857364-7.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-20"&gt;Best Buy issues security warning on Insignia digital picture frames&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2775500491316408099?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2775500491316408099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2775500491316408099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2775500491316408099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2775500491316408099'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/your-picture-frame-is-infected.html' title='Your Picture Frame is Infected'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2902532435974339087</id><published>2008-01-24T08:02:00.000-06:00</published><updated>2008-01-24T08:18:17.493-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kickouts'/><title type='text'>Kickouts 0801240802</title><content type='html'>Kickouts, Reddit link within [...].&lt;br /&gt;&lt;br /&gt;&lt;a id="title_t3_66e43" onmousedown="setClick(this)" class="title loggedin" href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9057899" rel="nofollow"&gt;Rock Star Coders: Fame, Ego, Phenomenal Talent, Single-minded Passion, Brilliance to the Point of Self-Destruction, Absurd Employment Terms and Crazed Groupies&lt;/a&gt; [&lt;a href="http://reddit.com/r/programming/info/66e43/comments/"&gt;programming&lt;/a&gt;] &lt;span class="little"&gt;(computerworld.com)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="title_t3_66e3p" onmousedown="setClick(this)" class="title loggedin" href="http://www.news.ucdavis.edu/search/news_detail.lasso?id=8489" rel="nofollow"&gt;Mathematical Modeling of Snowflakes&lt;/a&gt; [&lt;a href="http://reddit.com/r/science/info/66e3p/comments/"&gt;science&lt;/a&gt;]  &lt;span class="little"&gt;(news.ucdavis.edu)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="title_t3_66ddp" onmousedown="setClick(this)" class="title loggedin" href="http://smoothspan.wordpress.com/2008/01/23/software-handyman-not-at-all-software-itelf-is-math-and-there-are-engineers-and-scientists/" rel="nofollow"&gt;Isn’t it interesting that many of the newest languages and trends are "mathy"?&lt;/a&gt; [&lt;a href="http://reddit.com/r/programming/info/66ddp/comments/"&gt;programming&lt;/a&gt;] &lt;span class="little"&gt;(smoothspan.wordpress.com)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="title_t3_66d0h" onmousedown="setClick(this)" class="title loggedin" href="http://www.theaustralian.news.com.au/story/0,25197,23092595-7583,00.html" rel="nofollow"&gt;Reagan Changed Conservatism and the Nation--Like It or Not. Obama Poised to do the same for Liberalism? Like It or Not?&lt;/a&gt; [&lt;a href="http://reddit.com/r/politics/info/66d0h/comments/"&gt;politics&lt;/a&gt;] &lt;span class="little"&gt;(theaustralian.news.com.au)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="title_t3_668a4" onmousedown="setClick(this)" class="title loggedin" href="http://www.thespacereview.com/article/1043/1" rel="nofollow"&gt;The dark side of space disaster theories&lt;/a&gt; &lt;a href="http://reddit.com/r/science" class="link-subreddit"&gt;&lt;/a&gt;[&lt;a href="http://reddit.com/r/science/info/668a4/comments/"&gt;science&lt;/a&gt;] &lt;span class="little"&gt;(thespacereview.com)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2902532435974339087?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2902532435974339087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2902532435974339087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2902532435974339087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2902532435974339087'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/kickouts-0801240802.html' title='Kickouts 0801240802'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-191633532214785364</id><published>2008-01-24T07:29:00.000-06:00</published><updated>2008-01-24T08:17:34.557-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='reddit'/><category scheme='http://www.blogger.com/atom/ns#' term='cook'/><category scheme='http://www.blogger.com/atom/ns#' term='kickouts'/><title type='text'>Kickout a Reddit Rant</title><content type='html'>I periodically submit interesting links I find to &lt;a href="http://reddit.com/"&gt;Reddit&lt;/a&gt;, most often in the &lt;a href="http://reddit.com/r/programming"&gt;programming&lt;/a&gt; or &lt;a href="http://reddit.com/r/science"&gt;science&lt;/a&gt; subreddits. These are usually quickly downvoted into oblivion :-) While some of the links are admittedly a little off what I take to be the mainstream of interest there, I think that horizons ought to be expanded and that some of these submissions help in that area. I understand that some of the downvoting occurs for &lt;a href="http://reddit.com/info/1dk74/comments/"&gt;tactical, albeit selfish&lt;/a&gt;, reasons on the "New" pages, but I really don't understand why subsequent downvotes occur on stories that are right smack dab in the middle of the subreddit's subject matter.&lt;br /&gt;&lt;br /&gt;A link I submitted from &lt;a href="http://www.planetary.org/home/"&gt;The Planetary Society&lt;/a&gt; containing a science professional's&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://reddit.com/r/science/info/65n2n/details"&gt;first thoughts on the first pictures&lt;/a&gt; the MESSENGER probe sent back from Mercury is a good example. As of the time I'm writing this the submission had 26 points,  from 43 upvotes and 17 downvotes. &lt;span style="font-style: italic;"&gt;17 downvotes&lt;/span&gt;?? In the &lt;span style="font-style: italic;"&gt;science&lt;/span&gt;  subreddit?? This is about &lt;span style="font-style: italic;"&gt;Mercury&lt;/span&gt;, the first pictures of it taken in 30 years, including photos of areas of the planet that have never before been seen! Other than the initial "tactical" downvotes, how can anybody in the &lt;span style="font-style: italic;"&gt;science&lt;/span&gt; subreddit rationalize downvoting this? If someone isn't interested in astronomy or planetary geology, that's fine, &lt;span style="font-style: italic;"&gt;ignore the submission&lt;/span&gt;. I don't go around downvoting biology or psychology submissions just because I'm not interested in the subject matter, there are probably others that are interested in those fields, and &lt;span style="font-style: italic;"&gt;science&lt;/span&gt; is a pretty broad subject area.&lt;br /&gt;&lt;br /&gt;There's no point in ranting about this on reddit itself, which others have already done, and my rant would almost certainly get downvoted anyway :-)&lt;br /&gt;&lt;br /&gt;So, since I do have a blog there are two things I &lt;span style="font-style: italic;"&gt;can&lt;/span&gt; do:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Rant it about &lt;a href="http://blog.kickin-the-darkness.com/2008/01/kickout-reddit-rant.html"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Introduce "Kickouts", which are simply the links I submit to Reddit that will more often than not get downvoted away.&lt;/li&gt;&lt;/ol&gt;Kickouts will be  links to various articles and posts that I found interesting enough to submit to Reddit, the purpose being to keep them visible &lt;a href="http://blog.kickin-the-darkness.com/search?q=kickouts"&gt;&lt;span style="font-style: italic;"&gt;here&lt;/span&gt;&lt;/a&gt;, regardless of their lifespan &lt;a href="http://reddit.com/"&gt;&lt;span style="font-style: italic;"&gt;there&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The next post will contain the inaugural set. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-191633532214785364?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/191633532214785364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=191633532214785364' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/191633532214785364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/191633532214785364'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/kickout-reddit-rant.html' title='Kickout a Reddit Rant'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8278790911160062421</id><published>2008-01-21T14:05:00.000-06:00</published><updated>2008-01-21T14:16:19.907-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Spelunking'/><category scheme='http://www.blogger.com/atom/ns#' term='Clearwater'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Archeology'/><title type='text'>Software Development in the Mines of Moria</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.tuckborough.net/images/moria-lee.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.tuckborough.net/images/moria-lee.jpg" alt="" border="0" /&gt;&lt;/a&gt;The majority of the projects I've worked on during my nearly 25 year long career have a lot in common with the &lt;a href="http://en.wikipedia.org/wiki/Moria_%28Middle-earth%29"&gt;Mines of Moria&lt;/a&gt;. That is, they're vast edifices of architecture and detailed design; great effort, valor, and skill were expended to bring them into being; and much wealth was extracted during their lifetime of construction and operation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sometimes the projects are still active, with a small group of developers fixing bugs, improving performance, or adding new features. And sometimes they're pretty moribund, with me being the only active developer in the midst of a very large code base. I'm "cursed with competence" in this aspect, in that I've got a track record of being able to be dropped onto a project that needs something fixed or added, and learning enough of it quickly enough to make the needed changes or additions. (Now I've also handled some clean-sheet projects from the beginning, so that breadth of architectural and design experience has given me the experience I leverage when diving into another project's code base.)&lt;br /&gt;&lt;br /&gt;The one characteristic all these "Moria" projects have in common is that at the time of their development, they were &lt;i&gt;always developed using the 'hot technologies' of their day&lt;/i&gt;. And these go back awhile, so I dealt with a variety of technologies on these projects: Pascal, Ada, Windows NT, C++, Java, &lt;a href="http://www.corba.org/"&gt;CORBA&lt;/a&gt;, &lt;a href="http://atlas.kennesaw.edu/%7Edbraun/csis4650/A&amp;amp;D/UML_tutorial/history_of_uml.htm"&gt;UML 1.x&lt;/a&gt;, &lt;a href="http://www.smartdraw.com/tutorials/software/yourdon/tutorial_01.htm"&gt;Coad/Yourdon&lt;/a&gt;, &lt;a href="http://www.smartdraw.com/tutorials/software/omt/tutorial_01.htm"&gt;Rumbaugh's OMT&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/DEC_Alpha"&gt;DEC Alphas&lt;/a&gt;, and others.&lt;br /&gt;&lt;br /&gt;And while these were on the cutting edge back in their day, they're not now.&lt;br /&gt;&lt;br /&gt;So it doesn't take a &lt;a href="http://www.gartner.com/"&gt;Gartner Group&lt;/a&gt; study to foresee that the projects being developed today with the latest and greatest technologies are also going to eventually turn into Moria projects, at least those that aren't discarded at some point. And be aware, something that's old, but still works and brings in revenue, is going to be kept around, no matter how crusty its implementation and how obsolete its technology.&lt;br /&gt;&lt;br /&gt;This realization eventually leads one to becoming rather skeptical of whatever latest and greatest technology is being touted at any given time.You can understand why senior developers &lt;a href="http://blog.kickin-the-darkness.com/2007/10/dinosaur-programmers-know-more-than-you.html"&gt;don't get excited&lt;/a&gt; over most new technologies, because time and time again whatever was &lt;b&gt;hot&lt;/b&gt; and manages to achieve widespread success passes though the phases of becoming mainstream, then pervasive, then over-encumbered, disdained, and finally dismissed.&lt;br /&gt;&lt;br /&gt;It's not necessarily a fear of change or the unknown, or a lessening ability to learn, that nudges software developers towards sticking with what they know as they get older, i.e. more &lt;i&gt;experienced&lt;/i&gt;. Seeing one killer technology/language/methodology after another fall by the wayside of their career path, year after year, tends to encourage senior developers to stick with what they've seen to be proven approaches to successful software development.&lt;br /&gt;&lt;br /&gt;It's certainly important to remain aware of the progress that is being made in the software development field, because genuine advancements in the practice &lt;i&gt;do&lt;/i&gt; occur. In fact, those established, proven software technologies of the experienced developer were at one time themselves experimental, state of the art hot technologies.&lt;br /&gt;&lt;br /&gt;Some developers do always want to be on the cutting edge of software technology, they find learning and experimenting and pushing the envelope interesting and challenging. And that's great, it's these developers that do the initial shakeout of the technologies, do the initial cut to identify the candidates for eventual mainstream use. Other developers like to wait for that shakeout to occur before buying in, they're the ones who are going to put in the big commitments to do the big projects, knowing full well that new programming languages, methodologies, and tools are going to eventually supersede what they've done and how they did it. Doing something big, and doing it well, is what they're looking to accomplish, and that requires relying on proven tools and techniques that can handle the load.&lt;br /&gt;&lt;br /&gt;In time of course the big project is done, deployed, maintained, and sometimes gradually, sometimes precipitously, evolves into a Moria project. The budget is reduced, the releases become fewer and more infrequent, and the magnitude of new functionality in each new release declines. The project still has value to its users and customers, and so keeping some lights on in the Mines is justified. And for those of us who find "software spelunking" and "software archeology" interesting, and have the experience with these technologies that used to be famous, it's not a bad way to make a living.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8278790911160062421?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8278790911160062421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8278790911160062421' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8278790911160062421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8278790911160062421'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/software-development-in-mines-of-moria.html' title='Software Development in the Mines of Moria'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8923653881177205736</id><published>2008-01-21T11:45:00.000-06:00</published><updated>2008-01-21T11:51:50.347-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Volcano'/><category scheme='http://www.blogger.com/atom/ns#' term='Winter'/><category scheme='http://www.blogger.com/atom/ns#' term='Clay'/><title type='text'>An 'ice Day on Mount St. Helens</title><content type='html'>I always check the &lt;a href="http://www.fs.fed.us/gpnf/volcanocams/msh/views/java-highdef.php#"&gt;Mount St. Helens VolcanoCam&lt;/a&gt; at least once a day. I figure I'll catch an eruption sooner or later. In the meantime, one sometimes gets lucky and happens on a cool pic.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_r4IV1FbaUpc/R5Ta-NctgFI/AAAAAAAAAAc/M2rMhEksDzM/s1600-h/MSH-IceDay.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_r4IV1FbaUpc/R5Ta-NctgFI/AAAAAAAAAAc/M2rMhEksDzM/s400/MSH-IceDay.jpg" alt="" id="BLOGGER_PHOTO_ID_5157988235542888530" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8923653881177205736?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8923653881177205736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8923653881177205736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8923653881177205736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8923653881177205736'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/ice-day-on-mount-st-helens.html' title='An &apos;ice Day on Mount St. Helens'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_r4IV1FbaUpc/R5Ta-NctgFI/AAAAAAAAAAc/M2rMhEksDzM/s72-c/MSH-IceDay.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5665512124062350020</id><published>2008-01-18T09:03:00.001-06:00</published><updated>2008-01-18T09:10:10.316-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Helicopter'/><category scheme='http://www.blogger.com/atom/ns#' term='Afghanistan'/><title type='text'>The Best of the Best of the Best</title><content type='html'>Reportedly from a helicopter rescue mission in Afghanistan:&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://andrewsullivan.theatlantic.com/photos/uncategorized/2008/01/17/image.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://andrewsullivan.theatlantic.com/photos/uncategorized/2008/01/17/image.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Balls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5665512124062350020?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5665512124062350020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5665512124062350020' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5665512124062350020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5665512124062350020'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/best-of-best-of-best.html' title='The Best of the Best of the Best'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2396645734239759592</id><published>2008-01-16T11:39:00.000-06:00</published><updated>2008-01-17T07:16:37.267-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chisago'/><category scheme='http://www.blogger.com/atom/ns#' term='Crime'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Failure'/><title type='text'>"Honey, the project lead's been arrested..."</title><content type='html'>Software projects can get derailed for a variety of reasons, but the project lead's &lt;a href="http://www.news.com/8301-13580_3-9851703-39.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-20"&gt;murder trial&lt;/a&gt; is one you don't run across too often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2396645734239759592?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2396645734239759592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2396645734239759592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2396645734239759592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2396645734239759592'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/honey-project-leads-been-arrested.html' title='&quot;Honey, the project lead&apos;s been arrested...&quot;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2133459385635875768</id><published>2008-01-09T14:42:00.000-06:00</published><updated>2008-01-09T15:06:12.297-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reading'/><category scheme='http://www.blogger.com/atom/ns#' term='Science Fiction'/><category scheme='http://www.blogger.com/atom/ns#' term='Children&apos;s Literature'/><category scheme='http://www.blogger.com/atom/ns#' term='Fantasy'/><category scheme='http://www.blogger.com/atom/ns#' term='Chippewa'/><title type='text'>Back to Some Plain Ol' Science Fiction...</title><content type='html'>I picked up Alistair Reynolds' &lt;a href="http://www.amazon.com/Pushing-Ice-Alastair-Reynolds/dp/0441015026/ref=pd_bbs_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199911503&amp;amp;sr=8-2"&gt;Pushing Ice&lt;/a&gt; over the holidays and just started reading it the other night. And I mean &lt;span style="font-style: italic;"&gt;just&lt;/span&gt; started reading it. Two chapters in it struck me that this is the first SF book I've cracked open in quite awhile.&lt;br /&gt;&lt;br /&gt;The non-SF string started with Gene Wolfe's &lt;a href="http://www.amazon.com/Latro-Mist-Gene-Wolfe/dp/0765302942/ref=sr_1_12?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199911637&amp;amp;sr=1-12"&gt;Latro In The Mist&lt;/a&gt;, which was sort of an historical SF book. I normally like Wolfe's stuff, but this one didn't really engage me. I think it had to do with the storytelling device, that of Latro authoring the tale and dealing with his injury-caused limited short-term memory, i.e. he can remember stuff that happened a long time ago, and only that which he experienced in the past few hours, so he constantly finds himself not quite knowing where he's at, or why he's in the situation that he's in. And unfortunately, sometimes neither did I.&lt;br /&gt;&lt;br /&gt;I then read the entire &lt;a href="http://www.amazon.com/Chronicles-Narnia-C-S-Lewis/dp/0066238501/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199911931&amp;amp;sr=1-1"&gt;Chronicles of Narnia&lt;/a&gt; for the first time. I'd read a comic book serialization in my Sunday school paper over the course of a year back when I was a child and of course saw &lt;a href="http://www.imdb.com/title/tt0363771/"&gt;The Lion, The Witch, and the Wardrobe&lt;/a&gt; movie. I knew it was a work of children's literature, with deeper content that adult readers pick up on, but I didn't really grasp that it was &lt;span style="font-style: italic;"&gt;children's&lt;/span&gt; literature, written in that particular style. Nothing wrong with that, and I did enjoy it, but that style doesn't really engage me too deeply. That said though, there were some scenes in the books that were extraordinarily well-written and engrossing, regardless of one's age. (Plus, I discovered that the phrase "sucks to be him" goes back to at least the early 50s in England :-)&lt;br /&gt;&lt;br /&gt;Then over the holidays I also watched the entire &lt;a href="http://www.amazon.com/Lord-Rings-Picture-Trilogy-Widescreen/dp/B0001VL0K2/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=dvd&amp;amp;qid=1199912395&amp;amp;sr=8-2"&gt;Lord of the Rings&lt;/a&gt; trilogy.&lt;br /&gt;&lt;br /&gt;And then finally wrapped it all up by reading the final Harry Potter book, &lt;a href="http://www.amazon.com/Harry-Potter-Deathly-Hallows-Book/dp/0545010225/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199912490&amp;amp;sr=8-1"&gt;Deathly Hollows&lt;/a&gt;, which was quite satisfying.&lt;br /&gt;&lt;br /&gt;So after all that, I think I'm ready to get back to some spaceships, alien artifacts, and death by explosive decompression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2133459385635875768?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2133459385635875768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2133459385635875768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2133459385635875768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2133459385635875768'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/back-to-some-plain-ol-science-fiction.html' title='Back to Some Plain Ol&apos; Science Fiction...'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5261649717382833354</id><published>2008-01-07T15:06:00.000-06:00</published><updated>2008-01-07T15:50:17.612-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Intelligent Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='Creationism'/><category scheme='http://www.blogger.com/atom/ns#' term='Biology'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwinism'/><category scheme='http://www.blogger.com/atom/ns#' term='Cass'/><title type='text'>Intelligent Design Could Be as Robust as Darwinian Evolution - If the Evidence and Theory is There</title><content type='html'>In November 2007 PBS broadcast a Nova special called "&lt;a href="http://www.pbs.org/wgbh/nova/id/"&gt;Judgment Day: Intelligent Design on Trial&lt;/a&gt;", which covered a 2006 lawsuit brought against the Dover, PA school board over their requiring a disclaimer be read in biology classes stating that "there is an alternative to Darwin's theory of evolution" and that an alternative biology textbook, &lt;a href="http://www.amazon.com/Pandas-People-Central-Question-Biological/dp/0914513400"&gt;Of Pandas and People&lt;/a&gt;, was available in the school library for those who wanted to explore an Intelligent Design based explanation of the origin and development of life. The school's science teachers objected to the school board's actions and filed a lawsuit on the grounds that Intelligent Design (ID) was not science, and that this was an unconstitutional intrusion of religion into the public schools.&lt;br /&gt;&lt;br /&gt;I found this program very compelling, and couldn't help but notice that for the first time in my life I was actually finding biology &lt;i&gt;interesting&lt;/i&gt;. The subject never did much for me in high school or the couple required courses I had to take in college, I've always been far more interested in software and "inanimate" science and technologies :-)&lt;br /&gt;&lt;br /&gt;I'm not going to talk about the "religion in the classroom" angle, that's a whole 'nother contentious set of blog posts. Instead I'm going to look at the argument that was being made regarding the "scientific-ness" of ID and how that bears on what is taught in the classroom.&lt;br /&gt;&lt;br /&gt;Now I try very hard to be meticulously fair and even-handed when I get into contentious matters like this. I rarely find an anti-evolution or anti-creationism site that can restrain themselves from making snarky comments, or much, much worse, about their opponents. Such childishness accomplishes nothing. I try to fairly present each side, in terms their proponents would find acceptable, and then look at the conflict between them. And therefore I'm also very sensitive to any kind of unwarranted disparagement, &lt;a href="http://en.wikipedia.org/wiki/Strawman"&gt;strawman&lt;/a&gt;, or &lt;a href="http://en.wikipedia.org/wiki/Ad_hominem%22"&gt;ad hominen&lt;/a&gt; attacks and arguments being made by one, the other, or both.&lt;br /&gt;&lt;br /&gt;In "Judgment Day" I was quite pleased to see that no significant instances of any such comments were broadcast. I don't know if any were made by those interviewed, but what got on the air appeared scrupulously objective, no doubt significantly aided by the producer's decision to rely heavily on the &lt;a href="http://en.wikipedia.org/wiki/Kitzmiller_v._Dover_Area_School_District_trial_documents#Transcripts_of_the_trial"&gt;trial transcript&lt;/a&gt; and the judge's &lt;a href="http://www.pamd.uscourts.gov/kitzmiller/kitzmiller_342.pdf"&gt;final decision&lt;/a&gt; for the show's content.&lt;br /&gt;&lt;br /&gt;Now to the science. I'm going to try to summarize what I understood to be the "scientific-ness" approach of the plaintiffs (those who brought the suit).&lt;br /&gt;&lt;br /&gt;Science, as it's generally understood by scientists rests on two foundations: facts, and theories.&lt;br /&gt;&lt;br /&gt;"Facts" are the physical entities and behaviors of the components of the universe. Facts are the "what is" of the universe, the objective, physical reality. Facts can be discovered, measured, observed (sometimes requiring specific tools), and appear and act the same to any observer. Some facts are not physical entities, but are instead relationships, which can be captured as &lt;a href="http://blog.kickin-the-darkness.com/2007/11/plain-and-simple-guide-to-theories-and.html"&gt;&lt;i&gt;laws&lt;/i&gt;&lt;/a&gt;, e.g. &lt;a href="http://en.wikipedia.org/wiki/Newton%27s_laws_of_motion#Newton.27s_second_law:_law_of_acceleration%22"&gt;F = ma&lt;/a&gt; and &lt;a href="http://www.pbs.org/wgbh/nova/einstein/"&gt;E = mc&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"Theory" is an &lt;a href="http://blog.kickin-the-darkness.com/2007/11/plain-and-simple-guide-to-theories-and.html"&gt;explanat&lt;/a&gt;&lt;a href="http://blog.kickin-the-darkness.com/2007/11/plain-and-simple-guide-to-theories-and.html"&gt;ion of facts&lt;/a&gt;. An explanation of why things are the way they are, why the laws operate the way they operate. A theory is the underlying explanation for the reality and behavior that we observe. To be accepted as a scientific theory that theory &lt;i&gt;must&lt;/i&gt; build off the facts, logically and rationally explain the interrelationships amongst them, and be able to make predictions about more facts and behaviors that ought to exist, but have not yet been discovered. By its very definition a theory &lt;i&gt;cannot&lt;/i&gt; contradict facts--it may not have an explanation for all the relevant facts, but ideally further refinement of the theory--the explanation--will incorporate those facts as more is learned. (The meaning of "theory" in the collequial phrase "It's just a theory" has little in common with its industrial-strength meaning in the sciences.)&lt;br /&gt;&lt;br /&gt;In science classes such as physics and chemistry no one questions that the only facts and theories that are taught are those that are built on this rock-solid foundation of scientific facts and theories.&lt;br /&gt;&lt;br /&gt;Biology is no less such a science and therefore only equally solidly supported facts and theories should be taught within its classes. And this is where the conflict between evolution and Intelligent Design arises.&lt;br /&gt;&lt;br /&gt;First off, most everyone agrees on the raw facts of biology: Life exists, fossils exist, DNA exists, living beings pass on traits to their offspring, genetic combinations and mutations occur during the inheritance process. There are structural similiarities, both gross and fine, amongst different families and species of plants and animals, there are similarities in the composition of genes amongst different plant and animal species.&lt;br /&gt;&lt;br /&gt;Chimpanzees and orangutans show a lot of physical and genetic similarities.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wildabouttheworld.com/gallery/data/505/Chimpanzee.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.wildabouttheworld.com/gallery/data/505/Chimpanzee.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://upload.wikimedia.org/wikipedia/commons/a/ab/Lightmatter_sad_orangutan.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/commons/a/ab/Lightmatter_sad_orangutan.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oaks and okapis not so much. (Yet they're both made up of cells, employ the same "life processes", and the form and growth of both is controlled by DNA.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Oak_tree-SL.jpg/800px-Oak_tree-SL.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Oak_tree-SL.jpg/800px-Oak_tree-SL.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://www.atpm.com/7.06/southern-california/images/okapi.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.atpm.com/7.06/southern-california/images/okapi.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's when it comes to explaining these biological facts--how they originated, why they are the way they are--that evolution and ID provide significantly different explanations.&lt;br /&gt;&lt;br /&gt;Darwinian Evolution is a detailed theory based on "natural selection". In a nutshell it is &lt;a href="http://en.wikipedia.org/wiki/Introduction_to_evolution"&gt;summarized&lt;/a&gt; as "the accumulation of changes through succeeding generations of organisms that results in the emergence of new species".&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.ideacenter.org/contentmgr/showdetails.php/id/1136"&gt;Intelligent Design&lt;/a&gt; theory "holds that certain features of the universe and living things are best explained by an intelligent cause, and are not the result of an undirected, chance-based process such as Darwinian evolution".&lt;br /&gt;&lt;br /&gt;The core of the scientific aspect of the Dover lawsuit was examining how well the theory of evolution explains the presence and behavior of the biological facts, versus ID's explanations of those same facts.&lt;br /&gt;&lt;br /&gt;What the scientific testimony at the trial revealed was that the theory of evolution provides a &lt;i&gt;rigorous, accurate, and testable&lt;/i&gt; explanation of biological facts, &lt;i&gt;meeting the same standard&lt;/i&gt; as those theories that are taught in physics and chemistry classes. In short, that "&lt;a href="http://geology.about.com/od/evolution/a/aa_nutshel_evol.htm"&gt;life on Earth today acts exactly as if evolution were true&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;The ID arguments, as presented in the trial, &lt;i&gt;could not supply the same rigorous explanations&lt;/i&gt; of observed biological processes. This &lt;i&gt;is not&lt;/i&gt; an assertion that Intelligent Design is wrong, but simply that its tenets could not meet the high standards of evidence and explanation that are met by evolution (as well as the "hard" sciences).&lt;br /&gt;&lt;br /&gt;The Intelligent Design proponents conceded as much, stating in an &lt;a href="http://en.wikipedia.org/wiki/Kitzmiller_v._Dover_Area_School_District_trial_documents#Amicus_curiae_filings"&gt;amicus curiae brief&lt;/a&gt; filed with the court that "the current formulation of intelligent design theory," "...is still in its youth.... For that very reason it is premature to conclude that one side has triumphed and the other has lost." "[This] brief makes no scientific argument at all, and gives no indication of where the court might look to find a scientific argument."&lt;br /&gt;&lt;br /&gt;Similarly, that there are "holes" and "gaps" in evolutionary theory gives no reasonable cause for asserting that such deficiencies undermine the theory, in fact, pursuing the closing of such openings in a scientific endeavour often drives the &lt;i&gt;very advance&lt;/i&gt; of scientific progress. That there are aspects of biology that evolution doesn't yet explain &lt;b&gt;in no way&lt;/b&gt; constitutes proof for an alternate explanation of biological origins, such a claim is an example of a &lt;a href="http://en.wikipedia.org/wiki/False_dilemma"&gt;false dichotomy&lt;/a&gt;, identified as such by Judge Jones in his &lt;a href="http://www.pamd.uscourts.gov/kitzmiller/kitzmiller_342.pdf"&gt;decision&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Those wanting to present Intelligent Design within a &lt;i&gt;science-based&lt;/i&gt; biology class admitted, as noted above, that the theory did not meet accepted scientific standards, and that therefore "the ground rules of science must be changed". Altered to include "supernatural causation of the natural world", which forced Intelligent Design expert Michael Behe to concede that "his broadened definition of science, which encompasses ID, would also embrace &lt;i&gt;astrology&lt;/i&gt;". (All quotes in this paragraph from the judge's decision, &lt;i&gt;emphasis&lt;/i&gt; added.)&lt;br /&gt;&lt;br /&gt;Judge John E. Jones, III (recommended for the bench by former PA senator Rick Santorum (R) and appointed by President Bush) decided on the evidence and merits of the case that on the "question of whether ID is science, [...] it is not". And that due to its religious couplings, it was unconstitutional to teach ID in a science class in the public school.&lt;br /&gt;&lt;br /&gt;Nova's presentation of this case covered both the scientific and religious aspects of the lawsuit, and did an excellent job filling out the scientific context for the arguments that were made at trial. (It also handled the religious/community aspects well, but like I said, I'm not going to get into that here.) The explanations, illustrations, examples, and arguments regarding the science of evolution and ID's claims to science were quite clear and easy to follow. Not least because the judge himself needed a full understanding of the biological underpinnings of the science aspect of the case: &lt;a href="http://www.talkorigins.org/faqs/dover/day1am2.html"&gt;"We'll take a lunch break now. I might be inclined to say class dismissed for the morning."&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The bottom line regarding &lt;i&gt;scientific&lt;/i&gt; evidence &lt;i&gt;for&lt;/i&gt; evolution by natural selection and the lack of same for Intelligent Design is simply that ID does not yet stand up to the rigor of the accepted scientific &lt;i&gt;method&lt;/i&gt;. This does not mean that ID is &lt;i&gt;false&lt;/i&gt;, simply that it is &lt;i&gt;not scientific&lt;/i&gt;, it is "not science", as Judge Jones ruled. The methods that have been used by science over several centuries now have unequivocally led to the multitude of successful advances of human knowledge and technology that we have today. Advocating a liberalizing of these methods, of "changing the ground rules" of science merely to justify putting ID on the same apparent footing as evolution is hardly a way to advance our technology and understanding of the universe.&lt;br /&gt;&lt;br /&gt;There is nothing inherently preventing ID proponents from developing ID theory to the same robust level of Darwinian evolutionary theory if the evidence and theory is there. But simply finding fault with an overwhelmingly well supported and explanatory theory is not going to do it. In fact, finding legitimate deficiencies will likely &lt;i&gt;aid&lt;/i&gt; the development of evolutionary theory as such "holes" help focus efforts on understanding those deficiencies by finding more evidence and improving the theory to address them.&lt;br /&gt;&lt;br /&gt;-------------------------------&lt;br /&gt;&lt;br /&gt;I would strongly encourage people to read Judge Jones' &lt;a href="http://www.pamd.uscourts.gov/kitzmiller/kitzmiller_342.pdf%22"&gt;decision (pdf)&lt;/a&gt; in this case. I read every line of it, all 139 pages. And actually, since it's double-spaced and employs a rather large font, it really doesn't take that long to read. I read the whole thing in one 45-minute sitting. Once you get past the legal boiler-plate in the beginning the decision is very readable, summarizing all aspects of the case and spelling out the judge's criteria and rationale for coming to the conclusion that he did.&lt;br /&gt;&lt;br /&gt;And like I said at the beginning, this is the first time I actually found biology interesting, and who would have thought that would have been a result of a court case?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5261649717382833354?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5261649717382833354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5261649717382833354' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5261649717382833354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5261649717382833354'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/intelligent-design-could-be-as-robust.html' title='Intelligent Design Could Be as Robust as Darwinian Evolution - If the Evidence and Theory is There'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2480304792982031643</id><published>2008-01-07T08:36:00.000-06:00</published><updated>2008-01-07T15:47:07.381-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Carver'/><category scheme='http://www.blogger.com/atom/ns#' term='Children'/><category scheme='http://www.blogger.com/atom/ns#' term='Overprotectiveness'/><title type='text'>Happy New Year! Let's Start the Year Out Right: 5 dangerous things you should let your kids do</title><content type='html'>My neighbor let his grandson start driving a full-size ATV around his property when the kid was 6 years old -- he's now 10 or 11. See, he survived just fine.&lt;br /&gt;&lt;br /&gt;I see what I think is way too much of a drive to "safety-proof" everything that has anything to do with children. How is a person going to learn to get along with pointy, burning, sharp, scraping, freezing, out-of-control, slippery, dark-at-night, world if they don't learn how to deal with it while they're growing up? Lawsuits?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ted.com/index.php/talks/view/id/202"&gt;Gever Tulley: 5 dangerous things you should let your kids do&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2480304792982031643?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2480304792982031643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2480304792982031643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2480304792982031643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2480304792982031643'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2008/01/happy-new-year-lets-start-year-out.html' title='Happy New Year! Let&apos;s Start the Year Out Right: 5 dangerous things you should let your kids do'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6692067627724753476</id><published>2007-12-25T07:38:00.000-06:00</published><updated>2008-01-07T15:46:14.432-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Simplicity'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Scaling'/><category scheme='http://www.blogger.com/atom/ns#' term='Carlton'/><title type='text'>"Good Enough" Might Actually Mean "Good Enough"</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;Ryan Tomayko claims that &lt;a href="http://tomayko.com/articles/2005/05/28/ibm-poop-heads"&gt;IBM Poopheads saying that LAMP Users Need to "grow up"&lt;/a&gt; are trying to foist an over-complexified approach onto database-oriented applications.&lt;br /&gt;&lt;blockquote&gt;After wasting years of our lives trying to implement physical three tier architectures that "scale" and failing miserably time after time, we're going with something that actually works.&lt;/blockquote&gt; His general point is that complex architectures designed from Day One for a "million users and requir[ing] five 9's from the first day of development" "sacrificed simplicity and the ability to scale low".&lt;br /&gt;&lt;br /&gt;This principle of simplicity has been gaining significant traction with me over the last several years. I've been a software architect and gone the whole UML/Rational route. But then I've seen so much crud getting accreted onto it that my level of skepticism regarding that technological approach continues to rise. The more I see of it, the more I see of architecture being handed down "from above", the less effective and responsive (i.e., agile) I'm finding the resulting system or application to be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6692067627724753476?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6692067627724753476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6692067627724753476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6692067627724753476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6692067627724753476'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/12/good-enough-might-actually-mean-good.html' title='&quot;Good Enough&quot; Might Actually Mean &quot;&lt;i&gt;Good Enough&lt;/i&gt;&quot;'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-117943682985325315</id><published>2007-12-24T10:47:00.000-06:00</published><updated>2008-01-07T15:45:15.345-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mathematics'/><category scheme='http://www.blogger.com/atom/ns#' term='Brown'/><category scheme='http://www.blogger.com/atom/ns#' term='Imaginary Numbers'/><title type='text'>Imaginary Numbers Real? Yes, You Just Need to Rotate Your Mind!</title><content type='html'>The whole sqrt(-1) imaginary number thing has always been pretty abstract to me (and probably most others who learned them, but then never had to use them in their job or anything).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://betterexplained.com/articles/a-visual-intuitive-guide-to-imaginary-numbers/"&gt;A Visual, Intuitive Guide to Imaginary Numbers&lt;/a&gt; gives one a technique to visualize them and how and why they work the way they do, and also demonstrates how imaginary numbers can be surprisingly effective in unexpected areas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://betterexplained.com/wp-content/uploads/complex/positive_negative_rotation.png"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://betterexplained.com/wp-content/uploads/complex/positive_negative_rotation.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-117943682985325315?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/117943682985325315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=117943682985325315' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/117943682985325315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/117943682985325315'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/12/imaginary-numbers-real-yes-you-just.html' title='Imaginary Numbers Real? Yes, You Just Need to Rotate Your Mind!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7810487247984946673</id><published>2007-12-11T07:55:00.000-06:00</published><updated>2008-01-07T15:44:36.996-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Writing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bic'/><category scheme='http://www.blogger.com/atom/ns#' term='Blue Earth'/><title type='text'>When a Bic (tm) is more than a pen</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/317a2ROcW5L._SS500_.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://ecx.images-amazon.com/images/I/317a2ROcW5L._SS500_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Read the &lt;a href="http://www.amazon.co.uk/gp/product/B000JTOYLS/ref=cm_rdp_product"&gt;reviews&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7810487247984946673?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7810487247984946673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7810487247984946673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7810487247984946673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7810487247984946673'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/12/when-bic-tm-is-more-than-pen.html' title='When a Bic (tm) is more than a pen'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8881809007017518417</id><published>2007-12-11T07:01:00.000-06:00</published><updated>2008-01-07T15:44:02.182-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cosmology'/><category scheme='http://www.blogger.com/atom/ns#' term='Universe'/><category scheme='http://www.blogger.com/atom/ns#' term='Big Stone'/><title type='text'>A Map of Everything</title><content type='html'>"&lt;a href="http://antwrp.gsfc.nasa.gov/apod/ap071211.html"&gt;Space is big&lt;/a&gt;. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the drug store, but that's just peanuts to space. "&lt;br /&gt;-- Douglas Adams&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://antwrp.gsfc.nasa.gov/apod/ap071211.html"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://antwrp.gsfc.nasa.gov/apod/image/0712/lss_2mass_big.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8881809007017518417?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8881809007017518417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8881809007017518417' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8881809007017518417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8881809007017518417'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/12/map-of-everything.html' title='A Map of Everything'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7979650207200963619</id><published>2007-12-06T13:12:00.000-06:00</published><updated>2007-12-06T14:00:09.902-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ada'/><category scheme='http://www.blogger.com/atom/ns#' term='Concurrency'/><category scheme='http://www.blogger.com/atom/ns#' term='Command and Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Missile'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='War Story'/><category scheme='http://www.blogger.com/atom/ns#' term='Benton'/><title type='text'>A Coding War Story: What's Your Point?</title><content type='html'>I had been assigned the task of porting a fairly large (about 400 KSLOC) missile launch command and control system to an upgraded OS version and new compiler and language version. Specifically, from Solaris 2.5.1 to Solaris 7, and from the &lt;a href="http://findarticles.com/p/articles/mi_m0SMG/is_n10_v13/ai_14037353"&gt;Verdix Ada Development System&lt;/a&gt; (VADS), which was &lt;a href="http://www.adaic.org/standards/ada83.html"&gt;Ada 83&lt;/a&gt;, to &lt;a href="http://www-306.ibm.com/software/awdtools/developer/ada/"&gt;Rational Apex Ada&lt;/a&gt;, which was &lt;a href="http://www.adaic.org/standards/ada95.html"&gt;Ada 95&lt;/a&gt;.  VADS had been bought out by &lt;a href="http://www-306.ibm.com/software/rational/"&gt;Rational&lt;/a&gt;, and its product obsoleted, although Rational did a pretty good job implementing compatible versions of VADS-specific packages to ease the transition to the Apex compiler.&lt;br /&gt;&lt;br /&gt;Three other guys helped with the initial compilations, just to get clean compiles of the code, which took about two weeks, and then I was on my own to actually make the whole system work. Long story short, it was the worst design and implementation of a software system I'd ever seen, and so took about two more months to successfully complete the port. It was then handed over for formal testing, which took several months as well. I fairly steadily fixed the bugs that were found as testing got going, but that rate quickly declined as it progressed (the original code &lt;i&gt;was&lt;/i&gt; a production system after all, so its functionality was pretty solid, I just had to kill the bugs that came about due to adapting to the new compiler). Eventually I was reassigned to another project once everything appeared to be working as well as the original.&lt;br /&gt;&lt;br /&gt;Then came the phone call on the Friday before Thanksgiving.&lt;br /&gt;&lt;br /&gt;There was a missile test scheduled in about three weeks, and during a lab countdown test the command sequencing had locked up. In real life this would cause a test abort, and if this lock-up occurred within seconds of ignition, a number of irreversible actions would have taken place in support systems, causing a lengthy--and expensive--delay for reprocessing the missile. The missile would not have launched, but there would have been many, many very unhappy people seriously distressed over issues of time and much, much money. (Don't let anyone ever tell you that the Defense Department is cavalier about spending money--I've yet to meet a contract manager for whom budget wasn't their number 1 or 2 priority, with schedule being the other.)&lt;br /&gt;&lt;br /&gt;Now this countdown test and many variations of it had been run hundreds of times in the preceding months, with only a handful of minor glitches. So this problem had a very low probability of occurrence, but unfortunately possessed a very high &lt;span style="font-style: italic;"&gt;cost of occurrence&lt;/span&gt;. Multiply those together and the product was a bad Thanksgiving week for me and dozens of other engineers and managers.&lt;br /&gt;&lt;br /&gt;As the guy who did the port this put the spotlight right on me.&lt;br /&gt;&lt;br /&gt;Like most safety-critical defense systems like this, a lot of logging is captured, so it was fairly easy to locate the handful of lines of code that had been most recently executed when the system froze. And of course there was absolutely nothing questionable in those lines of code, and these same statements had already successfully executed literally thousands of times during that same run.&lt;br /&gt;&lt;br /&gt;We put the Apex guys at Rational on notice, since it was their compiler and some of their vendor-supplied routines were being called in this area, and it was impressed on them (and everyone) that this was a problem of literally national importance that &lt;span style="font-style: italic;"&gt;had &lt;/span&gt;to be tracked down. So they got their Thanksgiving week trashed as well.&lt;br /&gt;&lt;br /&gt;Since the logs could only tell us so much, we needed to try to repeat the problem in the local lab. For something that pops up in only 1 in a 1000 test runs that's not going to be easy. Amongst the conjectures as to root cause was that a call into a vendor-supplied &lt;a href="http://en.wikipedia.org/wiki/Mutual_exclusion"&gt;mutex&lt;/a&gt; (part of a VADS migration package) Unlock function was not unlocking. The processing thread that made this call was handling a heartbeat message that nominally arrived every few seconds. So we tried upping the rate on that heartbeat to 10 Hz, i.e., 10 per second, and kicked it off. About an hour later the system locked up. And, when reviewing the logs we saw that the same sequence of logged messages was occurring as had taken place in the failed run. Several runs were made, and it would consistently lock up sometime between 45 and 90 minutes after starting, and each time had the same log trace. So even though we were not now technically running the same code--because of the increased heartbeat rate--the behavior was consistent and so we had high confidence that this stressing scenario was triggering the same problem.&lt;br /&gt;&lt;br /&gt;The trick now was to figure out exactly where in the sequence of candidate statements the lock up was occurring.&lt;br /&gt;&lt;br /&gt;The implementation of this system used &lt;a href="http://en.wikibooks.org/wiki/Ada_Programming/Tasking"&gt;Ada tasking&lt;/a&gt;, and used it extraordinarily poorly. Tasking is Ada's high-level concurrency construct, sorta like threads, only built into the language itself. When two tasks communicate, they do it by "&lt;a href="http://en.wikibooks.org/wiki/Ada_Programming/Tasking#Rendezvous"&gt;rendezvousing&lt;/a&gt;", at which time they should exchange any data of interest, and then break the rendezvous and resume their independent executions. This system wasn't implemented that way. Instead, once rendezvous had been made with a target task, that target task would then rendezvous with another task, which in turn would rendezvous with another task, and so on, until eventually some processing would get done, after which all the rendezvous would be broken and each of the tasks would go on their merry way. So what you ended up with was the world's most expensive function calls, bringing an entire, "multi-tasking" process to a halt while it processed a piece of incoming data. It was only because the normal throughput was so low that this hadn't caused performance problems in the past.&lt;br /&gt;&lt;br /&gt;The point of this digression about tasking, though, is that when a rendezvous is requested or awaited upon, a "task switch" can occur. This means that the CPU can start processing a different task that's ready to run. So when one task becomes ready to rendezvous with another, a different task may jump in line and get executed, with control eventually getting passed back around to the rendezvousing tasks. Now there are other events that can also cause a task switch, one of which is calling an OS function, like what happens with printing or performing a mutex.&lt;br /&gt;&lt;br /&gt;So in tracking down exactly which line was causing the problem I had to find a way to record the progress through the sequence of statements--while not triggering a task switch, which could prevent the problem from occurring. So doing Put_Line() was not an option, no system I/O of any sort could be done. I could set a counter variable or something like that, but how do I see what its value is to tell me how far it got, since I can't print it out?&lt;br /&gt;&lt;br /&gt;Now one thing that had been observed in the log files about this executable was that while this heartbeat processing froze--which ultimately led to the process' I/O getting all blocked up, and preventing other necessary processing from occurring--other independent tasks within the executable continued to run. So the process &lt;i&gt;as a whole&lt;/i&gt; wasn't getting blocked, just a (critical) task chain within it.&lt;br /&gt;&lt;br /&gt;This was the wedge needed to get at locating the offending statement.&lt;br /&gt;&lt;br /&gt;I created an Ada package containing an enumeration type, a global variable of that type, and a task. The enumeration literals were keyed to the specific statements in the problematic code sequence (like "Incrementing_Buffer_Index", "Locking_Mutex", "Mutex_Unlocked", etc.) and then into that sequence were inserted assignment statements that assigned the corresponding enumeration to the global variable. Because the object code for this was nothing more than storing a constant into a memory location it was extremely unlikely that a task switch could occur by executing such a statement. In fact, our primary suspicions centered on those statements that involved task switches, since the locking up behavior was consistent with execution not resuming (for some reason) after a task switch back.&lt;br /&gt;&lt;br /&gt;The monitoring task then itself did nothing more than loop and periodically check to see if the global variable had changed value. Every time it did, it printed out the value to a file. It then delayed for a small interval, and made its next check. Now the reason I could write to a file from this task was that this task only ran when a task switch had occurred back in the problem area and this task had been selected to run. Whatever was done in this task should have no effect on other, unrelated, blocked tasks.&lt;br /&gt;&lt;br /&gt;The behavior that was anticipated here, then, was that when the problem code area was entered it would do its thing and keep resetting the global variable as it progressed past each statement. It would then do something that caused a task switch, and because its execution rate (10 Hz) was slower than that of the monitoring task's, the monitor could grab the value of the global variable and write it out. So under normal behavior I would expect to see a repeating sequence of a subset of the enumerations, specifically each of those that the variable last held before a task switch occurred. And when the freeze happened, that global variable value should no longer change and the last one recorded will indicate from exactly which statement execution never resumed.&lt;br /&gt;&lt;br /&gt;Ran the instrumented executable. It froze up. And the monitoring worked like a charm.&lt;br /&gt;&lt;br /&gt;The logging of the progress monitoring variable displayed exactly the anticipated sequence, which eventually ceased with a value corresponding to having made a call to the Mutex Unlock function, with the value that should have been stored signaling the resumption of the task never showing up--like it had in the thousands of previous invocations.&lt;br /&gt;&lt;br /&gt;So over to you Rational. The Apex engineers during this time had been feverishly analyzing their code and had found a place in the mutex code where it could theoretically block for good, but the odds of that happening were very remote because of everything that had to happen with the right sequencing and timing. &lt;a href="http://en.wikipedia.org/wiki/Murphy%27s_law"&gt;Murphy's Law&lt;/a&gt;, guys, Murphy's Law.&lt;br /&gt;&lt;br /&gt;What I did to work-around this was to replace the calls to the vendor's mutex functions (which were built atop the OS' mutex functionality) protecting this particular sequence of code with a quick little native Ada mutex package, using that to control mutex access to the relevant area.&lt;br /&gt;&lt;br /&gt;I put this into the code and reran the test. Seven hours later it was still running.&lt;br /&gt;&lt;br /&gt;My mutex package code was given to Rational who compiled and disassembled it and verified that it was not using the same approach that the problematic mutex functions were using.&lt;br /&gt;&lt;br /&gt;I then had the most well attended code inspection of my career :-) There were nearly a dozen engineers and managers in the room with me, and at least another dozen dialed in from all over the country, all to inspect about 20 lines of code.&lt;br /&gt;&lt;br /&gt;It passed, the new executables were formally built, and it was handed over to the test organization for formal regression testing. A couple weeks later the missile countdown proceeded flawlessly and away it went.&lt;br /&gt;&lt;br /&gt;It's a good think I like cold turkey.&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Okay, this is all well and fine, but what's really the point of a coding war story?&lt;br /&gt;&lt;br /&gt;This was a nasty, nasty problem. There was concurrency, over a dozen communicating processes, hundreds of KSLOCs, poor design, poor implementation, interfaces to embedded systems, and millions of dollars riding on the effort. No pressure, eh?&lt;br /&gt;&lt;br /&gt;I wasn't the only developer working on this problem, though having done the original port I was of course the primary focus. But even though I did the porting, that doesn't mean I had intimate knowledge of hundreds of thousands of lines of code--or even a decent overview of it. Other engineers around the country were looking through the code and the logs as well, but I found that when they proposed a hypothesis to me about a root cause, it never took more than 30 seconds on my part to dismiss it, likewise when I was requested to provide various analyses I would shove it off on to someone else because it was clear to me they were on the wrong track. Sound like arrogance on my part? Well, yeah, it does, but that's not why I dismissed these hypotheses and requests.&lt;br /&gt;&lt;br /&gt;It was because I &lt;i&gt;knew&lt;/i&gt; what the nature of the problem was. I didn't know exactly where it was occurring, nor why it was occurring, but I did know what was happening.&lt;br /&gt;&lt;br /&gt;I've built up a lot of experience and knowledge over the years--I was an early adopter of Ada, understand concurrency and its pitfalls, I know how Ada runtime libraries handle tasking and concurrency, and I understand low-level programming at the level of raw memory, registers, and assembly language. In other words, I have deep knowledge of my niche of the industry. All of that was brought to bear in successfully tracking down this problem--not just working around the bug, but understanding &lt;span style="font-style: italic;"&gt;how to put together an approach to finding the bug in a very sensitive execution environment&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The specifics of a coding war story probably aren't all that interesting to those who aren't familiar with the particulars of its nature and environment, but they are useful for gleaning an understanding of what it takes to solve really difficult problems.&lt;br /&gt;&lt;br /&gt;To solve the really difficult problems you need to be more than a coder, you have to understand the "fate" of that code, how it interacts with its environment, and how its environment itself operates.&lt;br /&gt;&lt;br /&gt;Then you too can get your Thanksgiving holiday all messed up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7979650207200963619?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7979650207200963619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7979650207200963619' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7979650207200963619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7979650207200963619'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/12/coding-war-story-whats-your-point.html' title='A Coding War Story: What&apos;s Your Point?'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3842959868634689977</id><published>2007-11-29T14:39:00.000-06:00</published><updated>2007-12-06T07:27:31.290-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cosmology'/><category scheme='http://www.blogger.com/atom/ns#' term='Beltrami'/><category scheme='http://www.blogger.com/atom/ns#' term='Mathematics'/><title type='text'>Criminy! A Person Really Can Grasp the Concept of a "Tenth Dimension"!</title><content type='html'>&lt;i&gt;And&lt;/i&gt; understand why 10 is the limit!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tenthdimension.com/medialinks.php"&gt;Imagining the Tenth Dimension&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3842959868634689977?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3842959868634689977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3842959868634689977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3842959868634689977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3842959868634689977'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/criminy-person-really-can-grasp-concept.html' title='Criminy! A Person Really &lt;i&gt;Can&lt;/i&gt; Grasp the Concept of a &quot;Tenth Dimension&quot;!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2494624465182276417</id><published>2007-11-25T07:56:00.000-06:00</published><updated>2007-11-25T08:07:54.356-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Becker'/><category scheme='http://www.blogger.com/atom/ns#' term='Theory'/><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Hypothesis'/><category scheme='http://www.blogger.com/atom/ns#' term='Law'/><title type='text'>A Plain and Simple Guide to Theories and Laws (and Hypotheses)</title><content type='html'>Somewhere growing up I'd gotten the idea that when scientists were figuring out something they'd look at what they'd discovered and make a hypothesis; then as they learned more the hypothesis would be refined into a theory, and once the theory was proven it would become a law.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Theories become laws, right?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;But there was something about all this confused me.  I grew up as a geeky kid and so I had a vague notion of what the "Theory of Relativity" was about, and one day on the radio I heard the newscaster say that "The theory of relativity is no longer a theory, it's a fact. It's been proven." (I have &lt;b&gt;no&lt;/b&gt; recollection whatsoever as to what experimental confirmation resulted in this particular proclamation being made at that particular time.)&lt;br /&gt;&lt;br /&gt;So I expected to stop hearing about the "theory" of relativity and expected that there'd be this transition to the "Law of Relativity". But that never happened.&lt;br /&gt;&lt;br /&gt;Eventually I figured out why.&lt;br /&gt;&lt;br /&gt;This notion that theories eventually become laws once they're proven?&lt;br /&gt;&lt;br /&gt;Wrong. Completely wrong. And not just wrong, but the idea itself actually doesn't even make sense.&lt;br /&gt;&lt;br /&gt;One other tangent and then I'll explain why.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;That's &lt;i&gt;just&lt;/i&gt; a theory!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In popular usage the word "theory" means something like &lt;a href="http://dictionary.reference.com/browse/theory"&gt;"contemplation or speculation" (6)&lt;/a&gt;, or &lt;a href="http://dictionary.reference.com/browse/theory"&gt;"guess or conjecture" (7)&lt;/a&gt;. So you hear "theoretically speaking...", or "It's just a theory..." This is fine, a word can mean whatever people want it to mean, &lt;i&gt;so long as everyone in the conversation understands the intended meaning&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;But in different contexts, the same word can have very different, even if somewhat related, meanings.&lt;br /&gt;&lt;br /&gt;Take "swear", for instance.  On the one hand, you have the &lt;a href="http://en.wikipedia.org/wiki/Pinky_swear"&gt;"pinky swear"&lt;/a&gt;, an "informal way of sealing a promise."  Which, if you break it, the worst that can happen is that there will likely be anger, a feeling of betrayal, and possibly a damaged or lost friendship.&lt;br /&gt;&lt;br /&gt;Then there's swearing to the truth of your testimony in a court of law. Swear falsely there and you may find yourself charged with &lt;a href="http://www.perjury.us/statutes.html"&gt;perjury&lt;/a&gt; and subsequently spending time in jail.&lt;br /&gt;&lt;br /&gt;So, swearing. Same word, same general meaning, but in different venues its meaning is seriously different.&lt;br /&gt;&lt;br /&gt;And the same goes with the word "theory".&lt;br /&gt;&lt;br /&gt;&lt;b&gt;So a "theory" is what then, exactly?  And "laws" and "hypotheses" too, what exactly are they?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Well, in the world of scientific pursuit, a &lt;i&gt;theory&lt;/i&gt; is simply a comprehensive &lt;i&gt;explanation&lt;/i&gt; of observations.&lt;br /&gt;&lt;br /&gt;That's really it, in a nutshell.&lt;br /&gt;&lt;br /&gt;Outside of the nutshell the purpose of a theory is to explain &lt;i&gt;why&lt;/i&gt; one is seeing the behavior they're seeing.  Thy sky is blue, rocks fall, and cold air sinks.  Why?  The &lt;i&gt;explanation&lt;/i&gt; of each of these comes from a &lt;i&gt;theory&lt;/i&gt; (&lt;a href="http://en.wikipedia.org/wiki/Diffuse_sky_radiation"&gt;Rayleigh scattering&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Gravity"&gt;gravity&lt;/a&gt;, and the &lt;a href="http://en.wikipedia.org/wiki/Kinetic_theory_of_gases"&gt;kinetic theory of gases&lt;/a&gt;, respectively).  The actual observed characteristics and behaviors can be determined by calculating the results of the theories' associated "laws" that describe &lt;i&gt;what&lt;/i&gt; happens.&lt;br /&gt;&lt;br /&gt;The Laws are the formulas, the description of what outputs you'll get given a particular set of inputs.  A "law" &lt;i&gt;describes&lt;/i&gt; the behavior, while a theory attempts to &lt;i&gt;explain&lt;/i&gt; why that law functions the way it does.&lt;br /&gt;&lt;br /&gt;And the neat thing about theories is that if you've got a good one--one that explains why you're seeing what you're seeing, and why things are acting the way they're acting--you can then go on and start making predictions about things you &lt;i&gt;haven't yet seen&lt;/i&gt;.  Some scientists did this for Einstein's Theory of Relativity, predicting that satellites orbiting the earth would get &lt;a href="http://www.space.com/scienceastronomy/warp_space_041020.html"&gt;"dragged" forward an extra six feet a year&lt;/a&gt; because of the relativistic effect of the earth's rotation on its surrounding space.  After making millions of measurements over &lt;i&gt;11 years&lt;/i&gt; they saw that this "dragging" was in fact occurring, and their prediction closely matched the measurements, within &lt;i&gt;1%&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;So these are the key notions about the scientific type of theories:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They &lt;i&gt;have&lt;/i&gt; to logically and coherently explain what's being observed, and why it's acting (or acted) the way it does (did).&lt;/li&gt;&lt;li&gt;They &lt;i&gt;have&lt;/i&gt; to be able to make predictions that can then be tested.&lt;/li&gt;&lt;li&gt;New observations and facts that are discovered and are covered by a theory &lt;i&gt;have&lt;/i&gt; to be explainable by that theory.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If a fact &lt;i&gt;contradicts&lt;/i&gt; a theory, then the theory is flawed.&lt;br /&gt;&lt;br /&gt;Now a theory may not explain &lt;i&gt;everything&lt;/i&gt; in its area of concern, but that doesn't necessarily mean it's flawed, only that it's incomplete.  And with more research, and more experiments, and more data, and more thinking, those unexplained areas may get filled in over time.  This is actually the way science progresses, usually just a little bit at a time as more information is collected, which helps the theories get more and more refined.&lt;br /&gt;&lt;br /&gt;Now what gets really interesting is when a well-established theory, like &lt;a href="http://en.wikipedia.org/wiki/Newtonian_mechanics"&gt;Newtonian Mechanics&lt;/a&gt;, finds itself confronted with facts, like the &lt;a href="http://en.wikipedia.org/wiki/Newtonian_mechanics#History"&gt;energy levels and sizes of atoms&lt;/a&gt;, that contradict what the theory requires.  This can result in the creation of a whole new theory, like &lt;a href="http://en.wikipedia.org/wiki/Introduction_to_quantum_mechanics"&gt;quantum mechanics&lt;/a&gt;, that not only explains those problematic facts, but &lt;i&gt;also&lt;/i&gt; has to still be able to explain everything the previous theory did, and do it just as well, if not better.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You forgot "hypotheses"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Yeah, okay.  A hypothesis is usually an initial &lt;i&gt;suggested&lt;/i&gt; explanation for some phenomenon. It's like the first initial cut at a theory, just kinda suggesting a starting point for a theory that then has to go out and start being tested and confirmed, and continuously refined until it either works itself up into a full-blown theory, or, is disproved and discarded.&lt;br /&gt;&lt;br /&gt;Hypotheses can also arise out of a theory, as when trying to fill in an area that the theory doesn't yet explain. A hypothesis can be a candidate explanation, based on what the theory says, for the unknown area.  Which is then tested to see if it is valid, with the results of experiments either confirming the hypothesis, thus indicating that it belongs as part of the theory, or disproving the hypothesis, which is useful too since it rules something &lt;i&gt;out&lt;/i&gt; of the theory.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Theories become laws?  That's silly!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Since a theory is an explanation (and hypotheses are tentative, candidate explanations), and laws are descriptions of behavior, it's easy to see now that the notion of a theory becoming a law is just nonsense.  They're two different things. &lt;br /&gt;&lt;br /&gt;A theory &lt;i&gt;explains&lt;/i&gt; why a law comes up with the results it does.&lt;br /&gt;&lt;br /&gt;So the next time someone comes up to you and says, "Most of the theories in astronomy are simply that--theories. Most of the theories have no concrete evidence", you'll now know that they don't really know the first thing about what a scientific theory actually is.&lt;br /&gt;&lt;br /&gt;A theory without evidence is &lt;i&gt;by definition&lt;/i&gt; not a theory, it's just a guess at best, a fantasy at worst.&lt;br /&gt;&lt;br /&gt;So when presented with an &lt;b&gt;actual&lt;/b&gt; theory, be aware of what went into developing it, how it has to explain the evidence, and make predictions, and continue to be valid as related new data and phenomena are collected and observed over time.&lt;br /&gt;&lt;br /&gt;Theoretically this should help clear things up. I hope it helped!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2494624465182276417?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2494624465182276417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2494624465182276417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2494624465182276417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2494624465182276417'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/plain-and-simple-guide-to-theories-and.html' title='A Plain and Simple Guide to Theories and Laws (and Hypotheses)'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-318156788698222069</id><published>2007-11-21T11:56:00.001-06:00</published><updated>2007-11-22T09:18:40.626-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Anoka'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Dog'/><category scheme='http://www.blogger.com/atom/ns#' term='Volcano'/><category scheme='http://www.blogger.com/atom/ns#' term='Nature'/><category scheme='http://www.blogger.com/atom/ns#' term='Cool Picture'/><title type='text'>Dog and a Plume -- Mount St. Helens Style!</title><content type='html'>I periodically check the Mount St. Helens &lt;a href="http://www.fs.fed.us/gpnf/volcanocams/msh/views/java-highdef.php#"&gt;volcano cam&lt;/a&gt; during the day and fortuitously caught this image (click to biggify):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r4IV1FbaUpc/R0Rxx6gZziI/AAAAAAAAAAM/Gj8BWEhmQ8U/s1600-h/MSHandDog.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_r4IV1FbaUpc/R0Rxx6gZziI/AAAAAAAAAAM/Gj8BWEhmQ8U/s320/MSHandDog.bmp" alt="" id="BLOGGER_PHOTO_ID_5135354577441902114" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-318156788698222069?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/318156788698222069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=318156788698222069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/318156788698222069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/318156788698222069'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/dog-and-plume-mount-st-helens-style.html' title='Dog and a Plume -- Mount St. Helens Style!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r4IV1FbaUpc/R0Rxx6gZziI/AAAAAAAAAAM/Gj8BWEhmQ8U/s72-c/MSHandDog.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7164497390188105974</id><published>2007-11-20T09:19:00.000-06:00</published><updated>2007-11-20T09:24:58.455-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Body Art'/><category scheme='http://www.blogger.com/atom/ns#' term='Aitkin'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><title type='text'>Remember drawing on yourself in grade school?</title><content type='html'>Now in live action!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.metacafe.com/fplayer/914336/stickman_how_we_met.swf" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" height="345" width="400"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://www.metacafe.com/watch/914336/stickman_how_we_met/"&gt;Stickman How We Met&lt;/a&gt; - &lt;a href="http://www.metacafe.com/"&gt;Celebrity bloopers here&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-7164497390188105974?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7164497390188105974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7164497390188105974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7164497390188105974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7164497390188105974'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/remember-drawing-on-yourself-in-grade.html' title='Remember drawing on yourself in grade school?'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3034615015485935949</id><published>2007-11-15T07:03:00.000-06:00</published><updated>2007-11-15T07:11:10.121-06:00</updated><title type='text'>We're now blog.kickin-the-darkness.com</title><content type='html'>Got the domain name, relocated the blog.&lt;br /&gt;&lt;br /&gt;Nothing changing--same software, technology, and religious ramblings.&lt;br /&gt;&lt;br /&gt;Thanks for stopping by.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3034615015485935949?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3034615015485935949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3034615015485935949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3034615015485935949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3034615015485935949'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/were-now-blogkickin-darknesscom.html' title='We&apos;re now blog.kickin-the-darkness.com'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8798799375640844272</id><published>2007-11-14T12:46:00.000-06:00</published><updated>2007-11-14T12:48:14.843-06:00</updated><title type='text'>Change is our Friend</title><content type='html'>“Don't just tell customers you've changed; show them you've changed.”&lt;br /&gt;—Saabira Chaudhuri, Associate Editor, FastCompany.com&lt;br /&gt;&lt;br /&gt;I just discovered this website: http://www.fastcompany.com/homepage/index.html called FastCompany.com.&lt;br /&gt;&lt;br /&gt;It reminds me of the importance of Enterprise Architecture and how it is used to manage change in an organization for maximum effectiveness over time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8798799375640844272?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8798799375640844272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8798799375640844272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8798799375640844272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8798799375640844272'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/change-is-our-friend.html' title='Change is our Friend'/><author><name>Dan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8782811302188978565</id><published>2007-11-14T12:45:00.000-06:00</published><updated>2007-11-14T12:53:05.847-06:00</updated><title type='text'>Pico-Economics and Instant Pigeon Gratification</title><content type='html'>I just thought this was neat.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://enthusiasm.cozy.org/archives/2006/10/control-of-appetite/"&gt;proposal&lt;/a&gt; is that there's a "marketplace of ideas" that competes within one's own head, a "pico-economics" that controls our choices and behavior. And that this isn't just going on in our human heads, because animal experiments have shown it operating in them as well.&lt;br /&gt;&lt;br /&gt;Peck the third button, pigeon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8782811302188978565?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8782811302188978565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8782811302188978565' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8782811302188978565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8782811302188978565'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/pico-economics-and-instant-pigeon.html' title='Pico-Economics and Instant Pigeon Gratification'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-3461938189253307573</id><published>2007-11-14T09:54:00.000-06:00</published><updated>2007-11-14T10:06:32.808-06:00</updated><title type='text'>So Close It's Burning Ya...</title><content type='html'>I'm just a big fan of solar power, and aching for the day when I can start slapping down cheap solar shingles on my south-facing Alabama roofs, and then start wrapping everything in &lt;a href="http://www.popsci.com/popsci/flat/bown/2007/green/item_59.html"&gt;cheap, electricity generating solar films&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nanosolar.com/images/cellfoilHP.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://www.nanosolar.com/images/cellfoilHP.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nanosolar.com/"&gt;Nanosolar&lt;/a&gt; seems to be out in front right now. Where do I invest!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-3461938189253307573?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/3461938189253307573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=3461938189253307573' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3461938189253307573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/3461938189253307573'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/so-close-its-burning-ya.html' title='So Close It&apos;s Burning Ya...'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8241203186043459198</id><published>2007-11-13T22:59:00.000-06:00</published><updated>2007-11-13T23:17:47.837-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='alien cultures'/><category scheme='http://www.blogger.com/atom/ns#' term='fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='UFOs'/><category scheme='http://www.blogger.com/atom/ns#' term='truth'/><category scheme='http://www.blogger.com/atom/ns#' term='Trident'/><category scheme='http://www.blogger.com/atom/ns#' term='SysML'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='BLM'/><category scheme='http://www.blogger.com/atom/ns#' term='God'/><category scheme='http://www.blogger.com/atom/ns#' term='Jesus'/><category scheme='http://www.blogger.com/atom/ns#' term='2020'/><category scheme='http://www.blogger.com/atom/ns#' term='Intelligence Community'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='B2 Stealth Bomber'/><category scheme='http://www.blogger.com/atom/ns#' term='human culture'/><category scheme='http://www.blogger.com/atom/ns#' term='NASA'/><title type='text'>Beyond NASA, Beyond Mars</title><content type='html'>I have barely posted to this blog started by my dear friend Marc.  I seek to turn that around in the coming days.  However, I'd like to propose a few topics to cross-pollinate.  I am an enterprise architect, a systems engineer, a systems architect, and a software engineer.  I am interested in the far reaching elements of design and pushing state-of-the-art in many disciplines simultaneously.  As such, I'd like to propose for starters what might be perceived as a vast array of disparate topics to discuss and then start blending them together.&lt;br /&gt;&lt;br /&gt;My career has taken me from EPA superfund projects, to Trident nuclear submarine software, to engineering the math model compiler for the B2 Stealth Bomber air crew training device, to designing the vision for smart weapons that can see and autonomously shoot tanks, to developing field artillery tactical data systems, to developing military intelligence workstations, to developing international communications satellite ground stations, to becoming the U.S. Bureau of Land Management's national technology architect, to developing visions for 2020 intelligence community service oriented architectures, to my current role as a systems engineer working for NASA's IV&amp;V facility in Fairmont, West Virginia.  This has been a wonderful and beautiful ride from one ground breaking project to another.  As such, I have seen and done much in my 25+ year career, but my dear friends this is just the beginning as something wonderful is about to happen.&lt;br /&gt;&lt;br /&gt;Here are some of the topics I will be touching on in the coming weeks: architecture, design, systems engineer, software design, software development, NASA space craft, UML, SysML, building architecture, automotive design, UFO's, UFO footage, human culture, alien cultures, human exploration of space, God Almighty and his only begotten son Jesus, and many other topics.  This might seem like the ravings of a madman, but in truth, they are the explorations of a humble man who has seen much, done much, and seeks even more adventure.&lt;br /&gt;&lt;br /&gt;So, there is my introductory statement.  I look forward to our on-going discourse and discussion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8241203186043459198?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8241203186043459198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8241203186043459198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8241203186043459198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8241203186043459198'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/beyond-nasa-beyond-mars.html' title='Beyond NASA, Beyond Mars'/><author><name>Dan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-4923174966794872814</id><published>2007-11-13T07:13:00.001-06:00</published><updated>2007-11-13T07:16:30.425-06:00</updated><title type='text'>Mean and Green: The 100 mpg Hummer</title><content type='html'>My father was and is a tinkerer and hacker of mechanical hardware, I followed a similar path except that my milieu is software.  Had I stuck with the mechanics I could see myself having gotten into &lt;a href="http://www.fastcompany.com/magazine/120/motorhead-messiah.html"&gt;extreme fuel economy makeovers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Go Jonathan!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-4923174966794872814?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/4923174966794872814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=4923174966794872814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4923174966794872814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/4923174966794872814'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/mean-and-green-100-mpg-hummer.html' title='Mean and Green: The 100 mpg Hummer'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-7570637375870827349</id><published>2007-11-08T12:54:00.000-06:00</published><updated>2007-11-08T12:55:00.712-06:00</updated><title type='text'>This Guy Trusts His Code</title><content type='html'>&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yln_IGDuOCo&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/yln_IGDuOCo&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&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/8919860543765866292-7570637375870827349?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/7570637375870827349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=7570637375870827349' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7570637375870827349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/7570637375870827349'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/11/this-guy-trusts-his-code.html' title='This Guy Trusts His Code'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5930419830099632313</id><published>2007-10-31T08:51:00.000-05:00</published><updated>2007-10-31T08:58:26.333-05:00</updated><title type='text'>Why What You Don't Know Keeps Growing--It's Geometry!</title><content type='html'>A geometrically insightful way of explaining why the more you know, the more &lt;a href="http://amansharma.wordpress.com/2007/10/14/how-bad-you-are/"&gt;you realize you don't know&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;"As our circle of knowledge expands, so does the circumference of darkness surrounding it."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5930419830099632313?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5930419830099632313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5930419830099632313' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5930419830099632313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5930419830099632313'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/why-what-you-dont-know-keeps-growing.html' title='Why What You Don&apos;t Know Keeps Growing--It&apos;s Geometry!'/><author><name>Marc</name><uri>http://www.blogger.com/profile/12056366828578886383</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_r4IV1FbaUpc/SyegIHi152I/AAAAAAAAAGc/1dBGN5qEx8A/S220/FrostyCroc.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8126569899699173890</id><published>2007-10-22T12:50:00.000-05:00</published><updated>2007-10-23T12:07:50.892-05:00</updated><title type='text'>Bugs. Infestation. Vulnerability. Gauging your Level.</title><content type='html'>A good way to start a war among software developers is to state that it's impossible to write bug-free software for anything more complicated than a "Hello World" program. And that goes for claiming the reverse as well. Though "Helo World" has even had its problems at times.&lt;br /&gt;&lt;br /&gt;However, there are Bug Infestation Vulnerability Levels (BIVLs) that correspond to software development practices, and these can be a useful shorthand for identifying just how much you're wanting to work at, and spend on, bug eradication.&lt;br /&gt;&lt;br /&gt;(First off, we do need to make &lt;b&gt;some&lt;/b&gt; assumptions, like that the hardware works, and that the compiler correctly compiles, or that the virtual machine or interpreter correctly executes the byte codes or other constructs making up the program.)&lt;br /&gt;&lt;br /&gt;OK, so let's start with ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;BIVL &lt;span style="font-size:100%;"&gt;0&lt;/span&gt;: Invulnerable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Believe it or not, by leveraging formal mathematical techniques like &lt;a href="http://vl.zuser.org/"&gt;Z Notation&lt;/a&gt; and the &lt;a href="http://www.b-core.com/"&gt;B Method&lt;/a&gt;, and by it now being practical to &lt;a href="http://www.praxis-his.com/sparkada/technical.asp"&gt;perform program verification&lt;/a&gt; to formally prove correctness, it is actually possible to write defect-free &lt;a href="http://www.praxis-his.com/pdfs/issse2006tokeneer.pdf"&gt;non-trivial applications&lt;/a&gt;, and incredibly enough, still actually be seriously productive in doing it, at least in a corporate, mission-critical environment.&lt;br /&gt;&lt;br /&gt;But then when you think about it, why shouldn't you have a decent productivity rate when employing such formal practices? Once the code is written, compiled, and formally proven correct--meaning zero defects--there's no debugging (because there's no bugs, get it?), so there's no tracking down problems, no devising fixes, and no patch integration. Kinda knocks a lot of time off the test phases, eh?&lt;br /&gt;&lt;br /&gt;Now whether what you write conforms to your &lt;i&gt;requirements&lt;/i&gt; is another matter, but as far as &lt;i&gt;software implementation &lt;/i&gt;goes, this is as close to defect-free software development as you're going to get, and it's no longer just for trivial applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;BIVL 1: Best Effort&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Despite all the proven benefits in saving time and effort involved with the use of formal methods and proving program correctness, it remains limited to a very, very small number of projects, usually just those with extraordinary safety or security requirements.&lt;br /&gt;&lt;br /&gt;Frankly, the rest of us programmers just want to do some design and then get coding. For those who are really passionate about writing high quality software, but just can't get into the formal stuff, obsessing about doing everything else possible to keep bugs out of the code results in BIVL 1 software. That means:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using a programming language that helps prevent or flush out errors&lt;/li&gt;&lt;li&gt;Employing assertions, design contracts, or the equivalent&lt;/li&gt;&lt;li&gt;Code inspections&lt;/li&gt;&lt;li&gt;Expecting any invocation of any external service to fail sooner or later&lt;/li&gt;&lt;li&gt;Distrusting the validity of everything that comes in from an external interface. Or from any code you didn't personally write. Or from code that you did personally write.&lt;/li&gt;&lt;/ul&gt;Making a BIVL 1 Best Effort is &lt;i&gt;not defined in terms of the programmer's&lt;/i&gt; "best effort", i.e., the best they themselves are inherently capable of. It's actually putting into practice those objective programming practices listed above (along with others) that result in making the Best Effort possible to produce high quality software. Doing this conscientiously can even make a &lt;a href="http://kickin-the-darkness.blogspot.com/2007/09/confessions-of-terrible-programmer.html"&gt;Terrible Programmer&lt;/a&gt; look pretty good.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;BIVL 2: I've got to get this done &lt;i&gt;tonight&lt;/i&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This, unfortunately, is the norm. You gotta get the code out the door, or over to test, and there just isn't time to add code to validate every external interface (which should all be working correctly anyway), or figure out what kinds of assertions to put in the code, and no one has any time to inspect &lt;i&gt;anything&lt;/i&gt;; but hey, you're a good programmer, or at least "extremely adequate". Sure, you check for the stuff you know could fail, like a file not found, or losing a connection, but beyond that the likelihood of a function failing really is exceedingly rare.&lt;br /&gt;&lt;br /&gt;And besides, &lt;i&gt;all software has bugs&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;At this point click over to your favorite software project &lt;a href="http://www.it-cortex.com/Stat_Failure_Rate.htm"&gt;failure statistics&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The obvious irony of this is that part of the reason there isn't time to put in all the checking and validation stuff is because of having to spend time fixing bugs that, well, could've been caught sooner and fixed more easily if more error checking and validation (and paranoia) had been incorporated earlier in the development cycle. So valuable time is spent going back and fixing bugs, and retesting, and reintegrating, and redelivering, and reviewing and prioritizing the never-ending stream of bug reports.&lt;br /&gt;&lt;br /&gt;Why is it there's never time to do it right, but there's always time to do it over?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;BIVL 3: "Hey, at least it didn't crash..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you're going to write code this crappy, why even bother? What are you hoping to accomplish?&lt;br /&gt;&lt;br /&gt;One guy I worked with spent a week developing some aero data analysis functions, which then ended up on the shelf for a few months. He moved on to another department, and so when it came time to integrate these functions into the full system another developer picked them up. This latter developer decided to hand run some of the functions just as a sanity check, and kept getting incorrect results. When he dug into the code he discovered that the analysis was all wrong, and that the functions never came up with the right results. He ended up taking another week or so to rewrite it, this time verifying that the outputs were actually correct, instead of just non-zero. The original developer? I think he was ladder-climbing into management--probably just as well.&lt;br /&gt;&lt;br /&gt;Maybe your software does happen to work correctly, but only when absolutely nothing unexpected happens, when all services and interfaces work properly and return only valid data, when nothing is at (or beyond) the boundary conditions, when all inputs fall within the realm of "normal" use.&lt;br /&gt;&lt;br /&gt;And if something off-kilter does occur? Well, you have no idea how the software is going to react. Maybe it will crash, maybe it will start acting flaky, and maybe there will be absolutely no indication at all that something has been going awry for a long, long time.&lt;br /&gt;&lt;br /&gt;What did you think was going to happen?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Summarizing the Bug Infestation Vulnerability Levels:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;0 - I have proven that nothing can go wrong (really, no joke).&lt;/li&gt;&lt;li&gt;1 - I know everything that can go wrong.&lt;/li&gt;&lt;li&gt;2 - I don't know what all can go wrong, but I'm pretty sure when it's going right.&lt;/li&gt;&lt;li&gt;3 - Is this thing on?&lt;/li&gt;&lt;/ul&gt;The amount of time spent testing and integrating always exceeds the time spent coding. It's a tired refrain, but true nonetheless: Spending more time in coding, and conscientiously coding defensively, reduces test and integration time, and therefore overall development time.&lt;br /&gt;&lt;br /&gt;Driving down your BIVL can actually reduce development time by markedly reducing the rework portion of the development schedule. There are techniques to drive that level down that result in increased code quality. Some are more formal than others, but the main requirement is recognizing that good software is difficult to write, and then being &lt;i&gt;mentally prepared and disciplined and equipped&lt;/i&gt; with the right techniques and tools to manage that difficulty.&lt;br /&gt;&lt;br /&gt;Good code is doable, and doable efficiently.&lt;br /&gt;&lt;br /&gt;What's your Level?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8126569899699173890?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8126569899699173890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8126569899699173890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8126569899699173890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8126569899699173890'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/bugs-infestation-vulnerability-gauging.html' title='Bugs. Infestation. Vulnerability. Gauging your Level.'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5595546806707276485</id><published>2007-10-22T11:52:00.000-05:00</published><updated>2007-10-22T12:00:43.474-05:00</updated><title type='text'>Looks Like a Good Time for Techies to Take a Career Risk</title><content type='html'>Regardless of boom/bust cycles, technology jobs are, and show every sign of continuing to be, in high demand. Steve Tobak recommends taking advantage of an &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.cnet.com/8301-13555_1-9801292-34.html?tag=head"&gt;opportunity&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;"You know why I'm confident that risk-taking is good for you? Because, my interpretation of the Labor Department's data is that you've got the biggest safety net of all time under you. Use it."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5595546806707276485?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5595546806707276485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5595546806707276485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5595546806707276485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5595546806707276485'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/looks-like-good-time-for-techies-to.html' title='Looks Like a Good Time for Techies to Take a Career Risk'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-8941829191558666787</id><published>2007-10-22T08:19:00.000-05:00</published><updated>2007-10-22T08:27:14.774-05:00</updated><title type='text'>Samurai Programming</title><content type='html'>Excellent &lt;a href="http://www.wilshipley.com/blog/2005/02/free-programming-tips-are-worth-every.html"&gt;post&lt;/a&gt; with suggestions on getting good code out the door.&lt;br /&gt;&lt;br /&gt;"* The Way of the Code Samurai *&lt;br /&gt;&lt;br /&gt;Now, I don't actually know much about real samurai, but the basic thing I've heard is they stand and stare at each other for hours, and then suddenly BAM strike once and the other guy is down.&lt;br /&gt;&lt;br /&gt;That's how you should code."&lt;br /&gt;&lt;br /&gt;So I'm not the only one that paces around my cube, sketches on the whiteboard, walks the halls, and thinks for hours and sometimes even days about how to approach a hard problem, until...it's ready. I then sit down, fire up the editor, and go to it.&lt;br /&gt;&lt;br /&gt;There's more, too, in that post, which closely align with the coding philosophies and techniques I've successfully used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-8941829191558666787?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/8941829191558666787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=8941829191558666787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8941829191558666787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/8941829191558666787'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/samurai-programming.html' title='Samurai Programming'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-255967697174561116</id><published>2007-10-21T10:22:00.000-05:00</published><updated>2007-10-21T14:14:40.159-05:00</updated><title type='text'>A Christian Realist's (Brief) Perspective on General and Special Revelation</title><content type='html'>﻿Back when I was a kid the minister or Sunday school teacher, I don't remember which, was talking about how God provided us with "General Revelation", which was the material universe, and "Special Revelation", which he memorably described by holding up a Bible and noting that he was holding the sum total of God's Special Revelation.&lt;br /&gt;&lt;br /&gt;General Revelation tells us about God because God caused the universe to come into being and it therefore reflects His nature, and Special Revelation was explicitly provided to us by inspiration, dictation, and the observation and recording of historical events.&lt;br /&gt;&lt;br /&gt;The two must be in harmony because &lt;a href="http://kickin-the-darkness.blogspot.com/2007/08/god-is-rationalgod-is-not-irrational.html"&gt;God is rational&lt;/a&gt; and so it would make no sense for these two representations of God's nature to be in conflict with one another. Throughout history, however, there has been a perceived conflict between the Universe as we understand it versus the content of the Bible, a conflict that continues to the present day.&lt;br /&gt;&lt;br /&gt;General and Special Revelation, while related, are distinct bodies of knowledge. Each informs the other, and our goal is to increase our understanding of them, coming closer to the fundamental Truths of each.&lt;br /&gt;&lt;br /&gt;Our knowledge of what the universe is, from quarks to cosmos, evolves over time as we're able to &lt;a href="http://en.wikiquote.org/wiki/Isaac_Newton"&gt;build on the knowledge that was gathered before&lt;/a&gt;, and as our technology gives us access to information about the universe that was &lt;a href="http://physics.nist.gov/GenInt/STM/stm.html"&gt;previously inaccessible&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Likewise our understanding of the Bible grows and changes over time, as our culture and society become more sophisticated: no more the &lt;a href="http://bibletools.org/index.cfm/fuseaction/Def.show/RTD/isbe/ID/2755/Divorce-In-Old-Testament.htm"&gt;explicit subordination of women&lt;/a&gt;, tolerance of &lt;a href="http://www.religioustolerance.org/sla_bibl1.htm"&gt;slavery&lt;/a&gt;, or &lt;a href="http://www.rationalchristianity.net/genocide.html"&gt;genocide&lt;/a&gt;. Arguing that the Bible is always taken literally, and not subject to interpretation, is specious: for example, very few conservative Christian churches implement &lt;a href="http://www.usccb.org/nab/bible/1corinthians/1corinthians11.htm"&gt;1 Cor 11:5-6&lt;/a&gt; regarding the covering of women's heads in church.&lt;br /&gt;&lt;br /&gt;Our knowledge of the universe is imperfect, and our wisdom in interpreting the Bible is imperfect, but in my opinion we have a good overall handle on both. When the two come into apparent conflict, &lt;i&gt;research, reconsideration, and refinement of our understanding of one or the other (or both)&lt;/i&gt; is needed.&lt;br /&gt;&lt;br /&gt;The material universe, and our knowledge of it, is objective. It can be observed, measured, and experimented upon. It works consistently and reliably in its framework of physical laws, and it truly has no secrets, only things that have not yet been discovered.&lt;br /&gt;&lt;br /&gt;Special revelation provides an explanation and rationale for our place in the universe, it addresses existential, ethical, moral, and philosophical issues of what is humanity, and how we should then live.&lt;br /&gt;&lt;br /&gt;The Special Revelation of the Bible builds on the General Revelation of the universe, so it &lt;a href="http://andrewsullivan.theatlantic.com/the_daily_dish/2007/10/science-and-fai.html"&gt;&lt;i&gt;cannot&lt;/i&gt; contradict&lt;/a&gt; it.&lt;br /&gt;&lt;br /&gt;When the two appear to conflict, more research and study, in pursuit of a more complete understanding, is needed. The Bible "amplifies" the understanding and explanation of nature, it does not define it. The material universe is as it is, its reality is its own definition.&lt;br /&gt;&lt;br /&gt;Astronomy and geology have determined that the universe is &lt;a href="http://www.astro.ucla.edu/%7Ewright/age.html"&gt;13.7 billion years old&lt;/a&gt;, and the earth &lt;a href="http://gpc.edu/%7Epgore/geology/geo102/age.htm"&gt;4.6 billion&lt;/a&gt;, respectively, and these are objective facts. The "young earth" interpretation some make of the Bible's Genesis account of creation that concludes the Earth is 6000 years old flies in the face of the facts, and so is clearly wrong. The "six days" of creation obviously can't be interpreted to mean six literal 24-hour days, because that interpretation conflicts with reality. And that should've been the end of that debate once the ages of the Earth and the universe had gotten pinned down.&lt;br /&gt;&lt;br /&gt;Putting primacy on one's interpretation of Biblical passages &lt;i&gt;when discussing objective reality&lt;/i&gt;, i.e. the behavior and composition of the universe, is misguided, it's mixing apples and oranges. Too many Christians don't understand this, and think that citing the Bible to support one's belief about &lt;i&gt;any&lt;/i&gt; particular subject, spiritual or material, is irrefutable proof that that belief is a fact. (In actuality, the facts of the nature of the material universe are right in front of one, and all that's required is a willingness to study, analyze, and understand. And maybe an &lt;a href="http://www.nsf.gov/"&gt;NSF&lt;/a&gt; grant or two :-)&lt;br /&gt;&lt;br /&gt;Since the Bible literally defines the Christian faith, citing the Bible is perfectly valid in &lt;i&gt;that&lt;/i&gt; domain, e.g., "What is the Christian conception of 'Heaven'?".&lt;br /&gt;&lt;br /&gt;But it's much less so when stepping outside that domain: "How do you know there's a heaven?" "Because the Bible says so." Such an assertion is completely lost on an atheist or anyone who doesn't acknowledge the Bible as an authoritative document.&lt;br /&gt;&lt;br /&gt;Christians, especially conservative ones, don't seem to grasp this latter point--because that authority is an intrinsic part of their belief system, discounting it is inexplicable, and so it's concluded that the work of the Devil is the ONLY possible explanation.&lt;br /&gt;&lt;br /&gt;For a person to become a Christian, they need to understand what the Christian faith is, and accept that it's a valid faith. Now one obviously uses the Bible to describe &lt;i&gt;what&lt;/i&gt; it is, to show that it is internally consistent, and to show that it is consistent with human nature, but one can't use the Bible to "prove" the Bible. A person who moves from non-believer to believer may have it come on them like a bolt from the blue--an epiphany--or it may be a long, &lt;a href="http://en.wikipedia.org/wiki/C._S._Lewis#Conversion_to_Christianity"&gt;intellectual struggle&lt;/a&gt; that brings one to belief, or more commonly something in between, like the example of one's whose "life changed" due to the acceptance of Christianity.&lt;br /&gt;&lt;br /&gt;The better that Christians understand this, and what the limitations of Biblical argument and interpretation are, the more effective they can be in bringing people into God's kingdom.&lt;br /&gt;&lt;br /&gt;But the more they try to assert the preeminence of one's &lt;span style="font-style: italic;"&gt;interpretation&lt;/span&gt; of Biblical passages that touch upon the natural world in a way that &lt;span style="font-style: italic;"&gt;seems&lt;/span&gt; inconsistent with observed reality, the more foolish they come across (and I don't mean foolish in a humble, edifying way, I mean foolish in a "you're wrong" kind of way).  And this just makes the task harder, because not only are Christians perceived as being out of touch with reality, but by not realizing it, and worse, unwilling to alter their beliefs in the face of reality, give the perception that Christianity is more about blind loyalty to a set of detached-from-reality beliefs, rather than the living, breathing, growing faith that it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-255967697174561116?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/255967697174561116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=255967697174561116' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/255967697174561116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/255967697174561116'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/christian-realists-brief-perspective-on.html' title='A Christian Realist&apos;s (Brief) Perspective on General and Special Revelation'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-6346086964389006459</id><published>2007-10-16T11:10:00.001-05:00</published><updated>2007-10-16T11:19:05.951-05:00</updated><title type='text'>Say Hello to my Leetle Friend</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_B5i2_XArf1A/RxTim1_0HwI/AAAAAAAAAAs/iBOX-ycZYq0/s1600-h/PMFace.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_B5i2_XArf1A/RxTim1_0HwI/AAAAAAAAAAs/iBOX-ycZYq0/s320/PMFace.jpg" alt="" id="BLOGGER_PHOTO_ID_5121967833184739074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After an Alabama summer of chowin' down on whatever it is &lt;a href="http://www.insecta-inspecta.com/mantids/praying/"&gt;praying mantises&lt;/a&gt; eat, they're finally ready to tackle the big stuff by early fall--mice, small pets, irritating neighbor children.&lt;br /&gt;&lt;br /&gt;This guy's every bit of six inches long, and cuts a sharp profile:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_B5i2_XArf1A/RxTjgV_0HxI/AAAAAAAAAA0/s7Mpc1nRHck/s1600-h/PMSide.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_B5i2_XArf1A/RxTjgV_0HxI/AAAAAAAAAA0/s7Mpc1nRHck/s320/PMSide.jpg" alt="" id="BLOGGER_PHOTO_ID_5121968821027217170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Off to the hunt...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-6346086964389006459?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/6346086964389006459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=6346086964389006459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6346086964389006459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/6346086964389006459'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/say-hello-to-my-leetle-friend.html' title='Say Hello to my Leetle Friend'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_B5i2_XArf1A/RxTim1_0HwI/AAAAAAAAAAs/iBOX-ycZYq0/s72-c/PMFace.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5651248802359399597</id><published>2007-10-12T10:37:00.000-05:00</published><updated>2007-10-12T13:21:51.072-05:00</updated><title type='text'>"Dinosaur Programmers" Illustrated</title><content type='html'>The &lt;a href="http://xach.com/tmp/wip/motiv.html"&gt;perfect illustration&lt;/a&gt; for an &lt;a href="http://kickin-the-darkness.blogspot.com/2007/10/dinosaur-programmers-know-more-than-you.html"&gt;earlier post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5651248802359399597?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5651248802359399597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5651248802359399597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5651248802359399597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5651248802359399597'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/dinosaur-programmers-illustrated.html' title='&quot;Dinosaur Programmers&quot; Illustrated'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-2626021386951853752</id><published>2007-10-12T08:04:00.000-05:00</published><updated>2007-10-12T08:08:52.466-05:00</updated><title type='text'>Titan's Lake Country</title><content type='html'>Here's a nice &lt;a href="http://www.nasa.gov/mov/192150main_pia10008-640.mov"&gt;flyover of all the radar imagery&lt;/a&gt; of Titan's lake country, up in the North Polar region. Bring a jacket, it's cold--around -179 Celsius.&lt;br /&gt;&lt;br /&gt;Ah, lakes and frigid temps, ya sure reminds me of home.  :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-2626021386951853752?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/2626021386951853752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=2626021386951853752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2626021386951853752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/2626021386951853752'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/titans-lake-country.html' title='Titan&apos;s Lake Country'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-5546720411005684101</id><published>2007-10-08T09:02:00.000-05:00</published><updated>2007-10-08T09:50:10.165-05:00</updated><title type='text'>Design Patterns Indicate Programming Language Weakness?</title><content type='html'>Mark Dominus at &lt;a href="http://blog.plover.com/"&gt;The Universe of Discourse&lt;/a&gt; examines the role &lt;a href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29"&gt;design patterns&lt;/a&gt; are playing in software design today and &lt;a href="http://blog.plover.com/prog/design-patterns.html"&gt;draws some conclusions&lt;/a&gt; about what their use and promotion indicates about the state of programming languages.&lt;br /&gt;&lt;br /&gt;My reaction to his conclusions is mixed.&lt;br /&gt;&lt;br /&gt;Dominus looks way back to how the "subroutine call" design pattern eventually got subsumed into programming languages, thereby removing the need for programmers to explicitly code saving parameters and the return address, in favor of simply "making a function call".&lt;br /&gt;&lt;br /&gt;Similarly, one can do object oriented programming in C by following a widely used "Object-Oriented class" pattern, which has since been directly incorporated into other programming languages via "class definition" semantics.&lt;br /&gt;&lt;br /&gt;He concludes that "[design] patterns should be used as signposts to the failures of the programming language.  As in all programming, the identification of commonalities should be followed by an abstraction step in which the common parts are merged into a single solution."&lt;br /&gt;&lt;br /&gt;There's definitely merit to this argument, as evidenced by his citing the incorporation of subroutine and class "patterns" into programming languages.  Even more advanced patterns, such as &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/a&gt;, he observes are starting to show up in programming systems such as as &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The aspect that gives me pause, though, is just how where does one draw the line when considering whether to "incorporate a design pattern" into a programming language?&lt;br /&gt;&lt;br /&gt;Nowadays, it seems like a no-brainer to incorporate subroutines, classes, and &lt;a href="http://en.wikibooks.org/wiki/Ada_Programming/Tasking"&gt;concurrency&lt;/a&gt; as built-in programming language features.&lt;br /&gt;&lt;br /&gt;But is MVC an appropriate pattern to build in? How far should you go building in direct support for &lt;a href="http://en.wikipedia.org/wiki/Distributed_computing#Languages"&gt;distributed processing&lt;/a&gt; into a programming language?&lt;br /&gt;&lt;br /&gt;Left unchecked, using design patterns as a guideline for programming language evolution will result in &lt;a href="http://kickin-the-darkness.blogspot.com/2007/08/fundamental-theories-of-programming.html"&gt;the accrual of more and more language features&lt;/a&gt;, with a concomitant increases in complexity, specialization, and learning curve.&lt;br /&gt;&lt;br /&gt;Are we considering leaving the era of the "general purpose" programming language behind? And what does it mean to the underpinnings of our software technology &lt;a href="http://kickin-the-darkness.blogspot.com/2007/09/picking-right-tool-is-tautology.html"&gt;if we do&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-5546720411005684101?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/5546720411005684101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=5546720411005684101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5546720411005684101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/5546720411005684101'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/design-patterns-indicate-programming.html' title='Design Patterns Indicate Programming Language Weakness?'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8919860543765866292.post-1589688799935423638</id><published>2007-10-06T07:46:00.000-05:00</published><updated>2007-10-06T07:49:10.090-05:00</updated><title type='text'>The Appendix: Boot ROM of the Digestive System</title><content type='html'>Some scientists think they may have &lt;a href="http://www.cnn.com/2007/HEALTH/10/05/appendix.purpose.ap/index.html"&gt;figured out the purpose&lt;/a&gt; of the long thought useless appendix:&lt;br /&gt;&lt;br /&gt;"Diseases such as cholera or amoebic dysentery would clear the gut of useful bacteria. The appendix's job is to reboot the digestive system in that case."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8919860543765866292-1589688799935423638?l=blog.kickin-the-darkness.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.kickin-the-darkness.com/feeds/1589688799935423638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8919860543765866292&amp;postID=1589688799935423638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1589688799935423638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8919860543765866292/posts/default/1589688799935423638'/><link rel='alternate' type='text/html' href='http://blog.kickin-the-darkness.com/2007/10/appendix-boot-rom-of-digestive-system.html' title='The Appendix: Boot ROM of the Digestive System'/><author><name>Marc</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
