<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>And now it’s all this</title>
	<atom:link href="http://www.leancrew.com/all-this/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leancrew.com/all-this</link>
	<description>I just said what I said and it was wrong. Or was taken wrong.</description>
	<lastBuildDate>Thu, 02 Sep 2010 19:38:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Afghanistan and Iraq, August 2010</title>
		<link>http://www.leancrew.com/all-this/2010/09/afghanistan-and-iraq-august-2010/</link>
		<comments>http://www.leancrew.com/all-this/2010/09/afghanistan-and-iraq-august-2010/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 19:38:38 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[afghanistan]]></category>
		<category><![CDATA[iraq]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[war]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/09/afghanistan-and-iraq-august-2010/</guid>
		<description><![CDATA[Military deaths were down a bit in Afghanistan this past month, but not much Coalition deaths passed the 2000 mark, with little more than a brief mention in the news. I can&#8217;t stand thinking that the man I voted for is prolonging this war because of domestic politics, but I don&#8217;t know what else to [...]]]></description>
			<content:encoded><![CDATA[<p>Military deaths were down a bit in Afghanistan this past month, but not much Coalition deaths passed the 2000 mark, with little more than a brief mention in the news. I can&#8217;t stand thinking that the man I voted for is prolonging this war because of domestic politics, but I don&#8217;t know what else to believe. Obama doesn&#8217;t really expect anything good to come out of this war, does he?</p>

<p><a href="http://www.leancrew.com/all-this/images2010/ac-201008.png"><img class="ss" src="http://www.leancrew.com/all-this/images2010/ac-201008-t.png" /></a></p>

<p>As for Iraq, no real changes.</p>

<p><a href="http://www.leancrew.com/all-this/images2010/ic-201008.png"><img class="ss" src="http://www.leancrew.com/all-this/images2010/ic-201008-t.png" /></a></p>

<p>Despite what I said last month, I&#8217;ll probably continue to plot the Iraq data for the &#8220;residual&#8221; forces. 50,000 is a lot of advisors.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/09/afghanistan-and-iraq-august-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elements v. Simplenote, Round 2</title>
		<link>http://www.leancrew.com/all-this/2010/08/elements-v-simplenote-round-2/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/elements-v-simplenote-round-2/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 03:48:40 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[simplenote]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/elements-v-simplenote-round-2/</guid>
		<description><![CDATA[Last night, I was going to write a post comparing Simplenote to Elements. I&#8217;d already written a brief comparison of the two, but that was before the release of Simplenote 3. It seemed only fair to take into account the improvements in it. But instead of writing the post, I got hooked on watching YouTube [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, I was going to write a post comparing <a href="http://simplenoteapp.com/">Simplenote</a> to <a href="http://www.secondgearsoftware.com/elements/">Elements</a>. I&#8217;d already written <a href="http://www.leancrew.com/all-this/2010/08/elements-simplenote-and-iphone-fonts/">a brief comparison of the two</a>, but that was before the release of Simplenote 3. It seemed only fair to take into account the improvements in it.</p>

<p>But instead of writing the post, <a href="http://www.leancrew.com/all-this/2010/08/never-mind-the-crackpipe/">I got hooked on watching YouTube videos</a>, and pretty soon the evening was gone. That turned out to be a lucky break, because when I opened iTunes today, I found that Second Gear had just done a small update to Elements. So now I can compare the latest and greatest of both apps.</p>

<p>If you&#8217;re the impatient type, here&#8217;s the bottom line: although I haven&#8217;t deleted Simplenote from my iPhone, I&#8217;ve stopped using it. All my notes are done in Elements now.</p>

<h2>Simplnote</h2>

<p>The primary new features in Simplenote 3 are:</p>

<ul>
<li><p>The tagging of notes. A little flag/button appears at the top of each note, allowing you to add tags to that note for later searching. I have really no interest in this. To me a good title beats a set of tags any day.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/simplenote-tag.png" /></p></li>
<li><p>A fullscreen viewing option. This is pretty cool; it gets rid of the top and bottom toolbars (or whatever they&#8217;re called) and lets you see a few more lines of the file.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/simplenote-fullscreen.png" /></p>

<p>That light floating button in the lower right takes you back to normal view.</p></li>
<li><p>Note statistics. Elements already had this, and it&#8217;s an easy to implement, so it seemed inevitable that it would come to Simplenote. Oddly, it only gives the character and word counts—no line count.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/simplenote-wc.png" /></p></li>
</ul>

<p>These additions don&#8217;t address the downsides of Simplenote I mentioned in <a href="http://www.leancrew.com/all-this/2010/08/elements-simplenote-and-iphone-fonts/">my earlier comparison</a>:</p>

<ol>
<li>Its own syncing solution, which forces you to use either a web browser or a restricted set of applications when you want to access your notes from a computer.</li>
<li>No option for a monospaced font. Some text files are just better suited for display in a monospaced font.</li>
</ol>

<h2>Elements</h2>

<p>The big change in Elements is that you can now use any font on the iPhone, not just the &#8220;Roman&#8221; versions. I immediately switched from Courier to Courier Bold. The font looked ridiculously thick at first because I&#8217;d gotten used to the spindly look of plain Courier, but now it seems OK, especially when combined with the Silver background.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/elements-bold.png" /></p>

<p>There&#8217;s no question <a href="http://www.leancrew.com/all-this/2010/07/an-ios-4-disappointment/">I&#8217;d prefer a nice sans serif monospace font</a>, but unless there&#8217;s a way for Second Gear to package a font with the app, we won&#8217;t see a really good looking monospaced font in Elements until Apple gives us one.</p>

<p>Elements is not without its problems.</p>

<ul>
<li>The color choices for the text and background are, for the most part, ugly and don&#8217;t match either of  the toolbars.</li>
<li>It doesn&#8217;t recognize phone numbers in the notes and turn them into links to the Phone app.</li>
<li>The enormously long list of fonts for displaying the notes could be organized better, allowing you to start by choosing a font family and then choosing a style—like every other program you&#8217;ve ever used.</li>
</ul>

<p>These problems, though, don&#8217;t come close to outweighing the great simplicity that comes from Elements&#8217; <a href="https://www.dropbox.com/">Dropbox</a> syncing. I can use any text editor on my computer to create a file, save to the special Elements folder within my Dropbox folder, and it&#8217;ll be available in Elements on my phone in a minute or two. And for files edited in Elements, the syncing is just as automatic in the other direction.</p>

<h2>Wrapup</h2>

<p>As I said in my initial comparison, the two things that set Elements apart from Simplenote are:</p>

<ol>
<li>The text editor freedom provided by Elements&#8217; Dropbox syncing.</li>
<li>The ability to use a monospaced font to align columns in certain files.</li>
</ol>

<p>That Elements can now display its notes in a font that actually looks black instead of light gray is just one more step ahead of Simplenote.</p>

<p>It&#8217;s true that Elements is $5, whereas Simplenote is free, but if that&#8217;s your overriding consideration, you might want to <a href="http://theoatmeal.com/blog/apps">reconsider your priorities</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/elements-v-simplenote-round-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Checkcards on Github</title>
		<link>http://www.leancrew.com/all-this/2010/08/checkcards-on-github/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/checkcards-on-github/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 04:41:33 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[beautifulsoup]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/checkcards-on-github/</guid>
		<description><![CDATA[My library loan tracking scripts, checkcards and checkcards.py, stopped working this weekend. After a bit of debugging, I came to learn that the library—or, more accurately, its software vendor—had snuck in a new &#60;span&#62; tag at the ends of magazine titles. My Python/BeautifulSoup code wasn&#8217;t expecting this and choked on it.1 The fix was fairly [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.leancrew.com/all-this/2009/03/library-loan-tracking-again/">My library loan tracking scripts</a>, <code>checkcards</code> and <code>checkcards.py</code>, stopped working this weekend. After a bit of debugging, I came to learn that the library—or, more accurately, its software vendor—had snuck in a new <code>&lt;span&gt;</code> tag at the ends of magazine titles. My Python/BeautifulSoup code wasn&#8217;t expecting this and choked on it.<sup id="fnref:sense"><a href="#fn:sense" rel="footnote">1</a></sup></p>

<p>The fix was fairly simple, but as I was editing <code>checkcards.py</code>, the Python script that does all the heavy lifting, I got a little too aggressive in tearing out the old code and had to reconstruct some of it from memory. It was then that I realized that I&#8217;d never put the <code>checkcards</code> scripts under version control. <a href="http://github.com/drdrang/checkcards">Now I have</a>.</p>

<p>In addition to the README, the <a href="http://github.com/drdrang/checkcards">GitHub repository</a> has three files:</p>

<ul>
<li><code>checkcards.py</code>, which communicates with the library&#8217;s website and prepares the email with the list of items checked out and on hold.</li>
<li><code>checkcards</code>, which runs <code>checkcards.py</code> and pipes the result to <code>sendmail</code> for emailing.</li>
<li><code>com.leancrew.checkcards.plist</code>, which tells <code>launchd</code> to run <code>checkcards</code> every morning.</li>
</ul>

<p>My login information has been redacted, and the README tells you how to customize it for yourself. Frankly, I doubt that this will be useful to anyone who doesn&#8217;t use the <a href="http://www.naperville-lib.info/">Naperville Public Library</a>, but who knows? I think it makes pretty good use of the <a href="http://wwwsearch.sourceforge.net/mechanize/"><code>mechanize</code> library</a> to interact with web pages.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:sense">
<p>I swear this paragraph makes perfect sense.&#160;<a href="#fnref:sense" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/checkcards-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Never mind the crackpipe</title>
		<link>http://www.leancrew.com/all-this/2010/08/never-mind-the-crackpipe/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/never-mind-the-crackpipe/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 04:06:15 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[amywinehouse]]></category>
		<category><![CDATA[bbc]]></category>
		<category><![CDATA[buzzcocks]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/never-mind-the-crackpipe/</guid>
		<description><![CDATA[Instead of writing a post on how the new version of Simplenote stacks up against Elements, as I&#8217;d intended, I spent the evening watching old episodes of Never Mind the Buzzcocks on YouTube. And found, in a show from the spring of 2004, a young, cute, and thoroughly delightful Amy Winehouse. Sometimes goofing off pays [...]]]></description>
			<content:encoded><![CDATA[<p>Instead of writing a post on how the new version of <a href="http://simplenoteapp.com/">Simplenote</a> stacks up against <a href="http://www.secondgearsoftware.com/elements/">Elements</a>, as I&#8217;d intended, I spent the evening watching old episodes of <a href="http://en.wikipedia.org/wiki/Never_Mind_the_Buzzcocks"><em>Never Mind the Buzzcocks</em></a> on YouTube. And found, in a show from the spring of 2004, a young, cute, and thoroughly delightful Amy Winehouse.</p>

<p><object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/Rsr0GMwoIAQ?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Rsr0GMwoIAQ?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"></embed></object></p>

<p><object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/IeW-A5QHf8U?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IeW-A5QHf8U?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"></embed></object></p>

<p><object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/QbqhmfIFKzs?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QbqhmfIFKzs?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"></embed></object></p>

<p>Sometimes goofing off pays dividends.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/never-mind-the-crackpipe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spew</title>
		<link>http://www.leancrew.com/all-this/2010/08/spew/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/spew/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 00:00:38 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[nytimes]]></category>
		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/spew/</guid>
		<description><![CDATA[This column by Frank Rich in today&#8217;s New York Times has been mentioned favorably on some liberal blogs, but I don&#8217;t think much of it. First, it&#8217;s derivative of Jane Mayer&#8217;s recent article on the Koch brothers in The New Yorker. More important, it has some really tone-deaf passages. Here&#8217;s the first: Only the fat [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nytimes.com/2010/08/29/opinion/29rich.html?hp">This column by Frank Rich</a> in today&#8217;s <em>New York Times</em> has been mentioned favorably on some liberal blogs, but I don&#8217;t think much of it. First, it&#8217;s derivative of <a href="http://www.newyorker.com/reporting/2010/08/30/100830fa_fact_mayer">Jane Mayer&#8217;s recent article on the Koch brothers</a> in <em>The New Yorker</em>. More important, it has some really tone-deaf passages.</p>

<p>Here&#8217;s the first:</p>

<blockquote>
  <p>Only the fat cats change — not their methods and not their pet bugaboos (taxes, corporate regulation, organized labor, and government “handouts” to the poor, unemployed, ill and elderly). Even the sources of their fortunes remain fairly constant. Koch Industries began with oil in the 1930s and now also spews an array of industrial products, from Dixie cups to Lycra, not unlike DuPont’s portfolio of paint and plastics.</p>
</blockquote>

<p>Spews? Why use a derisive verb to describe a company that actually makes things? That&#8217;s something of a rarity in the US today, when everyone seems to want to be in the business of buying and selling money. Sure, if the company violates pollution laws, spews is a great word for what it puts into our air and water. Or if the products it makes are junk, then spews would fit the bill. But there&#8217;s nothing wrong with Dixie Cups and Lycra, or paint and plastics.</p>

<p>Make no mistake: the Kochs are evil bastards. But they&#8217;re not evil because they make Dixie Cups.</p>

<p>The problem here isn&#8217;t just that Rich is being stupid; it&#8217;s that he&#8217;s being stupid in a way that plays into conservative stereotypes about liberals. <em>Frank Rich is a liberal elitist who thinks he&#8217;s too good for Dixie Cups, so he bashes the Real Americans who make them.</em></p>

<p>In the next paragraph, Rich mentions the Mayer article and pushes the stereotype again:</p>

<blockquote>
  <p>Her article caused a stir among those in Manhattan’s liberal elite who didn’t know that David Koch, widely celebrated for his cultural philanthropy, is not merely another rich conservative Republican but the founder of the Americans for Prosperity Foundation, which, as Mayer writes with some understatement, “has worked closely with the Tea Party since the movement’s inception.”</p>
</blockquote>

<p>So first he slams the &#8220;fat cats&#8221; and in the very next paragraph he reports on a &#8220;stir&#8221; among the Manhattan charity ball crowd. <em>Darling, did you hear our David associates with those dreadful Tea Party people? Worse yet, I hear he makes Dixie Cups.</em></p>

<p>Frank Rich knows the culture wars well enough to avoid crap like this. He&#8217;s presenting liberalism as a conservative cartoon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/spew/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmarking password generation</title>
		<link>http://www.leancrew.com/all-this/2010/08/benchmarking-password-generation/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/benchmarking-password-generation/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 19:16:03 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/benchmarking-password-generation/</guid>
		<description><![CDATA[In my recent post on password cracking, I mentioned in passing that I thought the values in this table of password generation times were a little high. In today&#8217;s post I&#8217;ll show why I said that and also prove that I can program, albeit clumsily, in C. The table came from this LifeHacker article by [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.leancrew.com/all-this/2010/08/allen-ludden-never-got-cracked/">my recent post</a> on password cracking, I mentioned in passing that I thought the values in this table of password generation times were a little high. In today&#8217;s post I&#8217;ll show why I said that and also prove that I can program, albeit clumsily, in C.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/lifehacker-pw-table.png" /></p>

<p>The table came from <a href="http://lifehacker.com/5505400/how-id-hack-your-weak-passwords">this LifeHacker article by John Pozadzides</a> and purports to show how long it would take to generate all possible passwords of various lengths. Implicit in the table&#8217;s construction is the assumption that each password takes one one-millionth of a second to produce. Pozadzides says this represents what &#8220;an average computer&#8221; can do.</p>

<p>I thought that was a little slow, so I wrote this program to check it out.</p>

<pre><code> 1:  #include &lt;stdio.h&gt;
 2:  char pw[] = "12345";
 3:  int i, j, k, l, m;
 4:  
 5:  int main(){
 6:    for (i=97; i&lt;123; i++) {
 7:      pw[0] = i;
 8:      for (j=97; j&lt;123; j++) {
 9:        pw[1] = j;
10:        for (k=97; k&lt;123; k++) {
11:          pw[2] = k;
12:          for (l=97; l&lt;123; l++) {
13:            pw[3] = l;
14:            for (m=97; m&lt;123; m++) {
15:              pw[4] = m;
16:              printf("%s\n", pw);
17:            }
18:          }
19:        }
20:      }
21:    }
22:  }
</code></pre>

<p>A few things to note about this program:</p>

<ol>
<li><p>It&#8217;s written in C, a language I&#8217;ve actually taken a class in but haven&#8217;t programmed in in years. The logic of the program was a snap, and I&#8217;d even remembered the format for the <code>for</code> loop (probably because of my years of Perl programming), but I&#8217;d forgotten a lot of the basics. Like how to declare a string and that a program needs a <code>main</code> function. Fortunately, this kind of information is just a short Google away.</p>

<p>So why did I use a language I&#8217;m unused to? Because I didn&#8217;t want the overhead of an interpreted or semi-compiled language. A real password cracker would certainly be compiled.</p></li>
<li>It&#8217;s written specifically to generate lowercase passwords five characters long. A more general program would probably use a recursive function, but I didn&#8217;t want to spend the time or effort to do that.</li>
<li>It does print the generated passwords to standard output in Line 16. Omitting that line would make the program run faster, but I didn&#8217;t think that was a fair test, as the purpose of a password generator is create a list of passwords for later testing.</li>
</ol>

<p>I compiled the program with <code>gcc</code> and then timed its run with the <a href="http://gemma.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/time.1.html"><code>time</code> utility</a>. Here&#8217;s the session on my old 1.2 GHz PowerPC G4 iBook (the dollar sign is my Terminal prompt):</p>

<pre><code>$ gcc -o lower5 lower5.c
$ time ./lower5 &gt; pw5-c.txt

real    0m8.451s
user    0m3.206s
sys     0m0.998s
</code></pre>

<p>Now you see why I said Pozadzides&#8217; numbers looked slow. Even a creaking, ancient, six year old machine can whip up a list of passwords in less time than his table says.</p>

<p>After writing the post, I compiled and ran the same program on my 2.16 GHz Intel Core 2 Duo iMac and got these timings:</p>

<pre><code>real    0m1.666s
user    0m0.835s
sys     0m0.282s
</code></pre>

<p>This computer—which I consider to be my &#8220;new, fast&#8221; machine, even though it&#8217;s nearly four years old—generated passwords nearly an order of magnitude faster than the &#8220;average computer&#8221; of Pozadzides&#8217; table.</p>

<p>None of this is meant to dispute Pozadzides&#8217; main point, that longer and more complicated passwords are <em>much</em> harder to crack. Nor is it meant to suggest that passwords have become easy to crack with modern computers. Just don&#8217;t believe everything you read, and when you can easily check something out, you should.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/benchmarking-password-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allen Ludden never got cracked</title>
		<link>http://www.leancrew.com/all-this/2010/08/allen-ludden-never-got-cracked/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/allen-ludden-never-got-cracked/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 04:58:37 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/allen-ludden-never-got-cracked/</guid>
		<description><![CDATA[I followed a link yesterday to this LifeHacker article by John Pozadzides about passwords and how to make yours resistant to hacking. As with most articles of this type, I came away thinking that either the author didn&#8217;t really know what he was talking about or decided to dumb things down too much. Don&#8217;t get [...]]]></description>
			<content:encoded><![CDATA[<p>I followed a link yesterday to <a href="http://lifehacker.com/5505400/how-id-hack-your-weak-passwords">this LifeHacker article</a> by John Pozadzides about passwords and how to make yours resistant to hacking. As with most articles of this type, I came away thinking that either the author didn&#8217;t really know what he was talking about or decided to dumb things down too much.</p>

<p>Don&#8217;t get me wrong; I have no problem with the main points of the articles, which are</p>

<ol>
<li>Many people choose stupid, easily hacked passwords.</li>
<li>Adding a little length or extending the character set can make a password <em>much</em> more difficult to hack.</li>
<li>Password managers like <a href="http://agilewebsolutions.com/products/1Password">1Password</a> (which I use) are a good idea.</li>
</ol>

<p>It&#8217;s the explanation of Point 2 that I have trouble with. Here&#8217;s a table from the article (sorry about it being an image instead of an actual table; it&#8217;s an image in the original article, too).</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/lifehacker-pw-table.png" /></p>

<p>Pozadzides says this is &#8220;an estimate of the amount of time it would take to generate every possible combination of passwords for a given number of characters&#8221; for an computer of average speed with a &#8220;reasonable fast&#8221; internet connection. The table is his proof of Point 2, but all it does is confuse me.</p>

<p>I&#8217;m not confused by the math; in fact, it&#8217;s the simplicity of the math that bothers me. Look at the times in the third column. Note first that the .046 in the second row is a typo—it&#8217;s supposed to be 0.46. With that amendment, the durations increase by a factor of 26 with each additional character added to the password length. This is because the number of possible n-character lowercase strings is 26<sup>n</sup>.</p>

<p>Similarly, the durations in the second column increase by a factor of 95 with each additional character. By &#8220;all characters,&#8221; Pozadzides means all the printable characters from the <a href="http://ascii-table.com/">ASCII character set</a>, which is everything from character 32 (space) through character 126 (tilde). So the number of possible n-character passwords from this set is 95<sup>n</sup>.</p>

<p>The change in base means that for a given password length, the duration in column 2 will be</p>

<div class="math">10^{0.563 n}</div>

<p>times the value in column 3, where <span class="math">0.563 = \log(95/26)</span> and <span class="math">n</span> is the password length. This is not an immediately obvious result, but it&#8217;s easy to get if you start by taking the log of the duration ratio</p>

<div class="math">\log\left(\frac{95^n}{26^n}\right) = n[\log(95) - \log(26)] = n \log(95/26)</div>

<p>and then &#8220;de-logging&#8221; by raising 10 to that power.</p>

<p>So all the duration ratios in the table make sense.<sup id="fnref:durations"><a href="#fn:durations" rel="footnote">1</a></sup> But this doesn&#8217;t explain how password cracking programs actually work.</p>

<p>A cracking program trying to hack my GMail account has no idea how long the password is, nor does it know the character set I&#8217;m using. Does it start with a dictionary attack? If so, does it try multiple words before moving on to random strings? Does it try lowercase passwords before moving on to the full character set? If so, at what length does it stop trying lowercase passwords? Pozadzides&#8217; simple table doesn&#8217;t get into any of these questions, which are a hell of a lot more interesting than raising 26 to a variety of powers.</p>

<p>Suppose, for example, that my GMail password is 5 characters long and that it&#8217;s a mix of letters, numbers, and punctuation. According to the table, it would take just over a couple of hours to generate that password. But if the cracking program starts out by generating lists of 3-, 4-, 5-, 6-, 7-, and 8-character lowercase passwords, it&#8217;ll be working for over 2½ days on those lists before it even starts making the list that will contain mine. Does that mean a 5-character password with numbers and punctuation is stronger than an 8-character password with only lowercase letters? That isn&#8217;t what the table says.</p>

<p>On the other hand, suppose the cracking program generates all the 3-character passwords—lowercase first, then with all characters—then all the 4-character passwords, and so on. In that case, a 6-character lowercase password would be better than a 5-character mixed password. Which isn&#8217;t what the table says, either.</p>

<p>Maybe there are no answers to my questions because each password cracker works differently. But I&#8217;d like to see an article—pitched to a non-expert audience like me—that at least addresses these issues.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:durations">
<p>For the duration values themselves, Pozadzides assumes that each password will take one one-millionth of a second to generate, which seems a little slow to me. Also, I don&#8217;t understand why he says the speed of the internet connection has anything to do with the speed at which the passwords are generated. The internet connection speed is certainly important when trying out the passwords but not when generating them.&#160;<a href="#fnref:durations" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/allen-ludden-never-got-cracked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HelTweetica</title>
		<link>http://www.leancrew.com/all-this/2010/08/heltweetica/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/heltweetica/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 03:02:02 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drtwoot]]></category>
		<category><![CDATA[heltweetica]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/heltweetica/</guid>
		<description><![CDATA[As the OAuthcalypse draws nigh, it&#8217;s looking more and more like I won&#8217;t have time to get Dr. Twoot updated before Twitter closes the door on Basic Authentication. Plan B is to use HelTweetica, an application I mentioned a couple of month ago and which has since been updated and improved. Heltweetica is both free [...]]]></description>
			<content:encoded><![CDATA[<p>As the <a href="http://mashable.com/2010/04/24/twitter-oauthcalypse/">OAuthcalypse</a> draws nigh, it&#8217;s looking more and more like I won&#8217;t have time to <a href="http://www.leancrew.com/all-this/2010/06/reports-of-dr-twoot252?-death252Wed6/">get Dr. Twoot updated</a> before Twitter closes the door on Basic Authentication. Plan B is to use <a href="http://www.felttip.com/heltweetica/">HelTweetica</a>, an application I mentioned <a href="http://www.leancrew.com/all-this/2010/06/reports-of-dr-twoot252?-death252Wed6/">a couple of month ago</a> and which has since been updated and improved.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/heltweetica-25.png" /></p>

<p>Heltweetica is both free and open source. If you want to tweak it, you can get the source code from <a href="http://github.com/luciuskwok/HelTweetica">its GitHub repository</a>, change it around and compile it for yourself.</p>

<p>I mentioned in that earlier post that I didn&#8217;t like HelTweetica&#8217;s small display font and that there was no apparent way to change it. There&#8217;s still no preference or menu option for changing the font or font size, but after nosing around in the repository, I learned that the timeline styling is controlled by a CSS file. You don&#8217;t even need to recompile to get HelTweetica to look different.</p>

<p>Just right click on the application and choose <strong>Show Package Contents</strong> from the menu. Open the <code>Contents</code> and then the <code>Resources</code> folders; there you&#8217;ll find the <code>style.css</code> file, which governs HelTweetica&#8217;s main window display. I haven&#8217;t explored all the options, but right up at the top is the <code>body</code> style:</p>

<pre><code>body { 
    margin: 0px; 
    padding: 0px; 
    font-size: 15px; 
    font-family: Helvetica, Arial, sans-serif; 
    line-height: 1.15em; 
    background-color: #888; 
    color: #333; 
    width: auto;
}
</code></pre>

<p>Fifteen-point Helvetica is a little small for me, but 15-point Lucida Grande is quite readable, so I changed the <code>font-family</code>. Lucida Grande is what you see in the screenshot above.</p>

<p>Yes, there&#8217;s something inherently wrong with changing the default font of an application called HelTweetica to Lucida Grande, but I don&#8217;t care as long as I can read the tweets easily.</p>

<p>Unfortunately, the current version of Heltweetica requires Snow Leopard, which means I can&#8217;t run in on my iBook G4. More incentive to update Dr. Twoot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/heltweetica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Strings and expertise</title>
		<link>http://www.leancrew.com/all-this/2010/08/strings-and-expertise/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/strings-and-expertise/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 14:03:07 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[buddyguy]]></category>
		<category><![CDATA[guitar]]></category>
		<category><![CDATA[soundopinions]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/strings-and-expertise/</guid>
		<description><![CDATA[One of the podcasts I subscribe to is Sound Opinions, a weekly radio show that comes out of WBEZ, Chicago&#8217;s public station. Last week&#8217;s episode had a special story on Chess Records, and the hosts, Greg Kot and Jim DeRogatis, played several classic sides from Chess&#8217;s heyday, including a song by Buddy Guy, who was [...]]]></description>
			<content:encoded><![CDATA[<p>One of the podcasts I subscribe to is <a href="http://soundopinions.org">Sound Opinions</a>, a weekly radio show that comes out of <a href="http://www.wbez.org/">WBEZ</a>, Chicago&#8217;s public station. <a href="http://www.soundopinions.org/shownotes/2010/080610/shownotes.html">Last week&#8217;s episode</a> had a special story on <a href="http://en.wikipedia.org/wiki/Chess_Records">Chess Records</a>, and the hosts, Greg Kot and Jim DeRogatis, played several classic sides from Chess&#8217;s heyday, including a song by <a href="http://www.buddyguys.com/">Buddy Guy</a>, who was never a great star at Chess but is considered a blues legend today.<sup id="fnref:legend"><a href="#fn:legend" rel="footnote">1</a></sup> I was going to write a post about the show and tell a story about Buddy Guy but never got around to it.</p>

<p>Then today I read <a href="http://www.kungfugrippe.com/post/980425324/white-blazer-red-pants">Merlin Mann&#8217;s post</a> about <a href="http://en.wikipedia.org/wiki/Bill_Nelson_(musician)">Bill Nelson of Be Bop Deluxe</a> and how he managed, through sheer virtuosity, to work his way through a song on a TV show after losing the tuning on his guitar through some aggressive whammy-barring.  A good example of how true expertise can get you through a rough spot.</p>

<p>I have a similar but better example, which is the Buddy Guy story from the post I never wrote.</p>

<p>While in college in the early 80s, I went to a free show in the <a href="http://union.illinois.edu/">Illini Union</a> sponsored by some student group. It was Buddy Guy and <a href="http://en.wikipedia.org/wiki/Junior_Wells">Junior Wells</a>, who had by that time been playing together for at least 15 years.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/guy-wells.jpg" /></p>

<p>Buddy broke a string on the first or second song, but finished the song by playing around it, instantly working out other hand positions that he could use to get the sounds he wanted. No big deal to play with just five strings? It is when those strings suddenly go out of tune, which they did when the one string broke. So he&#8217;s lost one string <em>and</em> he has to bend/slide/mute/whatever the other five.</p>

<p>When the song finished, Junior covered for him while Buddy restrung. Junior didn&#8217;t tell stories or slow down the show in any way; he just started up a song that he could carry on his own for a while. As soon as the new string was on, Buddy joined in, <em>tuning the guitar as he played</em>. That continued for a song or two as the new string settled in and the others readjusted as the tension changed.</p>

<p>Now, everyone&#8217;s seen a guitarist tweak his tuning in the middle of a song: a quarter-turn of the peg here or there. That&#8217;s not what Buddy was doing. He was cranking on those pegs to get his instrument back in shape. While playing.</p>

<p>There was no Tufnelesque phalanx of guitars near the back of the stage for Buddy to choose from, nor was there a roadie to hand him a replacement. Just a man who knew his business so well he could deal with it without—literally—skipping a beat. Like seeing a hole in a sidewalk and stepping around it.</p>

<p>In some ways, the best thing about this story isn&#8217;t Buddy&#8217;s reaction to the broken string, it&#8217;s Junior&#8217;s—the complete confidence he had that his partner could handle whatever came up. No need to stop the show, Buddy&#8217;ll figure out what to do.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:legend">
<p>Follow the link, and you&#8217;ll see that &#8220;legend&#8221; is a weak pun, for which I&#8217;m sorry. But the purpose of this footnote isn&#8217;t to apologize; it&#8217;s to tell you that Buddy&#8217;s legendary status isn&#8217;t just because he&#8217;s one of the last bluesmen still alive. No, he&#8217;s been considered one of the best blues guitarists for four or five decades—a huge influence on the blues/rock guitar gods of the 60s, Hendrix in particular.&#160;<a href="#fnref:legend" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/strings-and-expertise/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More on bike tire life</title>
		<link>http://www.leancrew.com/all-this/2010/08/more-on-bike-tire-life/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/more-on-bike-tire-life/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 12:45:17 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[biking]]></category>
		<category><![CDATA[tires]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/more-on-bike-tire-life/</guid>
		<description><![CDATA[If you Google &#8220;bicycle tire life,&#8221; chances are you&#8217;ll see this old post of mine up near the top of the page. This is vaguely embarrassing, as the point of the post was that I went into it not really knowing how much life to expect out of my tires. Now I can speak with [...]]]></description>
			<content:encoded><![CDATA[<p>If you Google &#8220;bicycle tire life,&#8221; chances are you&#8217;ll see <a href="http://www.leancrew.com/all-this/2008/06/bike-tire-life/">this old post of mine</a> up near the top of the page. This is vaguely embarrassing, as the point of the post was that I went into it not really knowing how much life to expect out of my tires. Now I can speak with a little more authority, at least for a certain tire brand.</p>

<p>I&#8217;m on my second set of <a href="http://www.conti-online.com/generator/www/de/en/continental/bicycle/themes/city/tour/contact/contact_reflex_en.html">Continental Contact</a> tires. The first set, which is what I put on right after that post in June of 2008, lasted 4000 miles—about 1500 during the remainder of 2008 and all 2500 miles of last year. I thought that was pretty good, so I bought <a href="http://www.rei.com/product/731367?preferredSku=7313670015&amp;cm_mmc=cse_froogle-_-datafeed-_-product-_-7313670015&amp;mr:trackingCode=FA7A4FFE-FB85-DE11-B7F3-0019B9C043EB&amp;mr:referralID=NA">a new set at REI</a> at the beginning of this season. I went with REI because I could order the tires online and pick them up at a local store.</p>

<p>A few weeks ago I had a flat on the ride into work, and decided—since I was going to be removing a tire anyway to change out the tube—to rotate the tires. Friends who don&#8217;t ride much laugh when they hear that I rotate my bike tires, but I definitely get more wear on my rear tires than front, so it only makes since to switch the tires to even that out.</p>

<p>After about 1500 miles, here&#8217;s the tread on my rear tire,</p>

<p><img class="ss" src="http://farm5.static.flickr.com/4107/4833851687_dc98707872_d.jpg" /></p>

<p>and the tread on the front tire,</p>

<p><img class="ss" src="http://farm5.static.flickr.com/4109/4833851459_40e2606930_d.jpg" /></p>

<p>It&#8217;s pretty easy to see the difference in tread depth. There&#8217;s still decent tread left on the rear (which had already been switched to the front by the time I thought to take the photo), but it&#8217;s definitely more worn than the front. It looks like I&#8217;ll get the same life from this set of Continental Contacts as from the last.</p>

<p>I&#8217;m sure the life you get out of your tires depends to a large extent on the type of riding you do and the surfaces you ride on. I&#8217;m mostly a commuter rider, so I probably do more braking and cornering than a long-distance road racer does. I also ride on a variety of surfaces. My commute is about half on asphalt, a third on crushed limestone, and the remainder<sup id="fnref:sixth"><a href="#fn:sixth" rel="footnote">1</a></sup> on concrete (<a href="http://www.leancrew.com/all-this/2010/07/is-there-concrete-all-around-or-is-it-in-my-head/">not cement</a>) sidewalks. Weekend pleasure rides aren&#8217;t too much different.</p>

<p>I don&#8217;t know this for sure, but I&#8217;ve always assumed that it&#8217;s the crushed limestone that does the most damage. I&#8217;m glad I found a brand of tire that holds up to it.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:sixth">
<p>Quick, what&#8217;s <span class="math">1 - \frac{1}{2} - \frac{1}{3}</span>? Hint: the common denominator is 6.&#160;<a href="#fnref:sixth" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/more-on-bike-tire-life/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Who&#8217;s up with nmap, revisited</title>
		<link>http://www.leancrew.com/all-this/2010/08/whos-up-with-nmap-revisited/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/whos-up-with-nmap-revisited/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 04:30:18 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/whos-up-with-nmap-revisited/</guid>
		<description><![CDATA[I am, sad to say, the de facto network administrator for my small company. Today, one of my partners was having a connectivity problem, and while I was solving that problem (some cabling got disconnected), I learned that my little network probing script, whosup, needed to be updated. Originally, whosup was a one-line shell script [...]]]></description>
			<content:encoded><![CDATA[<p>I am, sad to say, the <em>de facto</em> network administrator for my small company. Today, one of my partners was having a connectivity problem, and while I was solving that problem (some cabling got disconnected), I learned that <a href="http://www.leancrew.com/all-this/2008/08/whos-up-with-nmap/">my little network probing script</a>, <code>whosup</code>, needed to be updated.</p>

<p>Originally, <code>whosup</code> was a one-line shell script that ran <a href="http://nmap.org/"><code>nmap</code></a> with certain parameters,</p>

<pre><code>nmap -sP 192.168.1.*
</code></pre>

<p>which told <code>nmap</code> to do a &#8220;ping scan&#8221; of my local network and report the hosts that respond. The reason I made a script out of such a simple command is that I didn&#8217;t use <code>nmap</code> very often and couldn&#8217;t remember the options from one use to the next.</p>

<p>Two things have changed since the last time I used <code>whosup</code>:</p>

<ol>
<li>We now have a few Vista machines at work, and they don&#8217;t respond to the ping scan unless I run it as the superuser.</li>
<li><code>Nmap</code> has been upgraded, and the current version is more verbose in its output and is in the process of changing its ping scan option.</li>
</ol>

<p>To account for these changes and to do a little future-proofing, I changed <code>whosup</code> from a shell script to Perl:</p>

<pre><code>1:  #!/usr/bin/perl
2:  
3:  @nmap = `sudo nmap -sn 192.168.1.0/24 2&gt;&amp;1`;
4:  for (@nmap) {
5:    print "$1\n" if /^Nmap scan.+?(\d+\.\d+\.\d+\.\d+).*/;
6:  }
</code></pre>

<p>Line 3 runs <code>nmap</code> as the superuser (prompting me for my administrative password) and puts the output lines into the <code>@nmap</code> list.</p>

<ul>
<li>The <code>-sn</code> option is the <a href="http://nmap.org/book/man-host-discovery.html">&#8220;no port scan&#8221; option</a> used for host discovery. The older <code>-sP</code> option, which <code>-sn</code> replaces, still works in Version 5.21 but is being phased out.</li>
<li>The <code>192.168.1.0/24</code> tells <code>nmap</code> to look at all the IPs whose first three bytes are 192, 168, and 1. Three bytes is 24 bits, which is where the <code>/24</code> comes from. </li>
<li>Finally, the <code>2&gt;&amp;1</code> is the standard <code>bash</code> redirection operator which merges <a href="http://en.wikipedia.org/wiki/Standard_error_stream#Standard_error_.28stderr.29">standard error</a> into <a href="http://en.wikipedia.org/wiki/Standard_error_stream#Standard_output_.28stdout.29">standard output</a>. I did this because <code>nmap</code> often writes messages to standard error, and I wanted the rest of the program to filter them out.</li>
</ul>

<p>Lines 4-6 then filter the <code>nmap</code> output lines. The <code>nmap</code> output from Line 3 looks something like this,</p>

<pre><code>Starting Nmap 5.21 ( http://nmap.org ) at 2010-08-19 22:16 CDT
Nmap scan report for 192.168.1.1
Host is up (0.0053s latency).
MAC Address: 00:11:22:33:44:55 (Cisco-Linksys)
Nmap scan report for 192.168.1.10
Host is up (0.0038s latency).
MAC Address: 00:11:22:33:44:55 (Brother Industries)
Nmap scan report for 192.168.1.100
Host is up (0.034s latency).
MAC Address: 00:11:22:33:44:55 (Apple Computer)
Nmap scan report for 192.168.1.101
Host is up (0.035s latency).
MAC Address: 00:11:22:33:44:55 (Billionton Systems)
Nmap scan report for 192.168.1.103
Host is up (0.27s latency).
MAC Address: 00:11:22:33:44:55 (Unknown)
Nmap scan report for 192.168.1.107
Host is up (0.27s latency).
MAC Address: 00:11:22:33:44:55 (Apple)
Nmap scan report for 192.168.1.109
Host is up.
Nmap scan report for 192.168.1.110
Host is up (0.16s latency).
MAC Address: 00:11:22:33:44:55 (Sony Computer Entertainment)
Nmap done: 256 IP addresses (8 hosts up) scanned in 10.23 seconds
</code></pre>

<p>which has way too much information.<sup id="fnref:mac"><a href="#fn:mac" rel="footnote">1</a></sup> I just want the IP numbers of the hosts that respond. Line 5 plucks out the IP numbers and prints them, one per line. The final <code>whosup</code> output looks like this:</p>

<pre><code>192.168.1.1
192.168.1.10
192.168.1.100
192.168.1.101
192.168.1.105
192.168.1.109
192.168.1.110
</code></pre>

<p>A simple list of the hosts connected to the network. When I ran it at work today, I found a host I didn&#8217;t know about. Turns out one of my other partners has an old router in his office acting as hub.</p>

<div class="sidebar">

<p>If you&#8217;re one of my few regular readers, you may be wondering why I&#8217;m using Perl to write <code>whosup</code> instead of Python. Generally speaking, I do prefer Python, but Perl is much better as a glue language. In trying to make running shell commands Pythonic, the Python folks have made a complete mess of things.</p>

<p>It&#8217;s weird. Python has a module called <a href="http://docs.python.org/release/1.5/lib/node123.html#SECTION0091500000000000000000"><code>commands</code></a> that allows you to do simple things like</p>

<pre><code>nmap = commands.getoutput('sudo nmap -sn 192.168.1.0/24')
</code></pre>

<p>This is a little more verbose than Perl&#8217;s backticks, but almost as easy to use. For some reason, though, this was considered unseemly and was deprecated a couple of versions ago in favor of the <code>subprocess</code>  module, which requires horrible things like</p>

<pre><code>nmap = subprocess.Popen(["sudo", "nmap", "-sn", "192.168.1.0/24"], stdout=subprocess.PIPE).communicate()[0]
</code></pre>

<p>In Python 3, you&#8217;re forced to do it the <code>subprocess</code> way because <code>commands</code> has been removed. I don&#8217;t see how this is considered progress.</p>

</div>

<div class="footnotes">
<hr />
<ol>

<li id="fn:mac">
<p>The MAC addresses in the output above have been changed to protect the innocent (how many of you are old enough to get <em>that</em> reference?), but the rest of the output is real.&#160;<a href="#fnref:mac" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/whos-up-with-nmap-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elements, Simplenote, and iPhone fonts</title>
		<link>http://www.leancrew.com/all-this/2010/08/elements-simplenote-and-iphone-fonts/</link>
		<comments>http://www.leancrew.com/all-this/2010/08/elements-simplenote-and-iphone-fonts/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 04:18:34 +0000</pubDate>
		<dc:creator>Dr. Drang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[simplenote]]></category>
		<category><![CDATA[textexpander]]></category>

		<guid isPermaLink="false">http://www.leancrew.com/all-this/2010/08/elements-simplenote-and-iphone-fonts/</guid>
		<description><![CDATA[You&#8217;ve no doubt heard about Elements by now. It&#8217;s the latest iPhone plain text note-taking app. I learned about it this morning from Jesse Grosjean&#8217;s tweet. The main features of Elements are: Syncing with your computer(s) via Dropbox. TextExpander support. Character/word/line counts. Choice of font, font size, colors in the display. A &#8220;scratchpad&#8221; for easy [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve no doubt heard about <a href="http://www.secondgearsoftware.com/elements/">Elements</a> by now. It&#8217;s the latest iPhone plain text note-taking app. I learned about it this morning from <a href="http://twitter.com/jessegrosjean/status/21402038046">Jesse Grosjean&#8217;s tweet</a>.</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/elements-grosjean-tweet.png" /></p>

<p>The main features of Elements are:</p>

<ul>
<li>Syncing with your computer(s) via <a href="https://www.dropbox.com/">Dropbox</a>.</li>
<li><a href="http://www.smileonmymac.com/TextExpander/">TextExpander</a> support.</li>
<li>Character/word/line counts.</li>
<li>Choice of font, font size, colors in the display.</li>
<li>A &#8220;scratchpad&#8221; for easy access to disparate bits of text.</li>
</ul>

<p>As a <a href="http://simplenoteapp.com/">Simplenote</a> user, my interest in Elements was piqued by the Dropbox support and the font choice.</p>

<p>When it first came out, Simplenote&#8217;s big selling point was its automatic syncing to the cloud. You could create, edit, and view notes on either your iPhone or your computer. Changes made on one device were instantly synced to the other (assuming your iPhone had an internet connection). This was a big step up from the built-in Notes app, which synced to your Mail application (!?) on the Mac (and God knows what on Windows) when you connected to your computer via USB.</p>

<p>But as nice as Simplenote&#8217;s cloud syncing is, it isn&#8217;t especially flexible. Initially, you had to go to Simplenote&#8217;s website to access your notes on a computer. Later, when the <a href="http://www.leancrew.com/all-this/2010/01/exploring-the-simplenote-api/">Simplenote API</a> came out, certain applications—most prominently <a href="http://notational.net/">Notational Velocity</a>—began to sync with Simplenote&#8217;s cloud services. Which was fine if you were a fan of those applications, but not so fine if you weren&#8217;t. While I appreciate Notational Velocity&#8217;s design<sup id="fnref:quickdex"><a href="#fn:quickdex" rel="footnote">1</a></sup>, I already have a text editor running all the time and don&#8217;t need another one.</p>

<p>Dropbox support gives you the flexibility that Simplenote syncing doesn&#8217;t. When working at your computer, you can use whatever text editor you like: <a href="http://macromates.com/">TextMate</a>, <a href="http://www.barebones.com/">BBEdit</a>, <a href="http://support.apple.com/kb/ht2523">TextEdit</a>, <a href="http://www.panic.com/coda/">Coda</a>, <a href="http://www.gnu.org/software/emacs/">Emacs</a>, <a href="http://www.vim.org/">Vim</a>, <a href="http://www.gnu.org/fun/jokes/ed.msg.html">Ed</a>—anything. This is why Jesse Grosjean is <a href="http://blog.hogbaysoftware.com/post/714987484/plaintext-synced-text-files-for-ios-preview">moving the Hog Bay fleet of apps to Dropbox</a> from his SimpleText system. I wouldn&#8217;t be surprised to see the Simplenote folks add Dropbox support in a future version—it&#8217;s just so much easier for the user.</p>

<p>Elements does its Dropbox syncing very well. When you first launch the app, it asks you for your Dropbox login credentials<sup id="fnref:dropbox"><a href="#fn:dropbox" rel="footnote">2</a></sup> and then puts an &#8220;Elements&#8221; folder in your Dropbox folder. All your Elements files—and they are proper named files, not just runs of text that get their name from the first line—are synced to that folder. Save a file to that folder on your computer and it will soon appear in Elements on your iPhone.</p>

<p>Elements&#8217; second selling point for me was the ability to choose the font. Don&#8217;t get me wrong; I love Helvetica, but there are times when a monospaced font is the proper choice. Tabular information, <a href="http://www.leancrew.com/all-this/2009/11/some-simplenote-stuff/">for example</a>, is much easier to deal with in a plain text document when all the characters are the same width. This is especially true if that document is also going to be edited on my computer, where I always use a monospaced font in TextMate.</p>

<p>This is my one disappointment with Elements. Yes, it allows me to use Courier, but it doesn&#8217;t allow me to use Courier Bold, a font whose strokes are actually thick enough to read easily. Here&#8217;s an example of a tabular document in Elements using Courier:</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/swim-times-elements.png" /></p>

<p>OK, sure, you can read it, but the font is really frail looking. If I could only use the bold version of Courier, the display would be much improved, but there&#8217;s no Elements setting for font style.<sup id="fnref:courierbold"><a href="#fn:courierbold" rel="footnote">3</a></sup></p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/elements-settings.png" /></p>

<p>Also, if you look closely at that Courier document again, you&#8217;ll see that the columns <em>don&#8217;t</em> line up exactly; the lines with colons are a bit shorter, suggesting that the colon character isn&#8217;t as wide as the others. I don&#8217;t understand how this can be, but it&#8217;s something I&#8217;ve <a href="http://www.leancrew.com/all-this/2008/08/iphone-monospace-font-isnt/">pointed out before</a>, although in that case I was looking at hyphens and question marks being wider than other characters.</p>

<p>I&#8217;ve noticed that Courier&#8217;s column alignment changes with font size. The screen shot above is with the font size at 16 points. At 14 points, the alignment of the lines with colons is better, but the lines for the 50-meter breast stroke are a bit longer than the others</p>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/swim-times-elements-14.png" /></p>

<p>This is not, I believe, a problem with Elements. It&#8217;s a problem with iOS itself, either in its font display routines or in its font definitions. A further problem with iOS fonts is that its only monospaced choices are Courier and Courier New. I&#8217;ve complained about this <a href="http://www.leancrew.com/all-this/2010/07/an-ios-4-disappointment/">before</a>, but it bears repeating: Why isn&#8217;t Menlo on the iPhone? Apple seems to think monospaced fonts are only for programming, so why bother with them on a device you don&#8217;t program on? It should know better.</p>

<p>I seem to have gone a bit astray here. What was I talking about? Oh yes. Elements and Simplenote. Overall, I think Elements wins because of Dropbox and font choice. There are, however, two aspects of Simplenote that are superior and which the Elements people should consider adopting:</p>

<ol>
<li>Simplenote allows you to sort your notes by creation date, modification date, or name. Elements sorts by modification date only.</li>
<li>Simplenote can recognize URLs, phone numbers, and dates and turn them into links to Safari, Phone, and Calendar, respectively. Elements can&#8217;t.</li>
</ol>

<p><img class="ss" src="http://www.leancrew.com/all-this/images2010/simplenote-dialing.png" /></p>

<p>Simplenote did <a href="http://simplenoteapp.com/news/2010/8/16/a-major-new-version-is-coming.html">just announce</a> that big changes are coming soon in a new version. Maybe that will flip the advantage back to it. Until that happens, Elements will be replacing Simplenote on my iPhone&#8217;s first screen.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:quickdex">
<p>It reminds me of <a href="http://en.wikipedia.org/wiki/QuickDex">Casady &amp; Greene&#8217;s QuickDex</a> from the olden days, a program I dearly loved.&#160;<a href="#fnref:quickdex" rev="footnote">&#8617;</a></p>
</li>

<li id="fn:dropbox">
<p>If you don&#8217;t already have a Dropbox account, it has a link that, I guess, sends you off to get one. But <em>everyone</em> uses Dropbox nowadays, don&#8217;t they?&#160;<a href="#fnref:dropbox" rev="footnote">&#8617;</a></p>
</li>

<li id="fn:courierbold">
<p>I&#8217;ve asked Second Gear for a way to get Courier Bold in a future version of Elements, and its answer was quick, polite, and noncommittal.&#160;<a href="#fnref:courierbold" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leancrew.com/all-this/2010/08/elements-simplenote-and-iphone-fonts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
