<?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>davidb dives in</title>
	<atom:link href="http://blacka.com/david/feed/" rel="self" type="application/rss+xml" />
	<link>http://blacka.com/david</link>
	<description>various musings and babblings.</description>
	<lastBuildDate>Tue, 19 Jan 2010 23:37:29 +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>Switching to Cocoa Emacs</title>
		<link>http://blacka.com/david/2010/01/17/switching-to-cocoa-emacs/</link>
		<comments>http://blacka.com/david/2010/01/17/switching-to-cocoa-emacs/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 19:05:45 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Macintoshia]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=100</guid>
		<description><![CDATA[&#8230; from Carbon Emacs, that is.  I pretty much assume that if you aren&#8217;t already a dedicated emacs user you will just stick with TextMate or TextWrangler, or whatever.

Anyway, did you even know that Cocoa Emacs existed?   You may have hard of Carbon Emacs or Aquamacs, but WTH is Cocoa Emacs?  [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; from <a href="http://homepage.mac.com/zenitani/emacs-e.html">Carbon Emacs</a>, that is.  I pretty much assume that if you aren&#8217;t already a dedicated emacs user you will just stick with <a href="http://macromates.com/">TextMate</a> or <a href="http://www.barebones.com/products/TextWrangler/">TextWrangler</a>, or <a href="http://support.apple.com/kb/HT2523">whatever</a>.</p>

<p>Anyway, did you even know that Cocoa Emacs existed?   You may have hard of Carbon Emacs or <a href="http://aquamacs.org/">Aquamacs</a>, but WTH is Cocoa Emacs?  It turns out that with the final stable release of Emacs 23.1, it came with a Cocoa native build option.  Thus, Cocoa Emacs is now the standard, no-nonsense build of emacs for OS X.</p>

<p>So, how does Cocoa Emacs compare to Carbon Emacs?  It acts and feels mostly the same, although I think it looks a bit crisper and feels a bit faster (which is probably an illusion).  It is smaller on disk (95 MB vs 157 MB), and, of course, it is based on a newer version of emacs itself.  It is The Future!</p>

<p>There are two things that irritated me with Cocoa Emacs when I switched:</p>

<ol>
    <li>Meta is, by default, mapped to the option key.  However, this is easily fixed.</li>
    <li>Carbon Emacs came with a built-in version of aspell.  With Cocoa Emacs you need to get aspell separately.  This is less easily fixed, but it isn&#8217;t too bad.</li>
</ol>

<p><br />
You can get a pre-built stable version of Cocoa Emacs from <a href="https://cocoa-emacs.s3.amazonaws.com/Cocoa%20Emacs%2023.1.dmg">here</a>, or nightly builds from <a href="http://atomized.org/wp-content/cocoa-emacs-nightly/">here</a>.</p>

<p><strong>Step 1</strong>:  Switch the meta key back to the command key, where it is meant to be.  This can either be done via Customize, or you can do it manually with elisp.  Manually, add:</p>

<p><code>(setq ns-command-modifier 'meta)</code></p>

<p>to .emacs.  This same thing can be done simply via Customize: </p>

<ol>
    <li><code>M-x customize</code>,</li>
    <li>go to Environment->NS,</li>
    <li>and change the &#8220;Ns Command Modifier&#8221; option to &#8220;meta&#8221;.</li>
</ol>

<p>You can map option to something else, keep it is &#8220;meta&#8221;, or unset it altogether (which is how it behaves in Carbon Emacs, and probably what you want).</p>

<p><strong>Step 2</strong>: getting <a href="http://aspell.net/">aspell</a>.  If you never ask emacs to spell check anything, you can ignore this.  There are three ways that I&#8217;ve thought of to get aspell:</p>

<p><ol>
    <li>Copy it from Carbon Emacs.  I haven&#8217;t actually tried this, but it should be possible to copy it from the Carbon Emacs bundle into the Cocoa Emacs bundle.  You will probably need <code>Contents/Mac OS/bin/aspell</code> and <code>aspell-import</code>, and <code>Contents/Resources/lib</code>, and <code>Contents/Resources/site-lisp/site-start.d/builtin-aspell.el</code>.  Good Luck.</li>
    <li>Install aspell via <a href="http://www.macports.org/">macports</a>.  If you already have macports, this is probably the way to go.  To do it this way:<ul>
    <li><code>% sudo port install aspell</code></li>
    <li><code>% sudo port install apsell-dict-en</code> (or some other language dictionaries)</li>
    <li>In emacs: <code>M-x customize-option</code>, <code>ispell-program-name</code>, and set the value to <code>/opt/local/bin/aspell</code>.</li></ul></li>
    <li>Get it by installing <a href="http://cocoaspell.leuski.net/">cocoaAspell</a>.  This is what I&#8217;ve done currently.</li>
</ol><br /></p>

<p>CocoaAspell both delivers a version of aspell (to <code>/usr/local/bin</code>) and also delivers a preference pane for getting it configured.  Nifty, but I had to manually fix the aspell configuration to point it to the dictionaries, and you also need to modify the <code>ispell-program-name</code> variable (which can be done via Configure, as well).</p>

<p>To fix the aspell configuration, I edited <code>/usr/local/etc/aspell.conf</code>, changing:</p>

<p><code>dict-dir /usr/local/lib/aspell-0.60</code></p>

<p>to</p>

<p><code>dict-dir /Library/Application\ Support/cocoAspell/aspell6-en-6.0-0</code></p>

<p>Or, I suppose, you could copy the dictionaries back to <code>/usr/local/lib/aspell-0.6.0</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2010/01/17/switching-to-cocoa-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing DBD::Oracle on Mac OS X, redux</title>
		<link>http://blacka.com/david/2009/12/10/installing-dbdoracle-on-mac-os-x-redux/</link>
		<comments>http://blacka.com/david/2009/12/10/installing-dbdoracle-on-mac-os-x-redux/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 13:34:26 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Mac Stuff]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=93</guid>
		<description><![CDATA[After upgrading to Snow Leopard, I had to redo the installation of DBD::Oracle.  This time I used DBD::Oracle 1.23.  The good news is that the majority of my previous instructions no longer appear to be necessary.  A normal build of DBD::Oracle looks ugly, but completes.

HOWEVER, I did discover that if you are [...]]]></description>
			<content:encoded><![CDATA[<p>After upgrading to Snow Leopard, I had to redo the installation of <a href="http://search.cpan.org/dist/DBD-Oracle/">DBD::Oracle</a>.  This time I used DBD::Oracle 1.23.  The good news is that the majority of my <a href="http://blacka.com/david/2008/11/12/how-to-install-dbdoracle-on-mac-os-x/">previous instructions</a> no longer appear to be necessary.  A normal build of DBD::Oracle looks ugly, but completes.</p>

<p>HOWEVER, I did discover that if you are running a 64-bit perl, which you probably are, you need to get the 64-bit Oracle <a href="http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html">instantclient</a> release.  If you build DBD::Oracle and then cannot load the module because of missing symbols (e.g., _OCIAttrGet), then what is happening is that you linked against 32-bit libraries which cannot load from the 64-bit perl instance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2009/12/10/installing-dbdoracle-on-mac-os-x-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress upgrade (2.7)</title>
		<link>http://blacka.com/david/2008/12/13/wordpress-upgrade-27/</link>
		<comments>http://blacka.com/david/2008/12/13/wordpress-upgrade-27/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 21:50:52 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Weblog]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=86</guid>
		<description><![CDATA[Posting about upgrading your incredibly common blogging software isn&#8217;t very interesting.  But I&#8217;m going to take this opportunity to suggest that this time, if you are able, switch to using subversion for wordpress.

Installing wordpress is pretty easy.  Upgrading it is also easy, but you still have to move your plugins, themes, and wp-config.php [...]]]></description>
			<content:encoded><![CDATA[<p>Posting about upgrading your incredibly common blogging software isn&#8217;t very interesting.  But I&#8217;m going to take this opportunity to suggest that this time, if you are able, switch to using subversion for wordpress.</p>

<p>Installing wordpress is pretty easy.  Upgrading it is also easy, but you still have to move your plugins, themes, and wp-config.php around, or delete stuff that gets in the way.  Using subversion makes all of that that go away.  Yay!</p>

<p><strong>Update</strong>: Sadly, since I have been such a blog slacker, I was able to upgrade to <a href="http://wordpress.org/development/2009/02/wordpress-271/">wordpress 2.7.1</a> while this post was still the top post.  Using svn did, in fact, make this the easiest wordpress upgrade I&#8217;ve done.</p>

<p><strong>Update 2</strong>:  Even more sadly, I just upgraded to 2.8.1.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/12/13/wordpress-upgrade-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install DBD::Oracle on Mac OS X</title>
		<link>http://blacka.com/david/2008/11/12/how-to-install-dbdoracle-on-mac-os-x/</link>
		<comments>http://blacka.com/david/2008/11/12/how-to-install-dbdoracle-on-mac-os-x/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 03:03:20 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Mac Stuff]]></category>
		<category><![CDATA[Macintoshia]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=78</guid>
		<description><![CDATA[Today, I figured out how to get DBD::Oracle to work on Mac OS X Leopard (intel).  Since it isn&#8217;t (yet) entirely straightforward, I thought I&#8217;d describe the process here:


Install instantclient.  You will need the basic and sdk modules.  I suggest also getting the sqlplus module while you are at it. I put [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I figured out how to get <a href="http://search.cpan.org/dist/DBD-Oracle/">DBD::Oracle</a> to work on Mac OS X Leopard (intel).  Since it isn&#8217;t (yet) entirely straightforward, I thought I&#8217;d describe the process here:</p>

<ol>
<li><p>Install <a href="http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html">instantclient</a>.  You will need the basic and sdk modules.  I suggest also getting the sqlplus module while you are at it. I put this in <strong>/usr/local/instantclient_10_2</strong>.</p></li>
<li><p>Modify your .bashrc (or whatever) to set <strong>ORACLE_HOME</strong> and <strong>DYLIB_LIBRARY_PATH</strong> to /usr/local/instanclient_10_2.</p></li>
<li><p>Get <a href="http://search.cpan.org/dist/DBD-Oracle/">DBD::Oracle</a> from <a href="http://www.cpan.org">CPAN</a>.  (I got 1.22). Here is where it gets tricky:
In Terminal:</p></li>
</ol>

<p style="text-indent:20pt;"><code>% perl Makefile.PL</code></p>

<p>This generates <em>Makefile</em>.</p>

<ol>
<li><p>Edit <em>Makefile</em>, <a href="http://osdir.com/ml/lang.perl.macosx/2005-04/msg00079.html">changing</a>: <em>NMEDIT=nmedit</em> to <em>NMEDIT=echo</em></p></li>
<li><p>Edit <em>dbimp.c</em>, removing all code that references <strong>dump_env_to_trace()</strong>.  I found a patch at <a href="http://www.macosxhints.com/article.php?story=20061021211559813">macosxhints.com</a>, but this is tied to a particular release of DBD::Oracle.  I decided to use my mad programming skillz to logically do what was needed.  Hopefully this will be fixed in some future version of DBD::Oracle.</p></li>
<li><p>Again, in Terminal:</p></li>
</ol>

<p style="text-indent:20pt;"><code>% make &#38;&#38; sudo make install</code></p>

<p>And that should do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/11/12/how-to-install-dbdoracle-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I has iPhone</title>
		<link>http://blacka.com/david/2008/08/03/i-has-iphone/</link>
		<comments>http://blacka.com/david/2008/08/03/i-has-iphone/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 17:25:38 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2008/08/i-has-iphone/</guid>
		<description><![CDATA[After a mere 2.5 hour wait in line, assisted by jet-lag, I have acquired the 3G iPhone.  More later.
]]></description>
			<content:encoded><![CDATA[<p>After a mere 2.5 hour wait in line, assisted by jet-lag, I have acquired the 3G iPhone.  More later.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/08/03/i-has-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>python-rwhoisd</title>
		<link>http://blacka.com/david/2008/06/21/python-rwhoisd/</link>
		<comments>http://blacka.com/david/2008/06/21/python-rwhoisd/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 22:28:37 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=75</guid>
		<description><![CDATA[Back in 2003, as an exercise to help me learn Python, I wrote python-rwhoisd.  Why an RWhois server?  I had been the main developer and sole maintainer of the C reference version since 1996, and I had been thinking about writing a replacement in a nicer language ever since.  So I pretty [...]]]></description>
			<content:encoded><![CDATA[<p>Back in 2003, as an exercise to help me learn <a href="http://python.org">Python</a>, I wrote <a href="http://blacka.com/software/python-rwhoisd">python-rwhoisd</a>.  Why an <a href="http://www.rwhois.net">RWhois</a> server?  I had been the main developer and sole maintainer of the<a href="http://http://www.rwhois.net/#Downloads"> C reference version</a> since 1996, and I had been thinking about writing a replacement in a nicer language ever since.  So I pretty familiar with the protocol and problem space, and it was complicated enough to be able to sink your teeth into it, yet not so hard that you couldn&#8217;t do it fairly quickly.  Basically, a great learning project.</p>

<p>Back then, I wanted this project to be unquestionably <em>mine</em>.  I was paranoid enough to believe that if I used any of my employer&#8217;s equipment, network access, or time that my employer might claim ownership.  Why they would want to is anyone&#8217;s guess.</p>

<p>So I was very careful to only work on python-rwhoisd at home, on my own time, on my own equipment.  The initial version took me two weeks of nights and weekends.  Hm.  That makes it sound like I was furiously coding into the wee hours.  I was actually only spending a few hours each day on it.</p>

<p>Python was a joy to use.  My day job was in Java (and Perl) and it felt extremely liberating to be able to write so much code with so little typing.  My favorite part was discovering that as I learned more about Python, my code kept getting smaller without getting less readable.  Amazing!</p>

<p>Even though I had basically just written python-rwhoisd to learn a new programming language, I was planning on releasing it.  I didn&#8217;t think that many folks would want it.  RWhois wasn&#8217;t (and still isn&#8217;t) a popular protocol.  But some of my colleagues were evangelizing <a href="http://http://www.ietf.org/rfc/rfc3981.txt">IRIS</a> at the time, and urged me to not release.  They thought that it would muddy the waters, so to speak.  So I didn&#8217;t release it, and then I basically forgot about it.</p>

<p>Fast forward five years.  Just two weeks ago I suddenly wanted to learn how to use <a href="http://git.or.cz">Git</a>.  I played around with tutorial-like git repositories, but it wasn&#8217;t enough.  I needed something real to work on.  I was casting about for a project that I could use, and I ran across python-rwhoisd, mouldering in a local CVS repository.</p>

<p>I had things that I thought should be improved about python-rwhoisd before attempting to release it again.  The main thing was to add IPv6 indexing support, which I had done for the C version several years before.  While this wasn&#8217;t a perfect project for learning Git in all of its glory (for that, I would need collaborators to merge with), it was good enough.  Several days later, I&#8217;d added the IPv6 indexing and search support, and it was time to <a href="http://lists.verisignlabs.com/pipermail/rwhois/2008-June/002232.html">release it</a>.</p>

<p>While I don&#8217;t expect there to be any major outpouring of interest over python-rwhoisd, it still should be easier to run than the C version (at least, for small datasets), and it should be possible to get it working on Windows without too much effort.</p>

<p>Get it <a href="http://blacka.com/software/python-rwhoisd">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/06/21/python-rwhoisd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running UNBOUND at home.</title>
		<link>http://blacka.com/david/2008/05/30/running-unbound-at-home/</link>
		<comments>http://blacka.com/david/2008/05/30/running-unbound-at-home/#comments</comments>
		<pubDate>Fri, 30 May 2008 11:59:38 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=74</guid>
		<description><![CDATA[I finally got around the setting up unbound as my home resolver.  I should have done this months ago, when it was in beta or before, since I had access to it.  I kick myself.  I feel bad.  Oh well, let&#8217;s get on with it.

My initial impressions:
It will be nice once [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got around the setting up <a href="http://unbound.net">unbound</a> as my home resolver.  I <em>should</em> have done this months ago, when it was in beta or before, since I had access to it.  I kick myself.  I feel bad.  Oh well, let&#8217;s get on with it.</p>

<p>My initial impressions:
<ol><li>It will be nice once there are distribution packages for unbound.  I spent more time that I would like (which is zero) figuring out where to put the log file, pid file, etc.  Of course, I was installing it on a machine running Fedora Core 5&#8230;</li><li>I was forwarding a zone to a nameserver running on localhost:20053.  There is a gotcha to doing this, as, by default unbound won&#8217;t send <em>any</em> queries to localhost.  You have to add a &#8216;do-not-query-localhost: no&#8217; config line to fix it.  Maybe this is something unbound-checkconf could detect?</li><li>unbound&#8217;s configuration defaults leave it locked down fairly tightly.  I had it running, but on my other machines, it seemed so slow &#8212; turns out, my queries were timing out and I was hitting my ISP nameserver.  Make sure you add your networks to the &#8216;access-control:&#8217; config parameters.</li><li>I turned up the logging to debug some of my issues.  Looking at the log was <em>uncanny</em>.</li></ol>Anyway, it didn&#8217;t take all that long to set up.  Hopefully relatively soon I (or someone else) will write up how to configure unbound to run in a few different scenarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/05/30/running-unbound-at-home/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress upgrade (2.5)</title>
		<link>http://blacka.com/david/2008/04/09/wordpress-upgrade-25/</link>
		<comments>http://blacka.com/david/2008/04/09/wordpress-upgrade-25/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 12:07:29 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://blacka.com/david/?p=73</guid>
		<description><![CDATA[I realized that I was running a now-ancient version of wordpress, so I upgraded.  It was easy. Yay wordpress 2.5!
]]></description>
			<content:encoded><![CDATA[<p>I realized that I was running a now-ancient version of wordpress, so I upgraded.  It was easy. Yay wordpress 2.5!</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/04/09/wordpress-upgrade-25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Duke 71, Belmont 70</title>
		<link>http://blacka.com/david/2008/03/20/duke-71-belmont-70/</link>
		<comments>http://blacka.com/david/2008/03/20/duke-71-belmont-70/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 01:22:28 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2008/03/duke-71-belmont-70/</guid>
		<description><![CDATA[I feel sick, but not as sick as I could feel.

Update: Duke 67, WVU 73.  Sigh.
]]></description>
			<content:encoded><![CDATA[<p>I feel sick, but not as sick as I could feel.</p>

<p><strong>Update</strong>: Duke 67, WVU 73.  Sigh.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/03/20/duke-71-belmont-70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RFC 5155</title>
		<link>http://blacka.com/david/2008/03/11/rfc-5155/</link>
		<comments>http://blacka.com/david/2008/03/11/rfc-5155/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 13:23:12 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2008/03/rfc-5155/</guid>
		<description><![CDATA[Ben Laurie celebrates the publication of  RFC 5155.  I hadn&#8217;t gotten around to blogging about it, but I&#8217;m also pretty happy that this RFC finally made it out.

Ben says:

It turns out that in general, to prove the nonexistence of a name using NSEC you have to show at most two records, one to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.links.org">Ben Laurie</a> celebrates the publication of  <a href="http://feeds.feedburner.com/~r/links/ZvUZ/~3/249426532/">RFC 5155</a>.  I hadn&#8217;t gotten around to blogging about it, but I&#8217;m also pretty happy that <a href="http://www.ietf.org/rfc/rfc5155.txt">this RFC</a> finally made it out.</p>

<p>Ben says:</p>

<blockquote>It turns out that in general, to prove the nonexistence of a name using NSEC you have to show at most two records, one to prove the name itself doesn&#8217;t exist, and the other to show that you didn&#8217;t delegate some parent of it. Often the same record can do both.

In NSEC3, it turns out, you have to show at most three records. And if you can understand why, then you understand DNS better than almost anyone else on the planet.</blockquote>

<p>One of the fascinating things about working on NSEC3 was that it forced us to <em>really understand</em> how existence in DNS works.  Basically, we had to develop the general form of the theory when we already had a special case (in NSEC).  So, after we figured out how NSEC3 had to work, we actually knew more about how NSEC worked.</p>

<p>For me and our co-editor Roy, this RFC culminates the 2nd round of working on the some of the problems that NSEC3 solves.  The first effort was &#8220;DNSSEC Opt-In&#8221;, now published as an experimental RFC, <a href="http://www.ietf.org/rfc/rfc4956.txt">RFC 4956</a>.  (That effort was also tied up in DNS minutiae and political wrangling and ultimately failed to make the IETF standards track).  For us, it feels more like the culmination of 7 years of work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/03/11/rfc-5155/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet Draft Ideas (DNS related)</title>
		<link>http://blacka.com/david/2008/03/09/internet-draft-ideas-dns-related/</link>
		<comments>http://blacka.com/david/2008/03/09/internet-draft-ideas-dns-related/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 04:07:29 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2008/03/internet-draft-ideas-dns-related/</guid>
		<description><![CDATA[I&#8217;m at the IETF this week, and so I get to turn my brain to thinking about IETF-y things, like Internet Drafts that I think should (and could) be written.

Idea #1: Cache Poisoning Resilience

This would be a draft that describes steps beyond RFC 2181 that a resolver must do to protect itself from cache poisoning. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at the IETF this week, and so I get to turn my brain to thinking about IETF-y things, like Internet Drafts that I think should (and could) be written.</p>

<p><span style="text-decoration:underline;"><strong>Idea #1: Cache Poisoning Resilience</strong></span></p>

<p>This would be a draft that describes steps beyond <a href="http://www.ietf.org/rfc/rfc2181.txt">RFC 2181</a> that a resolver must do to protect itself from cache poisoning.  (RFC 2181 addresses this problem by introducing credibility rules in section 5.4.1.)  Modern caching resolvers need to do more to protect themselves from name poisoning attacks like malicious CNAME chains.  I would expect this draft to be able to lay out a few simple rules like:</p>

<ul><li>Discard any RRs in a response that are &#8220;irrelevant&#8221; (i.e., answer RRs that do not match qname/sname, addtional RRs that don&#8217;t match names in the RDATA of answer and authority RRs, etc.)</li><li>Discard any RRs in a response that are not at or below the queried zone.</li></ul>

<p><span style="text-decoration:underline;"><strong>Idea #2: Authoritative Servers Should Not Chase CNAMEs</strong></span></p>

<p>This is a draft discouraging authoritative servers from chasing CNAMEs out-of-zone (or, optionally, at all), based on conclusions presented in draft idea #1.  This draft could either side-step or confront other possibly controversial things about CNAME processing, like whether or not the authority section should apply the head or the tail of a CNAME chain.</p>

<p><span style="text-decoration:underline;"><strong>Idea #3: DNS Name Compression Standards
</strong></span></p>

<p>A draft mandating the DNS name compression only be done in one direction.  Virtually all (or perhaps even <em>actually</em> all) implementations have DNS compression pointers only pointing to earlier in the message.  This draft would propose that forward-pointing compression pointers should be treated as format errors.  This would accomplish two things:</p>

<ol><li>Simplify what implementers need to support when parsing messages, and</li><li>outlaw any possibility of having to deal with a compression pointer loop. </li></ol>

<p>And, in the process, effectively codify standard practice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2008/03/09/internet-draft-ideas-dns-related/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bachelor Chow</title>
		<link>http://blacka.com/david/2007/12/19/bachelor-chow/</link>
		<comments>http://blacka.com/david/2007/12/19/bachelor-chow/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 03:45:17 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2007/12/bachelor-chow/</guid>
		<description><![CDATA[It has been ages since I&#8217;ve blogged, and at least one of my four subscribers reminds me of this regularly.  So, here goes.

I&#8217;ve come home pretty late from work, and I&#8217;m pretty uninspired when it comes to assembling some sort of dinner.  After staring at the fridge fruitlessly for a while, I&#8217;m struck [...]]]></description>
			<content:encoded><![CDATA[<p>It has been ages since I&#8217;ve blogged, and at least one of my four subscribers reminds me of this regularly.  So, here goes.</p>

<p>I&#8217;ve come home pretty late from work, and I&#8217;m pretty uninspired when it comes to assembling some sort of dinner.  After staring at the fridge fruitlessly for a while, I&#8217;m struck by an inspiration of sorts.  I&#8217;ll make <a href="http://www.urbandictionary.com/define.php?term=bachelor+chow">bachelor chow</a>.  Now, I have no idea what is in the original bachelor chow (nor do I want to know), but my bachelor chow is just the name I&#8217;ve given to the worst thing that I cook for myself on purpose.</p>

<p>So, here is the basic recipe:</p>

<p>Makes one serving:
  3-4 oz. pasta, preferably penne, but anything will suffice
  1/4 jar pasta sauce, any tomato-based variety
   shredded cheese.  I use Sargento&#8217;s 4-cheese mexican.</p>

<ol>
<li>Cook the pasta.  You can salt the water, but I&#8217;ve been running periodic experiments with not salting the water, and so far, I can&#8217;t really tell the difference.  It is even less important with this recipe, since taste is clearly not high on the agenda.</li>
<li>Prior to completely cooking the pasta through, drain the pasta.  Overcooking it is OK, undercooking it sucks, though, so err to the side of too long.  Deposit the pasta into a microwave-safe plate or bowl.   You know, the dish you are going to serve this on.</li>
<li>Optionally stir in a little bit of olive oil and salt (preferably kosher or sea salt).  You can stop right here and have a pretty good dish, even if it is nutritionally unbalanced. It is only going to get worse from here.</li>
<li>Pour the (cold) pasta sauce over the pasta.  Do not stir it in, just let it sit on top.</li>
<li>Sprinkle the shredded cheese on top.  Again, no stirring.</li>
<li>Microwave on high for 2-3 minutes, until the cheese has melted.</li>
<li>Enjoy.  Or, at least, Tolerate.</li>
</ol>

<p>This recipe violates almost every thing I&#8217;ve learned about cooking, but it takes me back to my just-out-of-college days when I was equally as lazy and less polluted by cookbooks, <a href="http://www.cooksillustrated.com/">Cooks Illustrated</a>, and <a href="http://www.foodnetwork.com/">Food Network</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2007/12/19/bachelor-chow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quest for Anti-Aliased Emacs</title>
		<link>http://blacka.com/david/2007/08/31/quest-for-anti-aliased-emacs/</link>
		<comments>http://blacka.com/david/2007/08/31/quest-for-anti-aliased-emacs/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 18:55:50 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2007/08/quest-for-anti-aliased-emacs/</guid>
		<description><![CDATA[In contemplating a move back to Linux for my day job, or at least a future where more of my work is done directly on my Linux box, I began to pine for decent anti-aliased fonts for emacs.

Both the windows and mac builds of emacs 22 have this support built-in.  Although, good luck trying [...]]]></description>
			<content:encoded><![CDATA[<p>In contemplating a move back to Linux for my day job, or at least a future where more of my work is done directly on my Linux box, I began to pine for decent anti-aliased fonts for emacs.</p>

<p>Both the <a href="http://ourcomments.org/Emacs/EmacsW32.html">windows</a> and <a href="http://homepage.mac.com/zenitani/emacs-e.html">mac</a> builds of emacs 22 have this support built-in.  Although, good luck trying to figure out how to change the font to what you want, at least in Carbon Emacs.  Fortunately the default font of Monaco is pretty good (albeit not perfect).  I don&#8217;t have a lot of experience with EmacsW32, even though I do have it installed somewhere.</p>

<p>At first, I was puzzled as to why emacs just didn&#8217;t come with anti-aliased fonts on Fedora 7 by default.  Some web searches led me to believe that support was to be merged in before emacs 22.1, and there I was, running 22.1.  Alas, I had misread the interweb.  If support has been merged in, it has been merged in <em>after</em> 22.1.  Since 22.1 is the latest stable version of emacs (as of this writing), it isn&#8217;t all that surprising that Fedora 7 doesn&#8217;t have this.</p>

<p>Ah, well, time to move to the bleeding edge.  Concise instructions for building a CVS version of emacs with anti-aliased fonts can be found on the <a href="http://www.emacswiki.org/cgi-bin/wiki/XftGnuEmacs">XftGnuEmacs</a> page.  I didn&#8217;t have a whole lot of trouble building and installing this version, but what I really want is a Fedora 7 package to <em>replace</em> the delivered packages.  If I were running <a href="http://peadrop.com/blog/2007/01/06/pretty-emacs/">Ubuntu</a>, this wouldn&#8217;t be much of a problem.</p>

<p>So far, my attempts to hack the existing source RPM for emacs haven&#8217;t met with much success.  It doesn&#8217;t help that emacs take a while to compile, and I keep having to completely start over.  <del datetime="2007-09-13T01:38:50+00:00">I&#8217;ll update this entry if I ever get an rpm built</del>.  </p>

<p><strong>Update</strong>:  I&#8217;ve managed to work through the major issues, so here is the <a href="/files/emacs-23.0.0-u2.20070901cvs.fc7.src.rpmu2.20070901cvs.fc7.src.rpm">source RPM</a> for Fedora 7.  I&#8217;ve put some actual binaries <a href="/files/emacs-xft-rpms">here</a>.  This version doesn&#8217;t replace the stock emacs-22.1.  Instead it installs into <code>/usr/local</code>, but can easily be made the default version via the <em>alternatives</em> command:</p>

<blockquote> <code>alternatives --set emacs /usr/local/bin/emacs-23.0.0</code></blockquote>

Now that I have a working version of emacs with anti-aliased font support, I&#8217;ve been <a href="http://www.lowing.org/fonts/">hunting down</a> what font to actually use.  <a href="http://www.gnome.org/fonts/">Bitstream Vera Sans Mono</a> is a good default, but at the moment I&#8217;m trying out <a href="http://www.ms-studio.com/FontSales/anonymous.html">Anonymous</a>.

For the curious, the bit of elisp that I&#8217;m using to set the fonts is this:

<blockquote>
<pre>
(if (eq window-system 'x)
    ;; if we have the Xft-enabled version of emacs...
    (if (>= emacs-major-version 23)
    (progn
      ;; note: Anonymous doesn't come with Fedora.  You can get it here:
      ;; http://www.ms-studio.com/FontSales/anonymous.html
      (set-default-font "Anonymous-10")
      (setq bvsm10 "Bitstream Vera Sans Mono-10")
      ;; unfortunately, anonymous doesn't have bold or italic
      ;; so, use bitstream vera sans mono for that
      (set-face-font 'bold (concat bvsm10 ":weight=bold"))
      (set-face-font 'italic (concat bvsm10 ":slant=oblique"))
      (set-face-font 'bold-italic
             (concat bvsm10 ":weight=bold:slant=oblique"))
      ;; ...and no proportional font, for that matter
      (set-face-font 'variable-pitch "Bitstream Vera Sans-10")
      (add-to-list 'default-frame-alist '(font . "Anonymous-10")))
      ;; otherwise...
      (progn
    (set-default-font
     "-*-lucidatypewriter-medium-r-*-*-14-140-*-*-*-*-*-*"))
      )
  )
</pre>
</blockquote>

<p>I&#8217;m doing it this way (instead of in X resources) so that launching emacs-22.1 will still work.  If you stick with <em>Bitstream Vera Sans Mono</em> (or <em>DejaVu LGC Sans Mono</em> which is very similar), then you won&#8217;t have to bother with overriding the <strong>bold</strong>, <em>italic</em>, and <strong><em>bold-italic</em></strong> font settings as those will basically just work once you set the default font.  You would still have to deal with overriding the proportional font, however.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2007/08/31/quest-for-anti-aliased-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twittering</title>
		<link>http://blacka.com/david/2007/08/17/twittering/</link>
		<comments>http://blacka.com/david/2007/08/17/twittering/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 02:48:20 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2007/08/twittering/</guid>
		<description><![CDATA[Meaningless stream of comments here.
]]></description>
			<content:encoded><![CDATA[<p>Meaningless stream of comments <a href="http://twitter.com/dblacka">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2007/08/17/twittering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why the bluetooth headset hate?</title>
		<link>http://blacka.com/david/2007/07/18/why-the-bluetooth-headset-hate/</link>
		<comments>http://blacka.com/david/2007/07/18/why-the-bluetooth-headset-hate/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 00:21:24 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blacka.com/david/archives/2007/07/why-the-bluetooth-headset-hate/</guid>
		<description><![CDATA[Over the past few days I&#8217;ve read not one, but two articles expressing the hate toward bluetooth headsets.  And for both articles, I realized that it was misplaced hate.  The authors (and commenters) actually hate the way that some people use them.  That is, the whole standing around and talking to yourself [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few days I&#8217;ve read not <a href="http://www.37signals.com/svn/posts/516-blinking-bluetooth-headsets">one</a>, but <a href="http://arstechnica.com/journals/apple.ars/2007/07/18/iphone-bluetooth-headset-shipping-soon-look-20-less-ridiculous-than-when-using-other-models">two</a> articles expressing the hate toward bluetooth headsets.  And for both articles, I realized that it was misplaced hate.  The authors (and commenters) actually hate the way that some people use them.  That is, the whole standing around and talking to yourself thing.</p>

<p>Fair enough, but some of us just want bluetooth headsets so we don&#8217;t have to keep buying special, vendor specific headsets, and yet also don&#8217;t want to hold the phone up to our ear for the whole hour-long conference call.</p>
]]></content:encoded>
			<wfw:commentRss>http://blacka.com/david/2007/07/18/why-the-bluetooth-headset-hate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
