<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Megatome</title>
	
	<link>http://www.megatome.com</link>
	<description>Just another idiot's ramblings</description>
	<pubDate>Fri, 30 May 2008 16:41:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Megatome" type="application/rss+xml" /><item>
		<title>Known Defects and FindBugs</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/301366855/</link>
		<comments>http://www.megatome.com/2008/05/30/known-defects-and-findbugs/#comments</comments>
		<pubDate>Fri, 30 May 2008 16:41:16 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Making]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[annotation]]></category>

		<category><![CDATA[characterization test]]></category>

		<category><![CDATA[findbugs]]></category>

		<category><![CDATA[junit]]></category>

		<category><![CDATA[knowndefect]]></category>

		<category><![CDATA[legacy]]></category>

		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/05/30/known-defects-and-findbugs/</guid>
		<description><![CDATA[(Download KnownDefects)  
I ran into a bit of a quandary the other day. I had to modify a piece of legacy code in our system - one that has no tests written against it. My first task was to write as many JUnit tests as I could to document the behavior of the component [...]]]></description>
			<content:encoded><![CDATA[<p>(<a href="http://subversion.megatome.com/projects/KnownDefects/trunk/KnownDefect.zip">Download KnownDefects</a>)  </p>
<p>I ran into a bit of a quandary the other day. I had to modify a piece of legacy code in our system - one that has no tests written against it. My first task was to write as many <a href="http://www.junit.org/">JUnit</a> tests as I could to document the behavior of the component to help ensure that I didn&#8217;t break existing functionality with my changes.  </p>
<p>After a few tests, however, I began to notice something troubling. The component I was writing tests against had some bugs in it, and in order to make my unit tests pass, I had to code to those bugs. This in itself did not bother me too much, since I had no expectation that the component I was testing was error-free.  </p>
<p>What bothered me is that unit tests are often the best documentation of how a system works, and I would be creating misleading documentation. So, I did what anyone in this situation would do: I emailed <a href="http://langrsoft.com/">someone a lot smarter than me</a>.&nbsp; </p>
<p>The reply email contained several suggestions, all of which I plan to implement. The first suggestion is to carefully name the test methods to make it clear which ones work because of defects. The second suggestion is to create an annotation that can be added to a method to indicate that it works because of a defect, coupled with some way to report on all uses of the annotation.  </p>
<p>After a few hours of coding, I&#8217;m happy to announce that I&#8217;ve created a Java annotation named <code>KnownDefect</code> as well as a detector plugin for <a href="http://findbugs.sourceforge.net/">FindBugs</a> to collect all of the annotation instances.  </p>
<p>In the parlance of &#8220;<a href="http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1212164658&amp;sr=1-1">Working Effectively with Legacy Code</a>&#8220;, I have been creating &#8220;<a href="http://www.artima.com/weblogs/viewpost.jsp?thread=198296">characterization tests</a>&#8220;. These tests look like normal unit tests, but they document the current state of the system, warts and all. Using the <code>KnownDefect</code> annotation helps make the warts stick out better.  </p>
<p>Here&#8217;s an example:  </p>
<p>
<pre>public void testValidateNullResponse() {
   try {
      ProtocolParser.validateResponse(null);
      fail();
   } catch (InvalidRequestException expected) {
      // Caught expected exception
   }
}</pre>
</p>
<p>This test documents the system as it currently exists, but the behavior is obviously not correct. The <code>ProtocolParser</code> class should be throwing an <code>InvalidResponseException</code>, not an <code>InvalidRequestException</code>. To document this defect, I change the method name and add the <code>KnownDefect</code> annotation to the test method, resulting in the following:
</p>
<p>
<pre>@KnownDefect("Should throw InvalidResponseException")
public void testValidateNullResponseShowsKnownDefect() {
   try {
      ProtocolParser.validateResponse(null);
      fail();
   } catch (InvalidRequestException expected) {
      // Caught expected exception
   }
}</pre>
</p>
<p>The correct behavior is now documented, and the test still passes.
</p>
<p>Instead of writing a new tool to manage the <code>KnownDefect</code> instances, I ended up writing a new plugin for FindBugs. The FindBugs detector will collect all instances of the annotation and group them under the &#8220;Correctness&#8221; heading so they&#8217;re all in one place. Bug reports can then be created and the defects fixed or not as business needs dictate. (Sadly, the FindBugs plugin for Eclipse does not find the annotation in Groovy code. The standalone version of FindBugs works fine, so I assume there&#8217;s a resource filtering issue with the Eclipse plugin.)</p>
<p>Instructions for using the annotation and the detector are included in the download file. Try it out - hopefully it will be useful to somebody other than myself.</p>
<p>(<a href="http://subversion.megatome.com/projects/KnownDefects/trunk/KnownDefect.zip">Download KnownDefects</a>) (Subversion: <a href="http://subversion.megatome.com/projects/KnownDefects/trunk">http://subversion.megatome.com/projects/KnownDefects/trunk</a>)</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/301366855" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/05/30/known-defects-and-findbugs/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/05/30/known-defects-and-findbugs/</feedburner:origLink></item>
		<item>
		<title>Is Refactoring Really That Scary?</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/259399553/</link>
		<comments>http://www.megatome.com/2008/03/27/is-refactoring-really-that-scary/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 03:45:08 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Making]]></category>

		<category><![CDATA[Work]]></category>

		<category><![CDATA[leadership]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[coding]]></category>

		<category><![CDATA[refactoring]]></category>

		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/03/27/is-refactoring-really-that-scary/</guid>
		<description><![CDATA[I got admonished at my new job for coding practices that have become second nature to me. Is aggressive refactoring really that scary?]]></description>
			<content:encoded><![CDATA[<div class="floatleft"><a href="http://www.cafepress.com/agilestuff.26911153"><img src="http://images.cafepress.com/product/26911153_240x240_Front_Color-BlackWhite.jpg" alt="Born to Refactor Shirt"/>
<p>(Click to get the shirt)</p>
<p></a></div>
<p>I&#8217;ve been coding with an agile mindset for quite some time now. Some practices have become second nature to me over the years. One of these practices is aggressive code refactoring, coupled with test driven development (TDD).</p>
<p>I&#8217;ve been adding new functionality to our system at my new job, and as usual I&#8217;ve been following my standard techniques. My part of the system involves handling certain requests and responses. I wrote unit and functional tests for the request half of the equation, then began to tackle the response side. As I added (and tested) functionality, I began to notice a large amount of similarity in the code. This in turn led me to create an abstract base class for both request and response, pulling up all of the shared functionality. This resulted in the actual request and response classes being quite small, with just a few method implementations from the base class.</p>
<p>So far, this activity should seem pretty normal to most developers. As I said, it&#8217;s pretty much second nature for me, and I don&#8217;t even remember consciously making the decision to make the abstract class. Imagine my surprise when my team lead admonished me for creating and abstract class, and warned me not to do it again without explicit approval.</p>
<p>Of course I had to ask why we would not refactor code in this manner when the opportunity presented itself. My lead&#8217;s answer involved several parts, none of which have convinced me that refactoring is bad:</p>
<p>
<ol>
<li><strong>The abstract class is not consistent with the rest of the system.</strong> This, to me, seems to be a fault of the system. I&#8217;m not knocking consistency, but at some point you have to realize that you may be building something that&#8217;s consistently bloated/overcomplicated/etc.</li>
<li><strong>The abstract class changes the design.</strong> Huh? Sure, if I go generate a UML diagram of the system, there&#8217;s going to be this abstract class and inheritance there. This is the only place the design is different. Requests and responses are being correctly handled just like the legacy ones in the system.</li>
<li><strong>Too much refactoring is bad, and each case should be thoroughly examined before code is changed.</strong> This is how religious wars start. My lead claims that developers start out on the &#8220;no refactoring&#8221; end of the spectrum, simply because they don&#8217;t know any better. Once they learn about refactoring, they then swing to the &#8220;refactor everything&#8221; end of the spectrum where anything and everything is a potential target. Seasoned, knowledgeable developers fall somewhere in the middle. I got the impression from this speech that my lead considers me to be on the radical end of the spectrum.</li>
</ol>
<p>Why are people like my lead so scared of refactoring? The arguments given really seem more like rationalizations than actual reasons - they don&#8217;t really stand up to scrutiny. I have a hard time believing, for example, that my lead truly thinks that the system is better because each request and response is a totally separate class, albeit with most of the code copied and pasted from one to the other. If anything, he should know that this approach leads to more problems, no matter how pretty it keeps the class diagrams.</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/259399553" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/03/27/is-refactoring-really-that-scary/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/03/27/is-refactoring-really-that-scary/</feedburner:origLink></item>
		<item>
		<title>Activision Does Care…Sort Of</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/258637947/</link>
		<comments>http://www.megatome.com/2008/03/26/activision-does-caresort-of/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 00:11:15 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[goodies]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[video games]]></category>

		<category><![CDATA[activision]]></category>

		<category><![CDATA[company]]></category>

		<category><![CDATA[gh3]]></category>

		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/03/26/activision-does-caresort-of/</guid>
		<description><![CDATA[Activision sends gifts to patient GH3/Wii owners, but continues to ignore their privacy breach.]]></description>
			<content:encoded><![CDATA[<p>I received an unexpected package in the mail today from Redoctane/Activision:</p>
<p><a href="http://www.flickr.com/photos/22198151@N00/2364482347" title="View 'Guitar Hero 3 Faceplate' on Flickr.com"><img src="http://farm3.static.flickr.com/2292/2364482347_3ac5c2bfaa_m.jpg" alt="Guitar Hero 3 Faceplate" border="0" width="240" height="160"/><br />(Click for Larger)</a></p>
<p>Yup, they sent me a faceplate for my Wii guitar, along with a note explaining that the gift is a thanks for being patient and waiting to get my remastered GH3 disc.</p>
<p>While this probably isn&#8217;t the design I would have picked on my own, I have yet to find faceplates for the Wii guitars in stores yet, so beggars can&#8217;t be choosers.</p>
<p>This gesture is nice and aimed at keeping customers. I appreciate the gift, but I&#8217;d rather have an apology for the way they <a href="http://www.megatome.com/2008/01/21/activision-screws-up-again/">screwed up and shared a bunch of email addresses that should have been kept private</a>. I guess customers have been more concerned about how many speakers their game&#8217;s music comes out of than who has their email address.</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/258637947" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/03/26/activision-does-caresort-of/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/03/26/activision-does-caresort-of/</feedburner:origLink></item>
		<item>
		<title>House Denies Retroactive Immunity</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/252241848/</link>
		<comments>http://www.megatome.com/2008/03/15/house-denies-retroactive-immunity/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 02:54:13 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[politics]]></category>

		<category><![CDATA[world]]></category>

		<category><![CDATA[democracy]]></category>

		<category><![CDATA[eff]]></category>

		<category><![CDATA[fisa]]></category>

		<category><![CDATA[fourth amendment]]></category>

		<category><![CDATA[house]]></category>

		<category><![CDATA[retroactive immunity]]></category>

		<category><![CDATA[telecom]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/03/15/house-denies-retroactive-immunity/</guid>
		<description><![CDATA[In a bit of good news over the weekend, the House has decided that retroactive immunity for telecoms is not a Good Thing.]]></description>
			<content:encoded><![CDATA[<p>In a bit of good news over the weekend, the House has <a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/03/14/AR2008031400803.html?hpid=topnews">decided that retroactive immunity for telecoms is not a Good Thing</a>.</p>
<p>The bill, however, did not pass by the two-thirds majority required to override a presidential veto, which is inevitable. What will likely happen now is that this issue will be delayed until the next president is sworn in, who will hopefully be somebody who agrees that telecoms need to be held responsible for their actions.</p>
<p>If you&#8217;d like to see the actual breakdown of the vote, here&#8217;s the <a href="http://clerk.house.gov/cgi-bin/vote.asp?year=2008&amp;rollnumber=145">official tally</a>, which unfortunately does not list Representative&#8217;s states.</p>
<p>I&#8217;ll close with a quote from Ted Kennedy regarding the retroactive immunity fiasco and our president&#8217;s insistence on it:</p>
<blockquote><p>&quot;The President has said that American lives will be sacrificed if Congress does not change FISA. But he has also said that he will veto any FISA bill that does not grant retroactive immunity. No immunity, no new FISA bill. So if we take the President at his word, he is willing to let Americans die to protect the phone companies.&quot;</p>
</blockquote>
<p>(<a href="http://kennedy.senate.gov/newsroom/press_release.cfm?id=3E414E2D-8473-434E-AFCE-077E56AC1338">Full text here.</a>)</p>
<p>Previous Megatome entries:</p>
<ul>
<li><a href="http://www.megatome.com/2008/02/12/colorado-senators-side-with-telecoms/">Colorado Senators Side with Telecoms</a> </li>
<li><a href="http://www.megatome.com/2008/02/26/senator-salazar-responds-still-doesnt-get-it/">Senator Salazar Responds - Still Doesn&#8217;t Get It</a> </li>
</ul>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/252241848" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/03/15/house-denies-retroactive-immunity/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/03/15/house-denies-retroactive-immunity/</feedburner:origLink></item>
		<item>
		<title>JUnit Just Wants To Be Your Friend</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/251757277/</link>
		<comments>http://www.megatome.com/2008/03/14/junit-just-wants-to-be-your-friend/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 03:02:57 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Work]]></category>

		<category><![CDATA[coding]]></category>

		<category><![CDATA[fail]]></category>

		<category><![CDATA[tdd]]></category>

		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/03/14/junit-just-wants-to-be-your-friend/</guid>
		<description><![CDATA[My co-worker tests his code with the toString() and visual grep method. I'm not sure he would have ever caught the bug on his own. I keep trying to explain that unit tests are a Good Thing...]]></description>
			<content:encoded><![CDATA[<p>This is why you&#8217;re not allowed to have alcohol in the workplace.</p>
<p><strong>Co-Worker (who does not believe in unit tests)</strong>: Okay. I just checked my changes in.</p>
<p><strong>Me</strong>: There&#8217;s a bug in your code.</p>
<p><strong>Co-Worker</strong>: How do you know? I just checked it in!</p>
<p><strong>Me</strong>: It broke my unit tests. It looks like you&#8217;re not setting the flibbergibbet value correctly.</p>
<p><strong>Co-Worker</strong>: What? How can you tell?</p>
<p><strong>Me</strong>: <a href="http://www.junit.org/">JUnit</a> showed me the difference.</p>
<p><strong>Co-Worker</strong>: Oh. I guess I&#8217;ll fix it now. I would have found it eventually&#8230;</p>
<p>For what it&#8217;s worth, we&#8217;re handling <a href="http://en.wikipedia.org/wiki/Electronic_Data_Interchange">Electronic Data Interchange</a> documents - things that look like a page or so of line noise at a time. The bug was that one character wasn&#8217;t getting written to the output. My co-worker tests his code with the <code>toString()</code> and <a href="http://catb.org/jargon/html/V/vgrep.html">visual grep</a> method. I&#8217;m not sure he would have ever caught the bug on his own. I keep trying to explain that unit tests are a <a href="http://catb.org/jargon/html/G/Good-Thing.html">Good Thing</a>&#8230;</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/251757277" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/03/14/junit-just-wants-to-be-your-friend/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/03/14/junit-just-wants-to-be-your-friend/</feedburner:origLink></item>
		<item>
		<title>Review - Professor Layton and the Curious Village</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/250306695/</link>
		<comments>http://www.megatome.com/2008/03/12/review-professor-layton-and-the-curious-village/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 19:19:59 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[goodies]]></category>

		<category><![CDATA[reviews]]></category>

		<category><![CDATA[video games]]></category>

		<category><![CDATA[professor layton]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/03/12/review-professor-layton-and-the-curious-village/</guid>
		<description><![CDATA[I'm a sucker for puzzles. The problem with most puzzle games is that they usually focus on one kind of puzzle and I lose interest. Professor Layton, luckily, does not suffer from this problem.]]></description>
			<content:encoded><![CDATA[<p><a title="Professor Layton and the Curious Village: Video Games" href="http://www.amazon.com/exec/obidos/ASIN/B000U5W3IW/thelittleman-20"><img style="padding-right: 10px; padding-left: 10px; float: left; padding-bottom: 10px; padding-top: 10px" alt="Professor Layton Box Art" src="http://images.amazon.com/images/P/B000U5W3IW.01.MZZZZZZZ.jpg" align="left" border="0" /></a></p>
<p>I&#8217;m a sucker for puzzles. The problem with most puzzle games is that they usually focus on one kind of puzzle and I lose interest. (Yeah, <a href="http://www.amazon.com/Brain-Age-Train-Your-Minutes/dp/B000EGELP0/ref=pd_bbs_sr_1?ie=UTF8&amp;s=videogames&amp;qid=1205348542&amp;sr=8-1">Brain Age</a>. I&#8217;m looking at you. I enjoy <a href="http://en.wikipedia.org/wiki/Sudoku">Sudoku</a>, but solving 85 jabillion Sudoku puzzles gets old fast.)</p>
<p>Professor Layton, luckily, does not suffer from this problem. Some of the puzzle themes are repeated, but there&#8217;s never more than four or five puzzles for each theme. For example, one of the themes is &quot;<a href="http://en.wikipedia.org/wiki/Matchstick_puzzle">Matchstick Puzzles</a>&quot;, and there are half a dozen or so total matchstick related puzzles in the game. This variety really helps, as there will surely be some puzzle types that people like less than others. (For me, my bane is <a href="http://en.wikipedia.org/wiki/Magic_square">magic squares</a>. Luckily, there are only a couple in the game.)</p>
<p>Professor Layton does a good job of wrapping the puzzle solving into an actual story. Where the developers could have easily thrown something simple around the puzzles, the story is actually quite entertaining. I was very near the end of the game before I figured out the village&#8217;s secret.</p>
<p>The game went quickly for me, taking about eleven and a half hours to finish. I intend to let it sit for a while and replay it to try to use as few hints as I can. I also need to make sure I have plenty of free time, because this game is very hard to put down.</p>
<p>Not only are there well over 100 puzzles in the game to solve, there are additional puzzles available weekly for download via the <a href="http://www.nintendowifi.com">Nintendo Wi-Fi Connection</a>.</p>
<p><img src='http://www.megatome.com/wp-content/plugins/rate-my-stuff/rating_star.solid.gif' alt='*'/><img src='http://www.megatome.com/wp-content/plugins/rate-my-stuff/rating_star.solid.gif' alt='*'/><img src='http://www.megatome.com/wp-content/plugins/rate-my-stuff/rating_star.solid.gif' alt='*'/><img src='http://www.megatome.com/wp-content/plugins/rate-my-stuff/rating_star.solid.gif' alt='*'/><img src='http://www.megatome.com/wp-content/plugins/rate-my-stuff/rating_star.solid.gif' alt='*'/></p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/250306695" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/03/12/review-professor-layton-and-the-curious-village/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/03/12/review-professor-layton-and-the-curious-village/</feedburner:origLink></item>
		<item>
		<title>Senator Salazar Responds - Still Doesn’t Get It</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/241711081/</link>
		<comments>http://www.megatome.com/2008/02/26/senator-salazar-responds-still-doesnt-get-it/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 21:13:51 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[politics]]></category>

		<category><![CDATA[world]]></category>

		<category><![CDATA[democracy]]></category>

		<category><![CDATA[fisa]]></category>

		<category><![CDATA[fourth amendment]]></category>

		<category><![CDATA[retroactive immunity]]></category>

		<category><![CDATA[salazar]]></category>

		<category><![CDATA[senate]]></category>

		<category><![CDATA[senator]]></category>

		<category><![CDATA[telecom]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/02/26/senator-salazar-responds-still-doesnt-get-it/</guid>
		<description><![CDATA[In a previous post, I mentioned my disappointment in my Colorado senators for failing to vote to remove retroactive immunity from the Foreign Intelligence Surveillance Act amendments. I wrote to both of my senators, and I finally got a response from Senator Salazar.]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://www.megatome.com/2008/02/12/colorado-senators-side-with-telecoms/">previous post</a>, I mentioned my disappointment in my Colorado senators for failing to vote to remove retroactive immunity from the Foreign Intelligence Surveillance Act amendments. I wrote to both of my senators, and I finally got a response from Senator Salazar:</p>
<p><span id="more-33"></span></p>
<blockquote><p>Dear XXXX:      <br />Thank you for contacting me with regard to S.2248, the Foreign Intelligence Surveillance Act (FISA) Amendments Act of 2007. I appreciate hearing from you.       <br />As a U.S. Senator, my primary responsibilities are to uphold the Constitution and protect the American people. These responsibilities have guided me during the recent Senate debate on reforming and modernizing the rules governing America&#8217;s surveillance and intelligence-gathering system.       <br />As you know, S.2248 passed the Senate on February 12, 2008 by a vote of 68-29. While I was disappointed the Senate did not adopt several amendments that would have gone further in strengthening civil liberties protections, I ultimately supported final passage of the bill.       <br />I believe S.2248 gives intelligence officials the tools they need to pursue foreign threats, and, furthermore, institutes stronger oversight mechanisms to preserve the privacy rights of American citizens. Specifically, S.2248:       <br />&#183; Declares that the FISA court is the sole authority for the approval of electronic surveillance procedures, in response to the Bush administration&#8217;s five-year warrantless surveillance program outside of FISA;       <br />&#183; Implements a six-year sunset of the program to allow Congress to evaluate how the new authorities are carried out;       <br />&#183; Requires FISA court approval of foreign targeting procedures for determining that the target of the surveillance is reasonably believed to be outside the United States;       <br />&#183; Grants the FISA court oversight of the &#8220;minimization&#8221; procedures governing the protection of the identities and private information of U.S. citizens incidentally collected during the monitoring of a foreign target;       <br />&#183; Requires FISA court approval, on an individual basis, of the targeting of Americans overseas based on the court&#8217;s review of whether there is probable cause to believe that the person is an agent of a foreign power;       <br />&#183; Requires the FISA court to provide Congress with judicial opinions and interpretations pertaining to the new surveillance program;       <br />&#183; Requires the Attorney General and the Director of National Intelligence to assess overall compliance with targeting and minimization procedures and submit their findings every six months to the FISA court, as well as the House and Senate Intelligence Committees.       <br />Taken together, these reforms represent a significant improvement over previous FISA laws in terms of oversight and accountability.       <br />During the debate, the Senate also addressed the issue of retroactive immunity for telecommunications companies. As you may know, in the wake of the September 11th attacks, it is alleged that a number of telecommunications companies in the United States were asked by the National Security Agency (NSA) to turn over the personal data of their American customers for examination without a warrant. Subsequently, a number of Americans have filed lawsuits against these companies for violating their Fourth Amendment right to privacy.       <br />S.2248 as reported to the full Senate provides narrowly circumscribed, retroactive immunity to the telecommunications companies in question. In response to this, I cosponsored Senate Amendment 3858, which would have referred the lawsuits to the FISA Court for review. Under this approach, if the court determined that the companies acted in good faith and had a reasonable belief they were abiding by the law when they complied with the government&#8217;s requests, the lawsuits would have been thrown out of court; if not, they would have proceeded as planned. Unfortunately, this amendment did not garner enough support to be included in the final Senate bill.       <br />S.2248 now awaits action in a House-Senate conference committee. Please rest assured that I will keep your thoughts in mind as my colleagues and I continue work on this legislation.       <br />Again, thank you for taking the time to share your views.       <br />Sincerely,       <br />Ken Salazar       <br />United States Senator</p>
</blockquote>
<p>While it was nice to actually hear back from Senator Salazar, I&#8217;m a bit disappointed at the content. In my correspondence, I specifically called out the failure to kill retroactive immunity as the reason for my writing. As you can see above, the response does a good job of skirting the issue until the last paragraph or so.</p>
<p>I am relieved that the proposed amendment 3858 did not pass, as it sounds like it would have been too easy for telecoms to get off the hook. All they would have to do is assure the court that they weren&#8217;t aware of any laws that were broken, and they would be off the hook.</p>
<p>I think Senator Salazar&#8217;s response can be summed nicely by this line: &quot;While I was disappointed the Senate did not adopt several amendments that would have gone further in strengthening civil liberties protections, I ultimately supported final passage of the bill.&quot; I find it rather amusing that the good senator was disappointed - considering he voted against one of the amendments that would have strengthened our civil liberties.</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/241711081" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/02/26/senator-salazar-responds-still-doesnt-get-it/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/02/26/senator-salazar-responds-still-doesnt-get-it/</feedburner:origLink></item>
		<item>
		<title>Colorado Senators Side with Telecoms</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/234176044/</link>
		<comments>http://www.megatome.com/2008/02/12/colorado-senators-side-with-telecoms/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 20:29:10 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[politics]]></category>

		<category><![CDATA[world]]></category>

		<category><![CDATA[allard]]></category>

		<category><![CDATA[democrat]]></category>

		<category><![CDATA[eff]]></category>

		<category><![CDATA[fisa]]></category>

		<category><![CDATA[fourth amendment]]></category>

		<category><![CDATA[republican]]></category>

		<category><![CDATA[retroactive immunity]]></category>

		<category><![CDATA[salazar]]></category>

		<category><![CDATA[senate]]></category>

		<category><![CDATA[senator]]></category>

		<category><![CDATA[telecom]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/02/12/colorado-senators-side-with-telecoms/</guid>
		<description><![CDATA[The US Senate has just finished voting on Senate Amendment 3907, also known as the retroactive immunity amendment. The purpose of this amendment was to remove immunity from telecoms for "certain assistance provided to the Government."]]></description>
			<content:encoded><![CDATA[<p>The US Senate has just finished voting on <a href="http://thomas.loc.gov/cgi-bin/bdquery/z?d110:SP3907:">Senate Amendment 3907</a>, also known as the retroactive immunity amendment. The purpose of this amendment was to remove immunity from telecoms for &quot;certain assistance provided to the Government.&quot;</p>
<p>In this case &quot;certain assistance&quot; means the activity that we&#8217;ve been hearing about that violates our <a href="http://www.usconstitution.net/xconst_Am4.html">Fourth Amendment</a> rights - <a href="http://www.eff.org/issues/nsa-spying">telecoms assisting the NSA in warrantless wiretapping activities</a>.</p>
<p>Apparently my Colorado Senators don&#8217;t seem to think that holding telecoms accountable for their actions is a good idea - they both voted against the amendment. I certainly am not surprised by <a href="http://allard.senate.gov/">Republican Wayne Allard</a>&#8217;s &quot;nay&quot; vote, but I&#8217;ll have to admit that I expected better from <a href="http://salazar.senate.gov/">Democrat Ken Salazar</a>.</p>
<p>Want to see how your Senator voted? <a href="http://www.senate.gov/legislative/LIS/roll_call_lists/roll_call_vote_cfm.cfm?congress=110&amp;session=2&amp;vote=00015">Look here for the official tallies.</a> If your Senator voted &quot;nay&quot;, I strongly urge you to contact him or her and express your disappointment. I have already sent emails to both Allard and Salazar - hopefully enough other people will do the same to make our Senators realize that they work for their constituents and not large companies.</p>
<p>&#8212;&#8212;-</p>
<p>The <a href="http://www.eff.org">Electronic Frontier Foundation</a> has some <a href="http://www.eff.org/issues/nsa-spying">great resources</a> regarding retroactive immunity and warrantless wiretapping.</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/234176044" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/02/12/colorado-senators-side-with-telecoms/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/02/12/colorado-senators-side-with-telecoms/</feedburner:origLink></item>
		<item>
		<title>Some Things To Remember When Running A Small Business</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/234176045/</link>
		<comments>http://www.megatome.com/2008/02/10/some-things-to-remember-when-running-a-small-business/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 04:49:13 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Work]]></category>

		<category><![CDATA[leadership]]></category>

		<category />

		<category><![CDATA[business]]></category>

		<category><![CDATA[practices]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[teams]]></category>

		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/02/10/some-things-to-remember-when-running-a-small-business/</guid>
		<description><![CDATA[Several years ago, I worked for a small software shop. The company had gone through its number of growing pains, but seemed to be well established by the time I joined. Time would prove me wrong, and also give me some things to remember if ever I start my own small business.]]></description>
			<content:encoded><![CDATA[<p>Several years ago, I worked for a small software shop. The company had gone through its number of growing pains, but seemed to be well established by the time I joined. Time would prove me wrong, and also give me some things to remember if ever I start my own small business.</p>
<ol>
<li><strong>Watch your finances.</strong> We attended a conference shortly after I joined. We stayed at expensive hotels and spent several hundreds of dollars a night on dining out an entertainment. The company covered all costs. Overspending can lead to problems&#8230; </li>
<li><strong>Be careful how you cuts costs.</strong> About six months after the conference, it was determined that the company was not making as much money as expected and that cuts would need to be made. In order to avoid laying off anybody, salaries were cut. My salary was decreased by 50%, which imposed quite a hardship. We were promised that the cuts were only temporary, and that as soon as salaries returned to normal, we would be reimbursed for all of the money we lost. Which leads to the next point&#8230; </li>
<li><strong>Don&#8217;t lie to your employees.</strong> Turns out that the whole promise of reimbursement was just a pipe dream. I wasn&#8217;t too surprised by that. What surprised me was that the pay cuts were not equal, as I was told in the initial meeting. I actually took the highest cut - other employees took a 10-15% cut. I don&#8217;t care what kind of policies you have about keeping salaries secret; people will talk. If everybody is not getting the same treatment, tell them so and why. Of course, this behavior continued right on through the end of my employment&#8230; </li>
<li><strong>If you&#8217;re laying off employees, do it right.</strong> This does not mean telling an employee that he needs to take all of his vacation time, then take unpaid leave until things &quot;turn around&quot;. This goes back to my previous point - we both knew that there will be no turning around, and that it was a ploy to keep from having to pay me for accrued vacation while screwing me out of employment benefits since I wasn&#8217;t formally laid off. Also, remember that you&#8217;re running a business&#8230; </li>
<li><strong>Don&#8217;t play favorites.</strong> Oddly enough, I was the only one on my team who got pseudo laid off. The other team members were old friends of the CEO and owners. Coincidence? I think not. My team lead had a habit of not showing up until almost noon and leaving to &quot;work from home&quot; around 2 in the afternoon. This usually meant that he checked in whatever code he had when he left, more often than not breaking the build. Whenever he worked from home, he seemed to always have problems that would prevent him from receiving IMs or email. The end result was that the entire team would be stalled until he came in the next day. He had been given many warnings, but he also played golf with the CEO quite frequently, and I think the CEO allowed his personal feelings to get in the way of business decisions.
<p>I&#8217;m not saying &quot;Oh, poor me&quot; here. I had my share of friction with my managers, so I was not surprised to get the axe. (Post coming soon on why managers don&#8217;t like me.) I was surprised that a guy who flat out refused to do work that was assigned to him would get to stay.</p>
</li>
</ol>
<p>I got fed up and told the company to suck it up and lay me off. Luckily, I found a job within a couple of weeks and didn&#8217;t need to file for unemployment. A couple of weeks after I found my new job, the entire company went belly up. Maybe with better management and practices, the company would still be around. Maybe it was doomed from the beginning. Either way, I came away with some hard earned lessons that I won&#8217;t forget any time soon. I may not ever own a company, but many of these points apply just as well to managers and team leads.</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/234176045" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/02/10/some-things-to-remember-when-running-a-small-business/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/02/10/some-things-to-remember-when-running-a-small-business/</feedburner:origLink></item>
		<item>
		<title>Bourse and Cut Cables - What Do They Have In Common?</title>
		<link>http://feeds.feedburner.com/~r/Megatome/~3/234176046/</link>
		<comments>http://www.megatome.com/2008/02/06/bourse-and-cut-cables-what-do-they-have-in-common/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 18:28:06 +0000</pubDate>
		<dc:creator>iamthechad</dc:creator>
		
		<category><![CDATA[politics]]></category>

		<category><![CDATA[world]]></category>

		<category><![CDATA[america]]></category>

		<category><![CDATA[bourse]]></category>

		<category><![CDATA[cables]]></category>

		<category><![CDATA[dollar]]></category>

		<category><![CDATA[economy]]></category>

		<category><![CDATA[empire]]></category>

		<category><![CDATA[iran]]></category>

		<category><![CDATA[iraq]]></category>

		<category><![CDATA[oil]]></category>

		<category><![CDATA[undersea cables]]></category>

		<guid isPermaLink="false">http://www.megatome.com/2008/02/06/bourse-and-cut-cables-what-do-they-have-in-common/</guid>
		<description><![CDATA[OK. Time for what may turn out to be nothing more than a conspiracy theory, but is very ominous looking at the present.

Depending on which reports you read, anywhere from four to five undersea communications cables have been "compromised".]]></description>
			<content:encoded><![CDATA[<p>OK. Time for what may turn out to be nothing more than a conspiracy theory, but is very ominous looking at the present.</p>
<p>Depending on <a href="http://www.engadget.com/2008/02/05/fourth-undersea-cable-cut-near-uae-suspicions-rise/">which reports</a> <a href="http://www.schneier.com/blog/archives/2008/02/fourth_undersea.html">you read</a>, anywhere from four to five undersea communications cables have been &quot;compromised&quot;. I refrain from saying &quot;cut&quot; because very few of the accounts line up with each other. Reports range from cut lines to breakage due to seismic activity to power problems.</p>
<p>No matter what, all of the affected cables are in the Middle East, <a href="http://www.khaleejtimes.com/DisplayArticle.asp?xfile=data/theuae/2008/February/theuae_February155.xml&amp;section=theuae">affecting the UAE</a>.</p>
<p>This is where the conspiracy theory angle comes into play. If you look at the <a href="http://www.ilovebonnie.net/2008/02/06/apparently-ships-can-drag-anchors-from-egypt-to-malaysia/">map put together by ILoveBonnie.net</a>, you&#8217;ll see that it&#8217;s very unlikely that a ship&#8217;s anchor or even seismic activity could account for all of the cables.</p>
<p>Let&#8217;s don our tinfoil hats and see if we can come up with a reason why anybody would want to disrupt communications in the UAE. Aha - here it is. <a href="http://en.wikipedia.org/wiki/Iranian_Oil_Bourse">Iran plans on making their oil bourse operational in the first weeks of February.</a></p>
<p>A bourse is <a href="http://www.m-w.com/dictionary/bourse">defined as</a> a &quot;European stock exchange&quot;, and an oil bourse obviously is an exchange devoted to oil trading. What&#8217;s important about Iran&#8217;s bourse is that, unlike all of the other oil markets in the world, it will not be tied to the US dollar.</p>
<p>There is a <a href="http://www.energybulletin.net/12125.html">fascinating article at Energy Bulletin by Krassimir Petrov</a> outlining the effects that Iran&#8217;s oil bourse would have on the American &quot;Empire&quot;. It&#8217;s a wonderful read, and explains very clearly why having an international oil exchange that is not tied to the US dollar will affect the influence that the American economy has on the rest of the world. Changes to this influence will result in the US dollar being devalued significantly, leading to either deflation or hyperinflation in the American economy. Either of these actions will have significant negative impact, possibly causing another depression.</p>
<p>I hope you&#8217;ve taken the time to read Petrov&#8217;s article. I also hope that while you were reading it, you noticed it publication date: January 17 <strong>2006</strong>. That&#8217;s right - nearly two years ago the bourse was being seen as a threat. Do you remember hearing about it then? I don&#8217;t, either. What happened was that the bourse was delayed and is now on track to open in February of 2008. As of December 2007, <a href="http://en.rian.ru/world/20071208/91488137.html">Iran has already stopped accepting US dollars for oil</a>.</p>
<p>Now, it shouldn&#8217;t take too much to put two and two together. The operation of the Iran oil bourse has the potential to collapse the American economy, and communications systems in the same geographic area have begun to fail, possibly due to sabotage. </p>
<p>It is also worth mentioning that these cable failures have not taken Iran offline, as some people have noted. Indeed, according to the <a href="http://www.internettrafficreport.com/asia.htm">Internet Traffic Report</a>, it appears that Iran is totally offline, but remember that this information is based on the availability of a single router. (At the time this post was written, the single router listed for Florida in the US had 100% packet loss, but that doesn&#8217;t mean that Florida was offline.)</p>
<p>Still, broken cables offer a wonderful opportunity for communications listening devices to be added with very low risk of discovery. It may be that there is a plan to disrupt communications so the bourse will not be able to operate normally. It may also be that the cables end up having absolutely nothing to do with the bourse. I&#8217;m more of the paranoid type, and with our current president, I&#8217;m leaning towards there being a definite connection.</p>
<p>Regardless of any connection between the cables the bourse, if the US does end up going to war with Iran at some point, I think it will behoove us to question if the action is simply to help the US dollar retain its international value. After all, according to Petrov, a man named Saddam Hussein was the first to demand euros for oil (in 2000) - and look where he and Iraq ended up.</p>
<img src="http://feeds.feedburner.com/~r/Megatome/~4/234176046" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.megatome.com/2008/02/06/bourse-and-cut-cables-what-do-they-have-in-common/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.megatome.com/2008/02/06/bourse-and-cut-cables-what-do-they-have-in-common/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.472 seconds -->
