<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Falsehoods programmers believe about time - riff on the malleability of computer&#160;time</title>
	<atom:link href="http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html/feed" rel="self" type="application/rss+xml" />
	<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html</link>
	<description>Brain candy for Happy Mutants</description>
	<lastBuildDate>Fri, 24 May 2013 02:12:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
	<item>
		<title>By: Adam Lopresto</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454627</link>
		<dc:creator>Adam Lopresto</dc:creator>
		<pubDate>Wed, 20 Jun 2012 20:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454627</guid>
		<description> Or very relaxed values of =.</description>
		<content:encoded><![CDATA[<p> Or very relaxed values of =.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: invictus</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454360</link>
		<dc:creator>invictus</dc:creator>
		<pubDate>Wed, 20 Jun 2012 16:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454360</guid>
		<description>Now I have to silently wonder if your reply to my snarky comment on your snarky comment on the original comment was, in fact, snarky.


HelpI&#039;mtrappedinarecusrivecommentthread!</description>
		<content:encoded><![CDATA[<p>Now I have to silently wonder if your reply to my snarky comment on your snarky comment on the original comment was, in fact, snarky.</p>
<p>HelpI&#8217;mtrappedinarecusrivecommentthread!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mitchell Hughes</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454339</link>
		<dc:creator>Mitchell Hughes</dc:creator>
		<pubDate>Wed, 20 Jun 2012 15:54:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454339</guid>
		<description>Not true. In the Gregorian calendar, leap years occur every 4 years, unless the year is divisible by 100. Then it will not be a leap year. Unless the year is also divisible by 400. Then it will still be a leap year. The year 2000 was one of those.</description>
		<content:encoded><![CDATA[<p>Not true. In the Gregorian calendar, leap years occur every 4 years, unless the year is divisible by 100. Then it will not be a leap year. Unless the year is also divisible by 400. Then it will still be a leap year. The year 2000 was one of those.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noah Sussman</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454285</link>
		<dc:creator>Noah Sussman</dc:creator>
		<pubDate>Wed, 20 Jun 2012 14:52:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454285</guid>
		<description>It&#039;s extremely difficult to measure time saved by defensive practices like writing readable, tested code; this is a bit like trying to measure the number of attacks mitigated by good security.  In any case, only large organizations are willing to spend the time and money to attempt to measure the effectiveness of code quality.  One of the few decent studies I&#039;ve seen is &lt;a href=&quot;http://spinroot.com/gerard/pdf/P10.pdf&quot; rel=&quot;nofollow&quot;&gt;The Power of Ten&lt;/a&gt; by Gerard Holzmann from JPL/NASA.  Also there&#039;s a new book called &quot;&lt;a href=&quot;http://www.amazon.com/Google-Tests-Software-James-Whittaker/dp/0321803027&quot; rel=&quot;nofollow&quot;&gt;How Google Tests Software&lt;/a&gt;.&quot;  I haven&#039;t finished reading it yet but it does seem to contain primary data about how writing tests has benefited Google products.

I would agree with you that the cost of automated testing must be taken into account, not just in terms of development time but complexity and debugging time as well.  I find it&#039;s still not widely understood that automation &lt;em&gt;adds&lt;/em&gt; complexity to a task rather than reducing it.  &quot;&lt;a href=&quot;http://www.bainbrdg.demon.co.uk/Papers/Ironies.html&quot; rel=&quot;nofollow&quot;&gt;Ironies of Automation&lt;/a&gt;&quot; is a good paper on that phenomenon.</description>
		<content:encoded><![CDATA[<p>It&#8217;s extremely difficult to measure time saved by defensive practices like writing readable, tested code; this is a bit like trying to measure the number of attacks mitigated by good security.  In any case, only large organizations are willing to spend the time and money to attempt to measure the effectiveness of code quality.  One of the few decent studies I&#8217;ve seen is <a href="http://spinroot.com/gerard/pdf/P10.pdf" rel="nofollow">The Power of Ten</a> by Gerard Holzmann from JPL/NASA.  Also there&#8217;s a new book called &#8220;<a href="http://www.amazon.com/Google-Tests-Software-James-Whittaker/dp/0321803027" rel="nofollow">How Google Tests Software</a>.&#8221;  I haven&#8217;t finished reading it yet but it does seem to contain primary data about how writing tests has benefited Google products.</p>
<p>I would agree with you that the cost of automated testing must be taken into account, not just in terms of development time but complexity and debugging time as well.  I find it&#8217;s still not widely understood that automation <em>adds</em> complexity to a task rather than reducing it.  &#8221;<a href="http://www.bainbrdg.demon.co.uk/Papers/Ironies.html" rel="nofollow">Ironies of Automation</a>&#8221; is a good paper on that phenomenon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shawn H Corey</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454254</link>
		<dc:creator>Shawn H Corey</dc:creator>
		<pubDate>Wed, 20 Jun 2012 13:32:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454254</guid>
		<description>#20 has been fixed since before the Y2K problem even came up.</description>
		<content:encoded><![CDATA[<p>#20 has been fixed since before the Y2K problem even came up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Smith</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454165</link>
		<dc:creator>Michael Smith</dc:creator>
		<pubDate>Wed, 20 Jun 2012 08:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454165</guid>
		<description>Well okay but &lt;b&gt;which&lt;/b&gt; GPS time do you use? UTC has occasional leap seconds which play hell with some types of real time software.</description>
		<content:encoded><![CDATA[<p>Well okay but <b>which</b> GPS time do you use? UTC has occasional leap seconds which play hell with some types of real time software.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ultan</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1454018</link>
		<dc:creator>Ultan</dc:creator>
		<pubDate>Wed, 20 Jun 2012 02:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1454018</guid>
		<description> Some people enjoy getting into all the pathological corner cases, going well beyond the Julian/Gregorian switch but also the subtle differences between the various sorts of astronomical time, dynamical time, TAI vs. UTC vs. GMT  etc. One of those people is Alan Eliasen. His physically-typed JVM language &lt;a href=&quot;http://futureboy.us/frinkdocs/&quot; rel=&quot;nofollow&quot;&gt;Frink&lt;/a&gt; does all that and works with several dozen different units of time, as well as several hundred other sorts of physical units as well. It also has some other features like rational arithmetic and interval arithmetic which might be of interest to QA and other people interested in strict correctness.</description>
		<content:encoded><![CDATA[<p> Some people enjoy getting into all the pathological corner cases, going well beyond the Julian/Gregorian switch but also the subtle differences between the various sorts of astronomical time, dynamical time, TAI vs. UTC vs. GMT  etc. One of those people is Alan Eliasen. His physically-typed JVM language <a href="http://futureboy.us/frinkdocs/" rel="nofollow">Frink</a> does all that and works with several dozen different units of time, as well as several hundred other sorts of physical units as well. It also has some other features like rational arithmetic and interval arithmetic which might be of interest to QA and other people interested in strict correctness.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ultan</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453984</link>
		<dc:creator>Ultan</dc:creator>
		<pubDate>Wed, 20 Jun 2012 01:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453984</guid>
		<description> Or small values of 5.</description>
		<content:encoded><![CDATA[<p> Or small values of 5.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MarlboroTestMonkey7</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453961</link>
		<dc:creator>MarlboroTestMonkey7</dc:creator>
		<pubDate>Wed, 20 Jun 2012 00:35:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453961</guid>
		<description>NTP Drift file fun
</description>
		<content:encoded><![CDATA[<p>NTP Drift file fun</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hugh crawford</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453915</link>
		<dc:creator>hugh crawford</dc:creator>
		<pubDate>Tue, 19 Jun 2012 23:49:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453915</guid>
		<description>I remember setting up a test case where users in Mecca, and somewhere in Australia, were getting long term tech support from a call center somewhere in Indiana. The goal was to figure out the time and duration of the incident as a whole and the 
time and duration if the phone call.

About that time I got called for jury duty and I got asked what my job was. I said that I was leading a group of engineers trying to figure out what time it was, so the lawyer asked me to explain why that was such a big deal. I was out of that jury pool in a very short but indeterminate time after that.</description>
		<content:encoded><![CDATA[<p>I remember setting up a test case where users in Mecca, and somewhere in Australia, were getting long term tech support from a call center somewhere in Indiana. The goal was to figure out the time and duration of the incident as a whole and the <br />
time and duration if the phone call.</p>
<p>About that time I got called for jury duty and I got asked what my job was. I said that I was leading a group of engineers trying to figure out what time it was, so the lawyer asked me to explain why that was such a big deal. I was out of that jury pool in a very short but indeterminate time after that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dolo54</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453888</link>
		<dc:creator>dolo54</dc:creator>
		<pubDate>Tue, 19 Jun 2012 23:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453888</guid>
		<description>Perhaps you should write a book, I&#039;d read it. Yes I&#039;m referring to the writing of automated unit tests for new functionality. That is, writing a test for every method before you write the method, which is encouraged by many proponents of Agile development, and is referred to as TDD or Test Driven Development.

Our department head recently asked me if I thought we should implement unit testing for all our applications, many of which are small web apps that take 80 man hours or less of dev time. Currently we factor about 8 developer hours to 40 for QA and bug fixing. So if a project takes 40 hours to develop, we assume it may take another 8 hours of developer time to resolve any issues discovered in QA. We usually come in under that estimate. My response was well if we have to write a test for every new method in a class, test the test to make sure it fails reliably, then write the code to pass it, we will seemingly double our development time. So an app that would take 40 + 8 hours to get out the door would now take 40 + 40 + probably another 4 hours, since a lot of &#039;bugs&#039; we get from QA are feature requests missed in the functionality specs. So no it makes no sense at all.

I could see TDD being more useful in a huge sprawling application with many developers and a constantly changing set of requirements, just to make sure people don&#039;t break each other&#039;s work, but I&#039;m not sold that it makes sense for situations outside of that scenario.

Of course manual testing is quite important and I encourage all the devs I work with to test their own work as they are coding. This takes a bit of time as well, but nothing like it would take to write tests for everything.</description>
		<content:encoded><![CDATA[<p>Perhaps you should write a book, I&#8217;d read it. Yes I&#8217;m referring to the writing of automated unit tests for new functionality. That is, writing a test for every method before you write the method, which is encouraged by many proponents of Agile development, and is referred to as TDD or Test Driven Development.</p>
<p>Our department head recently asked me if I thought we should implement unit testing for all our applications, many of which are small web apps that take 80 man hours or less of dev time. Currently we factor about 8 developer hours to 40 for QA and bug fixing. So if a project takes 40 hours to develop, we assume it may take another 8 hours of developer time to resolve any issues discovered in QA. We usually come in under that estimate. My response was well if we have to write a test for every new method in a class, test the test to make sure it fails reliably, then write the code to pass it, we will seemingly double our development time. So an app that would take 40 + 8 hours to get out the door would now take 40 + 40 + probably another 4 hours, since a lot of &#8216;bugs&#8217; we get from QA are feature requests missed in the functionality specs. So no it makes no sense at all.</p>
<p>I could see TDD being more useful in a huge sprawling application with many developers and a constantly changing set of requirements, just to make sure people don&#8217;t break each other&#8217;s work, but I&#8217;m not sold that it makes sense for situations outside of that scenario.</p>
<p>Of course manual testing is quite important and I encourage all the devs I work with to test their own work as they are coding. This takes a bit of time as well, but nothing like it would take to write tests for everything.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Labbit</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453864</link>
		<dc:creator>Labbit</dc:creator>
		<pubDate>Tue, 19 Jun 2012 23:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453864</guid>
		<description> Alley Cat at 10MHz:

&quot;Holy crap this is fast!  Quick, back to 4.77!&quot;</description>
		<content:encoded><![CDATA[<p> Alley Cat at 10MHz:</p>
<p>&#8220;Holy crap this is fast!  Quick, back to 4.77!&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: corydodt</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453795</link>
		<dc:creator>corydodt</dc:creator>
		<pubDate>Tue, 19 Jun 2012 22:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453795</guid>
		<description>Most of the people I talk to about TDD (myself included) do not even attempt to thoroughly cover code before writing an implementation.

I write a few tests to call APIs, just to remind myself what I&#039;m shooting for and what shape an API client will be when I&#039;m done.

Then implement, &lt;i&gt;then&lt;/i&gt; go back and thoroughly cover.</description>
		<content:encoded><![CDATA[<p>Most of the people I talk to about TDD (myself included) do not even attempt to thoroughly cover code before writing an implementation.</p>
<p>I write a few tests to call APIs, just to remind myself what I&#8217;m shooting for and what shape an API client will be when I&#8217;m done.</p>
<p>Then implement, <i>then</i> go back and thoroughly cover.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Tyler</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453789</link>
		<dc:creator>Keith Tyler</dc:creator>
		<pubDate>Tue, 19 Jun 2012 22:09:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453789</guid>
		<description>Properly done, a QA group writes tests in advance anyway. The question is whether those tests are written ahead of development or concurrently/subsequently.

But also, properly done, business requirements and functional specifications precede either of those things. The tests then follow (or envelop) the letter of the functional specification. 

More often that not, such flaws as you mention are in the functional spec rather than the test cases, which were faithfully descending from the functional spec. Which is why QA involvement in functional spec review is imperative.

Of course, all this requires that you actually develop functional specs in advance of development. Which sadly seems to be becoming less and less common.

Now if you&#039;re talking about *automated* tests, then those could of course have bugs. But you would find that out upon investigation of the automated failure with a manual duplication. If people are using automated tests to verify new functionality, that&#039;s a mistake, for the exact reason you point out. New functionality should always be verified by manual test; then the automation test is developed, and verified by running against the environment in which  the manual test passed. 

Besides, new functionality is commonly a moving target, especially in the rapid development paradigm. Trying to develop automated tests on new functionality is a prime cause of disillusionment in automated testing. The work required to continually redevelop the automated test to fit the ever-changing requirements is a losing battle; the ROI is almost always negative. Automation is best used for regression (including previously fixed bugs as well as pre-existing functionality). An additional benefit of this is that your automation development is not affected by release-date panic -- meaning less likelihood of errors.

(I could probably write a book on this. I probably should.)</description>
		<content:encoded><![CDATA[<p>Properly done, a QA group writes tests in advance anyway. The question is whether those tests are written ahead of development or concurrently/subsequently.</p>
<p>But also, properly done, business requirements and functional specifications precede either of those things. The tests then follow (or envelop) the letter of the functional specification. </p>
<p>More often that not, such flaws as you mention are in the functional spec rather than the test cases, which were faithfully descending from the functional spec. Which is why QA involvement in functional spec review is imperative.</p>
<p>Of course, all this requires that you actually develop functional specs in advance of development. Which sadly seems to be becoming less and less common.</p>
<p>Now if you&#8217;re talking about *automated* tests, then those could of course have bugs. But you would find that out upon investigation of the automated failure with a manual duplication. If people are using automated tests to verify new functionality, that&#8217;s a mistake, for the exact reason you point out. New functionality should always be verified by manual test; then the automation test is developed, and verified by running against the environment in which  the manual test passed. </p>
<p>Besides, new functionality is commonly a moving target, especially in the rapid development paradigm. Trying to develop automated tests on new functionality is a prime cause of disillusionment in automated testing. The work required to continually redevelop the automated test to fit the ever-changing requirements is a losing battle; the ROI is almost always negative. Automation is best used for regression (including previously fixed bugs as well as pre-existing functionality). An additional benefit of this is that your automation development is not affected by release-date panic &#8212; meaning less likelihood of errors.</p>
<p>(I could probably write a book on this. I probably should.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Tyler</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453774</link>
		<dc:creator>Keith Tyler</dc:creator>
		<pubDate>Tue, 19 Jun 2012 21:57:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453774</guid>
		<description>As a 10-year QA veteran, it has always floored me just how naive programmers are on the issue of time, and especially time zones. It usually takes a painful amount of head-hammering with a litany of non-conforming examples for them to realize just how much of a mess it all really is, and that their feeble and self-satisfying attempts at compartmentalizing it into something algorithmically simple are utter folly.

They should consider themselves lucky they don&#039;t have to deal with the Gregorian Reform.
</description>
		<content:encoded><![CDATA[<p>As a 10-year QA veteran, it has always floored me just how naive programmers are on the issue of time, and especially time zones. It usually takes a painful amount of head-hammering with a litany of non-conforming examples for them to realize just how much of a mess it all really is, and that their feeble and self-satisfying attempts at compartmentalizing it into something algorithmically simple are utter folly.</p>
<p>They should consider themselves lucky they don&#8217;t have to deal with the Gregorian Reform.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: flosofl</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453758</link>
		<dc:creator>flosofl</dc:creator>
		<pubDate>Tue, 19 Jun 2012 21:39:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453758</guid>
		<description>But now my brain is all asplody!

Darn invictus for making me revisit my initial assumption and realizing I was WRONG!

DARN YOU TO HECK!

So Paul, you can stop sitting there silently wondering if I&#039;m an idiot.

I am.</description>
		<content:encoded><![CDATA[<p>But now my brain is all asplody!</p>
<p>Darn invictus for making me revisit my initial assumption and realizing I was WRONG!</p>
<p>DARN YOU TO HECK!</p>
<p>So Paul, you can stop sitting there silently wondering if I&#8217;m an idiot.</p>
<p>I am.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dolo54</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453756</link>
		<dc:creator>dolo54</dc:creator>
		<pubDate>Tue, 19 Jun 2012 21:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453756</guid>
		<description>This highlights what has been bugging me about test driven development. Instead of spending time from the middle to end of a development cycle debugging you spend time up front writing tests, which should eliminate most of your debugging time towards the end. But then your tests may have bugs, so now you have spent all this time up front writing tests, then still spend time at the end debugging those tests. I&#039;m not entirely convinced this is an improvement. I would like to see some raw data from software companies that have implemented TDD. How much time have they really saved I wonder. Possibly they are spending even more time writing tests than they would have done just debugging untested code.</description>
		<content:encoded><![CDATA[<p>This highlights what has been bugging me about test driven development. Instead of spending time from the middle to end of a development cycle debugging you spend time up front writing tests, which should eliminate most of your debugging time towards the end. But then your tests may have bugs, so now you have spent all this time up front writing tests, then still spend time at the end debugging those tests. I&#8217;m not entirely convinced this is an improvement. I would like to see some raw data from software companies that have implemented TDD. How much time have they really saved I wonder. Possibly they are spending even more time writing tests than they would have done just debugging untested code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: beemoh</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453671</link>
		<dc:creator>beemoh</dc:creator>
		<pubDate>Tue, 19 Jun 2012 20:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453671</guid>
		<description>If only that photo was taken one minute earlier.</description>
		<content:encoded><![CDATA[<p>If only that photo was taken one minute earlier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: invictus</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453649</link>
		<dc:creator>invictus</dc:creator>
		<pubDate>Tue, 19 Jun 2012 20:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453649</guid>
		<description>One of you two certainly is missing the point, yes.</description>
		<content:encoded><![CDATA[<p>One of you two certainly is missing the point, yes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nathan Hornby</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453638</link>
		<dc:creator>Nathan Hornby</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:57:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453638</guid>
		<description>Back in the days of the &#039;turbo&#039; button. </description>
		<content:encoded><![CDATA[<p>Back in the days of the &#8216;turbo&#8217; button. </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: George Herbert</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453592</link>
		<dc:creator>George Herbert</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453592</guid>
		<description>You can avoid a lot of the inconsistency and insanity if your admins practice good safe timekeeping (use NTP, don&#039;t set up too many NTP servers, etc).  But even that can drift, even atomic clocks and GPS time do strange things at times, code has bugs, etc.

But that does not deal with the insanity in timezone offset shifts, virtual server stuff, all the corner cases.  This is a good list to print out and read a lot and hang on your wall, to remind you.  As someone upthread said, can&#039;t let it paralyze you, but at least you have a fighting chance if you keep a reminder.</description>
		<content:encoded><![CDATA[<p>You can avoid a lot of the inconsistency and insanity if your admins practice good safe timekeeping (use NTP, don&#8217;t set up too many NTP servers, etc).  But even that can drift, even atomic clocks and GPS time do strange things at times, code has bugs, etc.</p>
<p>But that does not deal with the insanity in timezone offset shifts, virtual server stuff, all the corner cases.  This is a good list to print out and read a lot and hang on your wall, to remind you.  As someone upthread said, can&#8217;t let it paralyze you, but at least you have a fighting chance if you keep a reminder.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: knappa</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453588</link>
		<dc:creator>knappa</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453588</guid>
		<description>I&#039;m fairly sure he was simply adding to the list.</description>
		<content:encoded><![CDATA[<p>I&#8217;m fairly sure he was simply adding to the list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scurra</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453590</link>
		<dc:creator>Scurra</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453590</guid>
		<description>But it&#039;ll work out OK, as long as you don&#039;t blink.</description>
		<content:encoded><![CDATA[<p>But it&#8217;ll work out OK, as long as you don&#8217;t blink.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Earwicker</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453583</link>
		<dc:creator>Daniel Earwicker</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:23:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453583</guid>
		<description>&quot;Time passes at the same speed on top of a mountain and at the bottom of a valley.&quot;
Depends whether you can have more fun on top of a mountain or at the bottom of a valley.</description>
		<content:encoded><![CDATA[<p>&#8220;Time passes at the same speed on top of a mountain and at the bottom of a valley.&#8221;<br />
Depends whether you can have more fun on top of a mountain or at the bottom of a valley.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Earwicker</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453579</link>
		<dc:creator>Daniel Earwicker</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:21:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453579</guid>
		<description>&quot;A time stamp of sufficient precision can safely be considered unique.&quot; Heard about some code today that used a timestamp as a unique ID. When the coder realised that there might be several calls made within a single tick of the timer, he decided to solve the problem by making the code go to sleep for a while until the time was unique again...</description>
		<content:encoded><![CDATA[<p>&#8220;A time stamp of sufficient precision can safely be considered unique.&#8221; Heard about some code today that used a timestamp as a unique ID. When the coder realised that there might be several calls made within a single tick of the timer, he decided to solve the problem by making the code go to sleep for a while until the time was unique again&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: flosofl</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453562</link>
		<dc:creator>flosofl</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453562</guid>
		<description>I think you&#039;re more or less missing the point.
&lt;blockquote&gt;One hour is as long as the next in all time systems. &lt;/blockquote&gt;Yep. Missed the point.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;re more or less missing the point.</p>
<blockquote><p>One hour is as long as the next in all time systems. </p></blockquote>
<p>Yep. Missed the point.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd Knarr</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453563</link>
		<dc:creator>Todd Knarr</dc:creator>
		<pubDate>Tue, 19 Jun 2012 19:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453563</guid>
		<description> NTP. Network Time Protocol. Win7 has it built in, and for versions like XP and earlier you can get software like Tardis2000. Find a couple of Stratum 2 hosts near you and sync a couple of your machines to them, then sync the rest of your network to those. I&#039;ve been doing it for 15 years, it can&#039;t be _that_ hard.</description>
		<content:encoded><![CDATA[<p> NTP. Network Time Protocol. Win7 has it built in, and for versions like XP and earlier you can get software like Tardis2000. Find a couple of Stratum 2 hosts near you and sync a couple of your machines to them, then sync the rest of your network to those. I&#8217;ve been doing it for 15 years, it can&#8217;t be _that_ hard.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453524</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Tue, 19 Jun 2012 18:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453524</guid>
		<description>Leap years occur every 4 years.
From the state/province you can determine the time zone.
From the city/town you can determine the time zone.
Time passes at the same speed on top of a mountain and at the bottom of a valley.
One hour is as long as the next in all time systems.
You can calculate when leap seconds will be added.</description>
		<content:encoded><![CDATA[<p>Leap years occur every 4 years.<br />
From the state/province you can determine the time zone.<br />
From the city/town you can determine the time zone.<br />
Time passes at the same speed on top of a mountain and at the bottom of a valley.<br />
One hour is as long as the next in all time systems.<br />
You can calculate when leap seconds will be added.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cleek</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453483</link>
		<dc:creator>cleek</dc:creator>
		<pubDate>Tue, 19 Jun 2012 17:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453483</guid>
		<description>oh those stupid programmers.</description>
		<content:encoded><![CDATA[<p>oh those stupid programmers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dick Selwood</title>
		<link>http://boingboing.net/2012/06/19/falsehoods-programmers-believe.html#comment-1453481</link>
		<dc:creator>Dick Selwood</dc:creator>
		<pubDate>Tue, 19 Jun 2012 17:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://boingboing.net/?p=166845#comment-1453481</guid>
		<description> That assumes that GPS is present. A recent study suggested that there are both natural events, like solar activity, and man made events, like GPS jamming, that could kill the satallite signal.</description>
		<content:encoded><![CDATA[<p> That assumes that GPS is present. A recent study suggested that there are both natural events, like solar activity, and man made events, like GPS jamming, that could kill the satallite signal.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
