<?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>blog.sudosu.net &#187; Computers</title>
	<atom:link href="http://blog.sudosu.net/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sudosu.net</link>
	<description>Got root?</description>
	<lastBuildDate>Mon, 21 Dec 2009 18:27:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>File &#8220;Created Date&#8221; Under OS X &#8212; Harder Than You Think</title>
		<link>http://blog.sudosu.net/2009/file-created-date-under-os-x/</link>
		<comments>http://blog.sudosu.net/2009/file-created-date-under-os-x/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 21:28:57 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/?p=290</guid>
		<description><![CDATA[A client had an OS X server with tens of thousands of files in a directory tree, and wanted to move some of them based on their creation date. I put together a Python script that worked perfectly on my test system, but failed in production. (I put in a &#8220;&#8211;dryrun&#8221; option, so no harm [...]]]></description>
			<content:encoded><![CDATA[<p>A client had an OS X server with tens of thousands of files in a directory tree, and wanted to move some of them based on their creation date. I put together a Python script that worked perfectly on my test system, but failed in production. (I put in a &#8220;&#8211;dryrun&#8221; option, so no harm was done.)</p>
<p>The modification date the script reported was correct, but the creation date the script reported was different from the creation date that doing &#8220;Get Info&#8221; in the OS X Finder reported. Hmm. Not good. I did some investigating.</p>
<p>Let&#8217;s look at a test file. The Finder reports the following creation and modification dates:<br />
<code>Created: Monday, April 10, 2006 17:04<br />
Modified: Thursday, April 13, 2006 15:54</code></p>
<p>Python reports a different creation date and the same modification date:<br />
<code><br />
&gt;&gt;&gt; import os.path<br />
&gt;&gt;&gt; import time<br />
&gt;&gt;&gt; stamp = os.path.getctime('datetest.txt')<br />
&gt;&gt;&gt; time.ctime(stamp)<br />
'Fri Apr 10 15:51:10 2009'<br />
&gt;&gt;&gt; stamp = os.path.getmtime('datetest.txt')<br />
&gt;&gt;&gt; time.ctime(stamp)<br />
'Thu Apr 13 15:54:43 2006'<br />
</code><br />
Hmmm. What does &#8220;ls&#8221; in the Terminal report? The standard &#8220;ls -l&#8221; reports creation date. Adding &#8220;-T&#8221; makes it report the full date in all cases. And &#8220;-c&#8221; counter-intuitively means &#8220;display modification date.&#8221;<br />
<code><br />
$ ls -lT datetest.txt<br />
-rwxr-xr-x@ 1 schof  schof  2448091 Apr 13 15:54:43 2006 datetest.txt<br />
$ ls -lcT datetest.txt<br />
-rwxr-xr-x@ 1 schof  schof  2448091 Apr 10 15:51:10 2009 datetest.txt<br />
</code><br />
The plot thickens. The modification date matches the Finder and Python, but both Python and ls are reporting an incorrect (according to the Finder) creation date.</p>
<p>Quite a bit of Googling showed me the &#8220;<a href="http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/mdls.1.html">mdls</a>&#8221; tool &#8212; or &#8220;metadata ls.&#8221; Very useful. This shows the complete set of metadata for a file. Including the OS X creation date. Actually, two creation dates, one for the file, and one for the file content. (I&#8217;m not sure what circumstances would make those creation dates differ. The <a href="http://developer.apple.com/macosx/spotlight.html">documentation I&#8217;ve been able to find</a> has been unclear and <a href="http://developer.apple.com/documentation/Carbon/Reference/MetadataAttributesRef/Reference/CommonAttrs.html">contradictory</a>.)</p>
<p><code><br />
$ mdls datetest.txt<br />
kMDItemContentCreationDate     = 2006-04-10 17:04:34 -0700<br />
kMDItemContentModificationDate = 2006-04-13 15:54:43 -0700<br />
...<br />
kMDItemFSContentChangeDate     = 2006-04-13 15:54:43 -0700<br />
kMDItemFSCreationDate          = 2006-04-10 17:04:34 -0700<br />
...<br />
kMDItemLastUsedDate            = 2009-04-11 11:48:03 -0700<br />
kMDItemUsedDates               = (<br />
2009-04-11 00:00:00 -0700<br />
)<br />
</code></p>
<p>Now that we&#8217;ve got all that information, what does it tell us? The Unix/Linux standard for &#8220;creation date&#8221; is to show you the date on which a particular file was created. If you copy file &#8220;a&#8221; to file &#8220;b,&#8221; those are two different files, and the &#8220;creation date&#8221; for file &#8220;b&#8221; will be the date you made the copy.</p>
<p>OS X metadata travels with the file, so if you copy file &#8220;a&#8221; to file &#8220;b&#8221; using ditto on the command-line or using the Finder, the Unix creation date will be the date the copy was done, but the OS X creation date of file &#8220;b&#8221; will be the same as file &#8220;a.&#8221;</p>
<p>There&#8217;s good arguments for handling &#8220;creation date&#8221; the Unix way, and there are good arguments for doing &#8220;creation date&#8221; the OS X way, but mixing them as OS X does is kind of frustrating.</p>
<p>I&#8217;ve written a quick-and-dirty Python example script that reports the Unix creation date and the OS X creation date for any particular file. Since it&#8217;s released under the open-source MIT license, feel free to use it in your own programs. You can download it here: <a href="http://www.sudosu.net/getcreationdate.safe">http://www.sudosu.net/getcreationdate.safe</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2009/file-created-date-under-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Joel On Software&#8221; By Joel Spolsky</title>
		<link>http://blog.sudosu.net/2008/joel-on-software-by-joel-spolsky/</link>
		<comments>http://blog.sudosu.net/2008/joel-on-software-by-joel-spolsky/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 22:23:41 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/?p=273</guid>
		<description><![CDATA[If you&#8217;re in the business of developing software, you should read the &#8220;Joel On Software&#8221; book. Period.
(Shortest review I&#8217;ve ever written.)
While I don&#8217;t agree with everything Joel has written, I find most of what he writes to be a clear exposition of common-sense approaches to managing software development. No BS, just simple stuff that works. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re in the business of developing software, you should read the &#8220;Joel On Software&#8221; book. Period.</p>
<p>(Shortest review I&#8217;ve ever written.)</p>
<p>While I don&#8217;t agree with everything Joel has written, I find most of what he writes to be a clear exposition of common-sense approaches to managing software development. No BS, just simple stuff that works. A small percentage of &#8220;Joel On Software&#8221; is mind-changing, opening your eyes to new ways of doing things or new ways of thinking about old software.</p>
<p>Highly recommended.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2008/joel-on-software-by-joel-spolsky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seamless SSH</title>
		<link>http://blog.sudosu.net/2008/seamless-ssh/</link>
		<comments>http://blog.sudosu.net/2008/seamless-ssh/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 18:59:10 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Shell Scripting]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/?p=269</guid>
		<description><![CDATA[I&#8217;m transitioning my daily work desktop from OS X Leopard to Kubuntu Hardy. (I&#8217;ll be writing more about that in the future.) My job is split between managing people and doing development and system administration for a bunch of Ubuntu boxes, so running the same platform that I&#8217;m administering makes a lot of sense. I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m transitioning my daily work desktop from OS X Leopard to Kubuntu Hardy. (I&#8217;ll be writing more about that in the future.) My job is split between managing people and doing development and system administration for a bunch of Ubuntu boxes, so running the same platform that I&#8217;m administering makes a lot of sense. I DO miss some of the fit-and-finish of OS X, though, and I haven&#8217;t completely transitioned over to Linux for everything.</p>
<p>Ssh-agent is a great program that lets you add the password to your SSH private key to memory, and then you don&#8217;t need to type in the ssh key passphrase every time. The basic usage is that you start BASH as a child of ssh-agent, and then use a program called ssh-add to prompt you for the password and store it in memory.</p>
<p>On OS X, there&#8217;s a GREAT program called SSHKeychain that handles this, storing the password in your OS X keychain, so it&#8217;s really seemless.</p>
<p>On Linux, you need to type in &#8220;ssh-add&#8221; manually every time you want to store the key, and after that your SSH sessions will be seamless.</p>
<p>However, I&#8217;m always forgetting to do that, and thus getting prompted for the password. Too many seams. I added the following code snippet to the end of my .bashrc file, and thus, every time I open a bash shell, it checks whether ssh-agent has any keys in memory. If it does, the shell starts as normal. If ssh-agent doesn&#8217;t have any keys in memory, it prompts you for the password. Simple, and as seamless as I can make it.</p>
<blockquote><p>## Add key to ssh-add if it has not been added.</p>
<p>ssh-add -l &amp;&gt; /dev/null<br />
SSHADDRESULT=$?<br />
if [ "$SSHADDRESULT" -ne "0" ]; then<br />
ssh-add<br />
fi</p></blockquote>
<p><strong>UPDATE 2008-07-02</strong>: Here&#8217;s a much more succinct way of writing that:</p>
<blockquote><p>ssh-add -l &amp;&gt;/dev/null || ssh-add</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2008/seamless-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job Interviews; Personality Does Matter</title>
		<link>http://blog.sudosu.net/2008/job-interview-feedback-personality-does-matter/</link>
		<comments>http://blog.sudosu.net/2008/job-interview-feedback-personality-does-matter/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 01:43:40 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/?p=264</guid>
		<description><![CDATA[I recently interviewed a very intelligent, capable programmer who was near the start of his career. I decided not to make him an offer, and he sent a very nice follow-up e-mail asking for tips on how to present himself better. I figured my reply might be very useful to other applicants, so I&#8217;m posting [...]]]></description>
			<content:encoded><![CDATA[<p>I recently interviewed a very intelligent, capable programmer who was near the start of his career. I decided not to make him an offer, and he sent a very nice follow-up e-mail asking for tips on how to present himself better. I figured my reply might be very useful to other applicants, so I&#8217;m posting most of it here:</p>
<blockquote><p>First, lose the headphones. That didn&#8217;t affect our decision at all, but I could imagine it affecting it at other companies.</p>
<p>Second, you&#8217;re obviously intelligent and capable. You messed up on the unit test, but I&#8217;m attributing that to interview nerves &#8211; I&#8217;m reasonably certain you could handle the technical demands of the job. But that&#8217;s only the first hurdle.</p>
<p>The next is personality and fit with the company &#8212; and this is a sticky one. In an interview, I&#8217;ve got about an hour to decide if you&#8217;re the kind of person I want to spend the next three or more years with, in relatively close quarters. Can you argue a position strongly, but lose gracefully? You may be right about the technical merits of something, but the business reality means we have to do something else &#8212; can you live with that? On a good day, we go two steps forward and one step back &#8212; bad days it&#8217;s one step forwards and two steps back. Can you deal with that frustration? I received certain cues from you &#8212; interrupting, hitting the table during the coding test, etc. &#8212; that you might have been hard to work with. Is that true? I can&#8217;t tell in an hour. But saying &#8220;no&#8221; to a candidate who would have been terrific is a smaller risk than saying &#8220;yes&#8221; to a candidate who turns out to be a bad hire.</p>
<p>I hope you appreciate my honesty in writing this, rather than brushing you off with &#8220;not a good fit.&#8221; I did so because I think your question about your interview performance is sincere, and I&#8217;m hoping my answer helps.</p></blockquote>
<p>If it&#8217;s not obvious from reading the e-mail, <a href="http://www.randsinrepose.com/" target="_blank">Rands</a> has been a big influence on my management style.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2008/job-interview-feedback-personality-does-matter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Epiphany, and My Technical Goals</title>
		<link>http://blog.sudosu.net/2008/an-epiphany-and-my-technical-goals/</link>
		<comments>http://blog.sudosu.net/2008/an-epiphany-and-my-technical-goals/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 17:48:06 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Dakim]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2008/an-epiphany-and-my-technical-goals/</guid>
		<description><![CDATA[First, the epiphany &#8212; despite all the fires, and multiple top priorities, and projects, and all the other fireballs of stress that scream over my desk &#8212; there is nothing I can do for Dakim that&#8217;s more important than hiring. Over the next two years, I&#8217;m probably going to add significant headcount to my department [...]]]></description>
			<content:encoded><![CDATA[<p>First, the epiphany &#8212; despite all the fires, and multiple top priorities, and projects, and all the other fireballs of stress that scream over my desk &#8212; there is nothing I can do for Dakim that&#8217;s more important than hiring. Over the next two years, I&#8217;m probably going to add significant headcount to my department &#8212; and nothing is more important than making sure I have the right people when I need them. (With strong emphasis on RIGHT. We&#8217;re looking for rockstars.)</p>
<p>I need to start going to conventions, user group meetings, etc. &#8212; immediately I&#8217;m going to start attending the Los Angeles Linux User Group meetings and the local Python SIG. I&#8217;m not sure what else I&#8217;m going to do, but it&#8217;s becoming obvious that I don&#8217;t scale &#8212; that the long-term solution is NOT for me to increase my skills, as I&#8217;ve been doing, but to hire people who have the skills.</p>
<p>That said, in the short term, it&#8217;s clear that there&#8217;s three technical areas where I must improve my skills:</p>
<ol>
<li>I need to be a world-class guru in apt-based package management.</li>
<li>I need to greatly improve my skills at low-level TCP/IP issues &#8212; packet captures, diagnosis of networking problems, etc.</li>
<li>I need to greatly improve my skills at dealing the Linux kernel, on all levels &#8212; compiling, kernel options, loadable modules &amp; drivers, etc.</li>
</ol>
<p>I guess it&#8217;s good to have a clear vision of where I need to go. Now I need to get there.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2008/an-epiphany-and-my-technical-goals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working on the spec for SPBS</title>
		<link>http://blog.sudosu.net/2008/working-on-the-spec-for-spbs/</link>
		<comments>http://blog.sudosu.net/2008/working-on-the-spec-for-spbs/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 18:23:03 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[SPBS]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2008/working-on-the-spec-for-spbs/</guid>
		<description><![CDATA[I&#8217;ve been working on the spec for SPBS &#8212; it&#8217;s slow going, as my real job has been taking most of my focus. But I realized that in designing the templating system for the blog, I&#8217;m actually designing a domain-specific mini-language. I think I&#8217;m going to reread that chapter of The Art of Unix Programming.
But [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on the spec for <a href="http://code.google.com/p/spbs/" target="_blank">SPBS</a> &#8212; it&#8217;s slow going, as my real job has been taking most of my focus. But I realized that in designing the templating system for the blog, I&#8217;m actually designing a <a href="http://catb.org/~esr/writings/taoup/html/minilanguageschapter.html" target="_blank">domain-specific mini-language</a>. I think I&#8217;m going to reread that chapter of <a href="http://catb.org/~esr/writings/taoup/html/" target="_blank">The Art of Unix Programming</a>.</p>
<p>But in general, I&#8217;m finding SPBS both challenging and a hell of a lot of fun. It&#8217;s turning into a bigger project than I expected &#8212; or perhaps, a better way of saying it is that SPBS is slowly revealing its complexity to me. I could get this done a lot fast by adapting pyBloxsom. But where&#8217;s the fun in that? {grin}</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2008/working-on-the-spec-for-spbs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing The Launch Of SPBS &#8212; the Simplest Possible Blogging System</title>
		<link>http://blog.sudosu.net/2008/announcing-the-launch-of-spbs-the-simplest-possible-blogging-system/</link>
		<comments>http://blog.sudosu.net/2008/announcing-the-launch-of-spbs-the-simplest-possible-blogging-system/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 07:24:27 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[John Mark Schofield Meta]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2008/announcing-the-launch-of-spbs-the-simplest-possible-blogging-system/</guid>
		<description><![CDATA[And by &#8220;Launch,&#8221; I mean &#8220;I&#8217;m starting to write it.&#8221; There&#8217;s a long way between that and a completed program. But you can check my progress at SPBS&#8217; Google Code site: http://code.google.com/p/spbs/
I&#8217;ve written an introduction to SPBS, and the reasons I&#8217;m writing it here, at http://code.google.com/p/spbs/wiki/SPBSIntroduction
]]></description>
			<content:encoded><![CDATA[<p>And by &#8220;Launch,&#8221; I mean &#8220;I&#8217;m starting to write it.&#8221; There&#8217;s a long way between that and a completed program. But you can check my progress at SPBS&#8217; Google Code site: <a href="http://code.google.com/p/spbs/" target="_blank">http://code.google.com/p/spbs/</a></p>
<p>I&#8217;ve written an introduction to SPBS, and the reasons I&#8217;m writing it here, at <a href="http://code.google.com/p/spbs/wiki/SPBSIntroduction" target="_blank">http://code.google.com/p/spbs/wiki/SPBSIntroduction</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2008/announcing-the-launch-of-spbs-the-simplest-possible-blogging-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BioWiki &#8212; A new project</title>
		<link>http://blog.sudosu.net/2007/biowiki-a-new-project/</link>
		<comments>http://blog.sudosu.net/2007/biowiki-a-new-project/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 06:17:41 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Autobiography]]></category>
		<category><![CDATA[Sudosu.net Meta]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/biowiki-a-new-project/</guid>
		<description><![CDATA[Although I&#8217;m not at all sure about the &#8220;BioWiki&#8221; name. And &#8220;AutoBioWiki&#8221; is even worse. But in the fine tradition of Anne Lamott&#8217;s &#8220;shitty first draft,&#8221; here&#8217;s
 http://biowiki.sudosu.net
(I&#8217;m keeping the shitty first draft to myself, at least for now.)
]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;m not at all sure about the &#8220;BioWiki&#8221; name. And &#8220;AutoBioWiki&#8221; is even worse. But in the fine tradition of Anne Lamott&#8217;s &#8220;shitty first draft,&#8221; here&#8217;s</p>
<p><a href="http://biowiki.sudosu.net" title="John Mark Schofield's Autobiographical Wiki" target="_blank"> http://biowiki.sudosu.net</a></p>
<p>(I&#8217;m keeping the shitty first draft to myself, at least for now.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/biowiki-a-new-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google FTW: Fixing Arrow Problems in OS X Python</title>
		<link>http://blog.sudosu.net/2007/google-ftw-fixing-arrow-problems-in-os-x-python/</link>
		<comments>http://blog.sudosu.net/2007/google-ftw-fixing-arrow-problems-in-os-x-python/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 00:38:35 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Broken]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/google-ftw-fixing-arrow-problems-in-os-x-python/</guid>
		<description><![CDATA[I lived with it for ages. I tried to fix it on my own, by selecting different emulation types. Finally I Googled for it. And pretty much instantly found the answer:
 python `python -c &#8220;import pimp; print pimp.__file__&#8221;` -i readline
Moral? If at first you don&#8217;t succeed, Google. If Google fails, try, try again.
Update: And to [...]]]></description>
			<content:encoded><![CDATA[<p>I lived with it for ages. I tried to fix it on my own, by selecting different emulation types. Finally I Googled for it. And <a href="http://forums.macosxhints.com/archive/index.php/t-64151.html" target="_blank">pretty much instantly</a> <a href="http://simplygenius.com/geekblog/2005/08/30/readline-for-python-on-osx/" target="_blank">found the answer</a>:</p>
<blockquote><p> python `python -c &#8220;import pimp; print pimp.__file__&#8221;` -i readline</p></blockquote>
<p>Moral? If at first you don&#8217;t succeed, Google. If Google fails, try, try again.</p>
<p><strong>Update:</strong> And to make forward-delete work, <a href="http://www.macosxhints.com/article.php?story=20050525040921189" target="_blank">try this.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/google-ftw-fixing-arrow-problems-in-os-x-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canada.com Infected With Trojan-Installation Browser Hijack</title>
		<link>http://blog.sudosu.net/2007/canadacom-infected-with-trojan-installation-browser-hijack/</link>
		<comments>http://blog.sudosu.net/2007/canadacom-infected-with-trojan-installation-browser-hijack/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 03:24:35 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Broken]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/canadacom-infected-with-trojan-installation-browser-hijack/</guid>
		<description><![CDATA[Summary: Visitors to Canada.com (not hyperlinked for obvious reasons) will have their browsers hijacked, and a series of prompts will download and attempt to install malicious software. This will happen ONLY on the first visit from an IP address. Subsequent visits to Canada.com will not experience the browser hijack.
NOTE: I have only experienced this on [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Summary:</strong> Visitors to Canada.com (not hyperlinked for obvious reasons) will have their browsers hijacked, and a series of prompts will download and attempt to install malicious software. This will happen ONLY on the first visit from an IP address. Subsequent visits to Canada.com will not experience the browser hijack.</p>
<p><em>NOTE: I have only experienced this on the Vancouver Sun section of Canada.com. I&#8217;m currently out of different IP addresses to try. I&#8217;ll try again from home to see if the rest of Canada.com is infected.</em></p>
<p><strong>How I found The Problem:</strong> I followed a link from Bynkii.com to a Vancouver Sun story that Bynkii discussed. My browser was immediately hijacked. I visited the site again, and found no errors. I then tried from a laptop connected to our company&#8217;s wireless network (completely separate from our internal network, and through a separate ISP) and saw the hijack again. That time I got <a href="http://flickr.com/photos/schof/sets/72157603001488073/" target="_blank">screencaps</a>. Visiting the site through the wireless again showed no problems, leading me to believe that this displays one time per IP address. Trying multiple browsers did not result in another browser hijack, and neither did clearing cookies, making me think it&#8217;s recording IP address and attacking once per IP address.</p>
<p><strong>Details:</strong></p>
<p>The first time you visit Canada.com, your browser will flash through a few redirects, and then the following popup will appear:<br />
<a href="http://www.flickr.com/photos/schof/1911230563/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2273/1911230563_b7e7d02adc_o.png" alt="FirstPopUp" height="241" width="478" /></a></p>
<p>Note that hitting either Cancel or OK appears to have the same result &#8212; you can&#8217;t get out of there. Your browser will then appear to scan your hard drive for viruses. It&#8217;s all theater; it&#8217;s not actually doing anything at this point:</p>
<p><a href="http://www.flickr.com/photos/schof/1912063850/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2413/1912063850_5564a68325.jpg" alt="scanningmysystem" height="210" width="500" /></a></p>
<p>It will then pop up a message (in an Windows-style message box &#8212; not sure how it did that):</p>
<p><a href="http://www.flickr.com/photos/schof/1912064916/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2227/1912064916_c6dfaba36f.jpg" alt="RemoveErrors" height="375" width="500" /></a></p>
<p>If you&#8217;re on a Macintosh, it will then offer to download an EXE file. I&#8217;m not sure if it will automatically download and run the file on a Windows machine, because I&#8217;m not about to try.</p>
<p><a href="http://www.flickr.com/photos/schof/1911232457/" title="Photo Sharing"><img src="http://farm3.static.flickr.com/2044/1911232457_6dde35973b.jpg" alt="DownloadInstaller" height="204" width="440" /></a></p>
<p>I uploaded the downloaded file to virustotal.com, and it found a variety of badness there, general consensus seems to be that this file isn&#8217;t so bad by itself, but will once installed download and install an additional slew of malware and trojans of unknown potency. (I was unable to find really definitive information about this file; I&#8217;m open to suggestions for better places to look.)</p>
<blockquote><p> File <span id="status_nombre">Install-MnBhY2lmaWM-a2V5aW4-a2V5a</span> received on <span id="status_fecha">11.08.2007 03:28:07 (CET)</span></p>
<table id="tablaMotores" border="0" cellpadding="0" cellspacing="0" width="550">
<tr>
<th>Antivirus</th>
<th>Version</th>
<th>Last Update</th>
<th>Result</th>
</tr>
<tr>
<td>AhnLab-V3</td>
<td>2007.11.8.0</td>
<td>2007.11.08</td>
<td>-</td>
</tr>
<tr>
<td>Authentium</td>
<td>4.93.8</td>
<td>2007.11.07</td>
<td class="positivo">could be infected with an unknown virus</td>
</tr>
<tr>
<td>AVG</td>
<td>7.5.0.503</td>
<td>2007.11.08</td>
<td class="positivo">Generic9.HLR</td>
</tr>
<tr>
<td>CAT-QuickHeal</td>
<td>9.00</td>
<td>2007.11.07</td>
<td>-</td>
</tr>
<tr>
<td>DrWeb</td>
<td>4.44.0.09170</td>
<td>2007.11.07</td>
<td>-</td>
</tr>
<tr>
<td>eTrust-Vet</td>
<td>31.2.5278</td>
<td>2007.11.07</td>
<td>-</td>
</tr>
<tr>
<td>FileAdvisor</td>
<td>1</td>
<td>2007.11.08</td>
<td>-</td>
</tr>
<tr>
<td>F-Prot</td>
<td>4.4.2.54</td>
<td>2007.11.07</td>
<td class="positivo">W32/Heuristic-119!Eldorado</td>
</tr>
<tr>
<td>Ikarus</td>
<td>T3.1.1.12</td>
<td>2007.11.08</td>
<td class="positivo">Virus.Win32.Renos.AE</td>
</tr>
<tr>
<td>McAfee</td>
<td>5158</td>
<td>2007.11.07</td>
<td class="positivo">BraveSentry</td>
</tr>
<tr>
<td>NOD32v2</td>
<td>2645</td>
<td>2007.11.08</td>
<td class="positivo">Win32/Hoax.Renos.PY</td>
</tr>
<tr>
<td>Panda</td>
<td>9.0.0.4</td>
<td>2007.11.07</td>
<td class="positivo">Suspicious file</td>
</tr>
<tr>
<td>Rising</td>
<td>20.17.22.00</td>
<td>2007.11.07</td>
<td>-</td>
</tr>
<tr>
<td>Sunbelt</td>
<td>2.2.907.0</td>
<td>2007.11.07</td>
<td>-</td>
</tr>
<tr>
<td>TheHacker</td>
<td>6.2.9.119</td>
<td>2007.11.07</td>
<td>-</td>
</tr>
<tr>
<td>VirusBuster</td>
<td>4.3.26:9</td>
<td>2007.11.07</td>
<td class="positivo">Trojan.Renos.Gen.2</td>
</tr>
</table>
<table id="tablaInformacion" border="0" cellpadding="0" cellspacing="0" width="550">
<tr>
<th>Additional information</th>
</tr>
<tr>
<td>File size: 31288 bytes</td>
</tr>
<tr>
<td>SHA1: ef6fce7ad9a01d6cabb84bffc3bddee6f43bfe4e</td>
</tr>
</table>
</blockquote>
<p>I submitted this to the <a href="http://isc.sans.org/" target="_blank">Internet Storm Center</a>, along with a malware sample, and e-mailed webmaster@canada.com with a warning.</p>
<p><strong>Update November 15, 2007:</strong> <a href="http://blog.wired.com/business/2007/11/doubleclick-red.html" target="_blank">Wired just wrote about the issue</a>; apparently it affects a number of different sites, as the hijack script was distributed via the Doubleclick ad network.</p>
<p><strong>Update November 16, 2007</strong>: Wired <a href="http://www.wired.com/techbiz/media/news/2007/11/doubleclick" target="_blank">wrote about the issue again</a>, quoting me this time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/canadacom-infected-with-trojan-installation-browser-hijack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Correction to Ubuntu Geek&#8217;s &#8220;How To Check Your External IP Address From The Command Line&#8221;</title>
		<link>http://blog.sudosu.net/2007/correction-to-ubuntu-geeks-how-to-check-your-external-ip-address-from-the-command-line/</link>
		<comments>http://blog.sudosu.net/2007/correction-to-ubuntu-geeks-how-to-check-your-external-ip-address-from-the-command-line/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 02:20:26 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Shell Scripting]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/correction-to-ubuntu-geeks-how-to-check-your-external-ip-address-from-the-command-line/</guid>
		<description><![CDATA[I follow the Ubuntu Geek blog, and have found some very useful tips there. However, there&#8217;s a problem with their latest tip, &#8220;Howto Check you (sic) external IP Address from the command line.&#8221;
Some background: There&#8217;s a very useful website located at whatismyip.com, which reports the IP you used to connect to the site. If you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>I follow the <a href="http://www.ubuntugeek.com/" target="_blank">Ubuntu Geek</a> blog, and have found some very useful tips there. However, there&#8217;s a problem with their latest tip, &#8220;<a href="http://www.ubuntugeek.com/howto-check-you-external-ip-address-from-the-command-line.html" target="_blank">Howto Check you (sic) external IP Address from the command line</a>.&#8221;</p>
<p>Some background: There&#8217;s a very useful website located at <a href="http://whatismyip.com" target="_blank">whatismyip.com</a>, which reports the IP you used to connect to the site. If you&#8217;re on a computer behind a router which does NAT (<a href="http://en.wikipedia.org/wiki/Network_address_translation" target="_blank">Network Address Translation</a>), you can&#8217;t find out what your external IP is by issuing commands on the computer. Your computer&#8217;s address is (for instance) 192.168.1.5, but when traffic reaches the router, the router translates (with NAT) your address to an external IP address, such as 34.23.64.9 (an IP address I just made up).</p>
<p>WhatIsMyIP.com (and other sites like it) sprang up to  fill that void, and give you a simple way of finding out what external IP address you&#8217;re using.</p>
<p>Ubuntu Geek&#8217;s script fetches the whatismyip.com page with wget, parses it to find the IP address, and prints the IP address.</p>
<p>I tried it on my OS X box, and it didn&#8217;t work, because wget isn&#8217;t installed on OS X &#8212; but curl, a similar tool, is.</p>
<p>So I started modifying the script to use curl &#8212; and discovered an interesting comment in the source code to whatismyip.com&#8217;s page:</p>
<blockquote><p> &lt;!&#8211;Please set your code to scrape your IP from www.whatismyip.com/automation/n09230945.asp Please set your code to hit this page at a REASONABLE pace.  For more info, please see our &#8220;What&#8217;s New&#8221; page.&#8211;&gt;</p></blockquote>
<p>Hitting that link gets you just your IP address, which has two benefits over Ubuntu Geek&#8217;s implementation &#8212; it means you have no parsing to do, and it gives a SIGNIFICANTLY lower load to WhatIsMyIP&#8217;s servers. (It&#8217;s rude to slam someone else&#8217;s servers with an automated script &#8212; even though a script that simply fetches a web page once doesn&#8217;t slam a server, 10,000 people running that script would.)</p>
<p>Here&#8217;s my take on Ubuntu Geek&#8217;s BASH script:</p>
<blockquote><p>#!/bin/bash</p>
<p>echo -n &#8220;Your external IP Address is: &#8221;<br />
curl http://www.whatismyip.com/automation/n09230945.asp<br />
echo &#8220;.&#8221;</p></blockquote>
<p>For comparison&#8217;s here&#8217;s Ubuntu Geek&#8217;s original script:</p>
<blockquote><p>#!/bin/bash</p>
<p>echo Your external IP Address is:<br />
wget http://Www.whatismyip.com -O &#8211; -o /dev/null | \<br />
grep &#8216;&lt;TITLE&gt;&#8217; | sed -r &#8217;s/&lt;TITLE&gt;WhatIsMyIP\.com \- //g&#8217; | \<br />
sed -r &#8217;s/&lt;\/TITLE&gt;//g&#8217;<br />
exit 0</p></blockquote>
<p>Moral of the story? Always look for a simpler way of doing things.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/correction-to-ubuntu-geeks-how-to-check-your-external-ip-address-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Weak Defense: Breakins at CIHost.com</title>
		<link>http://blog.sudosu.net/2007/a-weak-defense-breakins-at-cihostcom/</link>
		<comments>http://blog.sudosu.net/2007/a-weak-defense-breakins-at-cihostcom/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 01:58:39 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/a-weak-defense-breakins-at-cihostcom/</guid>
		<description><![CDATA[Here&#8217;s a reason to think twice about your colocation provider: CIHost.com has been broken into four times over the past two years, and had servers and equipment stolen. Their Chief Corporate Counsel, James Eckels, says the robbers &#8220;Knew what they&#8217;re doing,&#8221; and that their facility is &#8220;in a bad part of town.&#8221;
There&#8217;s very little payoff [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a reason to think twice about your colocation provider: <a href="http://www.thewhir.com/features/110607_C_I_Host_Responds_to_Robbery_Reports.cfm" target="_blank">CIHost.com has been broken into four times over the past two years</a>, and had servers and equipment stolen. Their Chief Corporate Counsel, James Eckels, says the robbers &#8220;Knew what they&#8217;re doing,&#8221; and that their facility is &#8220;in a bad part of town.&#8221;</p>
<p>There&#8217;s very little payoff in stealing 20 servers (the amount stolen in the recent robbery) for the hardware value &#8212; this is most likely about stealing the DATA on the servers. Most people in the market for rackmount servers wouldn&#8217;t buy them off trucks, and so you&#8217;ve got a crime with serious time and very little payoff if they were stealing hardware.  <a href="http://www.matasano.com/log/991/old-fashioned-data-theft/" target="_blank">I wonder how much valuable data (including credit card numbers) was stored on those boxes?</a></p>
<p>Eckels took umbrage at  reports that their facility had been robbed four times in the last two years:</p>
<blockquote><p>One of the biggest mistakes is that people are talking about four robberies. A robbery means than property has been seized through violence or intimidation. C I Host has technically only been robbed twice in two years. The other two were break-ins where things were stolen, but not robberies.&#8221;</p></blockquote>
<p>Umm. That doesn&#8217;t exactly make me feel better. Although the facility&#8217;s staff probably prefer the burglaries &#8212; their night manager was repeatedly tasered and &#8220;struck with a blunt instrument&#8221; during the most recent robbery.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/a-weak-defense-breakins-at-cihostcom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online Dating Sites, A brief review</title>
		<link>http://blog.sudosu.net/2007/online-dating-sites-a-brief-review/</link>
		<comments>http://blog.sudosu.net/2007/online-dating-sites-a-brief-review/#comments</comments>
		<pubDate>Sun, 21 Oct 2007 00:03:07 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[John Mark Schofield Meta]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/online-dating-sites-a-brief-review/</guid>
		<description><![CDATA[K. and I broke up a few months ago, and I&#8217;ve been doing the online dating thing recently, with mixed success. Here&#8217;s some brief notes on the online dating sites I&#8217;ve tried, to hopefully speed other people through this process. I&#8217;m 35, male, straight, and live in Los Angeles &#8212; if you differ significantly from [...]]]></description>
			<content:encoded><![CDATA[<p>K. and I broke up a few months ago, and I&#8217;ve been doing the online dating thing recently, with mixed success. Here&#8217;s some brief notes on the online dating sites I&#8217;ve tried, to hopefully speed other people through this process. I&#8217;m 35, male, straight, and live in Los Angeles &#8212; if you differ significantly from that, you may find some of these sites more or less useful than I did. (First link in each mini-review goes to the main site; second link goes to my profile.)</p>
<ul>
<li><a href="http://www.consumating.com" title="Consumating.com" target="_blank">Consumating.com</a>: Free site. Lots of hipsters in their 20&#8217;s. Not a lot of women in their 30&#8217;s. Has a fun, quirky vibe that makes it a kind of fun site to hang out on, but not terribly useful as a dating site. Everyone gets a numerical rank based on their points. (<a href="http://www.consumating.com/profiles/Geeky_Hiker" title="John Mark Schofield's Consumating Page" target="_blank">I have 29 points, which puts me in 4348th place.</a>) Relive the unpopularity of high school, electronically. (For some reason they didn&#8217;t use that as their slogan.)</li>
<li><a href="http://www.okcupid.com" title="OKCupid.com" target="_blank">OKCupid.com</a>: Free site. Another fun site with lots of games, quizzes, and etc., both created by editors and by other users. Slightly more oriented towards dating than Consumating, but just as filled with 20-somethings. Less of a &#8220;cooler-than-thou&#8221; vibe than Consumating. The site &#8220;gets to know you&#8221; by asking you hundreds of multiple choice questions submitted by users, and attempts to match you with people who have similar answers. Not very successfully, <a href="http://www.okcupid.com/profile?u=rumpelstilsken" title="John Mark Schofield's OKCupid Profile" target="_blank">in my experience</a>.</li>
<li><a href="http://www.hotornot.com" title="Hot or Not " target="_blank">HotOrNot.com</a>: Pay site. Triumph of the shallow. It&#8217;s all about the pictures. You get less than a paragraph to describe yourself, and the user base does not seem terribly literate. Again, mostly people in their teens and early 20&#8217;s. HotOrNot started as a site where you rate people&#8217;s &#8220;hotness&#8221; on a scale of 1 to 10, 10 being highest. I signed up for HotOrNot in order to find out <a href="http://www.hotornot.com/r/?eid=RERESLE&amp;key=UMG" title="John Mark Schofield's Hot Or Not Page" target="_blank">which of my photos</a> were considered &#8220;hot&#8221; (or &#8220;least ugly&#8221;) so that I could use the higher rated pics on other dating sites. For that purpose, I highly recommend HotOrNot (and that part is free), but as a dating service, HotOrNot was an &#8220;eh&#8221; for me.</li>
<li><a href="http://impersonals.com" title="Impersonals.com" target="_blank">Impersonals.com</a>: Free site. Honestly, by far my favorite of all the dating sites, at least as far as user interface and functionality. And the questions they ask produced <a href="http://impersonals.com/profiles/thedude" title="John Mark Schofield's Impersonals Page" target="_blank">my favorite of all the profiles I&#8217;ve created</a>. A really cool site, without a lot of BS, and with a good feel to it. The downside: At least in my area and demographic, very few people. And very few additions &#8212; it seems to be foundering. I&#8217;d LIKE to like Impersonals &#8212; but there&#8217;s just very few women (of any age) in my area, and most of them are in their early 20&#8217;s.</li>
<li><a href="http://www.plentyoffish.com" title="Plenty Of Fish" target="_blank">PlentyOfFish.com</a>: Free site. The MySpace of dating. Meaning it&#8217;s phenomenally popular, and phenomenally ugly. <a href="http://www.plentyoffish.com/member5394395.htm" title="John Mark Schofield's Plenty Of Fish Profile" target="_blank">Good Lord, it&#8217;s ugly</a>. If you care about user interface, web page aesthetics, or design of any kind, this site will make your eyes bleed. (As an example, they don&#8217;t crop pictures to squeeze them into a box, they just squeeze the picture into a box &#8212; so everyone looks either anorexic or like a sumo wrestler, depending on the aspect ratio of the original picture.) Still, it has the largest user pool of any site I&#8217;ve tried yet, and the users seem to include all ages. (I&#8217;m perfectly willing to date a brilliant and mature 18-year-old &#8212; but I think the odds of finding someone I&#8217;m compatible with are much better for women less than five years older or younger than I am.)</li>
<li><a href="http://www.gk2gk.com/" title="Geek 2 Geek" target="_blank">Gk2Gk.com</a> (Geek 2 Geek): Pay site. Decent enough dating site &#8212; not as gimmicky or Ajaxy as OKCupid or Consumating &#8212; fairly standard, in fact, with the exception that the people on it are explicitly looking for geeks. Since I am one, this site goes high up on my list. Niche dating sites are apparently a big draw these days. The matching is no more effective than on any other site &#8212; perhaps less so for me, because although <a href="http://www.gk2gk.com/profile/details.asp?USER=133478" title="John Mark Schofield's Geek 2 Geek Profile" target="_blank">I&#8217;m a computer geek</a>, I&#8217;m not most other types of geek &#8212; and almost all of the questions are related to zeroing in on what geek hobbies and/or obsessions you have. Geek 2 Geek has one annoying quirk: If you edit your profile (even changing one character in the title), then people are not able to view your profile and you&#8217;re not able to send a message to anyone until your profile has been approved by Geek 2 Geek staff.  Geek 2 Geek does generally approve your changes within 24 hours (even on weekends) but it&#8217;s still an annoying bit of suckage. (Unlike every other pay site listed here, Geek 2 Geek will NOT automatically renew your subscription &#8212; which is a nice bit of class.)</li>
<li><a href="http://chemistry.com" title="Chemistry.com" target="_blank">Chemistry.com</a>: Pay site. A service of Match.com, Chemistry attempts to do a &#8220;scientific&#8221; analysis of your personality, and match you up with compatible people. Their advertising targets eHarmony.com, a similar site that has some pretty distasteful limits. (For instance, eHarmony won&#8217;t serve gay people.) I have my doubts as to how effective the matching is, but the user-contact system they put in place seems to work very well. You get up to 10 &#8220;matches&#8221; a day, assigned to you by the system. If the system doesn&#8217;t assign you a match, you can&#8217;t look at them. (This is why I haven&#8217;t posted a link to my profile &#8212; as far as I know, I can&#8217;t.) You tell Chemistry if you&#8217;re attracted to each of the matches. If you say you are, Chemistry lets them know and lets them state whether they&#8217;re attracted to you. If they&#8217;re not interested in you, their name silently falls off your list of potential mates. Because of this, this is the first site I&#8217;ve seen where women will initiate contact with men in significant numbers. (On most other sites, the guy has to send the first e-mail &#8212; the sites let women initiate contact, it&#8217;s just that societal norms of men initiating contact in meatspace exist on dating sites as well.) Once you both agree that you find the other interesting, you answer some fairly meaningless questions about the importance of various personality traits by moving sliders to indicate importance. The other person does the same. Then, if both parties decide that the sliders match up enough, you take it to the next level. (I say the sliders are meaningless because &#8212; I mean really, if I rate &#8220;sense of humor&#8221; as important and she doesn&#8217;t, I&#8217;m not going to reject her. I&#8217;m going to try and find out if she laughs at my jokes and can make me laugh.) At the next stage, each party chooses two questions (from a list of a few dozen, or write your own) for the other party to answer in paragraph form. Each party reviews the other&#8217;s answers, and decides whether to take it to the next level, which is e-mail. After e-mailing back and forth, you can decide whether or not to meet in person. As I write this, it sounds HORRID &#8212; but perhaps because I&#8217;m a socially awkward geek, this computer-mediated dating really seems to work very well. It takes some of the initial awkwardness out of the introduction &#8212; and dating, online or in person, is awkward enough as it is.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/online-dating-sites-a-brief-review/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Setuid &amp; Chown interaction that almost put me in the fetal position, whimpering</title>
		<link>http://blog.sudosu.net/2007/setuid-chown-interaction-that-almost-put-me-in-the-fetal-position-whimpering/</link>
		<comments>http://blog.sudosu.net/2007/setuid-chown-interaction-that-almost-put-me-in-the-fetal-position-whimpering/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 05:43:55 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Shell Scripting]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/setuid-chown-interaction-that-almost-put-me-in-the-fetal-position-whimpering/</guid>
		<description><![CDATA[I&#8217;m putting together a postinst (post installation) script for a Debian package I created for work. And there&#8217;s a little C program in there that needs to run as root, but be called by a regular user.
Well, there&#8217;s a standard way of doing that in Linux/Unix, called setuid. You set the &#8220;setuid bit&#8221; to on, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m putting together a postinst (post installation) script for a Debian package I created for work. And there&#8217;s a little C program in there that needs to run as root, but be called by a regular user.</p>
<p>Well, there&#8217;s a standard way of doing that in Linux/Unix, called setuid. You set the &#8220;setuid bit&#8221; to on, and the program will run as the owner of the program. So, since it&#8217;s owned by root, a regular user can run a particular program, and have that program run with the permissions that root has. Very handy.</p>
<p>But I couldn&#8217;t figure out why the program was not being installed setuid root. I could see in the postinst script that the command was valid. I could cut-and-paste the chmod line (that set the setuid bit) from the script to the command-line, run it, and it worked perfectly. And there weren&#8217;t any other commands in the postinst script that affected permissions (the setuid bit is a permission bit) for that file.</p>
<p>However, there WAS a chown command later in the script. (It started in a parent directory and recursed into the directory with the C program I was dealing with.) Eventually, I narrowed it down to that chown line, and once I saw chown was the cause, I guess it sort of made sense.  I was able to reproduce the problem by chowning a file after setting the setuid bit.</p>
<p>I guess from a security standpoint, you could do a lot of stupid things by setting the setuid bit (making a program operate as the owner of the program) and then changing the owner. So, to prevent you from shooting yourself in the foot, changing ownership of a file unsets the setuid bit.</p>
<p>Still, this seems somewhat counter to the philosophy of Unix &#8212; first, to not do unexpected things, and second, to give users approximately an order of magnitude more rope than they&#8217;d need to hang themselves. I can&#8217;t think of many other commands that silently prevent you from doing something that MAY be stupid. Unix usually assumes that you know what you&#8217;re doing &#8212; even to the point that you can enter a command to delete every file on your hard drive, and Unix will happily delete all your files without asking for confirmation. The fact that chown has this behavior was NOT obvious to me.</p>
<p>(This is a highly technical rant, and I&#8217;m writing it late at night after coding for a while &#8212; if it doesn&#8217;t make any sense, it&#8217;s probably me, not you.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/setuid-chown-interaction-that-almost-put-me-in-the-fetal-position-whimpering/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yet another xkcd comic, related to the title of this site</title>
		<link>http://blog.sudosu.net/2007/yet-another-xkcd-comic-related-to-the-title-of-this-site/</link>
		<comments>http://blog.sudosu.net/2007/yet-another-xkcd-comic-related-to-the-title-of-this-site/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 19:13:44 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sudosu.net Meta]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/yet-another-xkcd-comic-related-to-the-title-of-this-site/</guid>
		<description><![CDATA[
(As it turns out, xkcd doesn&#8217;t mind when you use their content in a blog. See &#8220;Can we print xkcd in our magazine/newspaper/other publication?&#8220;)
]]></description>
			<content:encoded><![CDATA[<p><a href="http://xkcd.com/149/" target="_blank"><img src="http://imgs.xkcd.com/comics/sandwich.png" /></a></p>
<p>(As it turns out, xkcd doesn&#8217;t mind when you use their content in a blog. See &#8220;<a href="http://xkcd.com/about/" title="xjcd faq" target="_blank">Can we print xkcd in our magazine/newspaper/other publication?</a>&#8220;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/yet-another-xkcd-comic-related-to-the-title-of-this-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Really Funny Security Lesson For Programmers, In Cartoon Form</title>
		<link>http://blog.sudosu.net/2007/really-funny-security-lesson-for-programmers-in-cartoon-form/</link>
		<comments>http://blog.sudosu.net/2007/really-funny-security-lesson-for-programmers-in-cartoon-form/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 01:04:07 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/really-funny-security-lesson-for-programmers-in-cartoon-form/</guid>
		<description><![CDATA[http://imgs.xkcd.com/comics/exploits_of_a_mom.png
I don&#8217;t have the rights to copy it, and it&#8217;s generally rude to hotlink someone else&#8217;s images, so you&#8217;ll just have to click the link to see it. But it&#8217;s worth it for a real belly-laugh of geek humor.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://imgs.xkcd.com/comics/exploits_of_a_mom.png" target="_blank">http://imgs.xkcd.com/comics/exploits_of_a_mom.png</a></p>
<p>I don&#8217;t have the rights to copy it, and it&#8217;s generally rude to hotlink someone else&#8217;s images, so you&#8217;ll just have to click the link to see it. But it&#8217;s worth it for a real belly-laugh of geek humor.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/really-funny-security-lesson-for-programmers-in-cartoon-form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential OS X Applications</title>
		<link>http://blog.sudosu.net/2007/essential-os-x-applications/</link>
		<comments>http://blog.sudosu.net/2007/essential-os-x-applications/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 01:09:30 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Macintosh Productivity]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/essential-os-x-applications/</guid>
		<description><![CDATA[I&#8217;ll now be working from home two days a week, and took a work iMac home with me. (Doing coding on my 12&#8243; iBook would be too painful to contemplate.)
So last night, and this morning, I did a complete, from-scratch build out on this iMac. I&#8217;ve been building up a list of the software I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll now be working from home two days a week, and took a work iMac home with me. (Doing coding on my 12&#8243; iBook would be too painful to contemplate.)</p>
<p>So last night, and this morning, I did a complete, from-scratch build out on this iMac. I&#8217;ve been building up a list of the software I need to get a base level of functionality on a new OS X box. They are ordered largely in the order in which I installed them &#8212; which is why QuickSilver is first; it&#8217;s far too painful to work on a box without QS installed. I&#8217;ll post more about WHY these apps are so important to me if anyone is interested.</p>
<ul>
<li><a href="http://quicksilver.blacktree.com/" target="_blank">QuickSilver</a></li>
<li><a href="http://toolbar.google.com/gmail-helper/notifier_mac.html" target="_blank">Google Notifier</a></li>
<li><a href="http://www.mozilla.com/firefox/" target="_blank">Firefox</a></li>
<li>Firefox Extensions:
<ul>
<li><a href="http://roachfiend.com/archives/2005/02/07/bugmenot/" target="_blank">BugMeNot</a></li>
<li><a href="https://addons.mozilla.org/firefox/1553/" target="_blank">BookMark Duplicate Detector</a></li>
<li><a href="https://addons.mozilla.org/firefox/2410/" target="_blank">Foxmarks Bookmark Synchronizer</a></li>
<li><a href="http://optimize-it.blogspot.com/" target="_blank">TMobile (USA) Minutes Used</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">Greasemonkey</a></li>
<li><a href="http://userscripts.org/scripts/show/1404" target="_blank">GMailSecure</a></li>
</ul>
</li>
<li><a href="http://www.barebones.com/products/yojimbo/" target="_blank">Yojimbo</a></li>
<li><a href="http://www.macromates.com" target="_blank">TextMate</a></li>
<li><a href="http://iconfactory.com/software/twitterrific" target="_blank">Twitterific</a></li>
<li><a href="http://www.omnigroup.com/applications/omnioutliner/" target="_blank">OmniOutliner Pro</a></li>
<li><a href="http://www.omnigroup.com/applications/omnigraffle/" target="_blank">OmniGraffle Pro</a></li>
<li><a href="http://www.omnigroup.com/applications/omnifocus/" target="_blank">OmniFocus</a></li>
<li><a href="http://www.equinux.com/us/products/vpntracker/index.html" target="_blank">VPNTracker</a></li>
<li><a href="http://www.microsoft.com/mac/products/office2004/office2004.aspx?pid=office2004" target="_blank">Microsoft Office 2004</a>
<ul>
<li> Microsoft Remote Desktop Connection Client</li>
<li> Excel</li>
<li> Word</li>
<li> Powerpoint</li>
<li> Not Media Player or Entourage</li>
</ul>
</li>
<li><a href="http://www.adiumx.com/" target="_blank">Adium</a></li>
<li><a href="http://growl.info/" target="_blank">Growl</a></li>
<li><a href="http://www.sshkeychain.org/" target="_blank">SSHKeychain</a></li>
<li><a href="http://nowsoftware.com" target="_blank">Now Up To Date &amp; Contact</a></li>
<li><a href="http://www.2point5fish.com/" target="_blank">MouseLocator</a></li>
<li><a href="http://www.microsoft.com/hardware/mouseandkeyboard/DownloadResult.aspx?prod=m_ime40&amp;os=mac_mk&amp;lang=en&amp;driverVersion=IntelliPoint%206.22%20For%20Mac" target="_blank">Microsoft Intellipoint Mouse Driver</a> for the Microsoft Intellimouse Explorer 4.0 (My favorite mouse.)</li>
<li><a href="http://www.macupdate.com/info.php/id/13297" target="_blank">wClock</a></li>
<li><a href="http://applejack.sourceforge.net/" target="_blank">AppleJack</a></li>
<li><a href="http://www.smileonmymac.com/textexpander/" target="_blank">TextExpander</a></li>
<li><a href="http://mikepiontek.com/software/mac/delivery-status.html" target="_blank">Delivery Status Widget</a></li>
<li><a href="http://www.bronsonbeta.com/" target="_blank">DashboardStarter</a>  <strike><a href="http://www.alwintroost.nl/content/widgets/dashboardkickstart.xml" target="_blank">Dashboard Kickstart</a></strike></li>
<li><a href="http://www.metabang.com/widgets/stop-it/index.html" target="_blank">StopIt</a> (Dashboard Timer App)</li>
<li><a href="http://homepage.mac.com/holtmann/eidac/software/shuffelsaver/shufflesaver.html" target="_blank">Shuffle Saver</a></li>
<li><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank">Flash Player</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/essential-os-x-applications/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dive Into Idiocy</title>
		<link>http://blog.sudosu.net/2007/dive-into-idiocy/</link>
		<comments>http://blog.sudosu.net/2007/dive-into-idiocy/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 21:52:13 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/dive-into-idiocy/</guid>
		<description><![CDATA[Mark Pilgrim nails the whole iPhone unlocking/bricking brouhaha:
I don’t understand this continuing obsession with buying things that you need to break before they do what you want.  It’s not just the iPhone; people did the exact same thing with the AppleTV too&#8230; I thought the big draw for Apple hardware was that “It Just [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://diveintomark.org/archives/2007/10/04/if-wishes-were-iphones" title="Mark Pilgrim's iPhone Unlocking Article" target="_blank">Mark Pilgrim nails</a> the whole iPhone unlocking/bricking brouhaha:</p>
<blockquote><p>I don’t understand this continuing obsession with buying things that you need to break before they do what you want.  It’s not just the iPhone; people did the exact same thing with the AppleTV too&#8230; I thought the big draw for Apple hardware was that “It Just Works.” By breaking it, you must know you’re giving up the “Just Works” factor, so what’s left? Rounded corners?</p>
<p>My current theory is that it’s some twisted form of wish fulfillment. “I wish this company understood the value of openness, but they don’t, so I’m going to keep buying their closed, crippled shit until they get it.” Yeah, let me know how that works out for you.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/dive-into-idiocy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Software Is Hard (Duh!)</title>
		<link>http://blog.sudosu.net/2007/writing-software-is-hard-duh/</link>
		<comments>http://blog.sudosu.net/2007/writing-software-is-hard-duh/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 17:13:03 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/writing-software-is-hard-duh/</guid>
		<description><![CDATA[Great article by Kyle Wilson on why software is hard to create:
Talking about a software development schedule more than a year out is like talking about where we go after we die.  Everyone has some idea where we&#8217;ll end up, but those ideas differ wildly, and there&#8217;s a lack of solid evidence to support any [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gamearchitect.net/Articles/SoftwareIsHard.html" target="_blank">Great article</a> by Kyle Wilson on why software is hard to create:</p>
<blockquote><p>Talking about a software development schedule more than a year out is like talking about where we go after we die.  Everyone has some idea where we&#8217;ll end up, but those ideas differ wildly, and there&#8217;s a lack of solid evidence to support any of them.</p></blockquote>
<p>(<a href="http://ivory.idyll.org/blog/oct-07/software-is-hard-link" target="_blank">Via</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/writing-software-is-hard-duh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook (AKA the man) is holding me down!</title>
		<link>http://blog.sudosu.net/2007/facebook-aka-the-man-is-holding-me-down/</link>
		<comments>http://blog.sudosu.net/2007/facebook-aka-the-man-is-holding-me-down/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 22:09:57 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Broken]]></category>
		<category><![CDATA[John Mark Schofield Meta]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/facebook-aka-the-man-is-holding-me-down/</guid>
		<description><![CDATA[Turns out Facebook won&#8217;t let me use my root at sudosu dot net address, because they believe real people don&#8217;t use addresses with &#8220;root&#8221; in them. Well, phooie to them!
Here&#8217;s my bug report: (with e-mail addresses slightly mangled for publication)
WHAT I DID:
1) On Edit Profile -&#62; Contact page, selected &#8220;Add / Remove E-mails.
2) Hit &#8220;Change&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Turns out Facebook won&#8217;t let me use my root at sudosu dot net address, because they believe real people don&#8217;t use addresses with &#8220;root&#8221; in them. Well, phooie to them!</p>
<p>Here&#8217;s my bug report: (with e-mail addresses slightly mangled for publication)</p>
<blockquote><p>WHAT I DID:<br />
1) On Edit Profile -&gt; Contact page, selected &#8220;Add / Remove E-mails.<br />
2) Hit &#8220;Change&#8221; under &#8220;Contact E-mail.&#8221;<br />
3) Select the &#8220;New Address&#8221; box and enter &#8220;root at sudosu dot net&#8221;<br />
4) Click the &#8220;Change Contact E-Mail&#8221; Button.<br />
5) Enter my password and click &#8220;Confirm.&#8221;</p>
<p>WHAT I EXPECTED TO HAPPEN:<br />
1) I expected Facebook to e-mail a confirmation message to<br />
root at sudosu dot net.</p>
<p>WHAT ACTUALLY HAPPENED:<br />
1) Facebook responded with &#8220;Please enter a valid email address.&#8221;</p>
<p>WHY THIS IS A PROBLEM:<br />
1) root at sudosu dot net IS a valid e-mail address, and is my primary<br />
personal address. People searching for me will use that address, and<br />
will not be able to find me.</p></blockquote>
<p>And their response:</p>
<blockquote><p> Hi John,</p>
<p>Unfortunately we do not support email addresses with generic<br />
prefixes like the email you have listed (i.e. info@, webmaster@, root@<br />
etc.). You will need to use a personal email address that does not<br />
contain this type of prefix. Since email addresses of this nature are<br />
typically used for organizations and businesses, we do not allow them<br />
to be used for personal Facebook accounts. There are no exceptions<br />
to this rule.  We sincerely apologize for any inconvenience this policy<br />
may have caused you.</p>
<p>Thanks for contacting Facebook,</p>
<p>Landon<br />
Customer Support Representative<br />
Facebook</p></blockquote>
<p>So Facebook knows me by my jschofield at gMail address. I hope this doesn&#8217;t prevent people from finding me on Facebook.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/facebook-aka-the-man-is-holding-me-down/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Whew &#8212; A Five-Hour, Four-Way Support Call Gets Closed</title>
		<link>http://blog.sudosu.net/2007/whew-a-five-hour-four-way-support-call-gets-closed/</link>
		<comments>http://blog.sudosu.net/2007/whew-a-five-hour-four-way-support-call-gets-closed/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 01:10:40 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Dakim]]></category>
		<category><![CDATA[Technical Support]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/whew-a-five-hour-four-way-support-call-gets-closed/</guid>
		<description><![CDATA[One of Dakim&#8217;s [m]Power devices (located at a client site) wasn&#8217;t communicating with our servers correctly, and it took five hours and a bunch of people to correctly diagnose the problem.
On the call we had a member of the client&#8217;s IT staff (at the corporate office), a member of Dakim&#8217;s support staff (on-site at the [...]]]></description>
			<content:encoded><![CDATA[<p>One of <a href="http://www.dakim.com" title="Dakim Inc.'s Web Site" target="_blank">Dakim</a>&#8217;s [m]Power devices (located at a client site) wasn&#8217;t communicating with our servers correctly, and it took five hours and a bunch of people to correctly diagnose the problem.</p>
<p>On the call we had a member of the client&#8217;s IT staff (at the corporate office), a member of Dakim&#8217;s support staff (on-site at the client location, which is not the corporate office), myself, and two different members of Secure Computing&#8217;s <a href="http://www.sidewinder.com" title="Secure Computing's Sidewinder" target="_blank">Sidewinder</a> support team. (The first one&#8217;s shift ended, and he transferred us to a different tech.)</p>
<p>Let me say first off that I was TREMENDOUSLY impressed with Sidewinder&#8217;s support. (I hadn&#8217;t been familiar with their products before this.) Both techs were ninjas, and we started speaking with them after about 30 seconds in the hold queue.</p>
<p>After we&#8217;d been on the call for a while, we were able to rule out Sidewinder as a part of the problem, and the Sidewinder tech got off the call &#8212; and a short while later, we ruled out Dakim&#8217;s [m]Power and Dakim&#8217;s servers as part of the problem &#8212; it was a problem with the client&#8217;s network config. We stayed on the phone with them and on-site, troubleshooting until we were able to diagnose the issue and tell the client exactly where the problem was.</p>
<p>This was absolutely a money-loser for Dakim, and economically a bad decision &#8212; between the remote tech and myself and drive time, this cost Dakim between 12 and 14 person-hours, for a problem that turned out not be our responsibility at all &#8212; but I really like working for a company that provides that kind of customer service. There wasn&#8217;t anybody looking at us and tapping their watches &#8212; from the CEO down we know the costs of this kind of support, and we still want to provide it. I feel good about that.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/whew-a-five-hour-four-way-support-call-gets-closed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Keyclick&#8221; and a Real F&#8217;ing Keyboard</title>
		<link>http://blog.sudosu.net/2007/keyclick-and-a-real-fing-keyboard/</link>
		<comments>http://blog.sudosu.net/2007/keyclick-and-a-real-fing-keyboard/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 04:29:43 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Lifehacks]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/keyclick-and-a-real-fing-keyboard/</guid>
		<description><![CDATA[I first heard about the Unicomp reincarnations of the original IBM &#8220;clicky&#8221; keyboard on Mark Pilgrim&#8217;s site. (Look for the heading &#8220;A real fucking keyboard.&#8221;) I&#8217;ve long been a fan of IBM keyboards &#8212; I used to pick them up at thrift stores. If you bought three you could usually end up with two working [...]]]></description>
			<content:encoded><![CDATA[<p>I first heard about the Unicomp reincarnations of the original IBM &#8220;clicky&#8221; keyboard on Mark Pilgrim&#8217;s site. (Look for the heading &#8220;<a href="http://diveintomark.org/archives/2006/05/30/bye-apple" title="Mark Pilgrin's Dive Into Mark about good keyboards" target="_blank">A real fucking keyboard</a>.&#8221;) I&#8217;ve long been a fan of IBM keyboards &#8212; I used to pick them up at thrift stores. If you bought three you could usually end up with two working keyboards. But they all had the HUGE keyboard connectors &#8212; the predecessor to PS/2 connectors &#8212; and weren&#8217;t USB compatible without a lot of soldering. I moved on to inferior alternatives.</p>
<p>But then came Mark Pilgrim, and my introduction to Unicomp. I now have a <a href="http://pckeyboards.stores.yahoo.net/customizer.html" title="Unicomp Real Keyboard" target="_blank">$70 Unicomp keyboard</a> at home and one in the office, and it&#8217;s GOLDEN. It&#8217;s like typing on chocolate. (But, you know, without the mess. And with clickiness.)</p>
<p>But the click is much more than JUST the sound &#8212; the reason I love these keyboards is the tactile and audio feedback I get when I type. You KNOW when it&#8217;s registered a keypress &#8212; something that you do NOT know instantly on a mushy keyboard.</p>
<p>It&#8217;s loud, though. My computer is in my bedroom, and my girlfriend can&#8217;t sleep when I&#8217;m typing, even with earplugs.</p>
<p>All of this, by the way, leads up to my puzzlement about an <a href="http://db.tidbits.com/article/9102" title="TidBITS article on Keyclick" target="_blank">article in TidBITS</a>. Apparently the author is a big fan of clicky keyboards, but rather than get one, he&#8217;s raving about a <a href="http://www.sustworks.com/site/prod_keyclick_overview.html" title="Keyclick makes noise while you type" target="_blank">software utility</a> that clicks the speakers every time you hit a key.</p>
<p>I can see &#8212; sort of &#8212; why you&#8217;d want that, but as the owner of a Unicomp keyboard, I get to look down on that sort of kludge. Seems to me you&#8217;re missing out on the best part of the keyboard (the tactile response) and emphasizing the sound, a less important part of why the keyboard works so well. (Although, I must admit I like it when I&#8217;m on a roll typing and it sounds like I&#8217;m operating a chainsaw.) Still, there&#8217;s not much you can do about tactile response in software &#8212; this may be the only part of the problem they could fix.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/keyclick-and-a-real-fing-keyboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using gMail Securely, Even on Wireless</title>
		<link>http://blog.sudosu.net/2007/209/</link>
		<comments>http://blog.sudosu.net/2007/209/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 06:48:38 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/209/</guid>
		<description><![CDATA[If you see &#8220;http://&#8221; in the address bar for a website, that connection is unsecured. Anyone eavesdropping can access everything sent and received between you and the website. Which is no problem if you&#8217;re reading tmz.com, but a big problem if you&#8217;re on wamu.com.
If you see &#8220;https://&#8221; in the address bar, that connection is generally [...]]]></description>
			<content:encoded><![CDATA[<p>If you see &#8220;http://&#8221; in the address bar for a website, that connection is unsecured. Anyone eavesdropping can access everything sent and received between you and the website. Which is no problem if you&#8217;re reading <a href="http://tmz.com" target="_blank">tmz.com</a>, but a big problem if you&#8217;re on <a href="http://wamu.com" target="_blank">wamu.com</a>.</p>
<p>If you see &#8220;https://&#8221; in the address bar, that connection is generally secure. In many cases, you can make an insecure connection secure by adding an &#8220;s&#8221; in the address bar and hitting &#8220;enter.&#8221; (Whether or not it works depends on the site&#8217;s web server configuration. Some aren&#8217;t set up to support secure connections.)</p>
<p>Google redirects you to a secure https connection while you&#8217;re logging in, but sends you back to http for everything else. So if you use Google Mail (aka gMail) without doing anything to secure it, any eavesdropper can read all your mail. This is not a huge problem on a wired connection, but if you&#8217;re using any kind of wireless connection, you should be concerned &#8212; and if you use an open wireless connection, you should be alarmed.</p>
<p>The &#8220;add an &#8217;s&#8217;&#8221; trick doesn&#8217;t always work with gMail, as I&#8217;ve noticed it switching back to http seemingly at random.</p>
<p>You can get around this by bookmarking <a href="https://mail.google.com/mail" title="Secure Link to Google Mail" target="_blank">https://mail.google.com/mail</a> &#8212; if you start there, Google will leave the entire session protected.</p>
<p>Another solution is <a href="http://diveintomark.org/" title="Mark Pilgrim's Personal Site" target="_blank">Mark Pilgrim&#8217;s</a> <a href="http://www.greasespot.net/" title="Greasemonkey Firefox Extension" target="_blank">Grease Monkey</a> extension to Firefox, <a href="http://userscripts.org/scripts/show/1404" title="Mark Pilgrim's GMailSecure" target="_blank">GMailSecure</a>. It automatically redirects from http://mail.google.com to https://mail.google.com &#8212; nicely solving this problem. Typing just &#8220;gmail.com&#8221; in the address bar first redirects to &#8220;http://mail.google.com/mail&#8221; (because of Google) and then redirects from there to &#8220;https://mail.google.com/mail&#8221; (because of GMailSecure).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/209/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>John MARK Schofield?</title>
		<link>http://blog.sudosu.net/2007/john-mark-schofield/</link>
		<comments>http://blog.sudosu.net/2007/john-mark-schofield/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 19:16:58 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[John Mark Schofield Meta]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/john-mark-schofield/</guid>
		<description><![CDATA[People who have known me for a while are slightly puzzled. Why am I semi-consistently using my middle name now, when I never did before? Sudden attack of pretentiousness?
Actually, no. When you Google for &#8220;John Schofield,&#8221; I&#8217;m WAY down on the list &#8212; not even on the first page. (Some Civil War General gets all [...]]]></description>
			<content:encoded><![CDATA[<p>People who have known me for a while are slightly puzzled. Why am I semi-consistently using my middle name now, when I never did before? Sudden attack of pretentiousness?</p>
<p>Actually, no. When you Google for &#8220;<a href="http://www.google.com/search?q=john+schofield" title="Google results for " target="_blank">John Schofield</a>,&#8221; I&#8217;m WAY down on the list &#8212; not even on the first page. (Some Civil War General gets all the link love.) So now I&#8217;m <a href="http://www.google.com/search?q=john+mark+schofield" title="Google Results for John Mark Schofield" target="_blank">John Mark Schofield</a>, which gets a LOT more Google juice. (At this time, I&#8217;m #1 on the results.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/john-mark-schofield/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Terminally Incoherent&#8217;s &#8220;Linux Fuckup Of The Day&#8221; &#8212; Using Single-User Mode To Recover</title>
		<link>http://blog.sudosu.net/2007/terminally-incoherents-linux-fuckup-of-the-day-using-single-user-mode-to-recover/</link>
		<comments>http://blog.sudosu.net/2007/terminally-incoherents-linux-fuckup-of-the-day-using-single-user-mode-to-recover/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 19:34:45 +0000</pubDate>
		<dc:creator>schof</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.sudosu.net/2007/terminally-incoherents-linux-fuckup-of-the-day-using-single-user-mode-to-recover/</guid>
		<description><![CDATA[From Terminally Incoherent:
Yep. I just removed myself from all the groups except for vboxusers. Brilliant! I absolutely hate when I do stupid shit like that. It’s not like this was hard to fix &#8211; I just didn’t remember of the top of my head what groups I was supposed to belong to. Of course since [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://www.terminally-incoherent.com/blog/2007/06/25/linux-fuckup-of-the-day/" title="Terminally Incoherent's Linux Fuckup Of The Day" target="_blank">Terminally Incoherent</a>:</p>
<blockquote><p>Yep. I just removed myself from all the groups except for <em>vboxusers</em>. Brilliant! I absolutely hate when I do stupid shit like that. It’s not like this was hard to fix &#8211; I just didn’t remember of the top of my head what groups I was supposed to belong to. Of course since I was no longer part of the <em>sudo</em> and <em>admin</em> groups I could no longer <kbd>sudo</kbd>. Luckily enough, back in the day I decided to enable the root password. So I was able to <kbd>su</kbd> to become root, and then usermod myself to <em>admin</em>, and bunch of other groups I needed like audio, video, tty, lp and etc… I wonder what would happen if I did this on a default Ubuntu box without root account. I wonder if I would be able to recover from this that easily.</p></blockquote>
<p>The short answer is &#8220;Yes, you would.&#8221; Single User Mode is your friend.</p>
<p>At bootup, hit ESC to get into the Grub menu, and select recovery mode. If you haven&#8217;t entered a root password, recovery mode will dump you to the console as root. If you HAVE defined a root password, recovery mode will dump to a login prompt, where you&#8217;ll have to enter the password.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sudosu.net/2007/terminally-incoherents-linux-fuckup-of-the-day-using-single-user-mode-to-recover/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

