<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Insignificant Bits</title>
    <link>https://bobcopeland.com/blog/posts/</link>
    <description>Recent content in Posts on Insignificant Bits</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Thu, 12 Nov 2026 08:52:23 -0500</lastBuildDate>
    <atom:link href="https://bobcopeland.com/blog/posts/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Static</title>
      <link>https://bobcopeland.com/blog/posts/static/</link>
      <pubDate>Thu, 12 Nov 2026 08:52:23 -0500</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/posts/static/</guid> 
      <description>&lt;p&gt;With all the AI hackery going on and the fact that I post about twice a
year now, I decided my blog doesn&amp;rsquo;t require php. So I&amp;rsquo;m giving Hugo a spin.
This page started life as markdown and got magicked into the html you see
before you.&lt;/p&gt;
&lt;p&gt;I spent an afternoon customizing PaperMod to kind of look like the existing
theme so hopefully it&amp;rsquo;s not too drastically different.  Search is a bit busted
and no idea if RSS still works but I&amp;rsquo;ll clean up the issues over the next
week or two.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recent experiments</title>
      <link>https://bobcopeland.com/blog/2026/01/recent-experiments/</link>
      <pubDate>Sat, 03 Jan 2026 15:44:24 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3158</guid> 
      <description>&lt;p&gt;Welcome to 2026. Already??&lt;/p&gt;
&lt;p&gt;Winter break is now the one time of the year I can set aside dayjob demands for a moment and mess around on the old computizing device. This year&amp;rsquo;s theme was slop-slinging, since that is how we now do things in the late stages of my profession.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Trained some wavenets as part of Neural Amp Modeler, with which you can plug your real guitar into fake software. I captured one of the sounds from my old Pod and it worked OK &amp;ndash; considering that I don&amp;rsquo;t have very high quality capture equipment and I wasn&amp;rsquo;t trying very hard &amp;ndash; but one of the more interesting experiments was to pass the capture signal through a vocoder to get what turned out to be a weird distortion effect. Wheels within wheels. Guitarix (Linux amp simulator app) can host NAM plugins and this has been my rig over the past 1-2 years.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trained a 2k parameter transformer, as an experiment in how small you can make an ML model that can do something (in this case, sort small numbers very inefficiently).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Soldered together a 6-button USB-C keyboard (pictured below) using a pro-micro board and QMK firmware (no compilation necessary for this kind of simple build). This is for a taekwondo referee trainer, for which I vibe-coded a dumb rhythm game as a placeholder app to test it out. I guess you could make the argument that I built the world&amp;rsquo;s worst console in just about 2 days.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>All the Things You Are - Hank Mobley</title>
      <link>https://bobcopeland.com/blog/2025/06/all-the-things-you-are-hank-mobley/</link>
      <pubDate>Thu, 12 Jun 2025 13:39:53 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3153</guid> 
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
			&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/daCaUemeEIk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;A year ago I wrote about &lt;a href=&#34;https://bobcopeland.com/blog/2024/02/all-the-things-i-did/&#34;&gt;composing a solo on All the Things You Are&lt;/a&gt; and it still remains the jazz standard that I have the most comfort with. Since then, I also joined an online jazz community and have been upping my game a bit. When this standard came around again, I took the opportunity to find a good version to transcribe and landed on the version from Johnny Griffin, &lt;em&gt;A Blowin&amp;rsquo; Session&lt;/em&gt;. This is a fairly ridiculous lineup with &lt;strong&gt;three&lt;/strong&gt; (3) tenors at the top of their game: Johnny Griffin, John Coltrane, and Hank Mobley, along with Lee Morgan, Wynton Kelly, Paul Chambers and Art Blakey. Insane! I transcribed a chorus of Mobley&amp;rsquo;s solo mainly because it&amp;rsquo;s the chillest one, and I had the best chance of hearing it without a ton of slowing down the music. Transcription follows.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scenes from democracy in decline</title>
      <link>https://bobcopeland.com/blog/2025/04/scenes-from-democracy-in-decline/</link>
      <pubDate>Tue, 15 Apr 2025 01:51:23 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3149</guid> 
      <description>&lt;p&gt;Just to make it clear where I stand on this not at all difficult moral question: &lt;a href=&#34;https://www.nytimes.com/2025/04/14/nyregion/columbia-student-palestinian-arrested-ice.html?unlocked_article_code=1._04._Min.FZktlmnqccJY&amp;amp;smid=url-share&#34;&gt;deporting people without due process&lt;/a&gt; is, in every case, wrong. Especially so when the clear intent is placing them in &lt;a href=&#34;https://www.nytimes.com/2025/04/14/us/politics/trump-bukele-prison-deported-migrants.html?unlocked_article_code=1._04.cJJ0.rgKuRPk4nOvP&amp;amp;smid=url-share&#34;&gt;offshore torture prisons&lt;/a&gt;. If saying so gets me on a government list of some sort, I&amp;rsquo;ll wear that as a badge of honor.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scrapple from the Apple</title>
      <link>https://bobcopeland.com/blog/2024/11/scrapple-from-the-apple/</link>
      <pubDate>Tue, 26 Nov 2024 14:00:50 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3144</guid> 
      <description>&lt;p&gt;Latest transcription is &lt;em&gt;Scrapple&lt;/em&gt;. The head and transcribed solo are fun to play, but I really struggled with improvising on this one, especially the A section where it stays in F almost the whole time. Parker, of course, makes it sound effortless. Fun finding on this one is the lick starting in bar 15 in the improvised bridge where Bird plays a G7 arpeggio to the F, then descends C mixolydian to the third over C7, then arpeggio back up to the 9th. This same lick appears twice in the solo, once at bar 34 and again in 47 (shifted left by a beat).&lt;/p&gt;</description>
    </item>
    <item>
      <title>A pitch for pitchy</title>
      <link>https://bobcopeland.com/blog/2024/09/a-pitch-for-pitchy/</link>
      <pubDate>Sat, 14 Sep 2024 01:00:21 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3130</guid> 
      <description>&lt;p&gt;I have been using a paid phone app that shall remain nameless for practicing outlining jazz chords on guitar. The app gives you the chords from a standard one at a time, and you play the intervals; the app marks each note completed as they are detected through the microphone. It works pretty well, but one thing I don&amp;rsquo;t like about it is that there are not that many built-in charts, and I really want to use it on the tunes I&amp;rsquo;m learning. The add-your-own-chords feature has been a todo list item since forever and I don&amp;rsquo;t see any new versions coming out, so I spent a weekend writing a clone in javascript.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blue Train</title>
      <link>https://bobcopeland.com/blog/2024/08/blue-train/</link>
      <pubDate>Wed, 07 Aug 2024 01:34:28 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3126</guid> 
      <description>&lt;p&gt;I forgot to mention in the previous post on &lt;em&gt;On Green Dolphin Street&lt;/em&gt; that one reason I liked the song was due to a version on a Tito Puente compilation in which there is some stratospheric trumpet work. I used to play the horn but my embouchure atrophied years ago. Still, I love the sound of it, whether warm and sparse like Miles Davis or bright and blazing high like whoever was on this Puente record. Well, I finally looked it up, and it was Maynard Ferguson, so I guess that makes sense.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Green Dolphin Street</title>
      <link>https://bobcopeland.com/blog/2024/07/on-green-dolphin-street/</link>
      <pubDate>Fri, 12 Jul 2024 02:30:36 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3123</guid> 
      <description>&lt;p&gt;For the last month I&amp;rsquo;ve been working on and off on the transcription of Cannonball Adderly&amp;rsquo;s first chorus of On Green Dolphin Street. The phrasing is really nice in this solo. Adderly plays around a lot with the time feel, at times playing way behind the beat which made writing out the rhythms challenging. I don&amp;rsquo;t think I really nailed it but if you listen along to the recording you get the idea.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On the Sunny Side of the Street</title>
      <link>https://bobcopeland.com/blog/2024/05/on-the-sunny-side-of-the-street/</link>
      <pubDate>Sat, 04 May 2024 17:29:17 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3119</guid> 
      <description>&lt;p&gt;The album &lt;em&gt;Sonny Side Up&lt;/em&gt;, featuring both Sonny Stitt and Sonny Rollins, is fire, and Sonny Stitt&amp;rsquo;s chorus from On the Sunny Side of the Street is hard to beat. I&amp;rsquo;ve had this whole album on repeat for the last month or so and there&amp;rsquo;s not a bad track.&lt;/p&gt;
&lt;p&gt;Dizzy Gillespie sings on &amp;ldquo;Sunny&amp;rdquo; and there&amp;rsquo;s a video of him playing it with Stitt:&lt;/p&gt;
&lt;p&gt;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
			&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/gFthzxtQ5KE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
		&lt;/div&gt;
&amp;amp;t=44s&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hole in the sky</title>
      <link>https://bobcopeland.com/blog/2024/05/hole-in-the-sky/</link>
      <pubDate>Fri, 03 May 2024 01:29:00 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3106</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2024/05/PXL_20240408_192403723-sm.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2024/05/PXL_20240408_192403723-sm.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The path of totality of the April 8, 2024 eclipse just barely missed our house, so I did what any extremely normal person would do: booked a hotel 4 months in advance two hours west of here, pre-ordered a dozen eclipse glasses, and then took a day off of work to go watch it.&lt;/p&gt;
&lt;p&gt;Totally (ahem) worth it.&lt;/p&gt;
&lt;p&gt;Most folks in this area headed out to Niagara Falls, but I gambled on Kingston being less packed. I drove the boys out there the day before. We checked in, then spent a bit of time walking around the lakefront near a pop-up eclipse store selling eclipse merch and playing eclipse-themed songs &amp;ndash; of course &amp;ldquo;Total Eclipse of the Heart&amp;rdquo; and &amp;ldquo;Eclipse&amp;rdquo; from &lt;em&gt;Dark Side of the Moon&lt;/em&gt; were featured, but I feel like there were still others? We had dinner in the chainiest of chains because any other restaurant was booked the whole night.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Billie&#39;s Bounce</title>
      <link>https://bobcopeland.com/blog/2024/03/billies-bounce/</link>
      <pubDate>Sat, 16 Mar 2024 15:49:55 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3100</guid> 
      <description>&lt;p&gt;New transcription: another Parker blues, Billie&amp;rsquo;s Bounce.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/bcopeland/transcriptions/blob/main/billies_bounce.pdf&#34;&gt;&lt;img alt=&#34;transcription of Billie&amp;rsquo;s Bounce&#34; loading=&#34;lazy&#34; src=&#34;https://raw.githubusercontent.com/bcopeland/transcriptions/main/billies_bounce.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Going faster slowly</title>
      <link>https://bobcopeland.com/blog/2024/03/going-faster-slowly/</link>
      <pubDate>Thu, 14 Mar 2024 14:02:25 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3097</guid> 
      <description>&lt;p&gt;For a while I&amp;rsquo;ve been using Amazing Slow Downer on the phone and PlayItSlowly on Linux for transcribing fast passages and to practice playing along with a tempo that I can manage. However, I frequently would like to just repetitively play a section a boatload of times while gradually increasing the BPM &amp;ndash; without taking my hands off the fretboard to adjust a slider. So I wrote a thing.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/bash&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# play a segment of a song over and over, gradually&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# increasing the tempo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;file&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;start&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;attempts&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;4&lt;span style=&#34;color:#66d9ef&#34;&gt;:-&lt;/span&gt;100&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;start_speed&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;5&lt;span style=&#34;color:#66d9ef&#34;&gt;:-&lt;/span&gt;.5&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end_speed&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;6&lt;span style=&#34;color:#66d9ef&#34;&gt;:-&lt;/span&gt;1.0&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;step&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;scale=4; (&lt;/span&gt;$end_speed&lt;span style=&#34;color:#e6db74&#34;&gt; - &lt;/span&gt;$start_speed&lt;span style=&#34;color:#e6db74&#34;&gt;)/&lt;/span&gt;$attempts&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;| bc -l&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; t in &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;seq $start_speed $step $end_speed&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;*** &lt;/span&gt;$t&lt;span style=&#34;color:#e6db74&#34;&gt; ***&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    mpv --no-video --start&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$start --end&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$end $file --o&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/dev/stdout --of&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;ogg 2&amp;gt;/dev/null |
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        gst-launch-1.0 fdsrc fd&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; ! decodebin ! pitch tempo&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$t&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; ! autoaudiosink &amp;gt;/dev/null 2&amp;gt;&amp;amp;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run it like so:&lt;/p&gt;</description>
    </item>
    <item>
      <title>All the things I did</title>
      <link>https://bobcopeland.com/blog/2024/02/all-the-things-i-did/</link>
      <pubDate>Sun, 18 Feb 2024 22:46:38 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3089</guid> 
      <description>&lt;p&gt;A belated happy 2024!&lt;/p&gt;
&lt;p&gt;Most of my blog visitors are just bots spamming it with SQL injection attacks so this one goes out to any humans left out there. My job has been sucked into the generative AI vortex so I now work in an AI group at Amazon. If you&amp;rsquo;re reading this after an LLM became sentient and began rampaging&amp;hellip; bwahahah, oh man, we&amp;rsquo;re nowhere near that&amp;hellip; unless of course you are an investor and then yes sir I can magic your problem away.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Remember</title>
      <link>https://bobcopeland.com/blog/2023/12/remember/</link>
      <pubDate>Fri, 08 Dec 2023 14:20:46 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3086</guid> 
      <description>&lt;p&gt;November was a month to remember: we had Remembrance Day, and Guy Fawkes day, and well, just a whole lot of remembering things. I have been listening to a lot of hard bop, so naturally, I learned Remember, the Hank Mobley version.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/bcopeland/transcriptions/blob/main/remember.pdf&#34;&gt;&lt;img alt=&#34;remember&#34; loading=&#34;lazy&#34; src=&#34;https://raw.githubusercontent.com/bcopeland/transcriptions/main/remember.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s take 1230912, post-workout edition, where I never could land that Ebm9 arpeggio in bar 49. I intentionally learned this in 5th position rather than 9th just to get some practice in a different area of the fretboard.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Invincible</title>
      <link>https://bobcopeland.com/blog/2023/10/invincible/</link>
      <pubDate>Wed, 25 Oct 2023 00:35:56 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3079</guid> 
      <description>&lt;p&gt;So I haven&amp;rsquo;t posted a transcription for September or October nor have I done much of anything this month, because I had COVID officially for the first time. Unofficially, who knows, probably at least twice by now?&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2023/10/covid.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2023/10/covid.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Someone needs to let BillG know the 5G has worn off at this point and we all need a refill&amp;hellip; in 2-3 months time.&lt;/p&gt;
&lt;p&gt;Anyway, I finally learned first couple of choruses of Bloomdido from my transcription and here I can be seen playing it not quite correctly so enjoy!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bloomdido</title>
      <link>https://bobcopeland.com/blog/2023/09/bloomdido/</link>
      <pubDate>Mon, 04 Sep 2023 21:47:59 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3074</guid> 
      <description>&lt;p&gt;August&amp;rsquo;s tune is another Parker blues: Bloomdido. I transcribed all four choruses this time around, which was educational in that Parker repeats the same licks at the same place in more than one chorus, for example the C minor pentatonic figure in bars 21, 33, and 57 resolving to the 3rd of the F7. In two of those cases, he leads into it with a descending G mixolydian b9 b13 scale using a 3rd to b9 (B to A flat) intervallic leap which sounds amazing. The tempo is whipping by, so I didn&amp;rsquo;t really notice those until breaking it down, but there are a number of sounds worth stealing here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Straight, No Chaser</title>
      <link>https://bobcopeland.com/blog/2023/08/straight-no-chaser/</link>
      <pubDate>Sun, 06 Aug 2023 16:03:24 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3069</guid> 
      <description>&lt;p&gt;July&amp;rsquo;s video is short and sweet. Rather than transcribe a solo this time around, I learned the head without actually writing it down and then composed a single chorus. The changes are a very bare bones B-flat blues, so this was an opportunity to check up on my voice leading and whatever bebop licks have found their way into my fingers.&lt;/p&gt;
&lt;p&gt;A few observations on this process:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;my composed chorus is, not surprisingly, better than my improvised solos (not shown), so more work to do here&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;despite this being a very straightforward I-IV-V, I initially wrote in a G7 arpeggio in bar 8, so I can see some progress in my ear anticipating common jazz harmonies, even if they aren&amp;rsquo;t actually there&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Garden 2023</title>
      <link>https://bobcopeland.com/blog/2023/07/garden-2023/</link>
      <pubDate>Sat, 22 Jul 2023 17:21:26 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3053</guid> 
      <description>&lt;p&gt;Time to interrupt the music posts with a check-in on this year&amp;rsquo;s garden. Now that the beds are freshly weeded and mulched, I can look at it without wincing. This year I did tomatoes: Black Krim, San Marzano (new); peppers: sweet, jalapeno, habanero; corn (new); Kirby cucumbers; garlic; gai lan; kale; carrots; potatoes; snap peas; pole beans; arugula; raspberries (new); strawberries (new); herbs: thai and sweet basil, thyme, chocolate mint, rosemary; flowers: marigolds and nasturtiums. I also just tossed a few brussels sprouts seeds in a pot to see if I can get anything with those in the fall.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blues For Alice</title>
      <link>https://bobcopeland.com/blog/2023/07/blues-for-alice/</link>
      <pubDate>Wed, 05 Jul 2023 01:05:16 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3047</guid> 
      <description>&lt;p&gt;Here we go again, this time trying a Charlie Parker Jazz blues. I thought blues was easy. Wrong!&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
			&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/mHw7p-EG9NQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;I cut the video off early because I didn&amp;rsquo;t actually learn the 3rd chorus, just knew the next two bars or so.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the transcription &amp;ndash; I know there are errors after having compared to the Omnibook but I&amp;rsquo;m going to leave it here for now. New month, new tune!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Four</title>
      <link>https://bobcopeland.com/blog/2023/06/four/</link>
      <pubDate>Sun, 04 Jun 2023 16:18:57 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3041</guid> 
      <description>&lt;p&gt;I didn&amp;rsquo;t get very far on a transcription this month, owing to having a new project at work and especially due to Return To Office commute erasing 3 hours daily of what might have been practice time. This month&amp;rsquo;s transcription is the first chorus of Miles Davis&amp;rsquo;s &lt;em&gt;Four&lt;/em&gt;. Frankly, it still needs work and really wants the next few choruses to sound complete, but putting a pin in it for now as I am out of time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moose the Mooche</title>
      <link>https://bobcopeland.com/blog/2023/04/moose-the-mooche/</link>
      <pubDate>Sun, 30 Apr 2023 18:45:26 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3032</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m transcribing and learning a jazz standard each month of 2023 to try and get better at internalizing jazz language. For the month of April, I went back to bebop and learned Charlie Parker&amp;rsquo;s &lt;em&gt;Moose the Mooche&lt;/em&gt;, a song about &lt;a href=&#34;https://en.wikipedia.org/wiki/Moose_the_Mooche&#34;&gt;Parker&amp;rsquo;s favorite drug dealer&lt;/a&gt;. I picked the version that&amp;rsquo;s in the omnibook to have a reference to check my transcription against, and while the omnibook is probably more accurate, my transcription is a bit simpler and amenable to guitar. How Aebersold &amp;amp; Slone hear all of those eighth notes in the middle is beyond me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My One and Only Love</title>
      <link>https://bobcopeland.com/blog/2023/03/my-one-and-only-love/</link>
      <pubDate>Sat, 25 Mar 2023 15:06:08 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3018</guid> 
      <description>&lt;p&gt;I am continuing to transcribe and learn a jazz standard each month to try and get better at this genre. And recording myself to keep myself honest.&lt;/p&gt;
&lt;p&gt;March&amp;rsquo;s song is &lt;em&gt;My One And Only Love&lt;/em&gt; because I thought, &amp;ldquo;why not try to learn a ballad?&amp;rdquo; I started by making a playlist (&amp;ldquo;My many one and only loves&amp;rdquo;) and listened to twenty versions of this song, settled on the version by Grant Green as the one to transcribe, and wrote it out (just melody this time &amp;ndash; most recorded solos are generally embellishments of the melody). Green&amp;rsquo;s version has a slightly different melody and chords than the standard, and is in Eb instead of C.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Confirmation part 2</title>
      <link>https://bobcopeland.com/blog/2023/02/confirmation-part-2/</link>
      <pubDate>Mon, 27 Feb 2023 01:31:39 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3012</guid> 
      <description>&lt;p&gt;I finished transcribing the &lt;a href=&#34;https://github.com/bcopeland/transcriptions/blob/main/confirmation.pdf&#34;&gt;first solo chorus to Confirmation&lt;/a&gt; and then went back and compared a few other transcriptions to fix some errors. I won&amp;rsquo;t claim mine is exact at this point, but it is as close as I can hear it. Meanwhile, I learned it on guitar and can kind of play it at about 80% tempo. There are some nice finger stretches and sweep picked arpeggios in this one. Parker&amp;rsquo;s swings way harder, of course.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Confirmation</title>
      <link>https://bobcopeland.com/blog/2023/02/confirmation/</link>
      <pubDate>Mon, 06 Feb 2023 13:45:48 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3007</guid> 
      <description>&lt;p&gt;Continuing on my goal to transcribe and learn a tune each month, I set &lt;em&gt;Groovin&amp;rsquo; High&lt;/em&gt; aside and transcribed the head of Parker&amp;rsquo;s &lt;em&gt;Confirmation&lt;/em&gt; this weekend. On &lt;a href=&#34;https://github.com/bcopeland/transcriptions&#34;&gt;github&lt;/a&gt; as usual.&lt;/p&gt;
&lt;p&gt;I took a quick scan of the internets and my transcription is pretty close, at least as far as the rhythms go. There are a few places where we disagree on notes, on some of the 16th triplets and a few bars in the bridge. I&amp;rsquo;ll have another listen and fix these things up as I have time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grooving not so high</title>
      <link>https://bobcopeland.com/blog/2023/01/grooving-not-so-high/</link>
      <pubDate>Sun, 22 Jan 2023 23:49:16 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=3003</guid> 
      <description>&lt;p&gt;Since last time I have been working on transcribing the solo on the tune Groovin&amp;rsquo; High.&lt;/p&gt;
&lt;p&gt;As a snapshot of where I am on this one, you can watch me creak my way through the solo over here:&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
			&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/3wfch_x3ams?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;There are a half dozen wrong notes and the last phrase is totally off, but, it&amp;rsquo;s getting there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First Standard of 2023</title>
      <link>https://bobcopeland.com/blog/2023/01/first-standard-of-2023/</link>
      <pubDate>Wed, 04 Jan 2023 03:48:21 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2997</guid> 
      <description>&lt;p&gt;I never really liked big band music as a genre, but I guess it&amp;rsquo;s hard to find fault when Dizzy and Bird are on the bandstand. And thus I&amp;rsquo;ve had &lt;em&gt;Groovin&amp;rsquo; High&lt;/em&gt; going through my brain for weeks on end, so I finally sat down this morning to transcribe the head. It doesn&amp;rsquo;t appear in any of my real books so I did it the old fashioned way: listening, and then after I had a first draft down, cheating with image search. Mistakes are either my own or someone else&amp;rsquo;s.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The latest on letters in squares</title>
      <link>https://bobcopeland.com/blog/2022/09/the-latest-on-letters-in-squares/</link>
      <pubDate>Sat, 17 Sep 2022 15:28:41 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2978</guid> 
      <description>&lt;p&gt;Somewhere along the way this summer I quit doing crosswords for a while. Maybe my gardening hobby took over, or I didn&amp;rsquo;t want to touch the computer after work, or perhaps pandemic has been too much of a stressor, or maybe it just felt too much of an obligation to keep up with &amp;ndash; whatever the reason, I fell out of practice a bit. Visualized, my puzzling activity for 2022 looks like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>August already</title>
      <link>https://bobcopeland.com/blog/2022/08/august-already/</link>
      <pubDate>Mon, 08 Aug 2022 02:52:03 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2960</guid> 
      <description>&lt;p&gt;It&amp;rsquo;s that time of year when all the fruits are ripening and we have more than we can reasonably eat.&lt;/p&gt;
&lt;p&gt;Zucchini is new this year, and this used to be one of my favorite summer vegetables, but now I&amp;rsquo;m just trying to figure out how to use it all up. We ate it as tacos, parm, grilled, roasted, fried, donated to the food pantry, and we still have some in the fridge. Perhaps zucchini bread is in the offing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>July already</title>
      <link>https://bobcopeland.com/blog/2022/07/july-already/</link>
      <pubDate>Sat, 02 Jul 2022 23:49:08 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2951</guid> 
      <description>&lt;p&gt;It&amp;rsquo;s once again that time of year where I have enough growing out in the garden that I can share a couple of photos. Pictured below: some marigolds, gai lan, sugar snap peas, and unripe tomatoes. Last week I made some garlic mayo from harvested garlic scapes &amp;ndash; a delicious addition to grilled burgers.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-marigolds.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-marigolds.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-gailan.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-gailan.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-peas.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-peas.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-tomatoes.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/07/2022-tomatoes.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retrofuturism</title>
      <link>https://bobcopeland.com/blog/2022/05/retrofuturism/</link>
      <pubDate>Sun, 01 May 2022 18:43:00 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2947</guid> 
      <description>&lt;p&gt;Recently my Kindle (Paperwhite 3, 2015 edition) had a mishap wherein it took a trip through the washing machine. After it dried out, I tried booting it up again only to get a &amp;ldquo;you should really go repair this&amp;rdquo; graphic on the display and it was toast. I took the opportunity to upgrade to the more recent, somewhat waterproof edition.&lt;/p&gt;
&lt;p&gt;Meanwhile, I wondered if I could do something with the e-ink screen on this old one. After manhandling it open, I found I could get it back on after disconnecting and reconnecting the battery and shorting the traces where the power button used to be. So, naturally I rooted this thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A-Frame</title>
      <link>https://bobcopeland.com/blog/2022/04/a-frame/</link>
      <pubDate>Sun, 17 Apr 2022 00:13:50 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2941</guid> 
      <description>&lt;p&gt;This weekend I finished up an A-frame trellis for this year&amp;rsquo;s garden that I&amp;rsquo;m hoping will make it easier to grow tomatoes up a string and some pole beans or peas on a mesh on the outside. Last year&amp;rsquo;s better boys that I&amp;rsquo;d clipped along a piece of twine were by far the lowest maintenance tomatoes ever, so doubling down on that.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/04/aframe-600.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/04/aframe-600.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I rigorously planned this trellis as you can see from the blueprint. Still, I made some last minute changes, like anchoring it to rebar with zip-ties instead of driving the posts in directly &amp;ndash; since I used the cheapest 1x2s ever made, it was highly likely that tapping them with a hammer would&amp;rsquo;ve resulted in catastrophic failure. Zip ties will likely be upgraded to a more permanent clamp at some point.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cold frame</title>
      <link>https://bobcopeland.com/blog/2022/04/cold-frame/</link>
      <pubDate>Mon, 11 Apr 2022 13:47:57 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2937</guid> 
      <description>&lt;p&gt;I &amp;ldquo;built&amp;rdquo; a cold frame this weekend to start hardening off the several gai lan plants I have under grow lights in the basement. I knew I was saving all of those furnace filters for a reason.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/04/coldframe.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2022/04/coldframe.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Transcription: St. Thomas</title>
      <link>https://bobcopeland.com/blog/2022/01/transcription-st-thomas/</link>
      <pubDate>Sun, 23 Jan 2022 19:38:53 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2927</guid> 
      <description>&lt;p&gt;My current &lt;a href=&#34;https://www.youtube.com/watch?v=JtvGR8UX1L0&#34;&gt;jazz odyssey&lt;/a&gt; involves transcribing some tunes. So I played around with lilypond/lilyjazz for the first time while transcribing Sonny Rollins&amp;rsquo; solos on St. Thomas.&lt;/p&gt;
&lt;p&gt;Lilyjazz is quite nice - the output really looks like the page was ripped out of the Real Book and much more readable than anything I have ever written out by hand.&lt;/p&gt;
&lt;p&gt;I admit to not knowing the rules about how best to spell notes or rhythms so a few things probably look weird, and I glossed over some of the fast parts. Still, it&amp;rsquo;s not terrible for a first try.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It&#39;s 2022.</title>
      <link>https://bobcopeland.com/blog/2022/01/its-2022/</link>
      <pubDate>Mon, 10 Jan 2022 15:39:48 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2918</guid> 
      <description>&lt;p&gt;2021 is in the books. Enough said here.&lt;/p&gt;
&lt;p&gt;The family is doing fine, but understandably bored. We are fully vaxxed to the extent possible but maintaining caution under the current Omicron wave. Holding pattern continues unabated.&lt;/p&gt;
&lt;p&gt;Normally I would have spent the dead week between Christmas and New Year&amp;rsquo;s doing something computer-y outside of my day-to-day work, but this year I was just too tired to hack. So instead I started working my way through a jazz theory book and analyzed a few tunes from a real book. Last year, I discovered JJazzLab, which has been a fun tool for practicing improvisation on Linux. I play OK diatonically, but I still need a lot of work on playing outside and in melodic minor modes. It might be interesting to work up a half dozen tunes in 2022, recording them on both piano and guitar to track progress. We shall see if I can find time for that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another garden dead and buried</title>
      <link>https://bobcopeland.com/blog/2021/11/another-garden-dead-and-buried/</link>
      <pubDate>Mon, 01 Nov 2021 15:02:52 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2909</guid> 
      <description>&lt;p&gt;The garden was pretty successful this year - everything I planted produced in some way. We dined on a copiousness of kale, a pallet of peas, a torrent of tomatoes, a heap of habaneros, a barrage of beans, an overabundance of aubergines (an expanse of eggplants?), and more. Pumpkins were a fun addition but they used so much space (one entire bed, and still spilled onto the sidewalk) that I&amp;rsquo;ll give it a miss next year. At least the resident vole enjoyed snacking on them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Time lapse</title>
      <link>https://bobcopeland.com/blog/2021/07/time-lapse/</link>
      <pubDate>Sat, 10 Jul 2021 03:40:37 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2901</guid> 
      <description>&lt;p&gt;One month of garden growth in 15 seconds. The pole beans (top right) really take off at the end.&lt;/p&gt;

&lt;video controls preload=&#34;metadata&#34;&gt;
  &lt;source src=&#34;https://bobcopeland.com/blog/images/garden.mp4&#34; type=&#34;video/mp4&#34;&gt;
  Your browser does not support the video element.
&lt;/video&gt;</description>
    </item>
    <item>
      <title>What I&#39;m growing this year</title>
      <link>https://bobcopeland.com/blog/2021/06/what-im-growing-this-year/</link>
      <pubDate>Mon, 14 Jun 2021 13:19:20 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2888</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m nicely keeping to my two-post-a-year cadence with one of them being about gardening. Here&amp;rsquo;s the gardening one.&lt;/p&gt;
&lt;p&gt;This year I got bored and built a bunch of bespoke structures out of 1x2s for trellising and to have an excuse to use my drill. Some of my tomatoes are thus growing in wood boxes and connected via clips to twine, while the others are using the more traditional tied-to-a-single-stake method. Have to say I prefer the former arrangement since it is super-easy to adjust as they get larger.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sub five</title>
      <link>https://bobcopeland.com/blog/2021/06/sub-five/</link>
      <pubDate>Sat, 05 Jun 2021 23:09:58 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2884</guid> 
      <description>&lt;p&gt;I am mostly keeping up my daily ritual of doing the NYT crossword and generally getting faster, with most of my solves now below my historical average, but it&amp;rsquo;s getting harder to set a personal best. Every once in a while a puzzle comes along that is abnormally easy for the day-of-the-week, so that my best times are fairly far from the mean. It would be interesting to see the whole distribution over time, but as far as I know that data is not available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I put some letters in squares</title>
      <link>https://bobcopeland.com/blog/2021/04/i-put-some-letters-in-squares/</link>
      <pubDate>Sun, 25 Apr 2021 23:40:13 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2879</guid> 
      <description>&lt;p&gt;This weekend I burnished my geek CRED (clued as such in some puzzle) by participating in the virtualized 2021 American Crossword Puzzle Tournament. This year, they used Not-My-Software, which is a good thing because I would hate to be on tech support the year everyone that had to do virtual crosswording for the first time. I solved 6/8 puzzles cleanly which is enough to land just above the bottom 20% of the entrants! Of the misses, puzzle 5 was a beast, while puzzle 7 was pretty nice, but I didn&amp;rsquo;t get the theme quickly enough and lost five or ten minutes feeding the youngster breakfast during the solve. My fastest time was 6:58 on the (unscored) final which is no great shakes compared to the field but pretty good for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>House of Zephyrus</title>
      <link>https://bobcopeland.com/blog/2021/03/house-of-zephyrus/</link>
      <pubDate>Sun, 21 Mar 2021 19:20:08 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2869</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2021/03/imafan2.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2021/03/imafan2.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The one task I hate when gardening is hardening off plants. I tend to rush it and my poor seedlings pay the price. Usually, I am pretty good about limiting sun exposure but not so good about setting up wind breaks.&lt;/p&gt;
&lt;p&gt;This year I decided to try introducing wind to my plants while they are still in the grow room. Sure, I could go plonk down $50 and get something bespoke here, but this is a perfect opportunity to use some of the extra PC case fans I have sitting around. It took all of two minutes to prototype a working &amp;ldquo;plant fan&amp;rdquo; by connecting a 9V battery across the fan terminals and cable tying the fan near my bell pepper plants.&lt;/p&gt;</description>
    </item>
    <item>
      <title>House of Theseus</title>
      <link>https://bobcopeland.com/blog/2021/03/house-of-theseus/</link>
      <pubDate>Sun, 14 Mar 2021 00:00:42 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2866</guid> 
      <description>&lt;p&gt;In case anyone was wondering: now is the point at which eight year old appliances are dying. Our house has just reached this venerable age, and in the last few months, the refrigerator, oven, and dishwasher all decided to quit working in some way or another. Thanks to COVID and YouTube, I fixed 2/3s of these appliances &lt;em&gt;all by myself&lt;/em&gt;, which together with last year&amp;rsquo;s HVAC repair, means I am officially qualified to make twice my current hourly rate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>35 seconds</title>
      <link>https://bobcopeland.com/blog/2021/02/35-seconds/</link>
      <pubDate>Mon, 08 Feb 2021 04:16:49 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2861</guid> 
      <description>&lt;p&gt;After a bit of a break, I am back to doing the NYTXW every day, except when I forget. Out of laziness, I am just using their webapp instead of my own, thereby saving at least two clicks. As a result, I get their fancy stats deal for free.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2021/02/Screenshot_20210207-120003.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2021/02/Screenshot_20210207-120003.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As a completely pointless milestone, I&amp;rsquo;d like to break the five minute barrier sometime this year. I got pretty close with last Monday&amp;rsquo;s puz, and it didn&amp;rsquo;t feel like it was possible to type any faster. But I understand that in the competitive world, times are typically half that. Five minutes is somewhere around four seconds per answer, seems doable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finis</title>
      <link>https://bobcopeland.com/blog/2020/12/finis/</link>
      <pubDate>Thu, 31 Dec 2020 20:43:30 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2847</guid> 
      <description>&lt;p&gt;Dear reader, I am writing this from my bunker in lockdown. Here we are on the final day of 2020, and all I can say is, whew, we made it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2020/12/smaller_PXL_20201129_212831177.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2020/12/smaller_PXL_20201129_212831177.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The front page of this blog goes back a year and a half which doesn&amp;rsquo;t say a lot about my level of commitment to this here writing thing of late. I shall try to make up for that by summarizing some of the projects I actually completed in 2020, but which I was too lazy to document contemporaneously so they might as well have not happened at all. Well here&amp;rsquo;s your bunch of write-ups all squashed into one blog entry, happy now?&lt;/p&gt;</description>
    </item>
    <item>
      <title>In which I faked a person</title>
      <link>https://bobcopeland.com/blog/2020/11/in-which-i-faked-a-person/</link>
      <pubDate>Sun, 01 Nov 2020 02:48:26 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2841</guid> 
      <description>&lt;p&gt;Having successfully shipped a project at $dayjob after some extended crunch time, I took this week off to recharge. This naturally gave me the opportunity to, um, write more code. In particular, I worked a bit on my crossword constructor while also constructing a crossword. I&amp;rsquo;m a bit rusty in this area, so while I was able to fill a puzzle with a reasonable theme, I&amp;rsquo;m probably going to end up redoing the fill before trying to publish that one because some areas are pretty yuck.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Socially distant</title>
      <link>https://bobcopeland.com/blog/2020/08/socially-distant/</link>
      <pubDate>Mon, 17 Aug 2020 02:10:30 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2833</guid> 
      <description>&lt;p&gt;I haven&amp;rsquo;t posted at all since COVID-19 hit in this area, partly because work (from home) has been all-consuming and a welcome distraction from the outside world, and partly because, during my non-work hours, the old brain has loaded up an endless patter of anxiety:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Was that coughing gentleman really two meters away or maybe one and a half? Is it drafty in here, or do I have the chills? Is the shortness of breath and periodic chest pain a sign of COVID-19, or just your run-of-the-mill heart attack? Should I write another blog post and if so, will it be my last one, and if is the last, would that really be the blog post I want to end on?&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Another CNN</title>
      <link>https://bobcopeland.com/blog/2020/02/another-cnn/</link>
      <pubDate>Mon, 10 Feb 2020 02:12:37 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2829</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2020/02/Screenshot-from-2020-02-09-21-10-02.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2020/02/Screenshot-from-2020-02-09-21-10-02.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I did train a model train model.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Watts up</title>
      <link>https://bobcopeland.com/blog/2020/01/watts-up/</link>
      <pubDate>Mon, 27 Jan 2020 13:10:23 +0000</pubDate>
       <guid isPermaLink="false">https://bobcopeland.com/blog/?p=2826</guid> 
      <description>&lt;p&gt;One of my goals with this new computer is to be more aggressive about power saving: keeping it in suspend more often, using wake-on-lan for external access, etc. To that end, I dusted off the old kill-a-watt and took some baseline measurements:&lt;/p&gt;
&lt;p&gt;Off, but plugged in: 2W
Suspend: 2W
On, idle: 48W (old machine: 100!)
Kernel build: 200W (old machine: 150, but also took 15x longer)
ML training with GPU at 100%: 400W&lt;/p&gt;</description>
    </item>
    <item>
      <title>New build</title>
      <link>https://bobcopeland.com/blog/2020/01/new-build/</link>
      <pubDate>Sun, 05 Jan 2020 16:36:49 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2818</guid> 
      <description>&lt;p&gt;Last year, I spent a few weeks dabbling in machine learning, which remains an interesting area to explore though not directly related to my day-to-day work. Although the economics generally work in favor of doing ML in the cloud, there&amp;rsquo;s something to be said for having all of your code and data local and not having to worry about shutting down virtual hosts all the time. My 10+ year old PC just doesn&amp;rsquo;t cut it for ML tasks, and so I made a new one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Virtual doorbell</title>
      <link>https://bobcopeland.com/blog/2019/09/virtual-doorbell/</link>
      <pubDate>Thu, 05 Sep 2019 10:25:17 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2697</guid> 
      <description>&lt;p&gt;We had some cameras installed at our house last year, partly for security, but mainly so we could know who is at the door before answering it in our PJs. Unfortunately, the software that comes with the camera DVR is pretty clunky, so it takes way too long to bring up the feed when the doorbell rings and I often don&amp;rsquo;t bother.&lt;/p&gt;
&lt;p&gt;Luckily, the DVR exposes RTSP streams that you can capture and playback with your favorite mpeg player. And I just learned how to build a pretty good image classifier that needed a practical application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Uprooting</title>
      <link>https://bobcopeland.com/blog/2019/09/uprooting/</link>
      <pubDate>Wed, 04 Sep 2019 16:34:53 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2688</guid> 
      <description>&lt;p&gt;Summer came late and is leaving early this year, so it&amp;rsquo;s about harvest time now. This year, I did some radishes, onions, salad greens, carrots, green beans, jalapenos, bell peppers, basil, and tomatoes. Most of the carrots didn&amp;rsquo;t grow long roots, but I got a few. The rabbits got to the peppers and green beans before I did, while leaving the lettuce mostly alone &amp;ndash; I realized when I had a dozen full heads that we just don&amp;rsquo;t eat that much salad, so a lot of it bolted in the end. Now I know what 4-foot tall red lettuce looks like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>In which I trained a neural net</title>
      <link>https://bobcopeland.com/blog/2019/08/in-which-i-trained-a-neural-net/</link>
      <pubDate>Sun, 25 Aug 2019 12:39:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2683</guid> 
      <description>&lt;p&gt;The entire sum of my machine learning experience thus far is a couple of courses in grad school, in which I wrote a terrible handwriting recognizer and various half-baked natural language parsers. As luck would have it, I was just a couple of years too early for the Deep Learning revolution &amp;ndash; at the time support vector machines were all the rage &amp;ndash; so I&amp;rsquo;ve been watching the advancements of the last few years with equal measures idle interest and bewilderment. Thus, when I recently stumbled across the &lt;a href=&#34;https://course.fast.ai/&#34;&gt;fast.ai MOOC&lt;/a&gt;, I couldn&amp;rsquo;t resist following along.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Directions in Commandline Editing</title>
      <link>https://bobcopeland.com/blog/2019/04/new-directions-in-commandline-editing/</link>
      <pubDate>Tue, 16 Apr 2019 15:49:55 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2670</guid> 
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I finally isolated this to gnome&amp;rsquo;s multiple input method support. Shift + Space is bound by default to switch input sources, and it is in whatever the next input method is that unusual things happen. Turn that stuff off in the keyboard shortcuts! Find below the original post about the visible symptoms.&lt;/p&gt;
&lt;p&gt;Dear lazyweb,&lt;/p&gt;
&lt;p&gt;Where in {bash, readline, gnome terminal, wayland, kernel input} does the following brain damage, newly landed in debian testing, originate?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Playing With Flash</title>
      <link>https://bobcopeland.com/blog/2019/04/playing-with-flash/</link>
      <pubDate>Fri, 12 Apr 2019 14:38:02 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2664</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2019/04/testclip.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2019/04/testclip.jpg&#34;&gt;&lt;/a&gt; I recently picked up one of these $10 CH341A USB flash programmers and a test clip. I didn&amp;rsquo;t really have any initial plans for that it but thought it might come in useful someday while messing with router bootloaders. This unexpectedly turned out to be a lot of fun so far and not a bad tool for the price.&lt;/p&gt;
&lt;p&gt;Rummaging through my parts bin, I found a Winbond 4K SPI flash of unknown provenance, hooked it up, and read out the contents with &lt;code&gt;flashrom&lt;/code&gt;. Turns out this was an AMI BIOS that I pulled from some motherboard way back when. Disassembling the BIOS might make a good rainy day exercise.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Planting time</title>
      <link>https://bobcopeland.com/blog/2019/03/planting-time/</link>
      <pubDate>Mon, 25 Mar 2019 13:44:04 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2656</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2019/03/seedfactor.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2019/03/seedfactor.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With the terribly cold and gray winter finally starting to abate, I&amp;rsquo;m going to start my indoor seeds this week. Nearly same setup as last year: I&amp;rsquo;m sowing the head-start seeds indoors, to go under basement grow lights in a couple of weeks when they have sprouted. A new addition is this heating mat, which I had to laugh at because of the prominently featured cannabis leaves on the package. I wonder just what the distribution of carrot growers to &amp;ldquo;other&amp;rdquo; is, now that it&amp;rsquo;s legal here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2019 Crossword Tournament</title>
      <link>https://bobcopeland.com/blog/2019/03/2019-crossword-tournament/</link>
      <pubDate>Fri, 22 Mar 2019 16:39:24 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2651</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wp-content/uploads/2019/03/Screenshot-from-2019-03-22-12-35-00.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/wp-content/uploads/2019/03/Screenshot-from-2019-03-22-12-35-00.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The American Crossword Puzzle Tournament starts this weekend. Once again, a version of my xword webapp is being used, with only a few minor changes since last time (sorry).&lt;/p&gt;
&lt;p&gt;I did almost no puzzling last year, so I&amp;rsquo;ll give it a go, but I&amp;rsquo;m not expecting to finish in the top 100 this time around. Good luck to anyone participating!&lt;/p&gt;</description>
    </item>
    <item>
      <title>More filler</title>
      <link>https://bobcopeland.com/blog/2019/02/more-filler/</link>
      <pubDate>Tue, 05 Feb 2019 14:46:53 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2632</guid> 
      <description>&lt;p&gt;I noticed some HTML5 crossword construction apps have sprung up over the last year, so I no longer have first mover status on that. Also their UIs are generally better and I dislike UI work, so it seemed reasonable to join forces. Thus, I sent some PRs around.&lt;/p&gt;
&lt;p&gt;It was surprising to me that the general SAT solver used by &lt;a href=&#34;http://www.keiranking.com/blog/2017/phil/&#34;&gt;Phil&lt;/a&gt;, written in C compiled to asmjs was so much slower than a pure Javascript purpose-built crossword solver (mine). I assumed the SAT solver might make certain search optimizations that could overcome the minor optimizations related to mine being only a crossword solver. So, yay, my code is not that bad?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Peak 2018</title>
      <link>https://bobcopeland.com/blog/2018/12/peak-2018/</link>
      <pubDate>Mon, 31 Dec 2018 18:52:12 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2482</guid> 
      <description>&lt;p&gt;I almost let the second half of 2018 go unblogged (are people still saying blog?). It&amp;rsquo;s not that nothing interesting happened in all of that time, but real life has been ultra busy. Did I mention that Sammy turned one and is on the verge of walking?&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/2018-sam-standing.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;The garden delivered tons of produce this year, enough that I didn&amp;rsquo;t really keep up. I gave myself a crash course in canning, making four jars of tomatillo salsa and six jars of habanero jam. Maybe fewer peppers next year?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another one about plants</title>
      <link>https://bobcopeland.com/blog/2018/07/another-one-about-plants/</link>
      <pubDate>Sun, 08 Jul 2018 14:13:02 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2475</guid> 
      <description>&lt;p&gt;Here&amp;rsquo;s what the garden looks like right now. Compare to &lt;a href=&#34;https://bobcopeland.com/blog/2017/07/garden-week-7/&#34;&gt;this time last year&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/garden-2018-01.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;We had our backyard professionally landscaped last fall, and the landscaper decided to put in an empty bed next to the house instead of incorporating my unsightly DIY planter box into the design. But that area gets sun only half of the day, so I planted both this year, reserving the landscaper-approved bed for the experimental plants (mostly tomatillos and some extra basil). In the photo you can see the tomatillos in the background on the right: they have grown as tall as I am, with plenty of flowers but no fruits yet. Still, the pollinators are visiting so that could change:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Posting on posting</title>
      <link>https://bobcopeland.com/blog/2018/05/posting-on-posting/</link>
      <pubDate>Mon, 14 May 2018 13:57:16 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2468</guid> 
      <description>&lt;p&gt;After several years of working at &lt;em&gt;popular infosec startup&lt;/em&gt;, I&amp;rsquo;ve now moved on to &lt;em&gt;giant tech company&lt;/em&gt;. It was pretty crazy watching the former grow from &amp;ldquo;hey, we have a cool idea&amp;rdquo; to a company with hundreds of developers &amp;ndash; at turns gratifying to see people describe your software as life-changing, and incredibly stressful when a bug landed on the top of Hacker News.&lt;/p&gt;
&lt;p&gt;In the new gig, I&amp;rsquo;m working on Linux wifi again, so, apologies in advance. Hopefully, I&amp;rsquo;ll be able to do a bit more work upstream now that it is kind of my job. And yes, this post exists just to break up what would otherwise be a long string of consecutive garden blogs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Garden 2018</title>
      <link>https://bobcopeland.com/blog/2018/04/garden-2018/</link>
      <pubDate>Sat, 07 Apr 2018 17:54:43 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2466</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve started my seedlings for the 2018 gardening season. On March 24, I planted jalapeno, habanero, roma tomato, green onion, and basil seeds into jiffy pods. A few days later I planted some tomatillos and poblanos in another tray. By this time everything has sprouted and the plants are under grow lights for 15 hours a day on a timer (an innovation since last year the plants got a little leggy on the windowsill). The first tray is about a week ahead of the other tray, so it&amp;rsquo;s been getting full light for a week and had its first watering this morning. The tomatoes have their first true leaves as of today.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crossword digest</title>
      <link>https://bobcopeland.com/blog/2018/03/crossword-digest/</link>
      <pubDate>Sun, 18 Mar 2018 19:16:49 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2463</guid> 
      <description>&lt;p&gt;This month my age incremented again. On the very anniversary of my birth, I received an email from Will Shortz&amp;rsquo;s assistant, saying (nicely) that the puzzle I submitted back in November didn&amp;rsquo;t make the cut. I was prepared for this: a puzzle with a similar theme came out a couple of weeks after I mailed mine in, and well, it&amp;rsquo;s not exactly that unique in the first place. Also the middle section of my puz is a bit of a stretch. And, I felt bad about not trying to excise 23-A from the puzzle.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making copies</title>
      <link>https://bobcopeland.com/blog/2018/01/making-copies/</link>
      <pubDate>Sat, 20 Jan 2018 14:43:04 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2456</guid> 
      <description>&lt;p&gt;One of my early goals this year has been to revamp the backup regime at the old homestead. Previously, I have relied on rotating external drives connected to my main desktop, and putting most content on a samba share that also got backed up. But it was a bit ad-hoc and things not on the share only got backed up sporadically. I&amp;rsquo;d rather not use a cloud backup service because reasons, so I bought a NAS, and now it looks like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Year, Old Me</title>
      <link>https://bobcopeland.com/blog/2018/01/new-year-old-me/</link>
      <pubDate>Tue, 16 Jan 2018 17:05:42 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2452</guid> 
      <description>&lt;p&gt;2018 is finally upon us, and now is the time one would usually look back at the wonderful events of the previous year, and look forward to what great things one might accomplish in the next.&lt;/p&gt;
&lt;p&gt;Instead of that, I&amp;rsquo;ll just write a meandering blog post.&lt;/p&gt;
&lt;p&gt;In 2017, I leveled up on pizza and bread making, capturing and raising my very own colony of hyper-local, non-GMO, swimming-in-gluten yeast. The colony still thrives as it approaches its first birthday, and has fed us many delicious loaves. I think I have the basic no-commercial-yeast dough down now, so it is time to start tinkering with the bulk fermentation and proofing times to get different flavors and textures out of the bread.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Router redux</title>
      <link>https://bobcopeland.com/blog/2017/12/router-redux/</link>
      <pubDate>Thu, 07 Dec 2017 20:20:25 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2446</guid> 
      <description>&lt;p&gt;I had just a little bit of downtime over the last few weeks while Angeline and I reacquainted ourselves with how to take care of an infant. It&amp;rsquo;s like riding a bicycle: there are tons of things you forgot since last time.&lt;/p&gt;
&lt;p&gt;One of the long-on-my-todo-list items finally got completed: I upgraded all of my wifi routers. I have 5: an old dual band 11n router and four TP-Link 11ac units, all of which were running some oldish build of OpenWRT.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On board the rebus</title>
      <link>https://bobcopeland.com/blog/2017/11/on-board-the-rebus/</link>
      <pubDate>Wed, 22 Nov 2017 19:30:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2438</guid> 
      <description>&lt;p&gt;My &lt;a href=&#34;https://bobcopeland.com/blog/2017/11/new-addition/&#34;&gt;most recent post&lt;/a&gt;, for those too lazy to follow the link and hit the &amp;ldquo;Reveal All&amp;rdquo; button, is a crossword puzzle announcing the birth of our third son, Samuel Yit-Mun Copeland. We&amp;rsquo;re over the moon with this new guy in our family. Here he is nearly asleep in my arms as I type this.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/syc-1week.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;But now for something more boring.&lt;/p&gt;
&lt;p&gt;I decided months ago that my typical geeky announcement would take the form of a crossword since I&amp;rsquo;ve been playing in that area recently (previous announcements: a &lt;a href=&#34;https://bobcopeland.com/blog/2010/06/new-syscall-proposal/&#34;&gt;manpage for Alex&lt;/a&gt;, an &lt;a href=&#34;https://bobcopeland.com/blog/2013/08/footprint/&#34;&gt;ascii-art crypto program for Ian&lt;/a&gt;). And why not make this puzzle interesting by constructing my first rebus puzzle?&lt;/p&gt;</description>
    </item>
    <item>
      <title>New addition</title>
      <link>https://bobcopeland.com/blog/2017/11/new-addition/</link>
      <pubDate>Tue, 14 Nov 2017 11:52:38 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2427</guid> 
      <description>&lt;p&gt;Angeline and I collaborated to bring this &lt;a href=&#34;https://bobcopeland.com/blog/crosswords/xwordjs/#/file/2017-11-13.xd&#34;&gt;new puzzle&lt;/a&gt; to fruition yesterday. She did all the hard work; I just came up with the grid and clues.&lt;/p&gt;
&lt;p&gt;Thursday-level difficulty.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/2013/08/footprint/&#34;&gt;Previously&lt;/a&gt;, &lt;a href=&#34;https://bobcopeland.com/blog/2010/06/new-syscall-proposal/&#34;&gt;previously&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>In which I ate the garden</title>
      <link>https://bobcopeland.com/blog/2017/09/in-which-i-ate-the-garden/</link>
      <pubDate>Mon, 04 Sep 2017 20:27:42 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2419</guid> 
      <description>&lt;p&gt;The garden is now in its 16th week, I think. Despite the fungus problem with the tomatoes, I have to say it has been a fairly successful experiment so far: the chilies and basil have done great, while the tomatoes have still produced over a dozen softball sized fruits with lots more still on the vine. The ones in containers did less well (blossom-end rot) &amp;ndash; I think there&amp;rsquo;s no use in venturing outside the planter box next year.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fill faster</title>
      <link>https://bobcopeland.com/blog/2017/08/fill-faster/</link>
      <pubDate>Mon, 14 Aug 2017 13:29:10 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2413</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve not done much work lately on my forked-from-QXW, written-in-C crossword filler, as getting that code up to snuff amounts to a rewrite. But one thing it has going for it is that it is very fast.&lt;/p&gt;
&lt;p&gt;Meanwhile, I have my own written-from-scratch-in-python filler that I&amp;rsquo;m pretty happy with in terms of results and features, but which is no speed demon. And then I wanted to have this all work on my phone, so I re-implemented it in javascript. Yes, I&amp;rsquo;m writing a lot of code lately in this language that I do not care for.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Garden Week 7</title>
      <link>https://bobcopeland.com/blog/2017/07/garden-week-7/</link>
      <pubDate>Sat, 15 Jul 2017 15:10:43 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2408</guid> 
      <description>&lt;p&gt;The garden is now jungle-like. There are real concerns that people have wandered into the garden and never returned, having lost their way out. I have a little bit of black spot on pretty much every tomato plant. My fault, I should have pruned the tomatoes more. I sprayed them with fungicide.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/garden7.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Even so, they have set fruit. I have a few per plant, maybe twenty in all.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/tomatoes7.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Garden update</title>
      <link>https://bobcopeland.com/blog/2017/06/garden-update/</link>
      <pubDate>Fri, 23 Jun 2017 20:44:33 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2401</guid> 
      <description>&lt;p&gt;My garden experiment continues, mostly successfully so far. Here are my notes for how it&amp;rsquo;s worked out, to remind myself what to do next year.&lt;/p&gt;
&lt;p&gt;I built a 6&amp;rsquo;x4&amp;rsquo; cedar box from 1&amp;quot;x6&amp;quot; planks, all cut to nearly the right length by the helpful folks at the local home center. Some stainless steel decking screws and nearly a ton of VegMax(tm) dirt later, I had my raised bed set up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wooden finish</title>
      <link>https://bobcopeland.com/blog/2017/06/wooden-finish/</link>
      <pubDate>Sat, 17 Jun 2017 14:28:31 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2383</guid> 
      <description>&lt;p&gt;I made a new crossword puzzle, theme is pretty basic/boring but it has the dubious distinction of being filled entirely by my own software (interactively with my input). Originally 57A was going to be a literal revealer for the other themers, but I couldn&amp;rsquo;t get a good fill around that gimmick so it got simplified.&lt;/p&gt;
&lt;p&gt;Play in the mobile-friendly iframe below or &lt;a href=&#34;https://bobcopeland.com/blog/crosswords/xwordjs/?2017-06-16.xd&#34;&gt;chase this link for full screen&lt;/a&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>That time I wrote a Go server</title>
      <link>https://bobcopeland.com/blog/2017/06/that-time-i-wrote-a-go-server/</link>
      <pubDate>Sun, 11 Jun 2017 12:16:26 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2358</guid> 
      <description>&lt;p&gt;My &lt;a href=&#34;https://bobcopeland.com/blog/crosswords/xwordjs/&#34;&gt;crossword puzzle web app&lt;/a&gt; grew up somewhat: now it is (optionally) backed by a database.&lt;/p&gt;
&lt;p&gt;How we ended up here: I started this project from a completely different, and still mostly unexplored, direction: I wanted to be able to construct crosswords while on the go, since I occasionally find myself with some downtime and no keyboard. Just having a grid to type into is really enough for that &amp;ndash; paper grids will do in a pinch, but who wants to kill trees and carry around a pencil and paper all the time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Garden</title>
      <link>https://bobcopeland.com/blog/2017/05/garden/</link>
      <pubDate>Wed, 10 May 2017 13:17:32 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2373</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/33730046154/in/datetaken-public/&#34; title=&#34;Baby basil&#34;&gt;&lt;img alt=&#34;Baby basil&#34; loading=&#34;lazy&#34; src=&#34;https://c1.staticflickr.com/5/4160/33730046154_df1d1e8d61.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Building on my success last year of managing to not kill a basil seedling, this summer I&amp;rsquo;ll try having a garden. To that end, I started in March with basil, rosemary, peppers, and tomato seeds. So far, some 24 plants, mostly tomatoes and peppers, have survived to the hardening-off stage and are ready to go in the ground in a couple weeks&amp;rsquo; time.&lt;/p&gt;
&lt;p&gt;On top of that, I have a few basil plants that will remain indoors, and a couple of very poor looking rosemary sprouts that may never reach adulthood. This represents quite a few levels up in my plant-tending acumen, as until now the only things I have been good at growing are dandelions in my lawn.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ACPT</title>
      <link>https://bobcopeland.com/blog/2017/03/acpt/</link>
      <pubDate>Fri, 24 Mar 2017 12:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2354</guid> 
      <description>&lt;p&gt;The American Crossword Puzzle Tournament starts tomorrow. I&amp;rsquo;ve paid the entrance fee for the online &amp;ldquo;bragging rights only&amp;rdquo; track, so I&amp;rsquo;m looking forward to seeing some interesting puzzles and to get an idea of how my solving skills stack up. Considering that competitive solvers often finish well under five minutes on a Monday and my best is in the ten minute range, probably not that great, but we shall see.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Yeast!</title>
      <link>https://bobcopeland.com/blog/2017/03/yeast/</link>
      <pubDate>Sat, 04 Mar 2017 14:15:09 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2349</guid> 
      <description>&lt;p&gt;Over the last few weeks I&amp;rsquo;ve been caring for a few billion microorganisms. And ate some of them.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fig 1. My yeast making tons of bubbles overnight&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Making a wild yeast starter turned out to be pretty easy. It took about ten days (in contrast to the five specified in the recipe I followed) for the colony to reach maturity in this winter kitchen, fed twice each day with equal parts flour and water, left at room temp overnight. Now, they are on a weekly maintenance schedule.&lt;/p&gt;</description>
    </item>
    <item>
      <title>State of the pizza</title>
      <link>https://bobcopeland.com/blog/2017/02/state-of-the-pizza/</link>
      <pubDate>Tue, 14 Feb 2017 17:29:33 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2343</guid> 
      <description>&lt;p&gt;It has been a year since &lt;a href=&#34;https://bobcopeland.com/blog/2016/01/carbs/&#34;&gt;my last statement about home-made pizzas&lt;/a&gt;, so it may be a time to serve up (deliver?) an update. Here&amp;rsquo;s one from the most recent batch:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/pizza1.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ken Forkish&amp;rsquo;s straight-dough, low yeast, long-rise recipe continues to be my go-to, and there is little left to complain about. It has a great crumb and nicely developed taste, especially when the dough is a day or two old. I still do need some work on the technique side: getting an unbaked pizza off the peel &amp;ndash; without using so much flour or cornmeal as to mar the taste &amp;ndash; still eludes me. Thus, I have settled on using parchment paper for the first couple of minutes, then, after the crust firms up, lifting the pizza with tongs and yanking out the parchment paper before it incinerates in the 550 degree oven. This, it should be said, is a maneuver not without danger to one&amp;rsquo;s fingers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>React reaction</title>
      <link>https://bobcopeland.com/blog/2017/01/react-reaction/</link>
      <pubDate>Sun, 22 Jan 2017 20:54:13 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2337</guid> 
      <description>&lt;p&gt;An embarrassing admission to make: I wrote something in &lt;em&gt;javascript&lt;/em&gt;.[1]&lt;/p&gt;
&lt;p&gt;Actually, I wrote it in React, because I still think of javascript as that awful language that works differently in every browser, and so, you know, to stay relevant, I decided to learn the framework that web developers everywhere have already cast into yesterday&amp;rsquo;s wastebin for the new shiny. &lt;a href=&#34;https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.hz6cjq8m5&#34;&gt;This&lt;/a&gt;, pretty much.[2]&lt;/p&gt;
&lt;p&gt;Anyway, I replaced the third-party crossword app on my website with &lt;a href=&#34;https://bobcopeland.com/blog/crosswords/&#34;&gt;my own NIH version&lt;/a&gt; and made it somewhat responsive [3] so that it works on my phone. Also there are two new-ish puzzles since the last time I posted, dated 2016-11-25 and 2016-12-30. Each of them has its own set of problems, but I think I am at least learning where I need to improve.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On placing letters</title>
      <link>https://bobcopeland.com/blog/2016/11/on-placing-letters/</link>
      <pubDate>Wed, 16 Nov 2016 13:52:10 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2328</guid> 
      <description>&lt;p&gt;Work continues on my fork of the QXW crossword filler, which by now is about 50% rewritten by me and ultimately will end up looking nothing like its predecessor. Already it is a command-line, monte carlo automatic filler instead of a user-directed GTK program. Both have their uses, I think.&lt;/p&gt;
&lt;p&gt;In a previous post, I wished that QXW supported scored dictionaries. It turns out that it does, though in my tests it gave unexpected results in many cases. I&amp;rsquo;ve reworked most of that code and am pretty happy with the results I get now. Just to cherry-pick a before-and-after example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Encrypted mesh PSA</title>
      <link>https://bobcopeland.com/blog/2016/10/encrypted-mesh-psa/</link>
      <pubDate>Mon, 31 Oct 2016 13:32:19 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2318</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m a bit late writing this up, as lately wifi stuff has taken a back seat to the day job. But, I&amp;rsquo;ve now seen the following issue reported more than once, so hopefully this post will save the other two mesh users some grief.&lt;/p&gt;
&lt;p&gt;If you are running an encrypted mesh on wpa_supplicant or (ye gods) authsae, take note:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Encrypted mesh on kernel 4.8 will not interoperate with kernel &amp;lt; 4.8&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wpa_supplicant 2.6 will not interoperate with 2.5&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;authsae as of commit 706a2cf will not interoperate with that of commit 813ec0e [1]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wpa_supplicant 2.6 and authsae commit 706a2cf require additional configuration to work with kernel &amp;lt; 4.8 (see below).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>More boring crossword stuff</title>
      <link>https://bobcopeland.com/blog/2016/09/more-boring-crossword-stuff/</link>
      <pubDate>Mon, 26 Sep 2016 17:21:26 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2314</guid> 
      <description>&lt;p&gt;Since last post, I made &lt;a href=&#34;https://bobcopeland.com/blog/crosswords/&#34;&gt;two more puzzles&lt;/a&gt;, both standard newspaper size, and I appropriated and modified someone else&amp;rsquo;s javascript so that you can fill it in on that page. Both puzzles went through two drafts where I completely redid the fill after Angeline test-solved them and found some problems.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m still using Qxw, now with a 130k+ entry dictionary I built from 10 years of NYT puzzles, which works OK. Still, I feel like it could help even more: for example, it could rank words by their commonality in the corpus so that you don&amp;rsquo;t use something hyper-obscure that happened to be in one Saturday puzzle when the editor was asleep; or, it could give partial fills even though it may not be able to complete the whole thing; or, it could give hints on places to place black squares to improve chances that a reasonable fill exists.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another puzzle</title>
      <link>https://bobcopeland.com/blog/2016/08/another-puzzle/</link>
      <pubDate>Sat, 20 Aug 2016 13:29:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2309</guid> 
      <description>&lt;p&gt;As I &lt;a href=&#34;https://bobcopeland.com/blog/2016/08/puzzle/&#34;&gt;wrote before&lt;/a&gt;, I recently tried my hand with crossword construction.&lt;/p&gt;
&lt;p&gt;This &lt;a href=&#34;https://bobcopeland.com/blog/crosswords/2016-08-19.html&#34;&gt;new puzzle&lt;/a&gt; is my sophomore effort. This one, slightly bigger at 13x13, came together much more easily for some reason (luck?). This time I did not have resort to using any unknown words, and nothing is really obscure, with the possible exception of 17-across (a common crossword answer).&lt;/p&gt;
&lt;p&gt;As before, I mostly let the theme clues dictate the layout, while I left in a few longer stretches this time. The top left and bottom right corners were sufficiently isolated that I did them by hand before bed, then the next day I filled the longer answers and finished the bottom within about 30 minutes. At this point 3/4 of the puzzle was filled manually. Then, Qxw woke up and was able to help fill the rest (including 18-across, a nice gift which I happily accepted) &amp;ndash; still using the standard Linux dictionary file. I reworked some of its suggestions using some of my own, but it was quite a time-saver.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Puzzle</title>
      <link>https://bobcopeland.com/blog/2016/08/puzzle/</link>
      <pubDate>Thu, 18 Aug 2016 13:09:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2306</guid> 
      <description>&lt;p&gt;I will admit to being an insufferable word nerd: the kind of person who will intentionally make a pun and then ruin it by acknowledgment. My wife is the sufferable sort who, presented with the same joke, groans outwardly and inwardly at the same time. Together, we have a shared appreciation for the crossword puzzle, and can be found on the porch filling out a grid on the rare occasion that a lazy summer afternoon presents itself. We can usually get through a Thursday or Sunday NYT puzzle, but we aren&amp;rsquo;t going to be entering any speed solving contests.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fake clicky</title>
      <link>https://bobcopeland.com/blog/2016/07/fake-clicky/</link>
      <pubDate>Thu, 07 Jul 2016 13:20:22 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2297</guid> 
      <description>&lt;p&gt;In the &lt;a href=&#34;https://bobcopeland.com/blog/2016/06/clicky/&#34;&gt;previous installment&lt;/a&gt; I had opined about the untapped power inside my new mechanical keyboard. I haven&amp;rsquo;t had much time to continue looking into the firmware, but I did find the original source of the firmware tools for a similar product. His &lt;a href=&#34;http://spritesmods.com/?art=rapidisnake&amp;amp;page=1&#34;&gt;blog post&lt;/a&gt; is well worth a read.&lt;/p&gt;
&lt;p&gt;Thus far the new device is performing admirably, but it did come with an unforeseen problem.&lt;/p&gt;
&lt;p&gt;I always have a bunch of computers here at my desk, and so for some time I&amp;rsquo;ve had a physical KVM switch to share a single monitor and input devices among them. This switch has a special USB port on the back just for the keyboard, which it monitors for the double-scroll-lock macro command to switch the display. Unfortunately, said port will not power the new keyboard and also won&amp;rsquo;t work with a hub.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Clicky</title>
      <link>https://bobcopeland.com/blog/2016/06/clicky/</link>
      <pubDate>Sat, 25 Jun 2016 16:05:57 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2290</guid> 
      <description>&lt;p&gt;I got a new keyboard this week with 80s-era clickiness: a Cooler Master QFR XTi.&lt;/p&gt;
&lt;p&gt;This thing has LED-backlit keys, which is kind of fun but also a bit of a gimmick. More interesting to me is that driving everything is an ARM Cortex M3 MCU (Holtek HT32F165x) which is flashable over USB. That is more powerful than my first computer.&lt;/p&gt;
&lt;p&gt;It would be nice to expand the features of this thing a bit, e.g. there&amp;rsquo;s an RTC on board the MCU, wouldn&amp;rsquo;t it be useful to have TOTP built directly into the keyboard? Or, perhaps it would be useful to audit the vendor firmware to make certain it is not recording your keystrokes. Of course, getting to the point of unraveling the vendor FW and flashing one&amp;rsquo;s own will entail a fair amount of work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Drawing Squares</title>
      <link>https://bobcopeland.com/blog/2016/04/on-drawing-squares/</link>
      <pubDate>Sun, 03 Apr 2016 21:24:05 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2286</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been looking at the sample drawing in &lt;a href=&#34;https://github.com/bcopeland/speccy&#34;&gt;speccy&lt;/a&gt; to try and speed it up. For a given frame, it renders about 10000 points as 9-pixel anti-aliased squares using Cairo, in Python. On my desktop (Debian stable, Nouveau driver) it gets a pokey 1 FPS.&lt;/p&gt;
&lt;p&gt;My graphics knowledge is about 20 years old at this point, and while I did once know various arcane tricks on the hardware of the day, none of that is relevant now. So I know basically nothing about modern graphics. It is still not clear to me to what extent the 2D primitives use acceleration, and it doesn&amp;rsquo;t help much that, in as many years that I&amp;rsquo;ve been asleep on this topic, there seems to have been as many new APIs introduced and retired: today there are at least XRender, XAA, EXA, UXA, SNA, and Glamor &amp;ndash; did I miss any?&lt;/p&gt;</description>
    </item>
    <item>
      <title>memory Âµ-optimizing</title>
      <link>https://bobcopeland.com/blog/2016/03/memory-%C2%B5-optimizing/</link>
      <pubDate>Tue, 15 Mar 2016 12:27:35 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2279</guid> 
      <description>&lt;p&gt;While looking at some kmalloc statistics for my little corner of wireless, I found a new tool for the toolbox: &lt;code&gt;perf kmem&lt;/code&gt;. To test it out, I ran a simulated connected 25-node mesh in mac80211_hwsim.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what &lt;code&gt;perf kmem stat --caller&lt;/code&gt; had to say:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;---------------------------------------------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Callsite            &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; Total_alloc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;Per &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; Total_req&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;Per  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; Hit   &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;---------------------------------------------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; mesh_table_alloc&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;e &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;1600&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;       &lt;span style=&#34;color:#ae81ff&#34;&gt;400&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; mesh_rmc_init&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;23&lt;/span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;204800&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8192&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;102600&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4104&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;25&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; mesh_path_new&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;315904&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;512&lt;/span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;241864&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;392&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;   &lt;span style=&#34;color:#ae81ff&#34;&gt;617&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The number of mesh nodes shows up in the &amp;lsquo;Hit&amp;rsquo; column in various ways: we can pretty easily see that mesh_table_alloc is called twice per mesh device, mesh_rmc_init is called once, and mesh_path_new is called at least once for every peer (617 ~= 25 * 24). We might scan the hit column to see if there are any cases in our code that perform unexpectedly high numbers of allocations, signifying a bug or poor design.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HSTS applied</title>
      <link>https://bobcopeland.com/blog/2016/03/hsts-applied/</link>
      <pubDate>Sat, 12 Mar 2016 13:57:12 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2276</guid> 
      <description>&lt;p&gt;Now that I&amp;rsquo;ve had a few months&amp;rsquo; experience with Let&amp;rsquo;s Encrypt, and I have cert renewals completely automated, bobcopeland.com is now fully https and serving HSTS headers. I&amp;rsquo;m now using &lt;a href=&#34;https://github.com/diafygi/acme-tiny&#34;&gt;acme-tiny&lt;/a&gt; to renew the certs, thanks to their dedication to making the code easily auditable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On mac vi and error exits</title>
      <link>https://bobcopeland.com/blog/2016/02/on-mac-vi-and-error-exits/</link>
      <pubDate>Thu, 25 Feb 2016 17:22:17 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2270</guid> 
      <description>&lt;p&gt;Sometimes I have to use a Mac, and various things drive me nuts about it. The worst is &lt;code&gt;git commit&lt;/code&gt; aborting because I typoed the writeout command after having written the best commit log ever. Here&amp;rsquo;s a google crumb for others experiencing this, and ideally for someone who wants to track down and fix the problem upstream.&lt;/p&gt;
&lt;p&gt;Synopsis: do the below, and type the following once vim starts up: &lt;code&gt;:Wq[enter]:q[enter]&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Carbs</title>
      <link>https://bobcopeland.com/blog/2016/01/carbs/</link>
      <pubDate>Sun, 31 Jan 2016 19:24:52 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2265</guid> 
      <description>&lt;p&gt;My brother-in-law gave me a copy of the bread cookbook &lt;em&gt;Flour Water Salt Yeast&lt;/em&gt; by Ken Forkish (as far as I know, his actual name) for Christmas, and so I made five pizzas. The one pictured below is a touch over-baked on top, but pretty close. It was a little too chewy owing to having used bread flour, yet had a nice airy crumb. I think this replaces Peter Reinhart&amp;rsquo;s recipe as my go-to from now on &amp;ndash; both are about 70% hydration but this one had more bubbles.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wherein I did a git push</title>
      <link>https://bobcopeland.com/blog/2016/01/wherein-i-did-a-git-push/</link>
      <pubDate>Fri, 29 Jan 2016 14:03:09 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2261</guid> 
      <description>&lt;p&gt;As &lt;a href=&#34;http://permalink.gmane.org/gmane.linux.kernel.wireless.general/146327&#34;&gt;I wrote&lt;/a&gt; somewhere in the Metaverse, I&amp;rsquo;m running the &lt;a href=&#34;https://git.kernel.org/cgit/linux/kernel/git/wireless/wireless-testing.git&#34;&gt;wireless-testing&lt;/a&gt; tree now, which is about as minimal a contribution as one could make. It essentially means running a script once daily; cron could do it all, if not for the part where I enter my ssh passphrase to actually push out the updates. For the curious, here&amp;rsquo;s &lt;a href=&#34;https://github.com/bcopeland/wt-tools/blob/master/wt-update&#34;&gt;the script&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One of the killer features of git used here is &lt;code&gt;git rerere&lt;/code&gt;, which remembers conflict resolutions and reapplies them when reencountered. A human (me) still needs to resolve the conflict once, but after that it&amp;rsquo;s pretty much on autopilot for the rest of that kernel series. Normally one should reinspect the automatic merge made by git-rerere, but at least for this testing tree, throwing caution to the wind is warranted and thus the script has some kludges around that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sae.py</title>
      <link>https://bobcopeland.com/blog/2015/12/sae-py/</link>
      <pubDate>Thu, 31 Dec 2015 23:57:47 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2250</guid> 
      <description>&lt;p&gt;For a while now, I&amp;rsquo;ve wanted an easy way to decrypt a mesh packet capture when I know the SAE passphrase. This would be quite handy for debugging.&lt;/p&gt;
&lt;p&gt;I reasoned that, if I knew the shared secret, and had captured the over-the-air exchange, it should be possible to make such a tool, right? We know everything each station knows in that case, don&amp;rsquo;t we?&lt;/p&gt;
&lt;p&gt;So I spent a bit of time last week reimplementing &lt;a href=&#34;https://github.com/bcopeland/wifi-crypto/blob/master/sae.py&#34;&gt;SAE in python&lt;/a&gt; to come to grips with its various steps. And I found my reasoning was flawed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RFID reader</title>
      <link>https://bobcopeland.com/blog/2015/12/rfid-reader/</link>
      <pubDate>Thu, 31 Dec 2015 02:35:22 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2245</guid> 
      <description>&lt;p&gt;In the &lt;a href=&#34;https://bobcopeland.com/blog/2015/11/software-serial-on-the-arduino-ng/&#34;&gt;previous installment&lt;/a&gt;, I was messing with the serial library on Arduino to get it to work on the older board. The purpose was this:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/rfid.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Pictured is an RFID reader from SparkFun that I picked up years ago and sat in my parts box since then. This RFID reader is intended to read Mifare tags and as such predates the whole NFC thing by a year or three. The programming interface is to send commands over serial to the device such as &amp;ldquo;Authenticate sector N&amp;rdquo;, &amp;ldquo;Read sector N&amp;rdquo;, etc. I&amp;rsquo;ve connected D7 to D2 so that I could use D2 as the interrupt pin to suit my Arduino.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software Serial on the Arduino NG</title>
      <link>https://bobcopeland.com/blog/2015/11/software-serial-on-the-arduino-ng/</link>
      <pubDate>Mon, 23 Nov 2015 04:12:03 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2237</guid> 
      <description>&lt;p&gt;As mentioned before, I have a really old Arduino, the Arduino NG with an Atmega8 on board. No fancy embedded Linux wifi-enabled SoC on that thing.&lt;/p&gt;
&lt;p&gt;Recently, I found myself doing a bit of yak shaving when I was trying to use a code that was meant for Arduinos of a more recent vintage. And here is what I learned:&lt;/p&gt;
&lt;p&gt;The Atmega8 does not have the PCICR (which I believe stands for &amp;ldquo;pin change interrupt control&amp;rdquo;) register. This feature allows multiplexing of interrupts so that you can have multiple pins signal the same external interrupt, and the pins that trigger interrupts are programmable. On the Atmega8, you can only use Arduino pins D2 and D3 to directly signal interrupts 0 and 1 respectively.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Now (mostly) encrypted</title>
      <link>https://bobcopeland.com/blog/2015/11/now-mostly-encrypted/</link>
      <pubDate>Wed, 18 Nov 2015 01:52:51 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2233</guid> 
      <description>&lt;p&gt;I signed up for the &lt;a href=&#34;https://letsencrypt.org&#34;&gt;let&amp;rsquo;s encrypt beta&lt;/a&gt; and got my cert setup today. I let my old CA-purchased cert lapse when it came for re-up a couple of years ago, so happy there&amp;rsquo;s soon to be a free alternative.&lt;/p&gt;
&lt;p&gt;Enjoy the HTTPS! (Except for some stray mixed content I need to kill &amp;ndash; sorry for that.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arduino pumpkin lights</title>
      <link>https://bobcopeland.com/blog/2015/11/arduino-pumpkin-lights/</link>
      <pubDate>Mon, 02 Nov 2015 14:05:03 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2228</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://plus.google.com/+BobCopeland/posts/grY1FiUpNei&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/pumpkin-anim.gif&#34;&gt;&lt;/a&gt; Lacking creativity this year, I kind of phoned in the pumpkin carving. We went with regular old triangle-eyed Jack-o-lanterns. It turned out this suited Alex fine: he has decided lately that a certain level of traditionalism is called for. Watching keenly as I cut away bits of pumpkin, he was quick to point out whenever I was doing it the wrong way.&lt;/p&gt;
&lt;p&gt;Anyhow, not wanting Halloween to pass buy without doing something new, I decided I&amp;rsquo;d write a pumpkin light control sketch for Arduino. I have the original board with the Atmega8, and the last time I touched it, the SDK was arduino-0011, which was released about seven years, three domiciles, and one country ago. Since then, I&amp;rsquo;m happy to see that arduino-mk landed in Debian, and the SDK hasn&amp;rsquo;t changed APIs in any noticeable way, so it was easy to get back up and running.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fake SNRs</title>
      <link>https://bobcopeland.com/blog/2015/09/fake-snrs/</link>
      <pubDate>Mon, 21 Sep 2015 13:13:51 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2225</guid> 
      <description>&lt;p&gt;With the addition of per-link signal levels that I added over the weekend, my &lt;a href=&#34;https://github.com/bcopeland/wmediumd&#34;&gt;wmediumd fork&lt;/a&gt; leveled up from &amp;ldquo;mere curiosity&amp;rdquo; to &amp;ldquo;potentially useful someday.&amp;rdquo; For the case of mesh, this means you can use signal levels to inform how HWMP will create the mesh paths.&lt;/p&gt;
&lt;p&gt;For example, as a test I was able to validate &lt;a href=&#34;https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bc3ce0b0be6b85e738e80ed25b52ad940f34b921&#34;&gt;this fix&lt;/a&gt;, by setting up a virtual 4-node mesh with a bad path and a good path. With the patch reverted, the bad path was almost always selected due to its PREQs being received at the target first. [In actuality, this test will exhibit frequent path swapping because the order in which the PREQs are received is essentially random, a finding in &amp;ldquo;Experimental evaluation of two open source solutions for wireless mesh routing at layer two&amp;rdquo; by Garroppo et al. Wmediumd doesn&amp;rsquo;t show this yet because frames are mostly received and queued in-order. At the time of the patch, I validated it in an actual 15-node mesh.]&lt;/p&gt;</description>
    </item>
    <item>
      <title>tmux &#43; wmediumd</title>
      <link>https://bobcopeland.com/blog/2015/09/tmux-wmediumd/</link>
      <pubDate>Sun, 13 Sep 2015 16:39:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2220</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/bcopeland/wmediumd&#34;&gt;Wmediumd&lt;/a&gt; gained the ability to do a simple contention simulation a while ago. It turned out to be a small change to the existing code: just ensure that any new frames are scheduled after any other queued frames of equal or higher priority from any other station.&lt;/p&gt;
&lt;p&gt;Assuming the simulation is accurate, we might use this to gather some information about different kinds of wireless network topologies. For example: what is the throughput and latency like for a mesh network, as a function of hops?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weekend updates</title>
      <link>https://bobcopeland.com/blog/2015/09/weekend-updates/</link>
      <pubDate>Mon, 07 Sep 2015 00:20:50 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2210</guid> 
      <description>&lt;p&gt;More updates to &lt;a href=&#34;https://github.com/bcopeland/speccy&#34;&gt;speccy&lt;/a&gt; pushed to github this weekend. It gained the ability to toggle on-and-off line and scatter plots. Also, it now takes care of enabling spectral scan and then scanning channels (by exec()-ing iw, naughty me) so you can just tell it the device and it does the rest. Code is still ugly but gradually taking shape. There&amp;rsquo;s an &lt;a href=&#34;https://bobcopeland.com/blog/images/lj/speccy-anim.gif&#34;&gt;animated gif&lt;/a&gt; for those that want to see what it currently looks like in operation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>time vs frequency</title>
      <link>https://bobcopeland.com/blog/2015/09/time-vs-frequency/</link>
      <pubDate>Wed, 02 Sep 2015 13:29:22 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2207</guid> 
      <description>&lt;p&gt;This is roughly what I had in mind for the time/frequency plot for &lt;a href=&#34;http://github.com/bcopeland/speccy&#34;&gt;my little spectrum visualizer&lt;/a&gt;. Time is on the y-axis and frequency on the x-axis. There are some interesting artifacts here, especially on the higher channels. Probably bugs in my implementation, but we&amp;rsquo;ll see as I develop it further.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/speccy-time.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Speccy with labels</title>
      <link>https://bobcopeland.com/blog/2015/08/speccy-with-labels/</link>
      <pubDate>Mon, 31 Aug 2015 01:49:56 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2204</guid> 
      <description>&lt;p&gt;I messed around with &amp;ldquo;&lt;a href=&#34;https://github.com/bcopeland/speccy&#34;&gt;speccy&lt;/a&gt;&amp;rdquo; a bit today to see what I could do with it to make it look slightly nicer. It really needed a grid so one can more easily see the frequencies and power levels. So now it looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/speccy2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;(This is with iperf running on channel 6 to a nearby AP).&lt;/p&gt;
&lt;p&gt;I have in mind a couple of other visualizations. An obvious one is to show the overall max or average power level rather than a scatter plot. This would be a cleaner display, although there could be co-channel interference sources you wouldn&amp;rsquo;t see that way. Here&amp;rsquo;s a first cut at that:&lt;/p&gt;</description>
    </item>
    <item>
      <title>VHT mesh</title>
      <link>https://bobcopeland.com/blog/2015/07/vht-mesh/</link>
      <pubDate>Tue, 14 Jul 2015 04:43:30 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2200</guid> 
      <description>&lt;p&gt;&amp;hellip;is a thing now.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# iw dev
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;phy#0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Interface wlan0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		ifindex 4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		wdev 0x1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		addr 30:b5:c2:fb:34:d8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		type mesh point
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		channel 149 (5745 MHz), width: 80 MHz, center1: 5775 MHz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# iperf -c 192.168.1.20
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Client connecting to 192.168.1.20, TCP port 5001
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TCP window size: 43.8 KByte (default)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  3] local 192.168.1.21 port 34175 connected with 192.168.1.20 port 5001
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[ ID] Interval       Transfer     Bandwidth
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  3]  0.0-10.0 sec   148 MBytes   124 Mbits/sec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>DWM-W034 UART</title>
      <link>https://bobcopeland.com/blog/2015/05/dwm-w034-uart/</link>
      <pubDate>Fri, 15 May 2015 13:43:56 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2194</guid> 
      <description>&lt;p&gt;In response to my &lt;a href=&#34;https://bobcopeland.com/blog/2015/05/reserialized/&#34;&gt;previous post&lt;/a&gt; about UART access on the &lt;a href=&#34;https://wikidevi.com/wiki/ALFA_Network_AWUS036NHA&#34;&gt;Alfa AWUS036NHA&lt;/a&gt;, I got a nice email from Jim Ewing about the DWM-W034, an ath9k_htc device that apparently is embedded inside HDTVs and readily available for $10. He found the TX/RX pins on the board, and it looks like it would be a bit easier to put a socket on one of these compared to the Alfa since there are no pesky chips nearby.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reserialized</title>
      <link>https://bobcopeland.com/blog/2015/05/reserialized/</link>
      <pubDate>Sun, 10 May 2015 04:17:32 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2187</guid> 
      <description>&lt;p&gt;I got a shiny new device today and the first thing I did was crack it open and heat it to 680 degrees. A good feeling.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/ath9k-htc.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;The device in question is an ath9k_htc USB wifi dongle. A colleague suggested this one has an easy to access UART because they brought out the TX/RX pins out from the SoC to dedicated pads. He and I apparently have different definitions for &amp;ldquo;easy.&amp;rdquo; Unlike the TP-Link routers which give you through-holes to work with, these are simply SMT pads, and they are tiny in comparison. My soldering iron tip is at least double the size of the pad. Yes, it is somewhat better than trying to solder directly to the pins on the SoC, but not by a whole lot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mesh on ath10k</title>
      <link>https://bobcopeland.com/blog/2015/04/mesh-on-ath10k/</link>
      <pubDate>Tue, 28 Apr 2015 18:25:16 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2180</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve had my ath10k AP (TP-Link Archer C7 v2) since last October or so, with the goal of having a VHT-capable device with which to test (currently non-existent) VHT mesh. Unfortunately, for nearly all of that time, I&amp;rsquo;ve been stuck on a firmware crash shortly after bringing up the device. Not that I&amp;rsquo;ve spent a whole lot of time on it, but there&amp;rsquo;s only so much one can do when getting to the point of &amp;ldquo;firmware crashes and it has something to do with peers but that&amp;rsquo;s all I know and I don&amp;rsquo;t have the time, tools, or code to dig deeper.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Reddit</title>
      <link>https://bobcopeland.com/blog/2015/04/on-reddit/</link>
      <pubDate>Tue, 14 Apr 2015 22:05:20 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2172</guid> 
      <description>&lt;p&gt;My lowly internet outpost wound up at the top of &lt;a href=&#34;http://www.reddit.com/r/programming/comments/31ei6h/i_wanted_to_use_goto_in_a_bash_script_ended_up/&#34;&gt;/r/programming&lt;/a&gt; on Reddit over Easter weekend due to my silly &lt;a href=&#34;https://bobcopeland.com/blog/2012/10/goto-in-bash&#34;&gt;goto-in-bash&lt;/a&gt; hack. It turns out that that one page is probably the most searched-for out of anything on my website. There are a lot of frustrated shell programmers out there.&lt;/p&gt;
&lt;p&gt;Regarding the critiques from the discussion, comments of the form &amp;ldquo;you&amp;rsquo;ve an X/Y problem&amp;rdquo; were least interesting to me. Yes, I know about Makefiles. Sometimes it is fun to do something different, which is known to be far from a best practice, just because one can.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scoped</title>
      <link>https://bobcopeland.com/blog/2015/03/scoped/</link>
      <pubDate>Thu, 26 Mar 2015 13:18:53 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2164</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/16748525650&#34; title=&#34;G# by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;G#&#34; loading=&#34;lazy&#34; src=&#34;https://farm9.staticflickr.com/8709/16748525650_d5a2d34877_m.jpg&#34;&gt;&lt;/a&gt; I have this more-expensive-than-my-car hunk of metal on loan for the next few weeks. It&amp;rsquo;s a pretty far cry from the old Tektronix analog scopes I trained on back in the day (which, at the time, were also much more expensive than my then-primary mode of transportation: shoes). As a warmup exercise, I hooked it up to the output of my &lt;a href=&#34;https://bobcopeland.com/blog/2012/09/amped/&#34;&gt;guitar amplifier&lt;/a&gt; and played an A, which you can see pictured. You can also see that I&amp;rsquo;m apparently tuned down a half-step as the frequency measured on the scope is about a semitone shy of 220 Hz.&lt;/p&gt;</description>
    </item>
    <item>
      <title>serialized</title>
      <link>https://bobcopeland.com/blog/2015/02/serialized/</link>
      <pubDate>Fri, 20 Feb 2015 13:20:01 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2150</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/16395680778&#34; title=&#34;router += serial by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;router += serial&#34; loading=&#34;lazy&#34; src=&#34;https://farm9.staticflickr.com/8574/16395680778_423e50c049_m.jpg&#34;&gt;&lt;/a&gt; My ath10k-based router now has serial headers, after I managed to crash it a few times over the weekend while testing out some patches. Thank you, TP-Link, for making the pins so easily accessible, to the extent that it&amp;rsquo;s easier to whip out the soldering iron than remind oneself how to setup kexec/kdump.&lt;/p&gt;
&lt;p&gt;I do need to get one of these &lt;a href=&#34;http://www.aliexpress.com/item/Free-shipping-New-USB-to-TTL-Serial-Cable-Adapter-FTDI-Chipset-PL2303HX-Cable-Computer-Cable/1937177626.html&#34;&gt;nifty usb-serial cables&lt;/a&gt; so that the JTAG ribbon cable + FTDI-breakout-on-a-breadboard monstrosity can go back into the
parts bin, but it is working fine otherwise. [The pictured 7-segment display and TTL chips are just misdirection, by the way.]&lt;/p&gt;</description>
    </item>
    <item>
      <title>website rebuilt</title>
      <link>https://bobcopeland.com/blog/2015/01/website-rebuilt/</link>
      <pubDate>Mon, 12 Jan 2015 05:45:14 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2139</guid> 
      <description>&lt;p&gt;Until recently, my vhost was running some ancient Ubuntu that was probably vulnerable to all manner of things, so I&amp;rsquo;ve finally upgraded it to a recent Debian release. A few things are still offline (including the blog theme) so there may be some broken links here and there for a few days until I get around to restoring everything.&lt;/p&gt;
&lt;p&gt;I believe I&amp;rsquo;m going to leave comments off permanently going forward, there&amp;rsquo;s just too much spam even with it moderated, to the extent that I almost never bother to go through them. Comments out-of-band are always welcome, of course.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Spectrum</title>
      <link>https://bobcopeland.com/blog/2014/12/spectrum/</link>
      <pubDate>Mon, 01 Dec 2014 13:48:42 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2125</guid> 
      <description>&lt;p&gt;The ath9k and later chips support a spectral scan feature for measuring channel occupancy. I played with it for the first time last week over the Thanksgiving holiday. Simon Wunderlich&amp;rsquo;s &lt;a href=&#34;https://github.com/simonwunderlich/FFT_eval&#34;&gt;FFT_eval&lt;/a&gt; is a great tool to look at the captured RF spectrum, but I found myself wanting something more real-time, and the various other things I found on github with that aim didn&amp;rsquo;t work for me. So, this &lt;a href=&#34;https://github.com/bcopeland/speccy&#34;&gt;too-ugly-to-live python hack&lt;/a&gt; happened.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fake Tassimo Cleaning Disk</title>
      <link>https://bobcopeland.com/blog/2014/11/fake-tassimo-cleaning-disk/</link>
      <pubDate>Wed, 12 Nov 2014 13:49:09 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2109</guid> 
      <description>&lt;p&gt;My particular first world problem: it&amp;rsquo;s too easy to lose the cleaning disk that came with my coffee machine.&lt;/p&gt;
&lt;p&gt;The item in question is just a plastic disk with a certain barcode. As I and many others have found, it is easy to &lt;a href=&#34;http://jeffdechambeau.com/diy-tassimo-cleaner-disc-replacement.html&#34;&gt;print out a new barcode&lt;/a&gt;, tape the barcode to a used milk disk, and you are back up and running. Here is my contribution: said &lt;a href=&#34;https://bobcopeland.com/blog/srcs/tassimo-cleaner.pdf&#34;&gt;barcode in a PDF file&lt;/a&gt; ready for printing on Avery 5167 return address label sheets. Then, when you inevitably accidentally throw away your stand-in disk (which we have done a half dozen times so far), just peel off another label after your next latte.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Halloween, 2014 ed.</title>
      <link>https://bobcopeland.com/blog/2014/11/halloween-2014-ed/</link>
      <pubDate>Wed, 05 Nov 2014 23:06:47 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2101</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/15097794143&#34; title=&#34;2014 Halloween Costumes by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;2014 Halloween Costumes&#34; loading=&#34;lazy&#34; src=&#34;https://farm4.staticflickr.com/3953/15097794143_822df20b4d_n.jpg&#34;&gt;&lt;/a&gt; I believe I added just enough blog posts this year that there are not two years&amp;rsquo; Halloween posts on the front page at the same time. That would be sad.&lt;/p&gt;
&lt;p&gt;Alex told me in September that October was his favorite month of the year, &amp;ldquo;because Halloween.&amp;rdquo; And every day for the last few weeks, he would ask, &amp;ldquo;is it Halloween today?&amp;rdquo; I can only hope that this year&amp;rsquo;s candy crawl met his expectations. He went as Captain America, a decision that was entirely his own. Ian went as a penguin, or at least he wore parts of his penguin costume throughout the night, rarely all at once.&lt;/p&gt;</description>
    </item>
    <item>
      <title>functional bitrate sim</title>
      <link>https://bobcopeland.com/blog/2014/11/functional-bitrate-sim/</link>
      <pubDate>Sun, 02 Nov 2014 18:38:19 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2094</guid> 
      <description>&lt;p&gt;My wmediumd rewrite is a bit further along thanks to getting a few hours to hack on it this weekend. It can now accurately simulate throughput between a pair of radios using legacy rates. For example, if we set the SNR between two devices to 20 dB, then they can communicate at a nominal 54 mbps rate, yielding about 26 Mbps achieved in iperf:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  3]  0.0-10.0 sec  31.2 MBytes  26.1 Mbits/sec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At 15 dB, we can send between 24 and 36 Mbps nominal rates, which yields:&lt;/p&gt;</description>
    </item>
    <item>
      <title>wmediumd speed test</title>
      <link>https://bobcopeland.com/blog/2014/09/wmediumd-speed-test/</link>
      <pubDate>Mon, 29 Sep 2014 05:19:41 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2088</guid> 
      <description>&lt;p&gt;Thanks to some inquries on linux-wireless, I took a look at wmediumd recently. The code could use a bit of work, and there are some features I&amp;rsquo;ve been meaning to add since forever, so I started gutting it with an eye towards sprucing up the architecture and feature set (changes can be found &lt;a href=&#34;https://github.com/bcopeland/wmediumd/tree/add_per_model&#34;&gt;here&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;One of the questions from the mailing list was whether wmediumd adds a lot of overhead compared to mac80211_hwsim. It is of course doing more work, with additional memory copies, context switches, etc &amp;ndash; but is it enough to make wmediumd unworkable?&lt;/p&gt;</description>
    </item>
    <item>
      <title>wpas mesh</title>
      <link>https://bobcopeland.com/blog/2014/09/wpas-mesh/</link>
      <pubDate>Mon, 01 Sep 2014 04:39:36 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2083</guid> 
      <description>&lt;p&gt;Continuing where I left off with &lt;a href=&#34;https://bobcopeland.com/blog/2014/07/zotac-openwrt/&#34;&gt;my OpenWRT mesh nodes&lt;/a&gt;, after installing the OS, the next step is to get a mesh-enabled userspace on them.&lt;/p&gt;
&lt;p&gt;One can use iw to create an open mesh, and the authsae daemon for secure mesh, and OpenWRT already ships both of those, so just installing those packages is really all that is required.&lt;/p&gt;
&lt;p&gt;However, I&amp;rsquo;m currently working on a &lt;a href=&#34;https://github.com/cozybit/wpa_supplicant/tree/prepare-submit-v12&#34;&gt;patchset&lt;/a&gt; to add mesh support to wpa_supplicant, which could be useful for platforms where wpa_s is already present and running yet another daemon just for secure mesh is unpalatable. Here&amp;rsquo;s the recipe I&amp;rsquo;m using to keep the latest version on the device and use it for day-to-day activities.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zotac OpenWRT</title>
      <link>https://bobcopeland.com/blog/2014/07/zotac-openwrt/</link>
      <pubDate>Wed, 30 Jul 2014 13:22:37 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2076</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/14762941116&#34; title=&#34;ZOTAC! by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;ZOTAC!&#34; loading=&#34;lazy&#34; src=&#34;https://farm3.staticflickr.com/2917/14762941116_b64ca2c3e3_m.jpg&#34;&gt;&lt;/a&gt; The Zotac NM10-ITX is a mini-ITX motherboard, which in my configuration has a 1.66 GHz Atom D510 on board, 8 GB SSD, 2 GB ram, and a pair of 2x2 ath9k devices. I wound up with a few of these boxes as a mesh testbed due to my work with Cozybit. Until recently, they ran &lt;a href=&#34;https://github.com/cozybit/open80211s/wiki/distro11s&#34;&gt;distro11s&lt;/a&gt;, which is basically Debian with some mesh/wireless utilities and some custom init scripts thrown on top. I was looking to re-image them, and I believe distro11s is not actively maintained. The boxes are beefy enough to run unmodified Debian, but OpenWRT has various niceties when building all things wireless from source, and I might like to run the same setup on more constrained devices, so I went with that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tablet guts</title>
      <link>https://bobcopeland.com/blog/2014/06/tablet-guts/</link>
      <pubDate>Wed, 11 Jun 2014 13:33:51 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2067</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/14211434628&#34; title=&#34;Tablet guts by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Tablet guts&#34; loading=&#34;lazy&#34; src=&#34;https://farm4.staticflickr.com/3908/14211434628_9eb41c2698_m.jpg&#34;&gt;&lt;/a&gt; In case you want to know what the inside of a Samsung Galaxy Tab 3.0 looks like, I propose the following experiment: unplug one, and let it sit unused and un-powered for two months. You will then find it in the state where disconnecting and reconnecting the battery is required to get it to charge again. I am not making this up. Oh, and opening it is pretty tricky even with the proper plastic tools to do so. Since I have two of them, that&amp;rsquo;s how I lost thirty minutes of my life on Saturday.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#43;&#43;router</title>
      <link>https://bobcopeland.com/blog/2014/05/router/</link>
      <pubDate>Tue, 06 May 2014 10:52:14 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2063</guid> 
      <description>&lt;p&gt;As a sometime wireless hacker, it&amp;rsquo;s a bit embarrassing to admit that I&amp;rsquo;ve had the factory firmware on my wifi router all this time, but when I first tried OpenWrt on it, ath9k was only a few months old and dropped connections all the time. Thus, I made do with the factory install but ran many of the essential services (dns, dhcp, tftp, etc) from my Linux workstation. And life continued apace.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vim cheat codes</title>
      <link>https://bobcopeland.com/blog/2014/05/vim-cheat-codes/</link>
      <pubDate>Thu, 01 May 2014 21:13:47 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2047</guid> 
      <description>&lt;p&gt;Or, how I read parts of the fine manual.&lt;/p&gt;
&lt;p&gt;Yesterday, after spending way too much time trying to get find(1) to exclude vim swapfiles, I finally had it with them cluttering up my work directories. As is usually the case when vim triggers an itch, I thought, &amp;ldquo;there must be a setting for that,&amp;rdquo; and lo, there was.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;set directory=~/.vimswap//&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Make that directory and all the swap files go there instead. The trailing double slashes mean the swap files get named in such a way as to avoid conflicts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Phone bugs</title>
      <link>https://bobcopeland.com/blog/2014/03/phone-bugs/</link>
      <pubDate>Thu, 20 Mar 2014 13:36:43 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2040</guid> 
      <description>&lt;p&gt;If you want to experience what it is like to be the first person to ever do something, might I suggest turning on all the debug knobs on an Android vendor kernel? Some speculative fixes &lt;a href=&#34;https://github.com/bcopeland/android_kernel_sony_apq8064&#34;&gt;over here&lt;/a&gt;, but there is still at least one other RCU bug on boot, and this use-after-free in the usb controller driver:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.520080] msm_hsic_host msm_hsic_host: remove, state 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.525329] usb usb1: USB disconnect, device number 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.529602] usb 1-1: USB disconnect, device number 2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.637023] msm_hsic_host msm_hsic_host: USB bus 1 deregistered
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.668945] Unable to handle kernel paging request at virtual address aaaaaae6
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.675201] pgd = c0004000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.678497] [aaaaaae6] *pgd=00000000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.681762] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.686737] Modules linked in: wcn36xx_msm(O) wcn36xx(O) mac80211(O) cfg80211(O) compat(O)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.694976] CPU: 1    Tainted: G        W  O  (3.4.0-g4a73a1d-00005-g311eaee-dirty #2)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.702972] PC is at __gpio_get_value+0x28/0x1cc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.707489] LR is at do_restart+0x24/0xd8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.711486] pc : []    lr : []    psr: 60000013
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.711486] sp : ebcd9ed8  ip : c032a858  fp : ebcd9ef4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.722930] r10: 00000000  r9 : c04dd67c  r8 : 00000000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.728210] r7 : c4d81f00  r6 : 6b6b6b6b  r5 : c10099cc  r4 : aaaaaaaa
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.734680] r3 : 09090904  r2 : c1672f80  r1 : 00000010  r0 : 6b6b6b6b
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                                 ^^^^^^^^ whoops
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.741241] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.748504] Control: 10c5787d  Table: acfb006a  DAC: 00000015
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I guess I should try to find out where to report bugs for these (predictably) not upstream drivers, but that seems like a total pain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On forecasting</title>
      <link>https://bobcopeland.com/blog/2014/02/on-forecasting/</link>
      <pubDate>Sat, 01 Feb 2014 14:16:06 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2032</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m really enjoying Nate Silver&amp;rsquo;s &lt;em&gt;The Signal and the Noise&lt;/em&gt;, particularly as someone who has come to appreciate statistics and machine learning only grudgingly and late in life. This book would have been a much gentler introduction to the concepts of statistical prediction than my own: the dense, equation-filled &lt;em&gt;Pattern Recognition and Machine Learning&lt;/em&gt; by Bishop. However, my edition of &lt;em&gt;Signal&lt;/em&gt; has a few errors that had me scratching my head, such as a chessboard showing an impossible opening position. And there was this gem:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pumpkins all Pumpkiny</title>
      <link>https://bobcopeland.com/blog/2013/12/pumpkins-all-pumpkiny/</link>
      <pubDate>Tue, 03 Dec 2013 14:52:54 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2020</guid> 
      <description>&lt;p&gt;It is a bit late for a Halloween post, but insert lame excuse here. Consider it a counter-balance to the force that causes Christmas decorations to show up in stores in September.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/11032437245/&#34; title=&#34;IMG_4305 by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;IMG_4305&#34; loading=&#34;lazy&#34; src=&#34;http://farm8.staticflickr.com/7343/11032437245_f4b89db3d3_m.jpg&#34;&gt;&lt;/a&gt; This year I chose Toopy and Binoo, a Canadian children&amp;rsquo;s cartoon pair that you have probably never heard of, as subjects for my pumpkin carving. Unfortunately, the pumpkins shriveled quite quickly, and the designs didn&amp;rsquo;t lend themselves well to preservation, so by Halloween, they grew a toothpick scaffolding to maintain their facade. Next year, I believe I&amp;rsquo;ll try not cutting all the way through to avoid such issues. (I&amp;rsquo;m not sure what that technique is called, but some of the more artistic neighbors employed it to great effect.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Footprint, Part 2</title>
      <link>https://bobcopeland.com/blog/2013/08/footprint-part-2/</link>
      <pubDate>Mon, 12 Aug 2013 14:28:18 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1967</guid> 
      <description>&lt;p&gt;My recent &lt;a href=&#34;https://bobcopeland.com/blog/2013/08/footprint/&#34;&gt;posting of ASCII art&lt;/a&gt; was intentionally subtle, perhaps overly so. If you haven&amp;rsquo;t figured it out by now, it is a C program that announces the birth of our second child. When compiled and executed, it prints:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ian Yit-Sing Copeland
Born 5 August, 2013 at 02:49
Weight 6 lbs 11 oz&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In this post, I will explain how I created it.&lt;/p&gt;
&lt;p&gt;Like many a C practitioner, I&amp;rsquo;ve always found &lt;a href=&#34;http://ioccc.org/&#34;&gt;International Obfuscated C Code Contest&lt;/a&gt; entries to be at once entertaining and mystifying. While I don&amp;rsquo;t consider this effort to be near the level of IOCCC entries, I thought it might be fun to try my own IOCCC-lite ASCII art program.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Footprint</title>
      <link>https://bobcopeland.com/blog/2013/08/footprint/</link>
      <pubDate>Mon, 05 Aug 2013 10:13:18 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1994</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/images/85479ea9b454f0afdcf508ae88b46762.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/foot.png&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://bobcopeland.com/blog/srcs/foot.txt&#34;&gt;(text version)&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://bobcopeland.com/blog/2010/06/new-syscall-proposal/&#34;&gt;Previously.&lt;/a&gt; &lt;strong&gt;Update:&lt;/strong&gt; Explanation &lt;a href=&#34;https://bobcopeland.com/blog/2013/08/footprint-part-2/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New house, new projects</title>
      <link>https://bobcopeland.com/blog/2013/08/new-house-new-projects/</link>
      <pubDate>Sun, 04 Aug 2013 11:10:59 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1981</guid> 
      <description>&lt;p&gt;This year I attained permanent residency in Canada, and our family also attained permanent residency in a different way, by buying our first, and probably last, house. We moved into it a few months ago, a fact I neglected to remark here, so if you are mailing me something, and for some reason read my blog, you&amp;rsquo;ll want to ask me for my new address.&lt;/p&gt;
&lt;p&gt;With the house comes plenty of things to work on that are only marginally interesting, so I shall proceed to bore you with them from time to time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It&#39;s faster because it&#39;s async!</title>
      <link>https://bobcopeland.com/blog/2013/07/its-faster-because-its-async/</link>
      <pubDate>Wed, 17 Jul 2013 12:33:29 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1952</guid> 
      <description>&lt;p&gt;Some Javascript developers, when presented with an API, think, &amp;ldquo;I know, I&amp;rsquo;ll make it async!&amp;rdquo; Now their users have a giant mess of a state machine implemented with callbacks and recursion, in a GC runtime that doesn&amp;rsquo;t eliminate tail calls, and &lt;em&gt;two orders of magnitude&lt;/em&gt; worse performance. Normally, I wouldn&amp;rsquo;t care, because you get what you ask for when you write something in Javascript, but this time it happened to a project that I occasionally maintain for $work. And so I was sad.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS precursor</title>
      <link>https://bobcopeland.com/blog/2013/06/aws-precursor/</link>
      <pubDate>Tue, 04 Jun 2013 16:25:22 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1938</guid> 
      <description>&lt;p&gt;Let&amp;rsquo;s say it&amp;rsquo;s 1975, and you have a mountain of data (2 megs) to process, and a heap of cash. Whom do you call to run your Cobol? Your local airline, of course!&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/uacpu.jpg&#34;&gt;Excerpt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;IBM 360/195 for only 50 cents a SECOND&lt;/p&gt;
&lt;p&gt;Guaranteed Turnaround! 2meg; 2314&amp;rsquo;s - 3330&amp;rsquo;s - 3420&amp;rsquo;s
OS/MVT
HASP/RJE
MPSX-GPSS-PMS-SSP-CSMP
Ans Cobol, Fortran G, G1, H, Assembler F &amp;amp; H, PL/1 F and PL/1 Optimizing and Checkout Compilers.&lt;/p&gt;
&lt;p&gt;Our typical customer is knowledgeable in OS; has good working knowledge of JCL, Utilities and the functions of the compilers/assemblers he uses.
[&amp;hellip;]
Call or Write
UNITED AIRLINES&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Grepping 300 gigs</title>
      <link>https://bobcopeland.com/blog/2013/04/grepping-300-gigs/</link>
      <pubDate>Wed, 24 Apr 2013 21:54:05 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1932</guid> 
      <description>&lt;p&gt;It&amp;rsquo;s fun when a problem is simple, yet the program to solve it takes long enough to run that you can write a second, or third, much faster version while waiting on the first to complete. Today I had a 1.8 billion line, 300 GB sorted input file of the form &amp;ldquo;keytvalue&amp;rdquo;, and another file of 20k interesting keys. I wanted lines matching the keys sent to a third file, where the same key might appear multiple times in the input.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cooking with gnuplot</title>
      <link>https://bobcopeland.com/blog/2013/02/cooking-with-gnuplot/</link>
      <pubDate>Tue, 12 Feb 2013 14:12:34 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1922</guid> 
      <description>&lt;p&gt;Over the winter holidays I was put in charge of cooking one (of several) of the family dinners. At my house, a Christmas dinner can mean only one thing: prime rib is on the menu. The local grocery store had a great deal on rib roasts, so I bought a whole one. All seven ribs, 25 pounds of it. When it came time to cook this beast, I did plenty of reading, and settled on &lt;a href=&#34;http://www.seriouseats.com/2009/12/the-food-lab-how-to-cook-roast-a-perfect-prime-rib.html&#34;&gt;this seriouseats recipe&lt;/a&gt;. I guessed at about six hours to slow-roast the behemoth. But after a few hours of roasting, I decided it would be nice to know whether it would finish in time for the guests, or whether we would have to invent some pre-meal activities to stall.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mavened.</title>
      <link>https://bobcopeland.com/blog/2012/12/mavened/</link>
      <pubDate>Thu, 13 Dec 2012 17:03:51 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1914</guid> 
      <description>&lt;p&gt;So, I&amp;rsquo;m applying a one line patch to a Java package, and oh yes, it needs maven. Hooray!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; apt&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;cache depends &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;recurse maven &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; grep Depends &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     grep &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;v &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;lt;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; egrep lib&lt;span style=&#34;color:#f92672&#34;&gt;.*&lt;/span&gt;java &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; sort &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; uniq &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; wc &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;l
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;203&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt; start build &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; watch maven download another pile &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; find &lt;span style=&#34;color:#f92672&#34;&gt;~/.&lt;/span&gt;m2 &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;name &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;pom &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; wc &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;l
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;851&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I find it hard to believe that there are that many useful libraries in the world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Olio</title>
      <link>https://bobcopeland.com/blog/2012/12/olio/</link>
      <pubDate>Tue, 11 Dec 2012 03:35:13 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1898</guid> 
      <description>&lt;p&gt;I neglected to write up anything on the blog in November despite it being the penultimate of months, so here&amp;rsquo;s a meandering catch-up post to atone. My apologies for the gratuitous self-linking that is about to ensue.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/2012-pumpkins.jpg&#34;&gt;&lt;strong&gt;On Halloween:&lt;/strong&gt; our 2-year old went as Kung Fu Panda (his favorite movie, and yes, shame on his parents for letting him watch movies) for Halloween this year. He was quite excited to learn that you can just go ask for candy from strangers and they will give it to you. He has mastered enough language to say &amp;ldquo;Pumpkin Scary,&amp;rdquo; which he did given every opportunity on seeing the skull I had carved on the pumpkin on the right. The other pumpkin is supposed to be McQueen from the Disney Cars property; Alex called it &amp;ldquo;Pumpkin Car.&amp;rdquo; They are now composting. So it goes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>goto in bash</title>
      <link>https://bobcopeland.com/blog/2012/10/goto-in-bash/</link>
      <pubDate>Fri, 26 Oct 2012 20:01:16 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1880</guid> 
      <description>&lt;p&gt;If you are as old and nerdy as I, you may have spent your grade school days hacking in the BASIC computer language. One of the (mostly hated) features of the (mostly hated) language was that any statement required a line number; this provided both the ability to edit individual lines of the program without a screen editor, as well as de facto labels for the (mostly hated) GOTO and GOSUB commands. But you could also use line numbers to run your program starting from any random point: &amp;ldquo;RUN 250&amp;rdquo; might start in the middle of a program, typically after line 250 exited with some syntax error and was subsequently fixed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fake Thanksgiving</title>
      <link>https://bobcopeland.com/blog/2012/10/fake-thanksgiving/</link>
      <pubDate>Tue, 09 Oct 2012 03:14:04 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1873</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/rosewater0304/8063925179/&#34; title=&#34;IMG_1461 by rosewater0304, on Flickr&#34;&gt;&lt;img alt=&#34;IMG_1461&#34; loading=&#34;lazy&#34; src=&#34;http://farm9.staticflickr.com/8310/8063925179_0b4305954c.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Happy Canadian Thanksgiving! Now it&amp;rsquo;s time to do the dishes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Amped</title>
      <link>https://bobcopeland.com/blog/2012/09/amped/</link>
      <pubDate>Sun, 09 Sep 2012 02:14:37 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1855</guid> 
      <description>&lt;p&gt;Some progress has been made on my guitar chip amp. Readers may remember that at the time of my last post, I had tinkered with KiCad and created the basic layout for my PCB. Since then, I finalized the design and had it fabbed through the great OSH Park batch prototyping service. This is a great deal: it wound up being about $10 a board (you get three at $5/sq. in) and the boards are of excellent quality. It took about 3 weeks from time of design submission for the finished boards to arrive in Canada from the States.
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/7959350464/&#34; title=&#34;Practice amp PCB - top by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Practice amp PCB - top&#34; loading=&#34;lazy&#34; src=&#34;http://farm9.staticflickr.com/8176/7959350464_94ef33a855_m.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/7959349008/&#34; title=&#34;Practice amp PCB - bottom by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Practice amp PCB - bottom&#34; loading=&#34;lazy&#34; src=&#34;http://farm9.staticflickr.com/8313/7959349008_a8dfaec73c_m.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>KiCad Level 0 Achieved</title>
      <link>https://bobcopeland.com/blog/2012/07/kicad-level-0-achieved/</link>
      <pubDate>Mon, 23 Jul 2012 04:21:30 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1847</guid> 
      <description>&lt;p&gt;When we moved to Canada, I sold any guitar gear that wouldn&amp;rsquo;t fit in a backpack. This has left me without the ability to plug in my electric guitar for the last ten months, a situation that must be rectified (ha, ha). I just need a small practice amp, and those can be found on an IC these days. One needs only to add a little soldering, attach a speaker, repeat as necessary for whatever mistakes one makes, and ta-da: a small custom amp that one could have bought mass-produced from China for 1/50th of the price of building one&amp;rsquo;s own. But of course there is value in the making, or so we tell ourselves.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fake Wireless Errors</title>
      <link>https://bobcopeland.com/blog/2012/06/fake-wireless-errors/</link>
      <pubDate>Sun, 10 Jun 2012 02:30:08 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1840</guid> 
      <description>&lt;p&gt;When I did my previous work with mac0211_hwsim, I wrote the channel model in matlab and pre-generated a huge lookup table of frame error rates for different SNR values and transmission rates so that the simulator didn&amp;rsquo;t have to do any thinking for each packet. Obviously that&amp;rsquo;s a bit limiting and not in any way upstreamable in something like wmediumd.&lt;/p&gt;
&lt;p&gt;So, I sat down today and rewrote it in C to see how bad the computation is. Actually, it&amp;rsquo;s not awful: I didn&amp;rsquo;t carefully benchmark it, but it sits at around 30 Âµsec per calculation, and there is probably a good deal of low hanging fruit such as making &lt;code&gt;factorial()&lt;/code&gt; cache its computations, or fitting the output curves with cubics. I stuck the initial code on a wmediumd topic branch &lt;a href=&#34;http://github.com/bcopeland/wmediumd/commit/599022806c8798cfe025081ac6358e6115830983&#34;&gt;over here.&lt;/a&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/csim_rates.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simulating Wireless</title>
      <link>https://bobcopeland.com/blog/2012/05/simulating-wireless/</link>
      <pubDate>Wed, 23 May 2012 14:14:12 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1833</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://bobcopeland.com/blog/srcs/copeland-linux-rc.pdf&#34;&gt;A Study of 802.11 Bitrate Selection in Linux&lt;/a&gt; (January 2010).&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t think too much of this paper when I wrote it as a term project in grad school. As an academic paper, it doesn&amp;rsquo;t really present anything novel. The equations underlying my wireless medium simulation, for example, are wholesale lifted from sources. In the few academic papers still being written on the subject, rate controllers that do not specifically look at collisions are old news (even though Minstrel tends to get loss differentiation implicitly through the magic of probability). Even at the time, looking at non-QoS 802.11 DCF and only 802.11a rates made the whole exercise a bit dated, and the world has definitely moved on in the intervening years. The paper did, however, find a few flaws (or perhaps over-exuberances) in Minstrel&amp;rsquo;s multi-rate-retry mechanism that may still be unfixed upstream, and many more flaws in PID (one I fixed upstream, but it is still not usable). I wanted to go back and redo the physical experiments before submitting patches to Minstrel, but life intervened.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Packet Timing</title>
      <link>https://bobcopeland.com/blog/2012/05/packet-timing/</link>
      <pubDate>Mon, 21 May 2012 12:16:53 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1827</guid> 
      <description>&lt;p&gt;Continuing with the charting theme, I wrote a quick python script yesterday to generate timing diagrams from pcap files while learning matplotlib. It&amp;rsquo;s just at the proof-of-concept stage but could be useful to debug things like power-saving in wireless. Surely something like this exists somewhere already, right? I couldn&amp;rsquo;t find it in the Google.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/timing.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Along the way I had to write a python radiotap parser; that might actually be useful to others so I&amp;rsquo;ll try to put it on github at some point.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Graphing HBase Splits</title>
      <link>https://bobcopeland.com/blog/2012/04/graphing-hbase-splits/</link>
      <pubDate>Wed, 25 Apr 2012 12:58:01 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1813</guid> 
      <description>&lt;p&gt;I was asked for a blog post on this topic. I also do birthdays!&lt;/p&gt;
&lt;p&gt;HBase achieves balance by splitting regions when they reach a certain size, and by evenly distributing the number of regions among cluster machines. However, the balancer will not run in some cases (e.g. if there are regions stuck in transition), and balancing the number of regions alone may not help if region sizes are not mostly the same size. If a region server is hosting more regions than the others, requests to that server experience higher latency, and batch (map-reduce) jobs take longer to complete due to parallel skew.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Orders of magnitude</title>
      <link>https://bobcopeland.com/blog/2012/03/orders-of-magnitude/</link>
      <pubDate>Fri, 30 Mar 2012 11:53:47 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1811</guid> 
      <description>&lt;p&gt;I had a Hadoop map-reduce job that kept timing out, which led to this interesting discovery:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ time ./json-parser-test.py
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;real	0m0.205s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user	0m0.152s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sys	0m0.032s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ time ./json-parser-test-no-speedups.py
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;real	0m2.069s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user	0m2.044s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sys	0m0.024s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ time jython ./json-parser-test-no-speedups.py
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;real	79m59.785s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user	80m23.709s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sys	0m14.441s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Moral: use Java-based JSON libraries if you have to use Jython and JSON. Also, Java sucks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Parsing HRegionInfo in Python</title>
      <link>https://bobcopeland.com/blog/2012/02/parsing-hregioninfo-in-python/</link>
      <pubDate>Thu, 16 Feb 2012 13:44:12 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1790</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been doing a fair amount of HBase work lately at $work, not least of which is &lt;a href=&#34;https://github.com/bcopeland/pybase&#34;&gt;pybase&lt;/a&gt;, a python module that encapsulates Thrift and puts it under an API that looks more or less like the Cassandra wrapper &lt;a href=&#34;https://github.com/pycassa/pycassa&#34;&gt;pycassa&lt;/a&gt; (which we also use).&lt;/p&gt;
&lt;p&gt;When running an HBase cluster, one must very quickly learn the stack from top to bottom and be ready to fix the metadata when catastrophe strikes. Most of the necessary information about HBase regions is stored in the .META. table; unfortunately some of the values therein are serialized HBase Writables. One usually uses JRuby and directly loads Java classes to deal with the deserialization, but we&amp;rsquo;re a Python shop and doing it all over thrift would be ideal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IP level up</title>
      <link>https://bobcopeland.com/blog/2012/02/ip-level-up/</link>
      <pubDate>Wed, 01 Feb 2012 02:21:49 +0000</pubDate>
       <guid isPermaLink="false">http://74.207.224.156/blog/?p=1780</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve changed hosting providers this week, and my new host provisions IPv6 addresses.Â  Thus, I&amp;rsquo;ve published an AAAA record today.Â  The world&amp;rsquo;s most boring website will survive the IPv4 apocalypse.&lt;/p&gt;
&lt;p&gt;Wordpress also gained an update, but the importer forgot all settings, tags and categories.Â  I&amp;rsquo;ll go back and fix those someday.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; someday is now.Â  I&amp;rsquo;ve also picked last year&amp;rsquo;s theme and otherwise modernized the place.Â  Resume party.Â  Also, the header image is a pic I snapped of a piece of Eniac.Â  It&amp;rsquo;s partially full of tubes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How I nearly cracked it</title>
      <link>https://bobcopeland.com/blog/2011/12/how-i-nearly-cracked-it/</link>
      <pubDate>Mon, 26 Dec 2011 20:39:33 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1743</guid> 
      <description>&lt;p&gt;Here&amp;rsquo;s my methodology for part 1 of the Can You Crack It puzzle.&lt;/p&gt;
&lt;p&gt;(Spoilers below)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;eb 04 af c2 bf a3 81 ec  00 01 00 00 31 c9 88 0c
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0c fe c1 75 f9 31 c0 ba  ef be ad de 02 04 0c 00
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;d0 c1 ca 08 8a 1c 0c 8a  3c 04 88 1c 04 88 3c 0c
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fe c1 75 e8 e9 5c 00 00  00 89 e3 81 c3 04 00 00
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00 5c 58 3d 41 41 41 41  75 43 58 3d 42 42 42 42
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;75 3b 5a 89 d1 89 e6 89  df 29 cf f3 a4 89 de 89
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;d1 89 df 29 cf 31 c0 31  db 31 d2 fe c0 02 1c 06
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;8a 14 06 8a 34 1e 88 34  06 88 14 1e 00 f2 30 f6
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;8a 1c 16 8a 17 30 da 88  17 47 49 75 de 31 db 89
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;d8 fe c0 cd 80 90 90 e8  9d ff ff ff 41 41 41 41
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Anyone who has stared long and hard at x86 hexdumps before will immediately think &amp;ldquo;I know this, this is an intel system!&amp;rdquo; The value 0xdeadbeef in little-endian format is a dead-giveaway, as are the 0x90 (NOP) instructions. I know a couple of ways to go from a block of machine code to the corresponding code. One way, like scripts/decodecode in the kernel, is to make a .S file with .byte directives, assemble it, and run objdump over the object file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I can nearly crack it</title>
      <link>https://bobcopeland.com/blog/2011/12/i-can-nearly-crack-it/</link>
      <pubDate>Wed, 07 Dec 2011 21:29:37 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1738</guid> 
      <description>&lt;p&gt;The GCHQ (that&amp;rsquo;s British for NSA) has been running a marketing gimmick to find new people to read your tweets. On &lt;a href=&#34;http://canyoucrackit.co.uk/&#34;&gt;this website&lt;/a&gt;, you will find an enigmatic hexdump, and a prompt for a keyword. Supposedly if you get it correct, then you get forwarded to their job site. I don&amp;rsquo;t care about the job aspect, but I do enjoy a good puzzle.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll add my details and methodology in a follow-up post after the clock runs out, so as not to spoil anything for casual readers who want to take their own look. There are a few good clues in the hexdump if you have previously spent any time looking at real ones.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bare-bones time tracker</title>
      <link>https://bobcopeland.com/blog/2011/11/bare-bones-time-tracker/</link>
      <pubDate>Thu, 10 Nov 2011 12:22:34 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1724</guid> 
      <description>&lt;p&gt;Lifehacker is always suggesting super-complicated GUI applications for keeping track of one&amp;rsquo;s billing hours or making todo lists. Here&amp;rsquo;s my 10-minute solution that I&amp;rsquo;ve been using for a while &amp;ndash; ~/bin/wl:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#! /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt; -z $1 &lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cat ~/docs/worklog.&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;date +%Y-%m&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;d&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;date +&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%Y-%m-%d %H:%M:%S&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;; echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$d&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; $@&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&amp;gt;&amp;gt; ~/docs/worklog.&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;date +%Y-%m&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I use it like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ wl something goes here
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ wl tkt 192323 - remove n**2 loop from the frobnicator
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ wl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2011-11-04 09:55:56 something goes here
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2011-11-04 09:56:07 tkt 192323 - remove n**2 loop from the frobnicator
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I also sometimes start a log message with a single upper-case or symbol character to indicate something else; e.g., &amp;ldquo;^&amp;rdquo; means start of a block of time, &amp;ldquo;$&amp;rdquo; means end, &amp;ldquo;T&amp;rdquo; means todo, etc. It isn&amp;rsquo;t perfect &amp;ndash; sometimes you have to escape shell meta-characters, but it beats using a mouse, and the backing format is plain old text so grep/vi/etc still work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Halloween!</title>
      <link>https://bobcopeland.com/blog/2011/10/halloween-2/</link>
      <pubDate>Sun, 30 Oct 2011 21:25:05 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1716</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/6296213785/&#34; title=&#34;Jack-o-lanterns 2011 by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Jack-o-lanterns 2011&#34; loading=&#34;lazy&#34; src=&#34;http://farm7.static.flickr.com/6032/6296213785_53dfa97640_m.jpg&#34;&gt;&lt;/a&gt; I made two Jack-o-lanterns this year. On the left we have Elmo and Cookie Monster, a nod to our 16-month-old&amp;rsquo;s second Halloween. On the right, my best attempt at a cacodemon from the old video game Doom. My general technique is to sketch up the design in Inkscape, print it out, transfer the design to the pumpkin somehow, then go to work with one of those little pumpkin carving saws. The cacodemon was a bit simpler so I skipped Inkscape and free-handed it with a sharpie.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New GPG key</title>
      <link>https://bobcopeland.com/blog/2011/10/new-gpg-key-2/</link>
      <pubDate>Tue, 11 Oct 2011 17:34:59 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1709</guid> 
      <description>&lt;p&gt;My &lt;a href=&#34;https://bobcopeland.com/blog/2010/01/new-gpg-key/&#34;&gt;previous key&lt;/a&gt; isn&amp;rsquo;t yet two years old, but given the &lt;a href=&#34;https://lwn.net/Articles/461236/&#34;&gt;recent kernel.org reboot&lt;/a&gt;, I created a new keypair today. The fingerprint is:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;11FB F4D3 92A6 F32B CB4E  2E07 8411 1007 23B2 B915
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The old key will be valid for a little while longer. As for korg, perhaps it&amp;rsquo;s time I used github anyway. My OMFS tree is over there now, lonely and waiting for me to feed him some patches.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello from Canada!</title>
      <link>https://bobcopeland.com/blog/2011/09/hello-from-canada/</link>
      <pubDate>Mon, 26 Sep 2011 23:42:43 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1703</guid> 
      <description>&lt;p&gt;My family picked up and moved from the DC area to the surroundings of Toronto last week, and we still have all our limbs intact! My wife and son are here as citizens, while I am a lowly visitor, at least until my immigration paperwork goes through.&lt;/p&gt;
&lt;p&gt;We are in the so-called Greater Toronto Area (GTA), which means we are in the part of Canada that is not Montreal, Vancouver, or Toronto itself. That&amp;rsquo;s Greater-with-a-capital-G: it&amp;rsquo;s about a 90 minute drive to get downtown from here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Pal SCSI</title>
      <link>https://bobcopeland.com/blog/2011/07/my-pal-scsi/</link>
      <pubDate>Sun, 10 Jul 2011 16:31:38 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1699</guid> 
      <description>&lt;p&gt;My son Alex &lt;a href=&#34;https://bobcopeland.com/blog/2010/06/new-syscall-proposal/&#34;&gt;turned one&lt;/a&gt; a couple of weeks ago. (If you are reading this, Alex, happy birthday, and congratulations for learning to read at such an early age!) He picked up quite a stash of loot as a result.&lt;/p&gt;
&lt;p&gt;Moore&amp;rsquo;s law means that the processing power of his toy box very likely exceeds that of my first computer by a large factor. As one example, he received a &lt;a href=&#34;http://www.amazon.com/LeapFrog-19156-My-Pal-Scout/dp/B001W30D2O&#34;&gt;My Pal Scout&lt;/a&gt; talking stuffed animal as a gift. A toy that comes with a USB cable &amp;ndash; this is progress! You can customize the toy to say and spell your child&amp;rsquo;s name, and pick different tunes for it to play.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fast... for a modem</title>
      <link>https://bobcopeland.com/blog/2011/07/fast-for-a-modem/</link>
      <pubDate>Mon, 04 Jul 2011 19:22:11 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1694</guid> 
      <description>&lt;p&gt;This question is for someone slightly more motivated: why is qemu-img so slow to convert from a raw disk image to a VMware (vmdk) image? Apparently it does some compression or null-block elimination, as the resulting file is about 30% smaller, but I was not expecting it to take an entire day to convert a 100 gig disk. To get the answer to a first approximation without actually reading the source, I did a quick run with blktrace and seekwatcher:
&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/qemu-img.png&#34;&gt;
So we get a nice sequential read pattern, but excessive think time between the reads. Probably, reading bigger blocks would help, or something like posix_fadvise(POSIX_FADV_SEQUENTIAL). Iostat showed the disk was reading exactly 2k sectors (1MB) per second, when it should be able to do 50-100 times that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My drive is now solid state</title>
      <link>https://bobcopeland.com/blog/2011/06/my-drive-is-now-solid-state/</link>
      <pubDate>Mon, 20 Jun 2011 04:37:53 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1620</guid> 
      <description>&lt;p&gt;I always learn something new when doing some misguided thing such as &amp;ldquo;let&amp;rsquo;s copy our OS onto a new disk using tar like they did back in the day!&amp;rdquo; The impetus was a shiny new OCZ Vertex 3 to replace the spinning rust in my ancient Macbook. As a co-worker says, it&amp;rsquo;s like putting a gold steering wheel in a 1970 Pinto. My plan was roughly to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Stuff the new drive in the desktop&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make a tar backup of the old laptop drive across the network to the desktop&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Partition new drive, aligning to flash block sizes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mount the new partition somewhere, and untar the backup&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chroot in the new directory, and do a grub-install&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Build complete</title>
      <link>https://bobcopeland.com/blog/2011/06/build-complete/</link>
      <pubDate>Sat, 18 Jun 2011 14:45:50 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1616</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/rosewater0304/5759767793/&#34; title=&#34;293 by rosewater0304, on Flickr&#34;&gt;&lt;img alt=&#34;293&#34; loading=&#34;lazy&#34; src=&#34;http://farm6.static.flickr.com/5189/5759767793_27a38bf6c1_m.jpg&#34;&gt;&lt;/a&gt; I found time about a month ago to finish up my facet kite, just ahead of my family&amp;rsquo;s trip to the beach. Of course, the spars are too big for our suitcases, so it got left at home. Since then we haven&amp;rsquo;t had the free weekend to get it up in the sky.&lt;/p&gt;
&lt;p&gt;As they say, until it flies, it&amp;rsquo;s just art. But here&amp;rsquo;s a picture of the final assembly anyway. To give a sense of scale, the kite is about 1.2 meters tall.&lt;/p&gt;</description>
    </item>
    <item>
      <title>No comment.</title>
      <link>https://bobcopeland.com/blog/2011/05/no-comment/</link>
      <pubDate>Thu, 19 May 2011 18:42:04 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1611</guid> 
      <description>&lt;p&gt;Despite comments requiring moderation before posting, I&amp;rsquo;ve had a flood of thousands of spam comments over the last few days in the queue and I&amp;rsquo;m tired of pressing the delete button. Thus, they are disabled for the time being until I can set up something more automated.&lt;/p&gt;
&lt;p&gt;Sorry spammers, none of those posts ever made it to any web crawler.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: or not. Of course WP makes this hard. Well you can&amp;rsquo;t comment on this one post at least!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Edge binding</title>
      <link>https://bobcopeland.com/blog/2011/04/edge-binding/</link>
      <pubDate>Mon, 18 Apr 2011 01:11:33 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/2011/04/edge-binding/</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/5629720648/&#34; title=&#34;Edge binding&#34;&gt;&lt;img alt=&#34;Edge binding by bluesterror&#34; loading=&#34;lazy&#34; src=&#34;http://farm6.static.flickr.com/5227/5629720648_26228aa834_m.jpg&#34;&gt;&lt;/a&gt; I finished reinforcements on my facet kite about a month ago, and there my project sat as I waited for supplies to come in. Last Thursday the shipment arrived, so when I got a free hour this weekend, I did the edge binding on four of the eight panels. On all of my previous kites, I used double-folded hems, where, as the name suggests, you fold the edge of the sail over twice and then sew it flat. With edge binding, you instead fold and sew a separate piece of material along the cut edge. Edge binding seems like it would be easier, but I find that it&amp;rsquo;s a bit of a battle to keep the sail and binding material aligned. Perhaps some sticky tape would help, but that just adds to the build time. On the other hand, binding can look nicer since the border stands out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updates</title>
      <link>https://bobcopeland.com/blog/2011/04/updates/</link>
      <pubDate>Mon, 11 Apr 2011 02:29:46 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1600</guid> 
      <description>&lt;p&gt;So the blog mysteriously committed suicide recently, so I took the opportunity to update to the latest Wordpress. Everything now seems to be in order. Perhaps I should also upgrade the theme one of these days.&lt;/p&gt;
&lt;p&gt;Also committing suicide this weekend was the two year old Ubuntu installation on my laptop. The automatic upgrade to 10.04 resulted in a non-bootable mess (it turns out this was merely foreshadowing), so I took a backup and then dropped the F15 alpha on it to see what the Gnome3 Shell hubbub is all about. It does make my computer feel like a giant cell phone, but I do actually hate it less than I thought I would. We&amp;rsquo;ll see if that faint praise holds up after I use it a bit. The actual F15 installation took four tries, all due to my Macbook&amp;rsquo;s quirky half-EFI, half-BIOS firmware. No manner of coercion would convince Fedora to make a hybrid GPT/MBR partition table that actually booted, so I eventually gave up and just created a plain MBR with fdisk and that was that. A full day of reloading the backup and updating packages later, and I am back to a functional desktop, sans all those pesky minimize buttons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wirth&#39;s Law avenged</title>
      <link>https://bobcopeland.com/blog/2011/04/wirths-law-avenged/</link>
      <pubDate>Sat, 02 Apr 2011 15:09:31 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1594</guid> 
      <description>&lt;p&gt;Occasionally, rewriting other people&amp;rsquo;s code can be its own reward:
&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/restore.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;88 times speedup is not too bad for a few days&amp;rsquo; work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Even C has tsearch</title>
      <link>https://bobcopeland.com/blog/2011/03/even-c-has-tsearch/</link>
      <pubDate>Tue, 29 Mar 2011 03:51:26 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1586</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m just going on record to state that the two reasons I&amp;rsquo;ve seen on the net for lack of tree-based collections in the Python standard library &amp;ndash; (1) that they have bad locality ( &lt;em&gt;gee, very unlike huge memory-hogging randomized hash tables, oh and just try scanning one of those&amp;hellip;&lt;/em&gt;), and (2) that Python makes it so simple to write your own, just do that! ( &lt;em&gt;well, yes I can and have, but hey it&amp;rsquo;s 2011 already, rbtrees are like 40 years old!&lt;/em&gt;) -- are inane.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New kite</title>
      <link>https://bobcopeland.com/blog/2011/03/new-kite/</link>
      <pubDate>Mon, 14 Mar 2011 02:33:29 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1583</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/5524994224/&#34; title=&#34;Star Facet by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Star Facet&#34; loading=&#34;lazy&#34; src=&#34;http://farm6.static.flickr.com/5096/5524994224_491bfb013d_m.jpg&#34;&gt;&lt;/a&gt; It&amp;rsquo;s almost spring and that means time to make another kite! I haven&amp;rsquo;t done one in a couple of years so hopefully I haven&amp;rsquo;t lost all of the necessary sewing skills. This time around I&amp;rsquo;m going with a cellular design (think box kite), the &lt;a href=&#34;http://www.kitebuilder.com/forums/viewforum.php?f=22&#34;&gt;#54 star facet&lt;/a&gt;. This morning I spent about half an hour on the first step &amp;ndash; cutting out the necessary shapes from rolls of ripstop nylon. We have an enclosed area with great big sunny windows in our apartment which are perfect for tracing the shapes out onto the material.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updated to version 6</title>
      <link>https://bobcopeland.com/blog/2011/03/updated-to-version-6/</link>
      <pubDate>Wed, 09 Mar 2011 12:17:08 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1579</guid> 
      <description>&lt;p&gt;I bought a new wireless router the other day, a D-Link DIR-825 dual-band a/g/b/n. This is a step up in several regards from my previous 2.4 GHz 11g Linksys, not least of which is the D-Link&amp;rsquo;s ability to run OpenWRT with ath9k. Installing OpenWRT with prebuilt binaries is dirt simple; it took all of about 5 minutes to set up.&lt;/p&gt;
&lt;p&gt;One of my motivations was to do some IPv6 testing in advance of &lt;a href=&#34;http://isoc.org/wp/worldipv6day/&#34;&gt;World IPv6 Day&lt;/a&gt;. Comcast doesn&amp;rsquo;t yet offer IPv6 addresses to the public at large, so I set up a &lt;a href=&#34;http://he.net/&#34;&gt;Hurricane Electric&lt;/a&gt; 6in4 tunnel. This is &lt;a href=&#34;http://wiki.openwrt.org/doc/uci/network#dynamic.ipv6-in-ipv4.tunnel.he.net.only&#34;&gt;quite easy&lt;/a&gt; to configure in OpenWRT.&lt;/p&gt;</description>
    </item>
    <item>
      <title>me &amp;= ~grad_school</title>
      <link>https://bobcopeland.com/blog/2011/02/me-grad_school-2/</link>
      <pubDate>Sat, 12 Feb 2011 14:52:02 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1573</guid> 
      <description>&lt;p&gt;An unassuming cardboard tube arrived in the mail the other day, containing my MSCS diploma from Hopkins. Thus passes my academic career. I doubt the experience will ever pay for itself financially, but I did learn a great deal, even as a crusty practitioner of some years. Returning to the student life of never-ending deadlines took quite some getting used to, and the corresponding lack of sleep was good training for Alex&amp;rsquo;s concurrent arrival. (Said arrival also made up my mind to not pursue the thesis option.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>On static in Java</title>
      <link>https://bobcopeland.com/blog/2011/01/on-static-in-java/</link>
      <pubDate>Sun, 30 Jan 2011 00:52:06 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1564</guid> 
      <description>&lt;p&gt;In C, scoping rules aside, the following are pretty much the same:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;static int x[] = { /* ... */ };
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;int foo()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    /* do something with x */
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;int bar()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    static int x[] = { /* ... */ };
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    /* do something with x */
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The static array &lt;code&gt;x&lt;/code&gt; will go into the .data section of the executable. When the OS loads the executable into memory, it will ensure that the values for &lt;code&gt;x&lt;/code&gt; are set in the appropriate place (e.g. by mapping its disk page to the virtual address in the ELF headers). In the second case, &lt;code&gt;x&lt;/code&gt; is given some alias to avoid symbol conflicts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snow day</title>
      <link>https://bobcopeland.com/blog/2011/01/snow-day/</link>
      <pubDate>Thu, 27 Jan 2011 22:56:17 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1559</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/5393473712/&#34; title=&#34;&amp;quot;Driving&amp;quot; in the snow by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;&amp;ldquo;Driving&amp;rdquo; in the snow&#34; loading=&#34;lazy&#34; src=&#34;http://farm6.static.flickr.com/5176/5393473712_b3ae01dbbc_m.jpg&#34;&gt;&lt;/a&gt; Last night I had the pleasure of driving my car less than a mile from the nearby metro to our apartment, during a heavy snow, in rush hour. Normally I walk, but this area is bad about keeping sidewalks clear in snowy weather, so driving is sometimes the safer option. It took me an hour and a half to cover the distance, at a blazing average speed of 2/3 mph.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hacker Delighted</title>
      <link>https://bobcopeland.com/blog/2011/01/hacker-delighted/</link>
      <pubDate>Sun, 09 Jan 2011 21:10:37 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1555</guid> 
      <description>&lt;p&gt;I mentioned before that I had wishlisted the book &lt;em&gt;Hacker&amp;rsquo;s Delight&lt;/em&gt; after reading the constant folding code in gcc. My better half surprised me with a copy for Christmas and I read through it in about a day and a half. To my surprise, the book is at once smaller (at just over 300 pages) while at the same time being a lot more thorough and principled than I had expected. Some formulas come with proofs, and for ranges that produce undesired results (e.g. log2(0)), the book makes a point of identifying them and discussing alternatives. Creative uses for ffs(), the ubiquitous bit-parallel permutation algorithms, and several other bit twiddling tricks are exhaustively covered, along with various integer math routines including, of course, division-by-constant. Worth a read if that&amp;rsquo;s your thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; error fail</title>
      <link>https://bobcopeland.com/blog/2010/11/c-error-fail/</link>
      <pubDate>Sun, 14 Nov 2010 03:53:51 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1544</guid> 
      <description>&lt;p&gt;Note to self: double-check the template arguments before asking the compiler to do so.&lt;/p&gt;
&lt;p&gt;(Wordpress hates to wrap, so I did it, badly.)
`mpicxx -Wno-deprecated   -c -o pagerank.o pagerank.cc
In file included from /usr/include/boost/graph/distributed/adjacency_list
.hpp:3959,
from pagerank.cc:3:
/usr/include/boost/graph/distributed/adjlist/initialize.hpp: In member fu
nction â€˜void boost::adjacency_list&amp;lt;OutEdgeListS, boost::distributedS&amp;lt;Pr
ocessGroup, InVertexListS, InDistribution&amp;gt;, DirectedS, VertexProperty, Ed
geProperty, GraphProperty, EdgeListS&amp;gt;::initialize(EdgeIterator, EdgeItera
tor, EdgePropertyIterator, typename boost::detail::parallel::adjacency_li
st_config&amp;lt;OutEdgeListS, ProcessGroup, InVertexListS, InDistribution, Dire
ctedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS&amp;gt;::inherited
::vertices_size_type, const typename boost::graph::distributed::select_di
stribution&amp;lt;InDistribution, VertexProperty, typename boost::detail::parall
el::adjacency_list_config&amp;lt;OutEdgeListS, ProcessGroup, InVertexListS, InDi
stribution, DirectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeL
istS&amp;gt;::inherited::vertices_size_type, ProcessGroup, typename boost::graph
::internal_vertex_name&lt;VertexProperty&gt;::type&amp;gt;::type&amp;amp;, boost::vecS) [with
EdgeIterator = boost::graph::metis_reader::edge_iterator, EdgePropertyIte
rator = boost::graph::metis_reader::edge_weight_iterator, OutEdgeListS =
boost::vecS, ProcessGroup = boost::graph::distributed::mpi_process_group,
InVertexListS = boost::vecS, InDistribution = boost::defaultS, DirectedS
= boost::directedS, VertexProperty = boost::no_property, EdgeProperty =
boost::no_property, GraphProperty = boost::no_property, EdgeListS = boost
::listS]â€™:
/usr/include/boost/graph/distributed/adjacency_list.hpp:1644:   instantia
ted from â€˜boost::adjacency_list&amp;lt;OutEdgeListS, boost::distributedS&amp;lt;Proce
ssGroup, InVertexListS, InDistribution&amp;gt;, DirectedS, VertexProperty, EdgeP
roperty, GraphProperty, EdgeListS&amp;gt;::adjacency_list(EdgeIterator, EdgeIter
ator, EdgePropertyIterator, typename boost::detail::parallel::adjacency_l
ist_config&amp;lt;OutEdgeListS, ProcessGroup, InVertexListS, InDistribution, Dir
ectedS, VertexProperty, EdgeProperty, GraphProperty, EdgeListS&amp;gt;::inherite
d::vertices_size_type, const ProcessGroup&amp;amp;, const typename boost::graph::
distributed::select_distribution&amp;lt;InDistribution, VertexProperty, typename
boost::detail::parallel::adjacency_list_config&amp;lt;OutEdgeListS, ProcessGrou
p, InVertexListS, InDistribution, DirectedS, VertexProperty, EdgeProperty
, GraphProperty, EdgeListS&amp;gt;::inherited::vertices_size_type, ProcessGroup,
typename boost::graph::internal_vertex_name&lt;VertexProperty&gt;::type&amp;gt;::type
&amp;amp;, const GraphProperty&amp;amp;) [with EdgeIterator = boost::graph::metis_reader:
:edge_iterator, EdgePropertyIterator = boost::graph::metis_reader::edge_w
eight_iterator, OutEdgeListS = boost::vecS, ProcessGroup = boost::graph::
distributed::mpi_process_group, InVertexListS = boost::vecS, InDistributi
on = boost::defaultS, DirectedS = boost::directedS, VertexProperty = boos
t::no_property, EdgeProperty = boost::no_property, GraphProperty = boost:
:no_property, EdgeListS = boost::listS]â€™
pagerank.cc:37:   instantiated from here
/usr/include/boost/graph/distributed/adjlist/initialize.hpp:56: error: no
matching function for call to â€˜add_edge(boost::detail::parallel::globa
l_descriptor&lt;unsigned int&gt;&amp;amp;, boost::detail::parallel::global_descriptor&lt;u
nsigned int&gt;&amp;amp;, const double&amp;amp;, boost::adjacency_list&amp;lt;boost::vecS, boost::d
istributedS&amp;lt;boost::graph::distributed::mpi_process_group, boost::vecS, bo
ost::defaultS&amp;gt;, boost::directedS, boost::no_property, boost::no_property,
boost::no_property, boost::listS&amp;gt;&amp;amp;)â€™
/usr/include/boost/graph/distributed/adjacency_list.hpp:2973: note: candi
dates are: typename boost::adjacency_list&amp;lt;OutEdgeListS, boost::distribute
dS&amp;lt;ProcessGroup, InVertexListS, InDistribution&amp;gt;, DirectedS, VertexPropert
y, EdgeProperty, GraphProperty, EdgeListS&amp;gt;::lazy_add_edge_with_property b
oost::add_edge(typename boost::adjacency_list&amp;lt;OutEdgeListS, boost::distri
butedS&amp;lt;ProcessGroup, InVertexListS, InDistribution&amp;gt;, DirectedS, VertexPro
perty, EdgeProperty, GraphProperty, EdgeListS&amp;gt;::vertex_descriptor, typena
me boost::adjacency_list&amp;lt;OutEdgeListS, boost::distributedS&amp;lt;ProcessGroup,
InVertexListS, InDistribution&amp;gt;, DirectedS, VertexProperty, EdgeProperty,
GraphProperty, EdgeListS&amp;gt;::vertex_descriptor, const typename boost::adjac
ency_list&amp;lt;OutEdgeListS, boost::distributedS&amp;lt;ProcessGroup, InVertexListS,
InDistribution&amp;gt;, DirectedS, VertexProperty, EdgeProperty, GraphProperty,
EdgeListS&amp;gt;::edge_property_type&amp;amp;, boost::adjacency_list&amp;lt;OutEdgeListS, boos
t::distributedS&amp;lt;ProcessGroup, InVertexListS, InDistribution&amp;gt;, DirectedS,
VertexProperty, EdgeProperty, GraphProperty, EdgeListS&amp;gt;&amp;amp;) [with OutEdgeLi
stS = boost::vecS, ProcessGroup = boost::graph::distributed::mpi_process_
group, InVertexListS = boost::vecS, InDistribution = boost::defaultS, Dir
ectedS = boost::directedS, VertexProperty = boost::no_property, EdgePrope
rty = boost::no_property, GraphProperty = boost::no_property, EdgeListS =
boost::listS]
make: *** [pagerank.o] Error 1&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wrapping up</title>
      <link>https://bobcopeland.com/blog/2010/11/wrapping-up/</link>
      <pubDate>Fri, 05 Nov 2010 16:00:04 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1542</guid> 
      <description>&lt;p&gt;I just submitted my application for graduation here at Hopkins, so as my grad_school bit settles over the next couple of months, I must now contemplate what to do next. I haven&amp;rsquo;t given it a whole lot of thought, except that I will be glad to be out of academics for the rest of eternity. I&amp;rsquo;ll save an account of my experience here for another post, but it has been generally positive. Anyway, my dance card is far from empty, but while I&amp;rsquo;m in limbo between real work and finishing school, and deciding where our family will live, I might as well be promiscuous and see what&amp;rsquo;s out there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PageRank in Matlab</title>
      <link>https://bobcopeland.com/blog/2010/10/pagerank-in-matlab/</link>
      <pubDate>Sun, 17 Oct 2010 17:33:09 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1530</guid> 
      <description>&lt;p&gt;For a school project, I&amp;rsquo;ve been reading lots of papers on good old PageRank. We&amp;rsquo;re doing something similar to this venerable algorithm in a streaming context. For a basis of comparison, I needed a simple, reliable implementation of the classic algorithm, and Matlab (octave) happens to excel at this kind of thing. So here&amp;rsquo;s my version. Initialized appropriately, this gives the same results as the diagram on the appropriate Wikipedia page. You probably wouldn&amp;rsquo;t want to run this on the web graph though: it wants to be run in a cluster at that scale.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I&#39;d like the shed in blue</title>
      <link>https://bobcopeland.com/blog/2010/09/id-like-the-shed-in-blue/</link>
      <pubDate>Sun, 19 Sep 2010 13:34:45 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1525</guid> 
      <description>&lt;p&gt;In addition to the idea that &lt;a href=&#34;http://valerieaurora.wordpress.com/2010/09/16/yet-another-fascinating-union-mounts-release/&#34;&gt;the least interesting and most trivial patches get the most scrutiny&lt;/a&gt;, I think the bike-shedding effect is doubled if someone claims their implementation is &lt;a href=&#34;http://lkml.org/lkml/2010/8/27/329&#34;&gt;extra clever&lt;/a&gt;. Then Linus unleashes his &lt;a href=&#34;http://lkml.org/lkml/2010/8/28/181&#34;&gt;Thunderbolt of Clarity&lt;/a&gt; and sanity is restored.&lt;/p&gt;
&lt;p&gt;To exploit this phenomenon, one seeking reviews should claim that one&amp;rsquo;s code is better than any Knuth himself could have dreamed up, uses the minimal number of clock cycles on any present or future architecture, and solves Clique in P. Then nerds will come at you like zombies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>log2 in bash</title>
      <link>https://bobcopeland.com/blog/2010/09/log2-in-bash/</link>
      <pubDate>Sat, 18 Sep 2010 11:51:39 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1522</guid> 
      <description>&lt;p&gt;Turns out bash supports enough arithmetic operators to implement lg() just as you might in some real language:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;function log2 {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    local x=0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    for (( y=$1-1 ; $y &amp;gt; 0; y &amp;gt;&amp;gt;= 1 )) ; do
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        let x=$x+1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    done
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    echo $x
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;z=$(log2 64)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I had a somewhat valid reason to want to do this. The one thing that continually gets me when I try to do dumb things like this is when to use the raw variable name and when to use the dollar sign. Yes, the semantics are well-defined, but my perl habits run deep. Similarly, in ruby, all my variables are global.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is there a patch for bureaucracy?</title>
      <link>https://bobcopeland.com/blog/2010/08/is-there-a-patch-for-bureaucracy/</link>
      <pubDate>Tue, 24 Aug 2010 21:11:39 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1516</guid> 
      <description>&lt;p&gt;So I&amp;rsquo;ve now had experience fixing other peoples&amp;rsquo; software in several different domains. Here&amp;rsquo;s how it plays out:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open-source project:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thanks! Applied.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proprietary application:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thank you for your submission. We have taken your request under consideration, and assigned it ticket #17231. In our review for the next release, scheduled to be released in Q4 next year, we will consider each resolved ticket for possible inclusion in our product.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Government project&lt;/strong&gt;:
&lt;em&gt;[paraphrasing an angry letter to division heads]&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>JNIs and ABIs</title>
      <link>https://bobcopeland.com/blog/2010/08/jnis-and-abis/</link>
      <pubDate>Wed, 11 Aug 2010 03:16:11 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1514</guid> 
      <description>&lt;p&gt;For a recent task at work, I had a compelling reason to break out of the Java jail and do some &amp;ldquo;real programming&amp;rdquo; in C. Unfortunately, said C-language bits were to be run on the Windows platform. I had a stripped DLL (no source) for manipulating USB cameras and an API document to work with, and a plan to duct tape this all together with JNI.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not about to touch MSVC if I can help it, so I grabbed mingw packages for my platform and wrote up a small wrapper DLL to do the necessary JNI bridge. Here&amp;rsquo;s my attempt to archive the working recipe for the Google bots.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kernel updates</title>
      <link>https://bobcopeland.com/blog/2010/07/kernel-updates/</link>
      <pubDate>Sun, 18 Jul 2010 00:39:27 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1506</guid> 
      <description>&lt;p&gt;During baby naps I actually did some Rio Karma work this week. First, I &lt;a href=&#34;http://marc.info/?l=linux-usb&amp;amp;m=127894796224563&amp;amp;w=2&#34;&gt;found and fixed&lt;/a&gt; a recent bug in usb storage that makes the Karma not work at all in 2.6.35. Then I finally set up my &lt;a href=&#34;http://git.kernel.org/?p=linux/kernel/git/bcopeland/omfs.git;a=shortlog;h=refs/heads/for-next&#34;&gt;omfs git tree&lt;/a&gt; on kernel.org, with a few patches I wrote almost two years ago, plus a recently found memory leak. I&amp;rsquo;ll try to get Linus to pull it in 2.6.36. Then, I made a new release of &lt;a href=&#34;https://bobcopeland.com/blog/karma/&#34;&gt;omfsprogs&lt;/a&gt; rewritten to use libomfs from the FUSE version of omfs (I also did this work two years ago). Now all is right in the Karma world again; time to ignore it for another 6 months.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New syscall proposal</title>
      <link>https://bobcopeland.com/blog/2010/06/new-syscall-proposal/</link>
      <pubDate>Sat, 26 Jun 2010 12:33:59 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1490</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CLONE3(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)                   System Programmer&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s Manual                 CLONE3(2)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NAME
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       clone3 &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; create a child process
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SYNOPSIS
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#75715e&#34;&gt;#include &amp;lt;clone.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#a6e22e&#34;&gt;int&lt;/span&gt; clone3(pid_t parent, pid_t co_parent,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 &lt;span style=&#34;color:#a6e22e&#34;&gt;int&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;fn)(void &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;), void &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;child_stack,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                 &lt;span style=&#34;color:#a6e22e&#34;&gt;int&lt;/span&gt; flags, void &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;arg, &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt; );
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;DESCRIPTION
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       clone3()  creates  a new process, &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; a manner similar to fork(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Unlike fork(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;), these calls allow the child process to share  parts  of
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       its  execution  context  with  the  parent &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; co&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;parent processes,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       such as their home, food, &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; approximately half of their genetic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       material&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       The main use of clone3() is to implement offspring: sentient beings
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       that run concurrently with the parents &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; a shared environment&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       When  the  child  process  is  created  with  clone3(),  it executes the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       function  application  fn(arg)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;   (This  differs  from  fork(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),  where
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       execution  continues  &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; the child from the point of the fork(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;) call&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       The fn argument is a pointer to a function that is called by the  child
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       process  at the beginning of its execution&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  The arg argument is passed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       to the fn function&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  Although the parent processes may supply a suitable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       fn function, the child process has a mind of its own &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; may deviate
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       from its execution at will&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Executing clone3 will randomly select half of the genes from each
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       parent, resulting &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; a selection of phenotypes according to
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Mendelian inheritance&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  By design this process increases the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       number of bits &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; the global entropy pool, making recovery of the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       random state impractical&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       The  child_stack  argument  specifies the location of the pile of
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       diapers used by the child process&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  After the child process leaves
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       the EMBRYO state &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; until it acquires the CAP_POTTY capability,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       it may frequently dump core&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  The calling process must therefore
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       set up a large store of waste disposal units &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt; a pointer to
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       this store to clone3()&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  After a successful core dump it is necessary
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; a parent to handle the condition as soon as possible&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       The flags parameter may  be  bitwise&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;ed  with zero or more of the&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       following constants, &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; order to specify  the behavior of the system
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       call:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        CLONE_XY
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              Setting CLONE_XY indicates to the system that a child of the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              male gender is requested&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  This is only a hint to the system
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; may &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; be honored&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        CLONE_XX
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              Setting CLONE_XX indicates to the system that a child of the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              female gender is requested&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  This is only a hint to the system
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; may &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; be honored&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              If both CLONE_XY &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; CLONE_XX are set, results are undefined&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RETURN VALUE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       On  completion,  the  thread  ID  of  the child process is returned &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       both parents&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39; thread of execution.  During execution, the child process&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       may &lt;span style=&#34;color:#66d9ef&#34;&gt;signal&lt;/span&gt; an error condition by raising any of the following signals&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SIGNALS
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       HUNGRY  The stomach monitor process has detected an empty condition&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               The parent may correct the condition by supplying food&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       TIRED   The process has executed too many cycles &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; must enter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       GRUMPY  The process is raising signals at full volume &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; unknown
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               reasons&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;  The parent process should attach pacifier(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;) to
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               the child process &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; attempt to cause it to enter sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       HAPPY   The process is &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; a suitable state &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; taking pictures &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               grandparents&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CONFORMING TO
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Biology &lt;span style=&#34;color:#ae81ff&#34;&gt;101.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;BUGS
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Child process may spit&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;up on your new shirt; a burping cloth is
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       recommended&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;EXAMPLE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       The following psuedo&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;code illustrates the intended usage:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#75715e&#34;&gt;#include &amp;lt;clone.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#a6e22e&#34;&gt;int&lt;/span&gt; main(&lt;span style=&#34;color:#a6e22e&#34;&gt;int&lt;/span&gt; argc, char &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;argv[])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            pid_t ange &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/*&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            pid_t bob &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;/*&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            pid_t alex;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            alex &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; clone3(ange, bob, fn, stack, CLONE_XY, NULL);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            sleep(&lt;span style=&#34;color:#ae81ff&#34;&gt;86400&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            take_snapshot(alex);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       This yields the following:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Alexander Yit&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;Keung Copeland
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Born &lt;span style=&#34;color:#ae81ff&#34;&gt;26&lt;/span&gt; June, &lt;span style=&#34;color:#ae81ff&#34;&gt;2010&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       Weight &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt; lbs &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; oz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SEE ALSO
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       fork(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),    futex(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),    getpid(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),    gettid(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),   set_thread_area(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       set_tid_address(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),  tkill(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),  unshare(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),  wait(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;),  capabilities(&lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       pthreads(&lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CLONE3(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)                         &lt;span style=&#34;color:#ae81ff&#34;&gt;2010&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;06&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;26&lt;/span&gt;                          CLONE3(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Blowtorch Cuisine</title>
      <link>https://bobcopeland.com/blog/2010/06/blowtorch-cuisine/</link>
      <pubDate>Mon, 21 Jun 2010 21:53:11 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1498</guid> 
      <description>&lt;p&gt;Ever mindful of fire safety, I&amp;rsquo;ve had a full propane canister (the small blowtorch size) rattling around in the back of my trunk for two and a half years. Luckily our car never decided to explode, but just in case, I&amp;rsquo;ve decided to finally use up the fuel.&lt;/p&gt;
&lt;p&gt;Since I plan to never do any sort of plumbing again, the natural application for my blowtorch flame is on food, specifically crÃ¨me brÃ»lÃ©e. So I baked up some custard in my soup bowls, tossed some sugar on top, and burnt that bad boy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moved</title>
      <link>https://bobcopeland.com/blog/2010/06/moved/</link>
      <pubDate>Fri, 04 Jun 2010 12:04:14 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1486</guid> 
      <description>&lt;p&gt;Apologies, dear reader, for not having updates lately: I have been quite busy.&lt;/p&gt;
&lt;p&gt;Angeline and I just &amp;ldquo;completed&amp;rdquo; moving from one side of the street to the other side (the lie-quotes indicating our plan to live out of boxes for the near future). If you have our old mailing address or home phone number, it&amp;rsquo;s probably a good idea to drop me an email to get the new data.&lt;/p&gt;
&lt;p&gt;The new place seems nice so far except for the water being shut off the day we moved in, and the towing of my car from the space they told us to park in (evidently they were just kidding when they said that).&lt;/p&gt;</description>
    </item>
    <item>
      <title>On S-Expressions</title>
      <link>https://bobcopeland.com/blog/2010/04/on-s-expressions/</link>
      <pubDate>Wed, 07 Apr 2010 23:34:22 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1469</guid> 
      <description>&lt;p&gt;I suppose I&amp;rsquo;m old enough now, and the rate of change in computing is fast enough, that I can regale young software developers with I-remember-when stories. You know, the ones that start off like &amp;ldquo;all of my punchcards were rubber-banded together, but I had neglected to number them&amp;hellip;&amp;rdquo; I&amp;rsquo;ll spare you the tale of how we used to screen-scrape the mainframes at LargeAirline.com for today; instead you get to read my ramblings on languages-older-than-Go.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pork</title>
      <link>https://bobcopeland.com/blog/2010/04/pork/</link>
      <pubDate>Fri, 02 Apr 2010 13:30:56 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1462</guid> 
      <description>&lt;p&gt;Inspired by the &amp;rsquo;tinga&amp;rsquo; (Mexican roast pork tostadas) recipe in this month&amp;rsquo;s &lt;em&gt;Cook&amp;rsquo;s Illustrated&lt;/em&gt;, I bought a $12 picnic shoulder at the grocery store on our last trip out. The recipe recommends a boneless boston butt instead, which is probably a good idea given all of the tendons in the lower cut. But my grocer only had the shoulder and it&amp;rsquo;s cheap so what the heck.&lt;/p&gt;
&lt;p&gt;I spent last Saturday morning carving all of the meat off of the bone, at which point I realized just how much pig we&amp;rsquo;re going to be eating for the next few weeks. As Ange and I try to subscribe to the &amp;lsquo;use everything but the squeal&amp;rsquo; philosophy, I portioned the slab for various future meals: two pounds of meat for the aforementioned tinga, a couple of pounds cut into thin slabs for char siu, about another pound or so of trimmings for barbecue or pork tacos, and the bones went into the freezer for congee.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Search Trees Revisted</title>
      <link>https://bobcopeland.com/blog/2010/03/search-trees-revisted/</link>
      <pubDate>Wed, 17 Mar 2010 22:58:44 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1458</guid> 
      <description>&lt;p&gt;I have been investigating search trees to see if binary search trees&amp;rsquo; memory layout can, in practice, make a large difference in performance. Now that I&amp;rsquo;ve fixed the bugs in my test application, I can say: yes! The theory here is in so-called &amp;ldquo;cache-oblivious&amp;rdquo; algorithms. The idea is that you can use divide-and-conquer algorithms and data structures to exploit locality and ensure that at some point you will be working with the granularity of your memory transfer size (such as the size of a cache line or disk block).&lt;/p&gt;</description>
    </item>
    <item>
      <title>A tale of two search trees</title>
      <link>https://bobcopeland.com/blog/2010/03/a-tale-of-two-search-trees/</link>
      <pubDate>Thu, 11 Mar 2010 04:34:28 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1454</guid> 
      <description>&lt;p&gt;As a warm up for a research topic I&amp;rsquo;m doing this semester, I am looking at static search tree performance. Consider the following tree fragment where nodes are numbered according to BFS order:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      2            3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   4     5      6      7
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  8 9  10 11  12 13  14 15
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The nodes are located in memory wherever malloc() put them. An interesting question is whether a different in-memory layout has better search performance. One possible layout is in an array with the following order: 1,2,3,4,8,9,5,10,11,6,12,13,7,14,15 (this pattern is not original to me).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hummus</title>
      <link>https://bobcopeland.com/blog/2010/02/hummus/</link>
      <pubDate>Sun, 14 Feb 2010 19:19:15 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1450</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/4356650228/&#34; title=&#34;Hummus by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Hummus&#34; loading=&#34;lazy&#34; src=&#34;http://farm5.static.flickr.com/4059/4356650228_448fd447a8_m.jpg&#34;&gt;&lt;/a&gt; Ange and I have been on a real Hummus kick lately for some reason. A container of Sabra is usually gone within a few minutes of being opened around here. So I decided to save a few trips to the store and try making it at home. Turns out, this is really easy: dump a can of chick peas, 1/4 c each of olive oil, water, and tahini (finding this is the hard part), a garlic clove and 1-2 tbsp of vinegar into the food processor, and press &amp;ldquo;On.&amp;rdquo; A little time spent chilling in the fridge and it&amp;rsquo;s good to go. A couple of roasted habaneros wouldn&amp;rsquo;t be a bad addition, either.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android rebuilt</title>
      <link>https://bobcopeland.com/blog/2010/02/android-rebuilt/</link>
      <pubDate>Sat, 13 Feb 2010 15:27:15 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1429</guid> 
      <description>&lt;p&gt;While stuck inside for days due to snow, I once again downloaded the Android source trees from the repos. I plan to update my &lt;a href=&#34;https://bobcopeland.com/blog/android_wifi.html&#34;&gt;Android wifi page&lt;/a&gt; with better, step-by-step instructions to go from nothing to a working set of wireless utilities on the phone. In the meantime, I&amp;rsquo;ve re-familiarized myself with the current Android build environment (for various values of current &amp;ndash; this uses donut since as far as I know, eclair doesn&amp;rsquo;t have a definition for the Dream (G1/ADP1) phone yet).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Storage Menagerie</title>
      <link>https://bobcopeland.com/blog/2010/02/storage-menagerie/</link>
      <pubDate>Tue, 09 Feb 2010 04:54:12 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1425</guid> 
      <description>&lt;p&gt;I recently found myself needing to become familiar with the disk layouts of a few filesystems for a future research project. At the same time, I wanted to experience the fail whale that is github.com (my other git trees are hosted on repo.or.cz, which is spare and of tenuous funding, but works just fine). So over the weekend I threw together &lt;a href=&#34;http://github.com/bcopeland/fszoo&#34;&gt;this little git tree&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not much there, just ext2 and yaffs2 so far. I chose the latter because I wanted to look at a log-structured filesystem, while simultaneously producing something useful for Android work. I plan to add btrfs shortly and maybe some other log FS. This is just junk code: if you really want to use these filesystems in FUSE, there are much better implementations. Also there&amp;rsquo;s a great hack out there to run the kernel FS implementations in userspace via UML.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New GPG Key</title>
      <link>https://bobcopeland.com/blog/2010/01/new-gpg-key/</link>
      <pubDate>Fri, 22 Jan 2010 21:49:13 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1422</guid> 
      <description>&lt;p&gt;After 10 years, I finally received an encrypted email from the ether. Which reminded me that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The key goes to &lt;a href=&#34;mailto:bobc@ieee.org&#34;&gt;bobc@ieee.org&lt;/a&gt;, which I no longer own&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There are probably numerous security holes with the old versions of gpg and/or Debian openssl used to generate the keypair&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The key is over 10 years old so NSA have cracked it long ago&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Thus, it has been revoked. Let it be widely disseminated that my new key fingerprint is:&lt;/p&gt;</description>
    </item>
    <item>
      <title>19110</title>
      <link>https://bobcopeland.com/blog/2010/01/19110/</link>
      <pubDate>Tue, 19 Jan 2010 14:02:34 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1418</guid> 
      <description>&lt;p&gt;Welcome belatedly to the tens. I suppose I should summarize the previous year as is my typical MO in January.&lt;/p&gt;
&lt;p&gt;We kicked off 2k9 freezing our appendages watching the inauguration in DC. Still worth it.&lt;/p&gt;
&lt;p&gt;Angeline settled in to her new private practice, wowing patients and colleagues alike with her acumen and meticulousness. At the same time, in a series of poor decisions, I gained a renewed respect for Clark Kent jobs as I went part time with mine to attend grad school.&lt;/p&gt;</description>
    </item>
    <item>
      <title>JBoss Hash</title>
      <link>https://bobcopeland.com/blog/2010/01/jboss-hash/</link>
      <pubDate>Mon, 04 Jan 2010 22:21:26 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1414</guid> 
      <description>&lt;p&gt;Here&amp;rsquo;s how to figure out the hashes of method names used by JBoss&amp;rsquo; RMI invoker from the shell. The first two numbers in the method signature form the length of the string. Maybe there&amp;rsquo;s a better way to do the backrefs in sed, but you do need to swap them around.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ echo $[`printf &amp;#34;0031ping(Ljava/lang/String;)V&amp;#34; |
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sha1sum |
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sed -e &amp;#34;s/(..)(..)(..)(..)(..)(..)(..)(..).*/0x87654321/g&amp;#34;`]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Don&amp;rsquo;t ask me why I figured that out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Numerology</title>
      <link>https://bobcopeland.com/blog/2009/12/numerology/</link>
      <pubDate>Wed, 30 Dec 2009 16:12:35 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1406</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m technically on break from school now, although I&amp;rsquo;m still putting the final polish on one last project. But things have slowed down enough that I can bore you with technical crap again.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s an interesting section of &lt;a href=&#34;http://plan9.bell-labs.com/cm/cs/tpop/&#34;&gt;TPOP&lt;/a&gt; wherein the authors discuss studying the &amp;ldquo;numerology&amp;rdquo; of a bug; that is, look for patterns in the data instead of just looking at the code. I&amp;rsquo;ve had a lot of practice with this idea lately when trying to decipher kernel crashes with nothing but an Oops message to go on (these being much easier than infrequent lockups with no output at all!). It&amp;rsquo;s quite useful for userspace as well, if you are using a language where memory corruption is a fact of life. To show why, here&amp;rsquo;s a lengthy anecdote about how I recently used the power of &lt;code&gt;man ascii&lt;/code&gt; to find and fix a memory corruption bug in about five minutes while racing to meet a project deadline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>job</title>
      <link>https://bobcopeland.com/blog/2009/11/job/</link>
      <pubDate>Tue, 03 Nov 2009 13:41:35 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1402</guid> 
      <description>&lt;p&gt;I love getting stuff like this in my inbox:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Must have skills:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Expert in C or C++ programming
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(Windows || Mac || Linux) system internals.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(Windows || Mac || Linux) kernel and device driver development
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Experienced in assembly and debugging
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Desired Skills: Experience writing/integrating MS SQL Stored
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Procedures into C/C++ software. C (especially object oriented
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;like abstraction with pointers).
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;lolz.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ath5k AP Mode</title>
      <link>https://bobcopeland.com/blog/2009/11/ath5k-ap-mode/</link>
      <pubDate>Sun, 01 Nov 2009 18:29:22 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1399</guid> 
      <description>&lt;p&gt;People seem to keep asking about this, despite there being a &lt;a href=&#34;http://wireless.kernel.org/en/users/Documentation/hostapd&#34;&gt;quality page on kernel.org&lt;/a&gt; on how to run an AP with any mac80211 driver. So for what it&amp;rsquo;s worth, here&amp;rsquo;s how my setup works. Note if you are seeing flakiness with certain clients, e.g. it works fine with a computer but not with your cell phone, it is likely there is some bug with the power saving handling. I&amp;rsquo;m currently working on a few such issues, so it may be fixed soon enough.&lt;/p&gt;</description>
    </item>
    <item>
      <title>me |= grad_school</title>
      <link>https://bobcopeland.com/blog/2009/10/me-grad_school/</link>
      <pubDate>Thu, 01 Oct 2009 18:04:38 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1397</guid> 
      <description>&lt;p&gt;I let the month of September elapse with nary a post. So in case you&amp;rsquo;re wondering, I&amp;rsquo;m still around and I just haven&amp;rsquo;t had time to return your emails yet. Instead, I&amp;rsquo;m busy getting destroyed by grad school, where I&amp;rsquo;ll be for the next seven {months/years} of my life.&lt;/p&gt;
&lt;p&gt;PS Happy birthday, Karen!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Constantly folded</title>
      <link>https://bobcopeland.com/blog/2009/08/constantly-folded/</link>
      <pubDate>Thu, 27 Aug 2009 01:24:17 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1387</guid> 
      <description>&lt;p&gt;I was poking around with the disassembler the other day, which is never a good idea. One of the things I looked at was the following bit in the RX hotpath for ath5k:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rxs-&amp;gt;qual = rs.rs_rssi * 100 / 35;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, that&amp;rsquo;s not a very significant calculation, and I doubt it will show up in profiles, but divides automatically trigger my &amp;ldquo;can we do better?&amp;rdquo; reflex. I was interested to see how gcc compiled this, because we have division by a constant, but we first have to multiply by a variable due to order of operations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl1251 performance</title>
      <link>https://bobcopeland.com/blog/2009/08/wl1251-performance/</link>
      <pubDate>Tue, 18 Aug 2009 03:18:46 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1383</guid> 
      <description>&lt;p&gt;After fixing the remaining ifup bug (as expected, it was easy), I have some initial numbers on the new kernel driver versus the stock vendor driver on the G1:
driveravg ping msnetperf mbit/stiwlan65.2317.53wl12518.5653.82
So, better on latency, worse on throughput. wl1251 is also quite a lot larger when taking all of cfg80211/mac80211 into account, though I didn&amp;rsquo;t spend any time trying to tweak the size in the build. Well, at least the code doesn&amp;rsquo;t make you want to poke your own eyes out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hang fixed</title>
      <link>https://bobcopeland.com/blog/2009/08/hang-fixed/</link>
      <pubDate>Mon, 17 Aug 2009 18:04:06 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1380</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://patchwork.kernel.org/patch/42064/&#34;&gt;These sorts of bugs&lt;/a&gt; can ruin your weekend, just ask Ange who had to listen to me mope yesterday. Of course, I spotted it right away when looking at it freshly during this morning&amp;rsquo;s commute. Now, &lt;code&gt;ifconfig wlan0 up; ifconfig wlan0 down; ifconfig wlan0 up&lt;/code&gt; still fails with wl1251, but it doesn&amp;rsquo;t hang and the rest looks tractable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl1251_sdio merged</title>
      <link>https://bobcopeland.com/blog/2009/08/wl1251_sdio-merged/</link>
      <pubDate>Tue, 11 Aug 2009 03:27:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1378</guid> 
      <description>&lt;p&gt;The SDIO patches for TI 1251 (Android wifi chipset) are finally merged into wireless-testing, so they should be a lot easier to hack on now. That means the driver should make it into 2.6.32, though at a rather experimental stage. I did fix some crashes on ifup/ifdown since last posting, but there&amp;rsquo;s always more work to do. Current todo list includes better behavior for non-polling controllers (make the irq have a top-half), tracking down a device hang on reinitialization, pushing the msm_wifi.ko module, and on and on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sausage fest</title>
      <link>https://bobcopeland.com/blog/2009/07/sausage-fest/</link>
      <pubDate>Sun, 26 Jul 2009 01:30:59 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1372</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3755828365/&#34; title=&#34;5000 Calories of Awesome by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;5000 Calories of Awesome&#34; loading=&#34;lazy&#34; src=&#34;http://farm3.static.flickr.com/2443/3755828365_55d51015a4_m.jpg&#34;&gt;&lt;/a&gt; Whenever I have some occasion at which I am to provide a side item or hors d&amp;rsquo;Å“uvres, I consider making the quintessential party treat: sausage balls. I think these are a Southern US mainstay, as no one around here seems to have encountered them before, whereas in my youth they made an all-too-brief appearance at many a gathering. Take it from me and my waistline, these things are full of win.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Now bionic</title>
      <link>https://bobcopeland.com/blog/2009/07/now-bionic/</link>
      <pubDate>Sun, 19 Jul 2009 19:12:18 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1363</guid> 
      <description>&lt;p&gt;Kalle has &lt;a href=&#34;http://marc.info/?l=linux-wireless&amp;amp;m=124785700109009&amp;amp;w=2&#34;&gt;posted&lt;/a&gt; a rebased version of my SDIO patches on top of the latest wireless-testing. I&amp;rsquo;ve done a little bit of testing with it &amp;ndash; the driver starts up and loads fine, but once the interface goes down, it&amp;rsquo;s busted:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;6&amp;gt;[  980.884302] wl1251_sdio mmc0:0001:1: firmware: requesting wl1251-fw.bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;6&amp;gt;[  981.036448] wl1251_sdio mmc0:0001:1: firmware: requesting wl1251-nvs.bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[  981.045449] init: untracked pid 354 exited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[  981.074408] init: untracked pid 355 exited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  981.331853] wl1251: 151 tx blocks at 0x3b788, 35 rx blocks at 0x3a780
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  981.339300] wl1251: firmware booted (Rev 4.0.4.3.5)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  984.702740] wlan0: direct probe to AP 00:1a:70:da:a9:cd (try 1)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  984.901621] wlan0: direct probe to AP 00:1a:70:da:a9:cd (try 2)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  985.101583] wlan0: direct probe to AP 00:1a:70:da:a9:cd (try 3)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  985.301617] wlan0: direct probe to AP 00:1a:70:da:a9:cd timed out
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[ 1024.802837] wl1251: down
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1044.856640] init: untracked pid 358 exited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1050.033886] mmc0: Data timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1050.037701] wl1251: ERROR sdio write failed (-110)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1051.045674] mmc0: Data timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1051.049519] wl1251: ERROR sdio write failed (-110)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1052.057673] mmc0: Data timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1052.061518] wl1251: ERROR sdio write failed (-110)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Exploring this further turned into a rather long yak shaving session because I wanted to get iw on the phone to do more manual tests, and I wanted to link it dynamically against bionic, the Android&amp;rsquo;s fork of a BSD libc. Here were a few interesting discoveries found along the way:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wifi UI Part 0</title>
      <link>https://bobcopeland.com/blog/2009/07/wifi-ui-part-0/</link>
      <pubDate>Mon, 13 Jul 2009 04:13:13 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1359</guid> 
      <description>&lt;p&gt;Work on the Android wireless driver is stalled for now as kvalo is rebasing the patches. I believe the next step will be to take the platform code, which I have temporarily built into a module called msm_wifiÂ¸ and turn it into a platform rfkill device. Or something like that &amp;ndash; this is what he and I came up with at the wireless summit. Then there&amp;rsquo;s an annoying stack trace because free_irq() happens in common code, but sdio irqs are somewhat different so that needs to be pushed down into the interface layer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>We&#39;re back</title>
      <link>https://bobcopeland.com/blog/2009/07/were-back/</link>
      <pubDate>Sat, 04 Jul 2009 00:11:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/2009/07/were-back/</guid> 
      <description>&lt;p&gt;A little bit of technical difficulty today while updating the blog software, but all seems to be in order now. Did I mention how non-awesome the wordpress codebase is?&lt;/p&gt;</description>
    </item>
    <item>
      <title>ath5k performance history</title>
      <link>https://bobcopeland.com/blog/2009/07/ath5k-performance-history/</link>
      <pubDate>Fri, 03 Jul 2009 17:35:04 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1351</guid> 
      <description>&lt;p&gt;I was curious how well ath5k has been improving since its release, so I hacked up a little script to associate and do five minute iperf runs from /etc/rc.local. Looks pretty good so far (w-t is wireless-testing plus 5 or 6 extra patches I have brewing). The script is pretty kludgy, but may form the basis for some automatic build/regression testing in the future.
&lt;img alt=&#34;ath5k iperf chart&#34; loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/ath5k_iperf.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Berlin eats</title>
      <link>https://bobcopeland.com/blog/2009/07/berlin-eats/</link>
      <pubDate>Thu, 02 Jul 2009 16:03:05 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1346</guid> 
      <description>&lt;p&gt;Ange and I are back in the States after our wonderful break abroad. Now we&amp;rsquo;re home again, delighting in such missed American excesses as air conditioning, queen-sized beds, and monolingualism. The latter, actually, is our biggest regret of the trip: the next time we visit a country we&amp;rsquo;ll have to plan ahead and take a few language courses. Even so, we picked up the basics during our immersion, achieving a fluency on par with, say, a one-year-old who takes the subway a lot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>That refreshing Georgia spirit</title>
      <link>https://bobcopeland.com/blog/2009/06/that-refreshing-georgia-spirit/</link>
      <pubDate>Tue, 30 Jun 2009 09:22:27 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1344</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3674917172/&#34; title=&#34;The Spirit of Georgia by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;The Spirit of Georgia&#34; loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3649/3674917172_cc1fa7faf7_m.jpg&#34;&gt;&lt;/a&gt; One of our guidebooks claimed that while Coca-cola was ever present, Berliners drink their own local soft drinks. We haven&amp;rsquo;t found that to be the case; it seems only Coke products are here. Of course there are minor differences: regular Coke is made with sugar, Diet Coke (called &amp;ldquo;Coke light&amp;rdquo; here) has saccharine. Then there&amp;rsquo;s the stuff you can&amp;rsquo;t get back home (outside of World of Coke), such as &amp;ldquo;Mezzo Mix&amp;rdquo; which is essentially Coke with orange. I found this one, &amp;ldquo;The Spirit of Georgia&amp;rdquo; our first day here. Despite many years living in Georgia, I was not quite sure what our collective spirit was, but now I know it is yellow-tinted Sprite.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello from Berlin</title>
      <link>https://bobcopeland.com/blog/2009/06/hello-from-berlin/</link>
      <pubDate>Sat, 27 Jun 2009 21:02:34 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1341</guid> 
      <description>&lt;p&gt;Angeline and I arrived safely to Berlin a couple of days ago. So far it&amp;rsquo;s an interesting city. It would definitely be useful to have more than a passing familiarity with the German language, but most people understand enough English that we get by. The European style lights and bath fixtures take a bit of thought to operate. Train system is very extensive, and despite the presence of graffiti almost everywhere, the trains themselves are very clean. German television consists primarily of overdubbed US market cast-offs (&amp;ldquo;The Nanny&amp;rdquo; is inexplicably on nearly 24/7). Food so far has been hit or miss, some good stuff, some rather average; tomorrow night is our most anticipated dinner.&lt;/p&gt;</description>
    </item>
    <item>
      <title>All accounted for</title>
      <link>https://bobcopeland.com/blog/2009/06/all-accounted-for/</link>
      <pubDate>Tue, 23 Jun 2009 14:30:57 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1338</guid> 
      <description>&lt;p&gt;As a traveler through the DC Metro system in yesterday&amp;rsquo;s evening rush hour, I learned that Metro employees euphemize &amp;ldquo;horrible train wreck&amp;rdquo; as &amp;ldquo;train experiencing mechanical problems.&amp;rdquo; To what end? It just sounds callous, and all of the passengers on my unaffected route already knew of the incident.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kernel 2.6.30</title>
      <link>https://bobcopeland.com/blog/2009/06/kernel-2630/</link>
      <pubDate>Tue, 16 Jun 2009 15:54:57 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1335</guid> 
      <description>&lt;p&gt;Linux kernel 2.6.30 is out, featuring the best mainline support for ath5k yet. I recommend if you do use wireless with 2.6.30 (or .29), that you also grab &lt;a href=&#34;http://lkml.org/lkml/2009/6/5/269&#34;&gt;this patch&lt;/a&gt; which fixes a nasty memory corruption issue. That one haunted me for months but it was a great feeling to finally nail it down. Of course the fix turned out to be quite simple. It should be hitting stable in short order.&lt;/p&gt;</description>
    </item>
    <item>
      <title>More Recent Readings</title>
      <link>https://bobcopeland.com/blog/2009/06/more-recent-readings/</link>
      <pubDate>Sun, 14 Jun 2009 21:53:38 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1328</guid> 
      <description>&lt;p&gt;&lt;em&gt;The Island of Dr. Moreau&lt;/em&gt;, H. G. Wells.
\&lt;em&gt;\&lt;/em&gt;\* Interesting how-to manual for teaching your pets to talk.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dracula&lt;/em&gt;, Bram Stoker.
\&lt;em&gt;\&lt;/em&gt;\&lt;em&gt;\&lt;/em&gt; Classic tale of bloodlust.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Book of Negroes&lt;/em&gt;, Lawrence Hill.
\&lt;em&gt;\&lt;/em&gt;\&lt;em&gt;\&lt;/em&gt; Like Uncle Tom&amp;rsquo;s Cabin but not quite as sad.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I, Robot,&amp;rdquo; Cory Doctorow.
\&lt;em&gt;\&lt;/em&gt;\* Cory Doctorow pretends to be Asimov, but it&amp;rsquo;s not as bad as you&amp;rsquo;d think.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Call of Cthulu,&amp;rdquo; H. P. Lovecraft.
\&lt;em&gt;\&lt;/em&gt; Do I get kicked out of the nerd club for thinking this was dumb?&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl12xx howto</title>
      <link>https://bobcopeland.com/blog/2009/05/wl12xx-howto/</link>
      <pubDate>Sun, 31 May 2009 00:03:55 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1325</guid> 
      <description>&lt;p&gt;So, wl12xx definitely works including transmission, but I still haven&amp;rsquo;t fixed the rough edges in the driver. However, I did bother to make a semi-permanent &lt;a href=&#34;https://bobcopeland.com/blog/android_wifi.html&#34;&gt;writeup&lt;/a&gt; on how to build and use wl12xx on the G1 as it currently stands. I hope to clean up the warts and submit the patchset next week. Meanwhile, I have a lot of ath5k bugs to work on. Enough for today though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unvacationed</title>
      <link>https://bobcopeland.com/blog/2009/05/unvacationed/</link>
      <pubDate>Fri, 29 May 2009 02:20:26 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/2009/05/unvacationed/</guid> 
      <description>&lt;p&gt;Ange and I just returned from a long weekend in Florida with my family. After a perfect storm of flight delays and down computers, and US Airways personnel blaming the passengers over the intercom for ruining their holiday, we arrived in the state a mere six hours late. Everything from then on was smooth sailing though: sparkling sandy beaches, excellent weather, lots of playtime with the kids, and so on. My nephews&amp;rsquo; superhero kites did in fact fly &amp;ndash; after a trip to the local kite store to pick up some tails. We got in a full day of standing in line at Disney World, and an afternoon traipsing through ye olde shopping centre of St. Augustine. And I mostly didn&amp;rsquo;t touch the computer the whole time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First scan</title>
      <link>https://bobcopeland.com/blog/2009/05/first-scan/</link>
      <pubDate>Thu, 21 May 2009 19:36:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1318</guid> 
      <description>&lt;p&gt;Success! Scanning with wl12xx on my ADP1 works. I&amp;rsquo;ll post more later but here&amp;rsquo;s a teaser. That&amp;rsquo;s a real SSID, however apt.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# ./iwlist wlan0 scan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wlan0     Scan completed :
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          Cell 01 - Address: 00:0F:B5:63:30:4E
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Channel:11
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Frequency:2.462 GHz (Channel 11)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Quality=14/70  Signal level=-96 dBm
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Encryption key:on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    ESSID:&amp;#34;SERENDIPITY&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                              24 Mb/s; 36 Mb/s; 54 Mb/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Mode:Master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Extra:tsf=000001dec907e41c
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Extra: Last beacon: 160ms ago
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    (Unknown Wireless Token 0x8C05)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>wl12xx update</title>
      <link>https://bobcopeland.com/blog/2009/05/wl12xx-update/</link>
      <pubDate>Sat, 16 May 2009 21:42:54 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1315</guid> 
      <description>&lt;p&gt;I won&amp;rsquo;t claim success until I actually transfer data, but so far, it looks like wl12xx SDIO support is baked:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.247063&lt;/span&gt;] cfg80211: Using &lt;span style=&#34;color:#66d9ef&#34;&gt;static&lt;/span&gt; regulatory domain info
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.253472&lt;/span&gt;] cfg80211: Regulatory domain: US
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.262810&lt;/span&gt;] 	(start_freq &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; end_freq &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; bandwidth), (max_antenna_gain, max_eirp)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.271568&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;2402000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2472000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2700&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.279472&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5170000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5190000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.287254&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5190000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5210000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.294975&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5210000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5230000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.302482&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5230000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5330000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.310264&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5735000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5835000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;3000&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.317894&lt;/span&gt;] cfg80211: Calling CRDA &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; country: US
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.684807&lt;/span&gt;] lib80211: common routines &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; IEEE802&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt; drivers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.690972&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;NULL&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.744713&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;TKIP&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.787467&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WEP&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.845267&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;CCMP&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.251671&lt;/span&gt;] wl12xx: registering driver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.256462&lt;/span&gt;] wifi_probe
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.259208&lt;/span&gt;] trout_wifi_power: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.569452&lt;/span&gt;] trout_wifi_reset: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.623681&lt;/span&gt;] trout_wifi_set_carddetect: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.628290&lt;/span&gt;] mmc0: card_present &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.631921&lt;/span&gt;] mmc0: Slot status change detected (&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.653283&lt;/span&gt;] mmc0: Command timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.664788&lt;/span&gt;] mmc0: card claims to support voltages below the defined range&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; These will be ignored&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.678429&lt;/span&gt;] mmc0: SDIO card claims to support the incompletely defined &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;low voltage range&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; This will be ignored&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.692773&lt;/span&gt;] mmc0: new SDIO card at address &lt;span style=&#34;color:#ae81ff&#34;&gt;0001&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.702813&lt;/span&gt;] wl12xx: &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; probe
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.728844&lt;/span&gt;] phy0: Selected rate control algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;minstrel&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.738915&lt;/span&gt;] wl12xx: loaded
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.743919&lt;/span&gt;] wl12xx: initialized
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Unfortunately, I can&amp;rsquo;t really test it yet because the wpa_supplicant already on the phone doesn&amp;rsquo;t support -Dwext or -Dnl80211, and there are no wireless-tools. So I need to cross-compile those before attempting to associate. In the meantime, here&amp;rsquo;s &lt;a href=&#34;https://bobcopeland.com/blog/kernel/wl/20090516/wl12xx_sdio_2.patch&#34;&gt;a very rough patch&lt;/a&gt; that implements the goods from wireless-testing wl12xx. I need to work on read() and write() - right now they are a copy of what is in the google driver because it appears the host driver has issues with RW_EXTENDED. I don&amp;rsquo;t believe the readb/writeb fallbacks should be strictly necessary. Ditto with the platform code, that needs a slightly better solution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Annoying Startup Chimes</title>
      <link>https://bobcopeland.com/blog/2009/05/on-annoying-startup-chimes/</link>
      <pubDate>Wed, 06 May 2009 14:07:14 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1309</guid> 
      <description>&lt;p&gt;I like my MacBook well enough, but it certainly does have its share of issues. One such bile-inspiring misfeature is that it sees fit to loudly blare its &amp;ldquo;I&amp;rsquo;m a Mac!&amp;rdquo; chime every time you turn the thing on. According to those in the know, this is actually a &lt;em&gt;feature&lt;/em&gt; to let you know the computer started properly. Hmm, I see a big Apple logo, screen is on, I think it&amp;rsquo;s started. So, Mr. Computer, how about making the big ugly noise when you know it &lt;em&gt;isn&amp;rsquo;t&lt;/em&gt; working instead, and save us the ear strain the other 99.9% of the time? Did they really think no one would want to use the laptop in, say, a library, or a classroom?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Spiderman kite</title>
      <link>https://bobcopeland.com/blog/2009/05/spiderman-kite/</link>
      <pubDate>Mon, 04 May 2009 01:45:03 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1302</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3498428381/&#34; title=&#34;Batman, Meet Spiderman by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Batman, Meet Spiderman&#34; loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3615/3498428381_bf0cd9252f_m.jpg&#34;&gt;&lt;/a&gt; I finished up the bridle and spars for the Batman kite and moved on to the second featuring a Spiderman logo (actually, the black Spiderman logo, but who&amp;rsquo;s counting). Until now, I have done all of my appliquÃ© using a technique known as reverse appliquÃ©. With this technique, I would create a stack of all of the layers of ripstop nylon that will be visible, usually with the lightest colors on the bottom. Then, I&amp;rsquo;d draw the design on the top layer in washable pencil, sew along those lines, then cut layers off the top one at a time until the proper colors show through. &lt;a href=&#34;http://www.flickr.com/photos/bluesterror/933756591/&#34;&gt;This photo&lt;/a&gt; is partway through that process on the Snorlax rok.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl12xx merged</title>
      <link>https://bobcopeland.com/blog/2009/04/wl12xx-merged/</link>
      <pubDate>Thu, 30 Apr 2009 22:25:27 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1299</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit 00d8979d598d5461a06d800c779f15e03888d9d8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Author: Kalle Valo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Date:   Wed Apr 29 23:33:31 2009 +0300
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wl12xx: add driver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wl12xx is a driver for TI wl1251 802.11 chipset designed for embedded
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    devices, supporting both SDIO and SPI busses. Currently the driver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    supports only SPI. Adding support 1253 (the 5 GHz version) should be
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    relatively easy. More information here:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=4711
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (Collapsed original sequence of pre-merge patches into single commit for
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    initial merge. -- JWL)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Signed-off-by: Kalle Valo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Signed-off-by: Bob Copeland
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Signed-off-by: John W. Linville
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hooray, wl12xx is now in wireless-testing! As the commit log states, SDIO support isn&amp;rsquo;t there yet, because I haven&amp;rsquo;t written it yet. Well, I wrote some of it, but nothing worth even compile-testing yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Batman Eddy</title>
      <link>https://bobcopeland.com/blog/2009/04/batman-eddy/</link>
      <pubDate>Mon, 27 Apr 2009 04:14:20 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1295</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3478169243/&#34; title=&#34;Batman kite by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Batman kite&#34; loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3386/3478169243_da82c20c9a_m.jpg&#34;&gt;&lt;/a&gt; I made my first kite in over a year this afternoon (yes, I am quite rusty). I plan to make a stack of these kites for my nephews with various super hero designs. This is the first and easiest one, which took about 4 hours of work today from start to finish. It isn&amp;rsquo;t perfect, the sides were a little uneven when I cut the sail which can be seen in the final product. Also I think appliquÃ© really looks much better with the black outlines that I&amp;rsquo;ve used on my previous kites, but I really don&amp;rsquo;t have the time/patience to add another layer of ripstop to these just for that effect.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Closer</title>
      <link>https://bobcopeland.com/blog/2009/04/closer/</link>
      <pubDate>Sun, 19 Apr 2009 16:12:19 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1293</guid> 
      <description>&lt;p&gt;I was in fact wrong that my self-compiled android kernels weren&amp;rsquo;t booting &amp;ndash; they were. But they do fail somewhere in init:. Unfortunately, when you boot the phone, you don&amp;rsquo;t have any idea why it fails because there&amp;rsquo;s no console by default. It would&amp;rsquo;ve been a lot easier to see this if I had a serial cable, but I did finally remember that I could use fbcon with the smallest font and CONFIG_PRINTK_DELAY to see the messages scroll by. And so now I see the problem:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manual git-svn clone</title>
      <link>https://bobcopeland.com/blog/2009/04/manual-git-svn-clone/</link>
      <pubDate>Thu, 09 Apr 2009 15:00:46 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1290</guid> 
      <description>&lt;p&gt;I finally decided to do something about the five independent git trees I had on my hard drive at work. The problem is they are all really branches of the same subversion repository, and moving patches back and forth between them meant I had added them all as git remotes to each other. The meta problem is that we didn&amp;rsquo;t always branch off of the same trunk directory, from back when we were drinking the &amp;ldquo;just snapshots of directories&amp;rdquo; subversion kool-aid, so &lt;code&gt;git svn clone&lt;/code&gt; doesn&amp;rsquo;t do the right thing for our branches.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emulator</title>
      <link>https://bobcopeland.com/blog/2009/04/emulator/</link>
      <pubDate>Thu, 02 Apr 2009 03:01:59 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1281</guid> 
      <description>&lt;p&gt;The Android source code includes at least two ARM sub-architectures in their kernel tree. The one actually used on the G1 hardware is derived from the Qualcomm MSM machine type, at least part of which is in the mainline. Then there is &amp;ldquo;goldfish,&amp;rdquo; which appears to be just a pseudo machine used only for the emulator. While I haven&amp;rsquo;t had a lot of success with the MSM stuff booting on the phone so far, building the emulator kernel is not too hard once you know where to look:&lt;/p&gt;</description>
    </item>
    <item>
      <title>2.6.30 preview</title>
      <link>https://bobcopeland.com/blog/2009/03/2630-preview/</link>
      <pubDate>Wed, 01 Apr 2009 03:39:42 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1277</guid> 
      <description>&lt;p&gt;Now that Linux 2.6.29 just went out the door, here&amp;rsquo;s what I have prepared for 2.6.30 in the wireless arena. Of note, mac80211 now has suspend/resume support so a lot of nasty hacks in the drivers can go away. Most of the rest is just bug fixes, some of them for panics and soft lockups.&lt;/p&gt;
&lt;p&gt;The work I&amp;rsquo;m excited about this week is scheduled for 2.6.31 &amp;ndash; we extracted a bunch of ath9k regulatory infrastructure into a common module that all of the Atheros drivers (including the new ar9170) will use. This is the first step in getting a lot of that common code into a library. Hooray! Also Nick has some great improvements to the RF stuff queued up, so the driver is behaving much better.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upstream Last</title>
      <link>https://bobcopeland.com/blog/2009/03/upstream-last/</link>
      <pubDate>Tue, 31 Mar 2009 14:28:08 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1274</guid> 
      <description>&lt;p&gt;Building a booting kernel for Android using their own code still eludes me. I guess it would help if I knew anything at all about the ARM platform, as I have no idea what I am doing. Still, the code dump fails the &amp;ldquo;anyone should be able to build it&amp;rdquo; test rather strongly, judging from posts on the android mailing lists.&lt;/p&gt;
&lt;p&gt;Build problems aside, the more egregious failure of the Android open source project is the lack of the &amp;ldquo;upstream first&amp;rdquo; mentality. Most Linux software providers follow this strategy to a large extent, which is simply: any patch that goes in my distribution should go to the mainline kernel first. The benefits are obvious: no need to maintain a fork forever, and everyone gets the goods as soon as possible. Even if the patch only serves the developer&amp;rsquo;s own interests, upstreaming it often has the benefit of vetting the interfaces and producing more universal APIs (the wakelocks discussion that followed the code dump is an example of this done backwards).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recent Readings</title>
      <link>https://bobcopeland.com/blog/2009/03/recent-readings/</link>
      <pubDate>Tue, 24 Mar 2009 12:46:19 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1237</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://openlibrary.org/b/OL10426306M&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://covers.openlibrary.org/b/olid/OL10426306M-S.jpg?default=false&#34;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&#34;http://openlibrary.org/b/OL10426306M&#34; title=&#34;Click to view title in Open Library&#34;&gt;&lt;em&gt;The Historian&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt; &lt;strong&gt;, &lt;a href=&#34;http://openlibrary.org/a/OL1437837A&#34; title=&#34;Click to view author in Open Library&#34;&gt;Elizabeth Kostova&lt;/a&gt;&lt;/strong&gt;; Back Bay/Little, Brown &amp;amp; Co.&lt;/p&gt;
&lt;p&gt;\&lt;em&gt;\&lt;/em&gt;\&lt;em&gt;\&lt;/em&gt; A wonderfully paced horror novel marred only by the discovery that Dracula is a big nerd.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://openlibrary.org/b/OL3691429M&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://covers.openlibrary.org/b/olid/OL3691429M-S.jpg?default=false&#34;&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&#34;http://openlibrary.org/b/OL3691429M&#34; title=&#34;Click to view title in Open Library&#34;&gt;&lt;em&gt;The Shadow Of The Wind&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt; &lt;strong&gt;, &lt;a href=&#34;http://openlibrary.org/a/OL1518010A&#34; title=&#34;Click to view author in Open Library&#34;&gt;Carlos Ruiz Zafo?n&lt;/a&gt;&lt;/strong&gt;; Penguin Press&lt;/p&gt;
&lt;p&gt;\&lt;em&gt;\&lt;/em&gt;\* Boy finds more than he bargained for in a dusty old library (a book to be exact).&lt;/p&gt;</description>
    </item>
    <item>
      <title>First sign of spring</title>
      <link>https://bobcopeland.com/blog/2009/03/first-sign-of-spring/</link>
      <pubDate>Sun, 22 Mar 2009 23:03:24 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1233</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3376546021/&#34; title=&#34;KFP Coke Stash by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;KFP Coke Stash&#34; loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3609/3376546021_5f61bdabeb_m.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finally, kosher Coke is back!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fit to be TIed</title>
      <link>https://bobcopeland.com/blog/2009/03/fit-to-be-tied/</link>
      <pubDate>Sun, 22 Mar 2009 15:55:31 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1228</guid> 
      <description>&lt;p&gt;The Android G1 phone uses the TI 1251 for Wifi.Â Â  This is pretty useful for when you need an internet connection for the laptop and there are no alternatives: you can bridge the wifi and the 3G connection and then connect to the wifi device using ad-hoc mode.Â  However, I normally keep the wireless off because it sucks down battery like mad.&lt;/p&gt;
&lt;p&gt;But Kalle Valo from Nokia is working on a driver for the chip called wl12xx, and he is putting a lot of effort into making sure it uses power conservatively (presumably some future version of the Nokia internet tablets will be using this device).Â  This driver is SPI, whereas the G1 uses the same chip in SDIO mode.Â  So I started writing the SDIO port for the driver &amp;ndash; hopefully it will be ready when wl12xx is included in mainline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Re-opening</title>
      <link>https://bobcopeland.com/blog/2009/03/re-opening/</link>
      <pubDate>Mon, 16 Mar 2009 23:15:24 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/2009/03/re-opening/</guid> 
      <description>&lt;p&gt;Welcome old and new readers to my blog&amp;rsquo;s new home. This used to be hosted elsewhere on the net, but I eventually grew annoyed with that provider. Most of the old content survived the move (by the way, a rather fearsome and annoying task. I learned more than I ever wanted to know about the wordpress codebase last weekend. Oh, don&amp;rsquo;t turn on threaded comments, it&amp;rsquo;s borked.)&lt;/p&gt;
&lt;p&gt;So why the title? This blog began without any real theme, just random observations, trivialities of my life, and so on. Lately however it has also been a useful place to discourse on my technical projects and other computer age detritus. So insignificant bits, both the minutia of the day to day, and the rightmost digits in a binary number. Well, it seemed like a good idea at the time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FiOS</title>
      <link>https://bobcopeland.com/blog/2009/03/fios/</link>
      <pubDate>Thu, 12 Mar 2009 03:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=582</guid> 
      <description>&lt;p&gt;Dear Verizon,&lt;/p&gt;
&lt;p&gt;Thank you so much for the thoughtful racial profiling you sent us. However, despite my wife&amp;rsquo;s last name, no one at our address can read Chinese. Can you send us your ads in English again so that we may more easily peruse and purchase your products? Or better yet, not send them at all? Warm regards, us.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backup re-revisited</title>
      <link>https://bobcopeland.com/blog/2009/03/backup-re-revisited/</link>
      <pubDate>Wed, 11 Mar 2009 20:43:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=581</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve reconsidered using git as my backup choice du jour. The main problem (and feature) of using git was having a checked out repo in my home directory. I found I was forever worried, given my admittedly horrid muscle memory habit of doing &amp;lsquo;git reset &amp;ndash;hard&amp;rsquo; periodically inside source trees, that I&amp;rsquo;d accidentally do it from the wrong directory and lose any recent work. Luckily, I never did that.&lt;/p&gt;
&lt;p&gt;Two obvious solutions: don&amp;rsquo;t use a checkout in the home directory, instead using rsync to the repo; or use a wrapper/custom command name for the git-as-backup program to avoid accidents. Well, I went with the third option: use rdiff-backup like a normal person. It&amp;rsquo;s packaged by Fedora and Debian, so I only needed a small tweak to my backup scripts to make that happen every night. And someone wrote a FUSE filesystem (archfs) to mount the backups as normal directories, so there&amp;rsquo;s no real loss of convenience under this scheme.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sizeof()</title>
      <link>https://bobcopeland.com/blog/2009/02/sizeof/</link>
      <pubDate>Tue, 17 Feb 2009 21:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=580</guid> 
      <description>&lt;p&gt;Renaming your class variables to shorter names reduces your EJB network footprint. Finally, those people who said that removing vowels from variable names improved performance are vindicated! Ok, well they were correct already in Javascript, but that doesn&amp;rsquo;t count.&lt;/p&gt;</description>
    </item>
    <item>
      <title>is-not-a</title>
      <link>https://bobcopeland.com/blog/2009/02/is-not-a/</link>
      <pubDate>Tue, 17 Feb 2009 03:18:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=579</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://asserttrue.blogspot.com/2009/02/inheritance-as-antipattern.html&#34;&gt;Let&amp;rsquo;s dump the last useful feature in Java&lt;/a&gt;. What castles in the sky are people building these days?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Smolt</title>
      <link>https://bobcopeland.com/blog/2009/02/smolt/</link>
      <pubDate>Wed, 11 Feb 2009 21:57:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=578</guid> 
      <description>&lt;p&gt;The &lt;a href=&#34;http://smolts.org/static/stats/stats.html&#34;&gt;stats from smolt&lt;/a&gt; are pretty interesting if, like all stats, entirely useless. Some curiousities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;i686 still beats x86_64 by a ton&lt;/li&gt;
&lt;li&gt;A (very) few people change their runlevel&lt;/li&gt;
&lt;li&gt;Acer is high in the vendor list, I guess they are still killing the netbook market&lt;/li&gt;
&lt;li&gt;People don&amp;rsquo;t configure their swap appropriately&lt;/li&gt;
&lt;li&gt;SMP is now the norm, outside of embedded kit anyway&lt;/li&gt;
&lt;li&gt;I want a 4+ GHz cpu&lt;/li&gt;
&lt;li&gt;No one uses omfs :( &amp;hellip;I guess I need to submit a profile.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Serial offender</title>
      <link>https://bobcopeland.com/blog/2009/02/serial-offender/</link>
      <pubDate>Sun, 08 Feb 2009 14:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=577</guid> 
      <description>&lt;p&gt;There comes a time in every budding kernel developer&amp;rsquo;s life that he has to debug a mysterious lockup, and nothing will do but a serial console. Well, for my future recollections, here&amp;rsquo;s how to set it up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Get out your handy pl2303-based usb to serial adapter, because chances are good your laptop doesn&amp;rsquo;t have a serial port&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build your kernel with CONFIG_USB_SERIAL_CONSOLE=y&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add to your kernel command line: console=ttyUSB0,115200 console=tty0&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hook your computer up to the other computer via a null-modem cable (man, these are pricey these days, $30 for something no one still uses?)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set up minicom to use your serial port, say ttyS0, at 115200 baud, 8N1, and turn off all the modem init strings&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don&amp;rsquo;t bother futzing with getty, you only need it if you want to also allow logins over serial. For logging, it&amp;rsquo;s unnecessary&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    <item>
      <title>The game</title>
      <link>https://bobcopeland.com/blog/2009/02/the-game/</link>
      <pubDate>Mon, 02 Feb 2009 15:14:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=576</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3247168939/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3378/3247168939_30a85956be_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3247168939/&#34;&gt;Capitals warm-up&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Did you see the game last night? Yeah, we were there! Did you see us on TV? Huh, what half-time show? Ohhh&amp;hellip;. you are talking about that other game, what is it called, footsball? Nah, didn&amp;rsquo;t watch that one. But we did see Ovechkin get his second hat trick of the year in a 7-4 rout of the Senators yesterday. So be sure to get your 14 free toppings on your pizza this week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android</title>
      <link>https://bobcopeland.com/blog/2009/01/android/</link>
      <pubDate>Mon, 26 Jan 2009 03:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=575</guid> 
      <description>&lt;p&gt;I haven&amp;rsquo;t had a chance to replace the kernel on my phone yet, but here is some useful software I recently installed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://forum.xda-developers.com/showthread.php?t=474470&#34;&gt;iptables + dnsmasq + IBSS mode = wireless tethering&lt;/a&gt;. (PPP over USB should also be an option, but I&amp;rsquo;m too lazy to figure that out.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://benno.id.au/blog/2007/11/14/android-busybox&#34;&gt;Android build of busybox. Yay for vi!&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of that is original with me but both are very useful.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Post-(or is it peri?)-bama</title>
      <link>https://bobcopeland.com/blog/2009/01/post-or-is-it-peri-bama/</link>
      <pubDate>Tue, 20 Jan 2009 23:11:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=574</guid> 
      <description>&lt;p&gt;We&amp;rsquo;re back from the inauguration, which was a surprisingly easy affair. Ange &amp;amp; I got up at the crack of 7am, a blustery morning with temps in the mid-teens. We walked across the street to our nearby Metro station, where we quickly snagged a train with a few empty seats. It took about 40 minutes to get to Farragut North, where we disembarked and walked west a couple of blocks, then south on 19th street. After a 30 minute walk we reached the throngs on the Mall. We set up camp against barricades near the World War II memorial, where the crowd wasn&amp;rsquo;t too bad and where there were three jumbotrons re-broadcasting the Lincoln Memorial service from Sunday. So we waited 3 hours, sang along with Garth Brooks, bid the feeling in our toes farewell, and reflected upon the amusing signage of the ever-present nutjobs until the main event.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prebama</title>
      <link>https://bobcopeland.com/blog/2009/01/prebama/</link>
      <pubDate>Mon, 19 Jan 2009 15:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=573</guid> 
      <description>&lt;p&gt;So it&amp;rsquo;s inauguration eve in DC. You can tell because all of the subway ads have some &amp;lsquo;Welcome to DC&amp;rsquo; theme, and there are portable toilets spread all throughout the city. However, the most obvious sign of the new administration is all the utter crap you can buy with the First Family&amp;rsquo;s picture on it: key chains, mugs, postcards, buttons, playing cards, shirts, hats, knit caps, underwear and neckties. Radio Shack is even advertising: &amp;ldquo;Get your inauguration supplies here!&amp;rdquo; (you know, in case you need some speaker wire for the weekend). I hope he gets royalties somehow. Angeline and I are planning on braving the crowds tomorrow to hang with the groundlings in the non-ticketed section. We&amp;rsquo;ll see how that goes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pointless calendar increment</title>
      <link>https://bobcopeland.com/blog/2009/01/pointless-calendar-increment/</link>
      <pubDate>Fri, 02 Jan 2009 16:52:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=572</guid> 
      <description>&lt;p&gt;Another year has passed, so it&amp;rsquo;s time to take stock, and make soup from it.&lt;/p&gt;
&lt;p&gt;In 2008, we downsized by selling my house, gave away lots of stuff, drove less, and called Angeline&amp;rsquo;s 700 sq ft apartment home. I&amp;rsquo;d like to continue the trend of reducing even while we try to find a slightly larger place.&lt;/p&gt;
&lt;p&gt;Angeline landed her first real job after 14 years of training, receiving offers from every place she interviewed. She&amp;rsquo;ll begin at a private practice in Rockville in the middle of this year (if you have diabetes, I know a great endocrinologist!). We&amp;rsquo;re very excited and hope this practice will be a great place to work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Toy</title>
      <link>https://bobcopeland.com/blog/2008/12/new-toy/</link>
      <pubDate>Sat, 20 Dec 2008 15:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=571</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3122232247/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3267/3122232247_4c9c476578_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/3122232247/&#34;&gt;Mutt&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After two weeks my developer&amp;rsquo;s G1 finally came in. Finally, I can use my 1990s text email client from a cell phone.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Komi</title>
      <link>https://bobcopeland.com/blog/2008/12/komi/</link>
      <pubDate>Sat, 20 Dec 2008 14:31:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=570</guid> 
      <description>&lt;p&gt;I suppose it&amp;rsquo;s a bit bourgeois to go to really expensive restaurants while the economy is crashing down around us. But Angeline&amp;rsquo;s birthday arrived last week, and it has been hard to resist the siren song of Komi from all the positive things we&amp;rsquo;ve heard. So off we went to Johnny Monis&amp;rsquo; fancy greek restaurant last Friday night.&lt;/p&gt;
&lt;p&gt;As we tend to do in the high end places, we went with the degustazione, the tasting menu. Angeline ordered a crisp glass of white wine, and I signed up for the three glass pairing. (Not being a wine connoisseur, I couldn&amp;rsquo;t really say whether the pairing was good or bad. The sommelier didn&amp;rsquo;t spend a lot of time explaining the choices, and there was nothing revelatory about the choices from my point of view. At any rate, that hardly put a damper on the meal.) The tasting menu begins with an almost unending parade of small plates, they call mezzethakia (actually if you google &amp;ldquo;mezzethakia,&amp;rdquo; you&amp;rsquo;ll get much better reviews of Komi right off the bat). Initial courses were primarily seafood: sashimi ahi in olive oil with salt and chives, sea urchin and oyster in a fruity gel, a salad with baby octopus tentacles, a really nice ceviche with sweet pine nuts (I forget the fish, salmon perhaps?), and scallop carpaccio with truffle mayonnaise. A steak tartare with white truffle ice cream soon followed. And finally, on a plate with tiny foie gras sandwiches, handmade animal crackers, and goat cheese smores, was a date stuffed with mascarpone cheese, sprinkled with fluer de sel. It may not sound like much, but this last, one of the most talked-about items from his restaurant, was excellent and well worth the hype.&lt;/p&gt;</description>
    </item>
    <item>
      <title>F10</title>
      <link>https://bobcopeland.com/blog/2008/12/f10/</link>
      <pubDate>Sun, 14 Dec 2008 20:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=569</guid> 
      <description>&lt;p&gt;So, I&amp;rsquo;ve been a user of Debian (and lately Ubuntu) since around 2001, with RedHat, Mandrake, and Slackware being in use before then. Debian was like a revelation: &amp;lsquo;apt&amp;rsquo; is how package management should be! I still have my server running Debian stable, but I thought I&amp;rsquo;d try putting Fedora 10 on my laptop this go-round to see how it compares to Ubuntu. All the marketing hype about Ubuntu being mere aggregators of others&amp;rsquo; hard work had something to do with that as well. Besides, yum has been around for years now so surely it is as good as apt by now.&lt;/p&gt;</description>
    </item>
    <item>
      <title>!!Open</title>
      <link>https://bobcopeland.com/blog/2008/12/open/</link>
      <pubDate>Tue, 09 Dec 2008 02:40:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=568</guid> 
      <description>&lt;p&gt;I can now take back the things I said about the Android phone.
&lt;a href=&#34;http://www.engadget.com/2008/12/05/sim-hardware-unlocked-android-dev-phone-1-surfaces-for-399/&#34;&gt;Enroute.&lt;/a&gt; &lt;a href=&#34;http://www.engadget.com/2008/09/22/meet-the-t-mobile-g1/&#34;&gt;Enroute back to T-Mobile.&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Old code</title>
      <link>https://bobcopeland.com/blog/2008/12/old-code/</link>
      <pubDate>Wed, 03 Dec 2008 18:21:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=567</guid> 
      <description>&lt;p&gt;The &lt;a href=&#34;https://bobcopeland.com/blog/projects.html&#34;&gt;projects section&lt;/a&gt; of my webpage got a few tweaks last night. Namely, I resurrected the rigid body simulator back to more-or-less compiling state (what a pile of crap code!) and put it back on the internets. The i-collide library may need a few Makefile tweaks to run on anything newer than RedHat 4. I ran it last night, then I realized GL-over-remote-X wasn&amp;rsquo;t working on Windows. So much for that. It&amp;rsquo;s super fast on modern hardware though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backups revisited</title>
      <link>https://bobcopeland.com/blog/2008/11/backups-revisited/</link>
      <pubDate>Wed, 12 Nov 2008 14:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=566</guid> 
      <description>&lt;p&gt;I spent most of last weekend doing home IT tasks. That involved upgrading my main desktop machine from Pentium III to an Athlon XP. Welcome to 7 years ago! But most of the work was spent reorganizing my data and coming up with a better backup regime.&lt;/p&gt;
&lt;p&gt;Now that hard drives are so cheap, and we now rent a storage space, spending $1/GB-month for off-site network backup is just not worth it any more. Also, with my off-site backup, I was only keeping a single full backup, which is not terribly useful if a few weeks elapse before you notice something is missing. So, I have been playing around with incremental backups using rsync and hard links, similar to the way Apple&amp;rsquo;s time machine supposedly works. Then I stumbled across &amp;lsquo;gibak,&amp;rsquo; a set of shell scripts that use the git version control system as the backup tool.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hacking, the good kind</title>
      <link>https://bobcopeland.com/blog/2008/11/hacking-the-good-kind/</link>
      <pubDate>Wed, 05 Nov 2008 15:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=565</guid> 
      <description>&lt;p&gt;I could write about the election here, but &lt;a href=&#34;http://citizen905.livejournal.com/197602.html&#34;&gt;citizen905&lt;/a&gt; already summed it up pretty well. So instead, here&amp;rsquo;s what I&amp;rsquo;ve been breaking in the Linux kernel lately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;My final patch count for 2.6.27 was 14, I think. Enough, anyway, that I can stop counting and just deal with all the work I&amp;rsquo;ve created for myself.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I added myself to MAINTAINERS for ath5k, which felt like a pretty ridiculous notoriety grab, but Nick asked me to do so twice, so there.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I have some fixes for ath5k for 2.6.28, nothing major but an oops should be fixed, and a WARN_ON removed. The oops fix, incidentally, had an obvious bug despite 3 sign-offs. I suck.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Also committed but to-be-reverted for suckiness is a patch to remove beaconing in STA mode. Turns out ath9k, from which I stole this idea, was just busted. The new plan is to use the beacon miss interrupt; until then, your wireless card has to wake up the CPU about 100 times a second.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For 2.6.29, I have added hardware encryption to ath5k and hopefully will get some time to hack on the suspend/resume support for mac80211. Then I have some omfs patches I&amp;rsquo;ve been sitting on for months.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Hacked</title>
      <link>https://bobcopeland.com/blog/2008/10/hacked/</link>
      <pubDate>Fri, 31 Oct 2008 15:28:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=564</guid> 
      <description>&lt;p&gt;So my wife received a spam from herself. At first I thought it was one of those spams where the &amp;ldquo;From:&amp;rdquo; was forged to be the same as the recipient, but a closer look revealed that it was actually from her hotmail to her yahoo account &lt;em&gt;and&lt;/em&gt; to another dozen of her friends. Uh-oh.&lt;/p&gt;
&lt;p&gt;So what happened? Was this a &lt;a href=&#34;http://www.freedom-to-tinker.com/blog/wzeller/popular-websites-vulnerable-cross-site-request-forgery-attacks&#34;&gt;cross-site request forgery&lt;/a&gt; (CSRF) attack? She wasn&amp;rsquo;t logged into hotmail at the time that the email was sent. However, that doesn&amp;rsquo;t necessarily mean anything: there have been various CSRF attacks where the account is backdoored to send mail elsewhere, and a subsequent password reminder request could then give the attacker the goods. Or her session could have still been active even though the tab was long gone.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open, sorta</title>
      <link>https://bobcopeland.com/blog/2008/10/open-sorta/</link>
      <pubDate>Fri, 24 Oct 2008 13:56:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=563</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m glad to see that the not-so-openness of Android is finally getting &lt;a href=&#34;http://laforge.gnumonks.org/weblog/2008/10/23/#20081023-android&#34;&gt;some&lt;/a&gt; &lt;a href=&#34;http://www.oblomovka.com/wp/2008/10/23/the-t-mobile-g1-nice-phone-not-so-open/&#34;&gt;press&lt;/a&gt;. As someone whose code is included in the phones&amp;rsquo; firmware (though surely compiled out, heh), I very much agree with Harald Welte in the first linked article. And that guy bluest on &lt;a href=&#34;http://lifehacker.com/5053661/what-android-could-bring-to-your-phone&#34;&gt;lifehacker&lt;/a&gt; sure has really smart comments.&lt;/p&gt;
&lt;p&gt;Oh well. I&amp;rsquo;ll wait for someone to hack it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Breakout</title>
      <link>https://bobcopeland.com/blog/2008/10/breakout/</link>
      <pubDate>Thu, 23 Oct 2008 14:16:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=562</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/rosewater0304/2959961997/&#34; title=&#34;Breakout by rosewater0304, on Flickr&#34;&gt;&lt;img alt=&#34;Breakout&#34; loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3144/2959961997_496cbfd76a_m.jpg&#34;&gt;&lt;/a&gt; You haven&amp;rsquo;t played breakout until you&amp;rsquo;ve played it in all its low-resolution glory on the side of a building. Which is exactly what my wife, my brother-in-law, and I did in Toronto while we were visiting for Canadian Thanksgiving. The installation was part of &lt;a href=&#34;http://www.blinkenlights.net/&#34;&gt;project blinkenlights&lt;/a&gt; by the Chaos Computer Club. Every window in the city hall building had a lamp that would turn on or off to form a giant pixelated screen. You would call a number on a cell phone to start a game, then use the keypad to move the paddle around. Each game would last a minute, or in my case, the 10 secs it took to lose. Very neat!&lt;/p&gt;</description>
    </item>
    <item>
      <title>SYSRQ on MacBook</title>
      <link>https://bobcopeland.com/blog/2008/10/sysrq-on-macbook/</link>
      <pubDate>Tue, 07 Oct 2008 21:42:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=561</guid> 
      <description>&lt;p&gt;Lately I&amp;rsquo;ve really needed SysRq in situations where /proc/sysrq-trigger just doesn&amp;rsquo;t do the job, and my MacBook is missing lots of crusty old XT-era keys. Finally, I know how to do this!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/* includes and error handling omitted for brevity... */
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#define USAGE_CODE 0x070044 /* USB hid for F11 */
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;int main()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;int codes[2];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;int fd = open(&amp;#34;/dev/input/by-id/usb-Apple_Computer_Apple_&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;#34;Internal_Keyboard_._Trackpad-event-kbd&amp;#34;, O_NONBLOCK);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;codes[0] = USAGE_CODE;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;codes[1] = KEY_SYSRQ;  /* from linux/input.h */
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ioctl(fd, EVIOCSKEYCODE, codes);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Awesome. Supposedly, a tool called keyfuzz is also efficacious.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Guitars</title>
      <link>https://bobcopeland.com/blog/2008/10/guitars/</link>
      <pubDate>Tue, 07 Oct 2008 02:09:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=560</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2920686700/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3229/2920686700_9e9452df81_m.jpg&#34;&gt;&lt;/a&gt; &lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2920686700/&#34;&gt;Guitars&lt;/a&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To add a little space to our cozy apartment, I put up a couple of guitar wall hangers over the weekend and put the cases in storage (don&amp;rsquo;t tell our leasing office). It looks pretty cool, though I do think the guitars want 8 or 9 more friends. I just hope this isn&amp;rsquo;t the start of the inevitable transition from guitar-as-instrument to guitar-as-display-item.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Old soldiers</title>
      <link>https://bobcopeland.com/blog/2008/10/old-soldiers/</link>
      <pubDate>Sun, 05 Oct 2008 13:57:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=559</guid> 
      <description>&lt;p&gt;I had the good fortune to attend a free DC ACM-sponsored lecture by Tony Hoare last week. Hoare is the inventor of quicksort as well as the man behind two of my favorite Computing-related quotes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Premature optimization is the root of all evil. (via Knuth)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;There are two ways of constructing a software design: one way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>OSS, I has it</title>
      <link>https://bobcopeland.com/blog/2008/10/oss-i-has-it/</link>
      <pubDate>Wed, 01 Oct 2008 14:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=558</guid> 
      <description>&lt;p&gt;I just sat in on a conference call as a representative (by default, since no one else called in) of the Linux ath5k community, with Atheros, makers of my MacBook&amp;rsquo;s wireless ethernet card. Atheros have really done a 180 for supporting the community, first by releasing ath9k, then by releasing the source to their previously-closed HAL last week. Thanks to that, 6 patches have already gone out fixing various problems. BTW, conference calls are just as pointless in the OSS community as they are in real life. But at least I did learn that it is pronounced &amp;ldquo;uh-THERE-ose&amp;rdquo;, not &amp;ldquo;ATH-er-ose.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Divested</title>
      <link>https://bobcopeland.com/blog/2008/09/divested/</link>
      <pubDate>Tue, 30 Sep 2008 13:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=557</guid> 
      <description>&lt;p&gt;As of last Thursday, I&amp;rsquo;m no longer a land owner, so you guys are on your own with that whole voting thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bits</title>
      <link>https://bobcopeland.com/blog/2008/09/bits/</link>
      <pubDate>Thu, 18 Sep 2008 00:40:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=556</guid> 
      <description>&lt;p&gt;Now that I&amp;rsquo;ve relearned Booth&amp;rsquo;s algorithm, I now understand &lt;a href=&#34;http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/timers.c#913&#34;&gt;this particular silliness&lt;/a&gt;. Are there still any machines where this is fast?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Turing</title>
      <link>https://bobcopeland.com/blog/2008/09/turing/</link>
      <pubDate>Wed, 17 Sep 2008 15:16:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=555</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been going over a lot of old textbooks while studying for my upcoming CS GRE. I forgot how good the Hennessy and Patterson books are. Also I&amp;rsquo;ve read the dragon book cover-to-cover for the first time (the new edition with the lame CGI dragon on the cover), various parts of &lt;em&gt;TAOCP&lt;/em&gt;, and Sedgewick&amp;rsquo;s &lt;em&gt;Graph Algorithms in C&lt;/em&gt;. Time will tell whether I&amp;rsquo;ve digested any of that.&lt;/p&gt;
&lt;p&gt;When I was in the bookstore the other day, I saw Petzold&amp;rsquo;s &lt;em&gt;The Annotated Turing&lt;/em&gt;. I still blame Petzold for the worst book in my computing library, &lt;em&gt;Programming Windows 95&lt;/em&gt;. But I needed to fill in some gaps on formal logic and it was 30% off so I thought I&amp;rsquo;d give it a go. One nice thing is that it presents in full the paper &amp;ldquo;On Computable Numbers, with an Application to the Entscheidungsproblem,&amp;rdquo; with corrections inline. I found a number of the annotations on the machines themselves to be superfluous to the original, while the background on Cantor sets and formal logic were absolutely worthwhile. The main problem is that the book sometimes cites large sections of material from another work, which just makes me wish I had read the other work instead. Conspicuously absent from citation but appearing in the bibliography is the mind-altering but lengthy &lt;em&gt;GÃ¶del, Escher, Bach&lt;/em&gt;, which in my opinion better tackles the philosophical angles. I give &lt;em&gt;The Annotated Turing&lt;/em&gt; a B: nice explanation of the paper but Chuck loses a letter grade for citing his own book twice and for having a Windows tattoo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Buy my stuff</title>
      <link>https://bobcopeland.com/blog/2008/09/buy-my-stuff/</link>
      <pubDate>Tue, 09 Sep 2008 17:09:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=554</guid> 
      <description>&lt;p&gt;If you&amp;rsquo;ve always wanted to own a piece of history, now&amp;rsquo;s your chance. Since I&amp;rsquo;m just over two weeks away from having to vacate my house for good, I&amp;rsquo;m selling all my crap. Oh, it&amp;rsquo;s wonderful crap, such as my couch, beds, bookshelves, small kitchen appliances, propane tanks, lawn mowers, chainsaws[1], and various electronics. Actually, assuming I get it all in order in the next day or two, you can drop by my house on Saturday to paw through the meaningful effects of a great living legend[2].&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ads</title>
      <link>https://bobcopeland.com/blog/2008/09/ads/</link>
      <pubDate>Wed, 03 Sep 2008 12:45:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=553</guid> 
      <description>&lt;p&gt;Anyone in the interweb know why my LJ now has an ad sidebar, when I&amp;rsquo;ve explicitly opted out of the ad-supported-for-useless-goodies account? May it be time to move/shutter this thing?&lt;/p&gt;
&lt;p&gt;Update:
&lt;a href=&#34;http://news.livejournal.com/109854.html&#34;&gt;Oh. :(&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mainlandy</title>
      <link>https://bobcopeland.com/blog/2008/09/mainlandy/</link>
      <pubDate>Wed, 03 Sep 2008 12:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=552</guid> 
      <description>&lt;p&gt;Ange &amp;amp; I are back from our brief tour of the Carribean. PR was nice: wonderful weather and warm ocean water. We somehow lucked out and missed all three hurricanes that went through the area during our stay. The local cuisine left a lot to be desired, and the area just outside of the resorts was pretty sketch, but otherwise it&amp;rsquo;s a decent little island.&lt;/p&gt;
&lt;p&gt;I did find time during the traveling downtime to complete my &lt;a href=&#34;https://bobcopeland.com/blog/gstfs/&#34;&gt;Gstreamer FS&lt;/a&gt;. I&amp;rsquo;m rather proud of the fruits of that two-day hack, though I&amp;rsquo;ve yet to see if it works well enough to trick iTunes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Islandy</title>
      <link>https://bobcopeland.com/blog/2008/08/islandy/</link>
      <pubDate>Thu, 21 Aug 2008 14:44:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=551</guid> 
      <description>&lt;p&gt;Angeline and I are Puerto Rico bound on Sunday! Here&amp;rsquo;s hoping for an absence of hurricanes. We&amp;rsquo;re also in ATL for two days next weekend.&lt;/p&gt;
&lt;p&gt;I have a new FUSE filesystem in the prototype stage: gstfs. The idea is to mirror a directory of music files and automatically transcode them at read() time using a gstreamer pipeline. This is so my lovingly cultivated ogg collection is friendly with Angeline&amp;rsquo;s iPod. It seems to work so far but is still a dirty hack.&lt;/p&gt;</description>
    </item>
    <item>
      <title>This post encrypted with the one-time-pad of all zeros</title>
      <link>https://bobcopeland.com/blog/2008/08/this-post-encrypted-with-the-one-time-pad-of-all-zeros/</link>
      <pubDate>Sun, 17 Aug 2008 00:36:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=550</guid> 
      <description>&lt;p&gt;I only made 770 (67th percentile) on the practice GRE CS subject exam I took today. I guess I need to study up on graph theory and grammars over the next month. The computer architecture questions were all fun though.&lt;/p&gt;
&lt;p&gt;Stupidest question of the exam, which I &amp;ldquo;missed&amp;rdquo;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Which is the closest to a perfectly secure encryption scheme:
a) Caesar cipher (heh)
b) DES
c) Enigma
d) One time pad
e) RSA&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>I can do 1000 now</title>
      <link>https://bobcopeland.com/blog/2008/08/i-can-do-1000-now/</link>
      <pubDate>Thu, 14 Aug 2008 13:15:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=549</guid> 
      <description>&lt;p&gt;In addition to doing as little cardio as I can get away with, Angeline and I have been following the &lt;a href=&#34;http://hundredpushups.com&#34;&gt;100 pushups training program&lt;/a&gt; for the last 4 weeks. That&amp;rsquo;s almost 1800 pushups between us so far. Ow, my arms.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Oops</title>
      <link>https://bobcopeland.com/blog/2008/08/oops/</link>
      <pubDate>Tue, 12 Aug 2008 12:07:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=548</guid> 
      <description>&lt;p&gt;I am finally getting the hang of debugging kernel crashes. None too soon as I got my first OOPS report from the -rc kernel with OMFS, from a gentleman who is intentionally corrupting his FS (&amp;ldquo;fuzzing&amp;rdquo; in the infosec lingo). After a frustrating weekend in which I had inadvertantly fixed the bug but didn&amp;rsquo;t realize it because I was testing the wrong module, I can now claim success. One down, several more to go.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Listed</title>
      <link>https://bobcopeland.com/blog/2008/08/listed/</link>
      <pubDate>Fri, 08 Aug 2008 12:02:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=547</guid> 
      <description>&lt;p&gt;Psst, &lt;a href=&#34;http://www.homesdatabase.com/cgi-bin/aa.fcgi?+NDRiZjlmYTZjNWFlNTFhZGI0NWNiN2RjOGY4YmQxM2ESlI0iZbI78etCOGgJJqH0LvRkVte4iAXGr2jKXbpEtSKpJcrRHDLKE%2fCmynw1c0qMPrECM3H4VQ%3d%3d&#34;&gt;wanna buy a house?&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Employment</title>
      <link>https://bobcopeland.com/blog/2008/08/employment/</link>
      <pubDate>Fri, 08 Aug 2008 02:53:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=546</guid> 
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;I found your resume on Dice and believe based on your background you would be a good fit for the Jr. Technical Project Manager/XML Position on a government project with one of our Fortune 100 partners in Crystal City, VA. This position is critical and we are seeking to fill thisimmediately.&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Heh, I&amp;rsquo;m pretty sure this &lt;em&gt;is&lt;/em&gt; my job, or at least the part of it that I have been hoping to pawn off on some Jr. Technical PM/XML type.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book</title>
      <link>https://bobcopeland.com/blog/2008/07/book-2/</link>
      <pubDate>Wed, 30 Jul 2008 13:57:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=545</guid> 
      <description>&lt;p&gt;Having seen it mentioned on Dave Jones&amp;rsquo; blog (), I picked up &lt;a href=&#34;http://www.amazon.com/Soul-New-Machine-Tracy-Kidder/dp/0316491977/&#34;&gt;&lt;em&gt;The Soul of a New Machine&lt;/em&gt;&lt;/a&gt; and read it in 3 days. I think it pairs nicely with &lt;em&gt;The Mythical Man Month&lt;/em&gt; as a cautionary tale for would-be computer nerds. Other than the amusing and all-too-true metaphor of &amp;lsquo;mushroom management,&amp;rsquo; the interesting parts for me were the computer architecture digressions, with mostly reasonable layman&amp;rsquo;s explanations of i-cache, addresses, and the like. And the extensive discussion of Adventure &amp;ndash; I had to break out TADS and try Colossal Cave myself. Doom was still better.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Merged</title>
      <link>https://bobcopeland.com/blog/2008/07/merged/</link>
      <pubDate>Sat, 26 Jul 2008 18:00:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=544</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; git&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;log &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;author&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Bob Copeland&amp;#34;&lt;/span&gt; v2&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;6.26&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;..&lt;/span&gt;master  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; git&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;shortlog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Bob Copeland (&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ath5k: Fix loop variable initializations
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ath5k: convert LED code to use mac80211 triggers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: add filesystem documentation
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: define filesystem structures
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: add inode routines
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: add directory routines
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: add file routines
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: add bitmap routines
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: update kbuild to include OMFS
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;omfs: add MAINTAINERS entry
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Woot! I had an 11th patch, for ath5k, but the maintainer fixed it independently. Very nice to finally get omfs in and not have to maintain that sucker out of tree.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pegged</title>
      <link>https://bobcopeland.com/blog/2008/07/pegged/</link>
      <pubDate>Wed, 23 Jul 2008 02:20:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=543</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2693817601/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3061/2693817601_9b7fd69393_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2693817601/&#34;&gt;Organization - Larval Stage&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I moved my main server from the old house to the apartment this weekend, which immediately presented the problem of too many wires and not enough legroom under the desk. Taking a cue from lifehacker.com, I&amp;rsquo;m jumping on the pegboard organizer bandwagon. The picture to the right is the underside of the desk, with a section of pegboard attached via hanger bolts and wing nuts. Right now, only a couple of power strips and a router are zip-tied to it, but I plan to add the Vonage router, the wireless router, various power bricks, and a few loops for cable runs. Pro tip: affix the pegboard with temporary screws while you add the hanger bolts, or else the bolts might be just crooked enough to drive you nuts, so to speak.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Train haxored</title>
      <link>https://bobcopeland.com/blog/2008/07/train-haxored/</link>
      <pubDate>Tue, 22 Jul 2008 20:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=542</guid> 
      <description>&lt;p&gt;I was wondering why the $7 trade-in limit for SmartTrip farecards went into effect, along with numerous signs imploring us to only buy cards from the vending machines. I thought maybe it was a MetroChek scam, but no, it was the result of &lt;a href=&#34;http://www.schneier.com/blog/archives/2008/07/washington_dc_m.html&#34;&gt;scissors-and-tape hackers&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Residences updated</title>
      <link>https://bobcopeland.com/blog/2008/07/residences-updated/</link>
      <pubDate>Wed, 16 Jul 2008 05:20:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=541</guid> 
      <description>&lt;p&gt;My wife is officially a permanent US resident, yay!! Also, I am officially a Marylander. As I was sitting in the DMV the other day getting plates, they had this moronic LED ticker thing going. With earth-shattering up-to-the-minute news such as: &amp;ldquo;Did you know? The moon is the Earth&amp;rsquo;s only natural satellite. There is no life on the moon. The moon is the brightest object in the night sky &amp;ndash; however it does not give off its own light. The moon reflects the sun&amp;rsquo;s light.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another EFT for EFF</title>
      <link>https://bobcopeland.com/blog/2008/07/another-eft-for-eff/</link>
      <pubDate>Fri, 11 Jul 2008 13:42:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=540</guid> 
      <description>&lt;p&gt;RIP 4th Amendment, it was good while we pretended it existed. I, for one, will not rest, will not be distracted by &amp;ndash; oooh iPhone, shiny!&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Banshee Plugin</title>
      <link>https://bobcopeland.com/blog/2008/07/new-banshee-plugin/</link>
      <pubDate>Tue, 08 Jul 2008 04:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=539</guid> 
      <description>&lt;p&gt;Thanks to a few hours of hacking during the holiday weekend, I have a new version of the Karma plugin for Banshee (and a newer version of omfs too). I&amp;rsquo;m too lazy to write my own release notes so &lt;a href=&#34;http://overtag.dk/wordpress/?p=50&#34;&gt;read someone else&amp;rsquo;s!&lt;/a&gt; Thanks, Ben.&lt;/p&gt;</description>
    </item>
    <item>
      <title>swing rant</title>
      <link>https://bobcopeland.com/blog/2008/07/swing-rant/</link>
      <pubDate>Mon, 07 Jul 2008 14:56:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=538</guid> 
      <description>&lt;p&gt;Never ever write a Java gui application with the requirement that you check fields before letting the user tab off of them. What a nightmare! Your only two tools, without rewriting large parts of Swing yourself, are FocusListener and InputVerifier. FocusListener is great for the case when you have two such fields. Set up bad data in each field, then watch the focus traversal war as a focusLost() method reclaims the focus for one component, causing focusLost() in the other component to fire. Fun. Then you have InputVerifier, ostensibly designed for this very purpose. Ignoring the fact that buttons still fire without the verifier getting called, now you have the awesomeness of not knowing what the target component would be. Want to build a view with multiple fields that get validated as one? Good luck with that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recommend fail</title>
      <link>https://bobcopeland.com/blog/2008/06/recommend-fail/</link>
      <pubDate>Fri, 27 Jun 2008 13:48:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=537</guid> 
      <description>&lt;p&gt;Amazon:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;We recommend: Pony 8510BP Cabinet Claw (2-Pack)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;by Pony
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;http://www.amazon.com/dp/B0000224BN/ref=pe_ar_x1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;List Price: $73.77
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Price: $54.39
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;You Save: $19.38 (26%)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Recommended because you purchased or rated:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;* Align-Rite DG-101 Drill Guide with 3/16-Inch Holes for 12-Inch Drawers and Doors
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;New business idea: a collaborative filtering engine that lets you, the user, customize the idiocy away. Actually, eTantrum&amp;rsquo;s music recommendation app (Linux version only) had sliders to control the weights of various things. Still an awesome idea.&lt;/p&gt;</description>
    </item>
    <item>
      <title>resize wtf</title>
      <link>https://bobcopeland.com/blog/2008/06/resize-wtf/</link>
      <pubDate>Thu, 12 Jun 2008 21:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=536</guid> 
      <description>&lt;p&gt;I get amused whenever I see another open-coded version of this in our codebase, a method for determining the resolution of a scaled-down image while maintaining aspect ratio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;while (x &amp;gt; targetx || y &amp;gt; targety) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;x *= 0.99;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;y *= 0.99;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It&amp;rsquo;s pretty easy to discern that it will take a lot of iterations to accomplish this task. In fact I put it around &lt;code&gt;250 * log (x/x&#39;)&lt;/code&gt; where x&amp;rsquo; is the target width. That&amp;rsquo;s maybe as many as 2000 FP multiplies depending on the difference in sizes between source and target image.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SF recap</title>
      <link>https://bobcopeland.com/blog/2008/06/sf-recap/</link>
      <pubDate>Thu, 12 Jun 2008 20:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=535</guid> 
      <description>&lt;p&gt;I spent last weekend in San Francisco for a convention. Nope, not WWDC, or JavaOne. Angeline was giving a presentation at the American Diabetes Association conference, and I stole along. Here&amp;rsquo;s the breakdown:&lt;/p&gt;
&lt;p&gt;day 1:
Landed in SF about noon localtime after many hours of flight. Took BART to the hotel, checked in and headed to the conference for registration. Then off to the Mission district for lunch at Tacqueria Can-cun, where the burritos are excellent. Too full and tired for dinner, we went to bed early.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Going to California</title>
      <link>https://bobcopeland.com/blog/2008/06/going-to-california/</link>
      <pubDate>Tue, 03 Jun 2008 13:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=534</guid> 
      <description>&lt;p&gt;We&amp;rsquo;re in San Francisco this weekend through Tuesday. If anyone else is, or has suggestions of locations to visit, drop me a line.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stepper motor</title>
      <link>https://bobcopeland.com/blog/2008/06/stepper-motor/</link>
      <pubDate>Mon, 02 Jun 2008 01:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=533</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2542832763/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3065/2542832763_645cf81971_m.jpg&#34;&gt;&lt;/a&gt; &lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2542832763/&#34;&gt;Stepper motor&lt;/a&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For a future project, I pulled a stepper motor from an old 3.5&amp;quot; disk drive and hooked it up to my Arduino. Turns out it&amp;rsquo;s quite easy to control these things: just periodically write bit patterns 1010, 0110, 0101, and 1001 to the 4 control wires and you&amp;rsquo;ve got a spinning motor.&lt;/p&gt;
&lt;p&gt;I also baked six loaves of bread this weekend thanks to a cooking class on Saturday. I&amp;rsquo;m drowning in potential croutons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>brevity</title>
      <link>https://bobcopeland.com/blog/2008/05/brevity/</link>
      <pubDate>Fri, 30 May 2008 12:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=532</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been a slacker, so here&amp;rsquo;s the 10 second update:&lt;/p&gt;
&lt;p&gt;Iron man was good. You knew that two weeks ago.&lt;/p&gt;
&lt;p&gt;Ange and I had our immigration interview for her green card. We&amp;rsquo;re on tenterhooks right now hoping that we get an affirmative answer quickly. (Fun fact: a tenter was used to stretch cloth in the 14th century and the tenterhooks were, I guess, hooks on it. Isn&amp;rsquo;t history fun!)&lt;/p&gt;
&lt;p&gt;We also watched LOTR all week. Still awesome.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Meh</title>
      <link>https://bobcopeland.com/blog/2008/05/meh/</link>
      <pubDate>Tue, 13 May 2008 13:48:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=531</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m playing with date conversions today, and again I&amp;rsquo;m struck by how much the Java Calendar should be held up as an example of the over-engineered API. Has anyone ever used anything besides the Gregorian calendar? They were so proud of it when it hit 1.1.&lt;/p&gt;
&lt;p&gt;I should have two patches hitting kernel 2.6.26, one entirely cosmetic and one that fixes a real bug on Atheros wireless cards. Akpm did pick up the OMFS patchset so hopefully that will go in .27 timeframe, though the jury is still out on whether it hits mainline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>XMLization</title>
      <link>https://bobcopeland.com/blog/2008/05/xmlization/</link>
      <pubDate>Thu, 01 May 2008 14:56:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=530</guid> 
      <description>&lt;p&gt;&lt;code&gt;The libpam-mount configuration file has changed to a new XML format.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Aaaaaaghhh, no!!!!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Make your own bread</title>
      <link>https://bobcopeland.com/blog/2008/04/make-your-own-bread/</link>
      <pubDate>Mon, 28 Apr 2008 03:47:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=529</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2447361229/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm4.static.flickr.com/3252/2447361229_bc31ccac1a_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2447361229/&#34;&gt;Sandwich bread&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I tried making sandwich bread this weekend since we forgot to buy it from the grocery store. With a stand mixer, this was not hard at all, and it rocks our socks. Oh, the BLTs I am going to make with this!&lt;/p&gt;</description>
    </item>
    <item>
      <title>I want my hexadecimal dollar</title>
      <link>https://bobcopeland.com/blog/2008/04/i-want-my-hexadecimal-dollar/</link>
      <pubDate>Mon, 21 Apr 2008 04:16:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=528</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m taking the GRE this week as part of a foolish endeavor to possibly get more learning. Wow, have I forgotten lots of high school math. In preparation for the subject test, which I still haven&amp;rsquo;t signed up for, I picked up a copy of volumes 1 &amp;amp; 2 of TAOCP. I think these will be much better books once the MMIX versions are out in a few years. For now, they are hilariously antiquated as far as any of the MIX stuff goes. 6-bit (binary or decimal!) bytes, no stack, self-modifying code, punch cards, a weird assembly language that encodes the target registers in the opcode. It makes x86 look like a good ISA. Of course as Knuth says, the concepts themselves are timeless. And it does have me wanting to find a reason for using coroutines, so that&amp;rsquo;s something.&lt;/p&gt;</description>
    </item>
    <item>
      <title>(p)re-published</title>
      <link>https://bobcopeland.com/blog/2008/04/pre-published/</link>
      <pubDate>Thu, 17 Apr 2008 21:17:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=527</guid> 
      <description>&lt;p&gt;Angeline is &lt;a href=&#34;http://www.eurekah.com/chapter/3919&#34;&gt;way smarter&lt;/a&gt; than me. Congrats on her chapter full of words I do not understand!&lt;/p&gt;</description>
    </item>
    <item>
      <title>rm -r</title>
      <link>https://bobcopeland.com/blog/2008/04/rm-r/</link>
      <pubDate>Wed, 16 Apr 2008 19:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=526</guid> 
      <description>&lt;p&gt;43 files changed, 5671 deletions(-)&lt;/p&gt;
&lt;p&gt;Today was a good day. I love deleting XML parsers more than anything in the whole world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Controversy, I has it.</title>
      <link>https://bobcopeland.com/blog/2008/04/controversy-i-has-it/</link>
      <pubDate>Mon, 14 Apr 2008 21:34:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=525</guid> 
      <description>&lt;p&gt;I unintentionally created quite a &lt;a href=&#34;http://marc.info/?l=linux-kernel&amp;amp;m=120816279104484&amp;amp;w=2&#34;&gt;ruckus&lt;/a&gt; on the kernel mailing list this weekend. &lt;a href=&#34;http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_14.html&#34;&gt;Evgeniy&amp;rsquo;s take&lt;/a&gt;. It&amp;rsquo;s funny, I feel a lot less invested than practically anyone in the whole thread.&lt;/p&gt;</description>
    </item>
    <item>
      <title>javac sucks</title>
      <link>https://bobcopeland.com/blog/2008/04/javac-sucks/</link>
      <pubDate>Thu, 10 Apr 2008 14:39:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=524</guid> 
      <description>&lt;p&gt;More evidence that javac is one of the dumbest compilers ever:
&lt;code&gt;public class Foo extends java.lang.Object{ public Foo(); Code: 0:   aload_0 1:   invokespecial   #1; //Method java/lang/Object.&amp;quot;&amp;quot;:()V 4:   return public static void main(java.lang.String[]); Code: 0:   aconst_null 1:   instanceof      #2; //class Foo 4:   ifeq    15 7:   getstatic       #3; //Field java/lang/System.out:Ljava/io/PrintStream; 10:  ldc     #4; //String never! 12:  invokevirtual   #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V 15:  return }&lt;/code&gt;
Ok, I&amp;rsquo;ll give them a break &amp;ndash; this probably never comes up in a real application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HFCS Fail</title>
      <link>https://bobcopeland.com/blog/2008/04/hfcs-fail/</link>
      <pubDate>Wed, 02 Apr 2008 02:22:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=523</guid> 
      <description>&lt;p&gt;As long as I&amp;rsquo;ve known about kosher for Passover Coke, I&amp;rsquo;ve &lt;em&gt;needed&lt;/em&gt; it. Coca-cola made with sugar, they said, the way it used to be. I wasn&amp;rsquo;t sure I believed it existed, but I was hopeful. Last year, I dropped by the KosherMart around Seder time looking for this mythical cola, but all they had was Dr. Brown&amp;rsquo;s and kosher Diet Coke. &amp;ldquo;WTF?&amp;rdquo; I asked the clerk, but he was still unable to help me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PSA</title>
      <link>https://bobcopeland.com/blog/2008/04/psa-2/</link>
      <pubDate>Tue, 01 Apr 2008 17:21:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=522</guid> 
      <description>&lt;p&gt;Don&amp;rsquo;t believe anything you read on the internet today, especially this post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Readying for launch</title>
      <link>https://bobcopeland.com/blog/2008/03/readying-for-launch/</link>
      <pubDate>Fri, 28 Mar 2008 13:43:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=521</guid> 
      <description>&lt;p&gt;To correct my earlier post, the kite festival is actually tomorrow, March 29, not March 28th. Our final count for # of kites between the two of us is 5. I couldn&amp;rsquo;t find a spar for #6. (Why do I have 6 kites?) Meanwhile, I still need to finish up my 10-kite rollup bag tonight.&lt;/p&gt;
&lt;p&gt;On the programming front, I officially posted OMFS for kernel inclusion as I&amp;rsquo;m tired of having to make minor changes every time someone updates the VFS api. The #ifdef jungle was getting dense. So far the review hasn&amp;rsquo;t been overwhelmingly negative, so maybe this will encourage me to flesh out the remaining unimplemented features that the FUSE version has.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Diebold: With a Vengance</title>
      <link>https://bobcopeland.com/blog/2008/03/diebold-with-a-vengance/</link>
      <pubDate>Tue, 18 Mar 2008 14:10:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=520</guid> 
      <description>&lt;p&gt;If there was any doubt (who am I kidding) that election machine manufacturers are pure evil, check out the &lt;a href=&#34;http://www.freedom-to-tinker.com/?p=1265&#34;&gt;nastygram&lt;/a&gt; Ed Felten got from Sequoia. Incidentally, my home county election officials are &lt;a href=&#34;http://www.fairfaxcounty.gov/eb/DRE_faq.pdf&#34;&gt;batshit insane&lt;/a&gt; on this issue. Notice &amp;ldquo;[printable]&amp;rdquo; doesn&amp;rsquo;t mean &amp;ldquo;voter verifiable.&amp;rdquo; Just because they can print from it doesn&amp;rsquo;t mean they do.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brute force ftw</title>
      <link>https://bobcopeland.com/blog/2008/03/brute-force-ftw/</link>
      <pubDate>Mon, 17 Mar 2008 20:40:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=519</guid> 
      <description>&lt;p&gt;I write dumb scripts with git! Here&amp;rsquo;s how to (slowly / automatically) remove any @SuppressWarnings annotations that don&amp;rsquo;t do anything:
&lt;code&gt;for i in `grep -rl @SuppressWarnings src` ; do echo $i cp $i $i.tmp grep -v &amp;quot;@SuppressWarnings&amp;quot; $i.tmp &amp;gt; $i rm $i.tmp git-commit -a -m &amp;quot;Disable warning suppressions for $i&amp;quot; ant compile &amp;gt; build.txt res=`grep &amp;quot;[javac].*error&amp;quot; build.txt || grep &amp;quot;[javac].*warning&amp;quot; build.txt` if [[ ! -z $res ]]; then echo error! git-reset --hard HEAD~1 fi done&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>cat</title>
      <link>https://bobcopeland.com/blog/2008/03/cat/</link>
      <pubDate>Sun, 16 Mar 2008 02:49:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=518</guid> 
      <description>&lt;p&gt;I updated my &lt;a href=&#34;https://bobcopeland.com/blog/resume.html&#34;&gt;resume&lt;/a&gt; today. I&amp;rsquo;m still not sold on the &amp;ldquo;Other Experience&amp;rdquo; section, but on the other hand, I surely learned a lot more doing that stuff than doing the job that pays the bills. It could use a better title at least.&lt;/p&gt;
&lt;p&gt;My brother-in-law was visiting this weekend, helping Ange study for an upcoming difficult medicine exam. So I had lots of time to kill. I released a new version of OMFS for kernel 2.6.25, and finished up the &lt;a href=&#34;http://flickr.com/photos/bluesterror/2336084128/&#34;&gt;man-eating panda kite&lt;/a&gt;. (He enjoys human flesh, I assure you.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Panda Kite</title>
      <link>https://bobcopeland.com/blog/2008/03/panda-kite/</link>
      <pubDate>Mon, 03 Mar 2008 02:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=517</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2306645500/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm3.static.flickr.com/2267/2306645500_6161d58cba_m.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2306645500/&#34;&gt;Panda Kite Applique&lt;/a&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s my first kite since the Pokemon rok. The Smithsonian kite festival is on March 28 this year, and the theme is &amp;ldquo;China.&amp;rdquo; I tried, and more or less failed, to make a kite last year in time for the same event. But here we are a year on and I&amp;rsquo;ve learned a lot since then.&lt;/p&gt;
&lt;p&gt;The hanzis supposedly say &amp;lsquo;China&amp;rsquo; in simplified Chinese, but really I&amp;rsquo;m just guessing. I chose a &amp;ldquo;small&amp;rdquo; (3 feet by 4 feet) sail for this one because I wanted to be able to get it mostly done in a day, which I did. It still needs hemming and framing but otherwise it&amp;rsquo;s ready to go.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why I hate ant</title>
      <link>https://bobcopeland.com/blog/2008/02/why-i-hate-ant/</link>
      <pubDate>Thu, 28 Feb 2008 20:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=516</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ strace -f ant &amp;gt; out.txt 2&amp;gt;&amp;amp;1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ grep &amp;#34;stat.*java&amp;#34; out.txt  | wc -l
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;32933
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WTF? No wonder our build times suck. I still have yet to hear a rationale for the existence of ant that had any more substance than &amp;ldquo;but make uses tabs!&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Uncrypt</title>
      <link>https://bobcopeland.com/blog/2008/02/uncrypt/</link>
      <pubDate>Thu, 21 Feb 2008 15:34:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=515</guid> 
      <description>&lt;p&gt;Ed Felton et al. announced today &lt;a href=&#34;http://www.freedom-to-tinker.com/?p=1257&#34;&gt;an attack on disk encryption&lt;/a&gt; using the bits left in RAM. Oh noes, my poor dm-crypt partition!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Phoneless</title>
      <link>https://bobcopeland.com/blog/2008/02/phoneless/</link>
      <pubDate>Mon, 18 Feb 2008 16:01:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=514</guid> 
      <description>&lt;p&gt;My Nokia 6230 apparently bit the dust last week, so if you called me, I didn&amp;rsquo;t get it. The phone no longer turns on, even with a freshly charged battery and with a new memory card. Darn. I have a crappy $40 unlocked phone on the way in the mail to tide me over until I can get something decent or fix this busted one. Anyone know when an android-capable phone is going to hit the market? Maybe it&amp;rsquo;s time to sign up with &lt;a href=&#34;http://www.grandcentral.com/&#34;&gt;grand central&lt;/a&gt;&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Robots!</title>
      <link>https://bobcopeland.com/blog/2008/02/robots/</link>
      <pubDate>Sun, 17 Feb 2008 19:54:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=513</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2271089309/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm3.static.flickr.com/2192/2271089309_d4165df544_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2271089309/&#34;&gt;Talking Robot 2&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Angeline and I went to the KC to see the ballet last night. They are having this celebration of Japan&amp;rsquo;s &amp;ldquo;hyperculture,&amp;rdquo; whatever that means. But one thing it means is there are robots there!&lt;/p&gt;
&lt;p&gt;Actually, the robot display is somewhat disappointing. Asimo and the trumpet player thing are there for occasional demonstrations, but they weren&amp;rsquo;t out on the floor when we were there. So, the only robots we got to see were this little yellow thing that supposedly can talk (only in Japanese, however), a small menagerie of Aibo-like toys, and the creepy &amp;ldquo;Actroid&amp;rdquo; DER2, pictured. DER2 does look somewhat realistic, actually, but you wouldn&amp;rsquo;t mistake it for a real person. You can ask it canned questions, then it will do the speech recognition stuff and say a canned response. Eye-rolling stuff such as, &amp;ldquo;I&amp;rsquo;m looking for a guy with a heart of gold and brain circuits to match!&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scripted</title>
      <link>https://bobcopeland.com/blog/2008/02/scripted/</link>
      <pubDate>Thu, 07 Feb 2008 20:32:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=512</guid> 
      <description>&lt;p&gt;A month or two ago I was thinking about test-driven development and what a pain it is to write test cases. Or, well, test at all for that matter. Who needs testing when you have users to do that for you?&lt;/p&gt;
&lt;p&gt;At work we have this fairly complicated UI that eventually interacts with stateless session beans in the whole wizbang J2EE world. Usually, I spend most of my debugging time tickling the backend rather than fooling with the UI so all tasks of logging in, navigating windows, setting up data and so forth are just overhead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mmio trace for fun and no-profit</title>
      <link>https://bobcopeland.com/blog/2008/01/mmio-trace-for-fun-and-no-profit/</link>
      <pubDate>Fri, 01 Feb 2008 03:06:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=511</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m not sure what got me interested in assembly language as a nerdy high-schooler. It could have been the growing interest in computer graphics, at a time when you had to use assembly to get decent performance out of the machine. I remember learning tricks from much smarter people than myself, such as how to set a 256x256 pixel video mode so that you could address any pixel without ever needing to multiply. Not that you would use a multiply anyway since you can always use shifts and adds.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I hate you, Sun.</title>
      <link>https://bobcopeland.com/blog/2008/01/i-hate-you-sun/</link>
      <pubDate>Thu, 24 Jan 2008 22:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=510</guid> 
      <description>&lt;p&gt;Is it too much to ask of a compiler that if it decides to blare warnings at you for no reason at all, that you can turn the !@#$ thing off? In a move that rivals the stupidity of certain gcc warnings, we have this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[javac] file: java:519: warning: com.sun.rowset.CachedRowSetImpl is Sun proprietary API and may be removed in a future release&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Well, hey that&amp;rsquo;s a nice heads-up to give me 600 times when compiling our tree. Let me go find the non-com.sun equivalent of that. Oh wait, there isn&amp;rsquo;t one! And, the freaking javadoc even tells you to do it that way. Okay, well, maybe &lt;code&gt;@SuppressWarnings({&amp;quot;deprecation&amp;quot;})&lt;/code&gt; will work? Nope, haha! Sigh. Time for a wrapper script.&lt;/p&gt;</description>
    </item>
    <item>
      <title>All my bytes are set to 0x90</title>
      <link>https://bobcopeland.com/blog/2008/01/all-my-bytes-are-set-to-0x90/</link>
      <pubDate>Wed, 09 Jan 2008 02:53:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=509</guid> 
      <description>&lt;p&gt;This &lt;a href=&#34;http://lkml.org/lkml/2008/1/7/406&#34;&gt;fascinating little tidbit&lt;/a&gt; (and Al&amp;rsquo;s follow-up) on debugging reminds me why I read the eternal flamewar that is LKML. Oh yeah, and I also read it for the eternal flamewar.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Back</title>
      <link>https://bobcopeland.com/blog/2008/01/back-2/</link>
      <pubDate>Mon, 07 Jan 2008 14:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=508</guid> 
      <description>&lt;p&gt;I am back in the country after wintering abroad. Toronto: still cold.&lt;/p&gt;
&lt;p&gt;While away I managed to get some work done on the latest installment of the Rio Karma project: &lt;a href=&#34;http://repo.or.cz/w/omfs_fuse.git/&#34;&gt;a FUSE-based implementation of the &amp;ldquo;Optimized&amp;rdquo; MPEG Filesystem&lt;/a&gt;. This one has the advantage that it theoretically will work with the busted every-byte-swapped ReplayTV, and that it takes approximately 10% more time than the kernel driver for a given task. There still isn&amp;rsquo;t an official release because it will destroy your hard drive and wipe off the serial number so you won&amp;rsquo;t be able to replace it. Plus it gives another excuse to use git, which has finally replaced svn in my day-to-day.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gave One Got One</title>
      <link>https://bobcopeland.com/blog/2007/12/gave-one-got-one/</link>
      <pubDate>Fri, 21 Dec 2007 12:36:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=507</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2126173573/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm3.static.flickr.com/2164/2126173573_0fc41d6f88_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/2126173573/&#34;&gt;00025.jpg&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just received my OLPC from the &amp;ldquo;Give One Get One&amp;rdquo; program. For the uninitiated, this is the program that aims to send $100 ($200) laptops to children in undeveloped nations.&lt;/p&gt;
&lt;p&gt;First thoughts are that this is a cool little laptop. It is very light. The screen is small but has decent resolution, in the 800x600 range. The processor is an AMD Geode 400 mHZ, it&amp;rsquo;s got a gig of flash for storage, and 256 megs of RAM. It seems a tad sluggish for a machine with those specs (similar specs to my firewall at home which runs X fine), but not so slow that you couldn&amp;rsquo;t get used to it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bread</title>
      <link>https://bobcopeland.com/blog/2007/12/bread/</link>
      <pubDate>Sun, 16 Dec 2007 16:55:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=506</guid> 
      <description>&lt;p&gt;I made a promise to myself when &lt;em&gt;Cook&amp;rsquo;s Illustrated&lt;/em&gt; began arriving in my mailbox: each month, I have to make at least one recipe from the latest issue. The Jan/Feb issue has an insanely simple bread recipe based on a no-knead recipe from Mark Bittman. I have used his French baguette recipe from &lt;em&gt;How to Cook Everything&lt;/em&gt; with much success, but with this recipe, I may just leave the stand mixer in the cupboard from now on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vista-ed</title>
      <link>https://bobcopeland.com/blog/2007/12/vista-ed/</link>
      <pubDate>Sun, 16 Dec 2007 16:44:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=505</guid> 
      <description>&lt;p&gt;I got my first look at Vista with Angeline&amp;rsquo;s new Thinkpad. So far, it&amp;rsquo;s not looking too good.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/vista.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>December update</title>
      <link>https://bobcopeland.com/blog/2007/12/december-update/</link>
      <pubDate>Sat, 08 Dec 2007 12:12:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=504</guid> 
      <description>&lt;p&gt;The first snow has fallen, and so begins our inevitable slide into winter. Why does winter have to be so cold?&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t been updating this or doing many projects recently, as work has occupied my life. Over the last month or two I&amp;rsquo;ve been prepping and shipping a 6-month-late, extremely buggy software release and cleaning up the ensuing mess. Unfortunately, I saw this coming a year ago, and continue to see danger ahead: our customer has retaliated by shortening our schedule for phase 2 from six to two months. Those whose managers have never read the Mythical Man Month are doomed to repeat it. Well, it&amp;rsquo;s about time to start taking off the month of vacation time that I&amp;rsquo;ve stowed away.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Patitucci @ KC 9:30</title>
      <link>https://bobcopeland.com/blog/2007/11/patitucci-kc-930/</link>
      <pubDate>Thu, 01 Nov 2007 14:10:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=503</guid> 
      <description>&lt;p&gt;It&amp;rsquo;s been a while since I&amp;rsquo;ve seen a good band. Well, not too long ago &amp;ndash; we saw Los Lonely Boys in Honolulu during our honeymoon. I meant to write that up, but what more is there to say than they are a capable cross between Santana and SRV? Anyway, the fact remains that I&amp;rsquo;ve seen many fewer shows this year than in recent times.&lt;/p&gt;
&lt;p&gt;That is why when I saw that John Patitucci is playing tomorrow night with a 3 piece including the most frickin&amp;rsquo; awesome drummer alive, Brian Blade, for only $25 at the Kennedy Center, I had to grab a pair of tickets. (The KC has a jazz club? Who knew?) Patitucci is most well-known as the bass player for various incarnations of Chick Corea bands, and if he doesn&amp;rsquo;t set the crowd ablaze, I&amp;rsquo;m sure Blade will.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Halloweekend</title>
      <link>https://bobcopeland.com/blog/2007/10/halloweekend/</link>
      <pubDate>Mon, 29 Oct 2007 17:53:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=502</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/1796374241/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Dora and Diego&#34; loading=&#34;lazy&#34; src=&#34;http://farm3.static.flickr.com/2255/1796374241_aa7e1cb979_m.jpg&#34;&gt;&lt;/a&gt; Joe and Jessica can throw a good costume party. As we did 2 years ago, Angeline and I hit up the toons for inspiration. This time we went as Dora the Explorer and Go, Diego, Go!, respectively. Who were just as obscure as Venture Bros. to everyone in attendance. Oh well.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/1796048395/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Diego button&#34; loading=&#34;lazy&#34; src=&#34;http://farm3.static.flickr.com/2278/1796048395_660917651b_m.jpg&#34;&gt;&lt;/a&gt; I didn&amp;rsquo;t do as much engineering with this one as I did with the Monarch costume, but I did do some craft work: I replaced the black strap on a $10 messenger bag with an orange strap, hemmed Dora&amp;rsquo;s shorts which were originally jogging pants (yay for my new sewing abilities), and spent an hour or so drawing out the logo for the button to the right in Inkscape. I only saw the logo for a brief period at Toys &amp;lsquo;R Us and then worked from a really low res bitmap, so I was particularly pleased with how that last bit turned out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hawaiian Eats</title>
      <link>https://bobcopeland.com/blog/2007/10/hawaiian-eats/</link>
      <pubDate>Tue, 09 Oct 2007 04:00:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=501</guid> 
      <description>&lt;p&gt;Frommer&amp;rsquo;s and Let&amp;rsquo;s Go! were our guide books to the foodie destinations on the islands. By the way, I hate that term, &lt;em&gt;foodie&lt;/em&gt;. Anyway, we tried to hit some of the nicer restaurants as well as experience some local flavor. We also tried to take pictures of all of the food, though people looked at us funny.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/rosewater0304/1471043449/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;00162.jpg&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1236/1471043449_1951bd43da_t.jpg&#34;&gt;&lt;/a&gt; In the latter category, saimin (similar to ramen noodles) was highly recommended by both guides. Hamura&amp;rsquo;s in Lihu&amp;rsquo;e, was definitely a locals spot; we stuck out like a pair of sore sunburned thumbs. The bowls come with a piece of fish, an egg, some random bits of greenery, and a couple of wontons. The food was great as these things go, though I prefer dry food to wet. I added a pair of satays to the mix that were excellent. Also a local Lihu&amp;rsquo;e haunt, The Deli and Bread Connection served up some mighty fine sandwiches. This was the only place we visited twice, so that says something.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Greetings from Hawaii</title>
      <link>https://bobcopeland.com/blog/2007/09/greetings-from-hawaii/</link>
      <pubDate>Fri, 21 Sep 2007 10:06:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=500</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m married now, woot! Angeline and I were wed in a quick ceremony in Rockville with 80 of our closest friends and family. I&amp;rsquo;m so lucky! I feel so grown up.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve spent the last week on Oahu, and today we&amp;rsquo;re hopping on a plane to go visit Kauai for a week. Also, this marks the last day of free hotel internet, so I guess I might as well blog a note or two.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pokemon Rokkaku</title>
      <link>https://bobcopeland.com/blog/2007/09/pokemon-rokkaku/</link>
      <pubDate>Mon, 03 Sep 2007 13:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=499</guid> 
      <description>&lt;p&gt;Anyone who has been looking at my flickr feed has seen that I&amp;rsquo;ve had another kite in the works for the last couple of months. I&amp;rsquo;ve had this particular one in mind for a while but didn&amp;rsquo;t quite have the sewing skills to pull it off until now. So, I present, the Snorlax rokkaku:
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/842501866/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Part of a foot&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1227/842501866_9e2ddd143c_t.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/842501896/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Assembled drawing&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1032/842501896_38e6a3c06a_t.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/933756591/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Partial appliquÃ©&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1066/933756591_2e5324e141_t.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/1014344876/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Snorlax Applique&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1427/1014344876_d398b15c8c_t.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/1306026981/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Ange and Kite&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1244/1306026981_07c7d93968_t.jpg&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/1306052591/&#34; title=&#34;Photo Sharing&#34;&gt;&lt;img alt=&#34;Snorlax in flight&#34; loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1319/1306052591_2c776d12ef_t.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Best Buy is dumb</title>
      <link>https://bobcopeland.com/blog/2007/08/best-buy-is-dumb/</link>
      <pubDate>Fri, 31 Aug 2007 19:55:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=498</guid> 
      <description>&lt;p&gt;`From: &lt;a href=&#34;mailto:privacymanager@bestbuy.com&#34;&gt;privacymanager@bestbuy.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Bob said:
Someone signed my email address up for reward zone program and it wasn&amp;rsquo;t
me.  Please remove it, thanks.
Bob,
I am Chazy with Best Buy Customer Care.
Thank your for contacting Best Buy about your Reward Zone account. I
will be more than glad to assist you.
I am pleased to inform you that in order to provide the best service
possible, we will need more information from you.  Please reply to this
email with your full name, mailing address and phone number so we can
find your Reward Zone account.
Please do not hesitate to contact us with any questions or concerns. We
look forward to your next visit to one of our stores or to
&lt;a href=&#34;https://www.BestBuy.com&#34;&gt;www.BestBuy.com&lt;/a&gt;.
Thank you,
Chazy
Best Buy Customer Care Team&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>T-minus 1 month</title>
      <link>https://bobcopeland.com/blog/2007/08/t-minus-1-month/</link>
      <pubDate>Wed, 15 Aug 2007 21:42:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=497</guid> 
      <description>&lt;p&gt;We&amp;rsquo;re down to 31 days until the wedding, and pretty much everything is done, modulo the odd vendor meeting, dance lesson, and so forth. We have also sent sharp sticks by way of courier to the invitees who haven&amp;rsquo;t sent their cards in yet. *Poke!*&lt;/p&gt;</description>
    </item>
    <item>
      <title>I&#39;m a slacker</title>
      <link>https://bobcopeland.com/blog/2007/08/im-a-slacker/</link>
      <pubDate>Tue, 07 Aug 2007 23:10:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=496</guid> 
      <description>&lt;p&gt;I was thumbing through Joel Spolsky&amp;rsquo;s new book on hiring talented programmers at the bookstore the other day. He asserts in the first chapters that great programmers are &lt;em&gt;ten times&lt;/em&gt; more productive than bad ones. Could that be true? I played around with git today to generate statistics to see how it looks on our refactoring project this year:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user    commits   files changed  LOC added  LOC deleted
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev0:       453            4258     +81538      -100344
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev1:       152            2297     +54462       -45343
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev2:       104             550     +24779       -17475
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev3:        82             250      +6465        -7852
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev4:        73             209      +3920        -2782
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev5:        56             208      +5158       -10049
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dev6:        24             116      +3297        -7823
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wow. Of course KLOC isn&amp;rsquo;t everything, but take it on faith that dev4 causes more problems than he solves (dev5,6 were only on the project a short time), and that dev0 is the most awesome programmer that writes on this blog. And I thought surfing the web 7 hours a day was too much&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wake up!</title>
      <link>https://bobcopeland.com/blog/2007/08/wake-up/</link>
      <pubDate>Fri, 03 Aug 2007 12:01:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=495</guid> 
      <description>&lt;blockquote&gt;
&lt;p&gt;Dear Windows,&lt;/p&gt;
&lt;p&gt;If you feel the need to download printer drivers at 3 AM, please don&amp;rsquo;t announce it by playing cutesy chimes. People are trying to sleep ya know? That goes double if the chime is just to announce a prompt to ask you if you want to search for updated printer drivers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other news, I&amp;rsquo;ve been using git at work a lot lately. There&amp;rsquo;s a steep learning curve and it took three tries to convince me that git is better than (version control of the day), but once I grokked it, I was hooked. So many hours have been lost waiting for subversion to show commit logs or perform commits. Also, I&amp;rsquo;m going back and forth to my laptop without being able to connect the latter to the network, so git-bundle and git-svn are much better than my previous solution of extensive use of patch(1). Branching and merging is so easy that I invent excuses to do them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Buzz</title>
      <link>https://bobcopeland.com/blog/2007/07/buzz/</link>
      <pubDate>Thu, 26 Jul 2007 03:16:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=494</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/901339910/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1183/901339910_41479fba30_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/bluesterror/901339910/&#34;&gt;Buzz&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/bluesterror/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s like those bees with dogs in their lap, and when they stand up they shoot dogs at you?&lt;/p&gt;
&lt;p&gt;From my camera phone.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sed</title>
      <link>https://bobcopeland.com/blog/2007/07/sed/</link>
      <pubDate>Fri, 13 Jul 2007 18:02:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=493</guid> 
      <description>&lt;p&gt;Sometimes I look at a long Unix pipeline and think, &amp;ldquo;I should do this in perl.&amp;rdquo; Other times, it is, &amp;ldquo;I bet I can do this all in sed.&amp;rdquo; So, here&amp;rsquo;s how to print just the lines of a file following a successful match in sed:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -n &amp;#39;:s; /^regexp$/{b l}; n; b s; :l; p; n; b l&amp;#39; file.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lazyweb, is there a shorter way?&lt;/p&gt;</description>
    </item>
    <item>
      <title>July</title>
      <link>https://bobcopeland.com/blog/2007/07/july/</link>
      <pubDate>Thu, 12 Jul 2007 17:19:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=492</guid> 
      <description>&lt;p&gt;I suppose I must make a blog entry this month so that I do not get logged out for inactivity. Like the blog, I have let the projects slide lately. I have a half-drawn schematic sitting in Eagle and a new kite in the design phase, but I haven&amp;rsquo;t hit these particular projects too hard. How have I been spending the last month, then? Here&amp;rsquo;s how:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Working. Yay for compulsory overtime.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Teaching myself Spanish. I don&amp;rsquo;t know why.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Various wedding things. Invites are in the mail.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Going to a baseball game.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Guessing the plots of Sherlock Holmes stories after reading the first two pages.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Being unmotivated to do other stuff.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Gibson pocket sled</title>
      <link>https://bobcopeland.com/blog/2007/06/gibson-pocket-sled/</link>
      <pubDate>Thu, 14 Jun 2007 19:18:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=491</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/539888104/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm2.static.flickr.com/1368/539888104_b759e14e5b_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/539888104/&#34;&gt;Gibson pocket sled&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Continuing with the dumb projects, here is my latest kite, a pocket sled (so called because you can fold it up into your pocket) with a Gibson guitar logo appliquÃ©d onto the front. Mostly I was just practicing some complicated sewing here rather than shooting for the end product, but it came out well enough. I might tackle a large kite bag next, and then perhaps the big rokkaku I have been planning for a while. Or maybe another practice kite.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Toronto</title>
      <link>https://bobcopeland.com/blog/2007/06/toronto/</link>
      <pubDate>Sun, 03 Jun 2007 12:20:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=490</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m killing time in the Toronto airport after having spent the last couple of days visiting with Angeline&amp;rsquo;s family while she and her sister and brother-in-law are here for an endocrinology conference. All in all it was a great trip if too short &amp;ndash; I had a nice time playing with Angeline&amp;rsquo;s nephews, drinking beers with Sameer, and wandering the city on my own whenever I had unscheduled free time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arduino POV</title>
      <link>https://bobcopeland.com/blog/2007/05/arduino-pov/</link>
      <pubDate>Tue, 29 May 2007 03:12:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=489</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/519140194/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm1.static.flickr.com/223/519140194_f0aebe20c4_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/519140194/&#34;&gt;Arduino POV&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Since everyone else is doing it, I decided to hack together my own persistence of vision thing this evening. This is a circuit where you have a single vertical line of LEDs, but if you turn the LEDs on and off fast enough and wave them around, your eyes are fooled into seeing complete letters. It only took about 20 minutes to write the C code to load up onto my trusty ATmega8, then I used a camera with a long shutter period to take the picture to the right.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arduino Clock</title>
      <link>https://bobcopeland.com/blog/2007/05/arduino-clock/</link>
      <pubDate>Mon, 14 May 2007 00:28:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=488</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/497043598/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm1.static.flickr.com/212/497043598_26cba24181_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/497043598/&#34;&gt;Arduino Clock&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I spent part of yesterday and today assembling this monster of a digital clock. The brains behind it, like my previous project, is a Dallas RTC chip; the rest is just microcontroller glue to read the time over the bus and write the hours and minutes to a quartet of seven segment decoders. The arduino microcontroller board can run off of a 9V battery so this assembly is portable, like the, er, $0.50 worth of electronics that are in your wristwatch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brian K</title>
      <link>https://bobcopeland.com/blog/2007/05/brian-k/</link>
      <pubDate>Thu, 03 May 2007 13:42:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=487</guid> 
      <description>&lt;p&gt;Last Monday I attended an ACM lecture featuring Brian &amp;ldquo;Zapp&amp;rdquo; Kernighan, coiner of the name &amp;ldquo;Unix,&amp;rdquo; the &amp;lsquo;K&amp;rsquo; in awk, as well as the &amp;lsquo;K&amp;rsquo; in K&amp;amp;R. The gray-haired professor reminisced about the golden days sitting across from Ken Thompson&amp;rsquo;s and Dennis Ritchie&amp;rsquo;s desk (Ritchie is a slob of the first order). The salient points: make software more simple, avoid the second system effect (as in Multics), and find a small group of talented guys and start a revolution (probably not in operating systems). In other words, a pretty good summary of &lt;em&gt;The Mythical Man Month&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Della Porta in Flight</title>
      <link>https://bobcopeland.com/blog/2007/04/della-porta-in-flight/</link>
      <pubDate>Mon, 30 Apr 2007 01:28:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=486</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/477489297/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm1.static.flickr.com/170/477489297_fcf96c337e_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/477489297/&#34;&gt;Della Porta in Flight&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;AC and I went down to the Washington Monument grounds to try out the kite today, on a lovely sunny, breezy day. It took a few adjustments of the bridle to get the thing aloft, and the tail kept getting tangled up, but once I had it figured out it took up all of my line and was still pulling pretty hard. Quite a nice sense of accomplishment to see what began as a couple of rolls of nylon actually fly and not look half bad.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fancy Stripes Cont.</title>
      <link>https://bobcopeland.com/blog/2007/04/fancy-stripes-cont/</link>
      <pubDate>Wed, 18 Apr 2007 01:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=485</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/463496455/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm1.static.flickr.com/219/463496455_371a8ed62f_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/463496455/&#34;&gt;Fancy Stripes Cont.&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve made more progress on the Della Porta. The sail is now complete, after sewing each of the 16 panels to its neighbors, first with a 1/4&amp;quot; straight seam on the back and then with a zig-zag stitch over the good side. I only had to use the seam ripper&amp;hellip; oh, let&amp;rsquo;s call it less than a hundred times. On to step 3&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fancy stripes</title>
      <link>https://bobcopeland.com/blog/2007/04/fancy-stripes/</link>
      <pubDate>Thu, 12 Apr 2007 16:32:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=484</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/456176247/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm1.static.flickr.com/181/456176247_403e3fb603_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/456176247/&#34;&gt;Fancy stripes&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I started work on another kite this week. This time I&amp;rsquo;m following a plan, one of the howtos over on &lt;a href=&#34;http://kitebuilder.com/&#34;&gt;kitebuilder.com&lt;/a&gt;. Hopefully, my much improved sewing skills coupled with some RTFM-ing will lead to more success in this venture. The pattern is from a quilting block called &amp;lsquo;Fancy Stripes&amp;rsquo; and should be about 3&amp;rsquo; by 4&amp;rsquo; when completed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grilled</title>
      <link>https://bobcopeland.com/blog/2007/04/grilled/</link>
      <pubDate>Thu, 12 Apr 2007 04:33:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=483</guid> 
      <description>&lt;p&gt;I officially opened the 10 month grill season last weekend. The only thing worse than doing the propane exchange rigamarole at Home Depot: doing the exchange at Home Depot, getting handed an empty tank, looking at the guy funny but assuming he knows what he&amp;rsquo;s doing (after all that&amp;rsquo;s his job), going home to verify that yes, the new tank is empty, and going back to try to find someone who cares so you can finally take the new tank home and cook with it because it&amp;rsquo;s now 4pm and you haven&amp;rsquo;t had lunch yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>In flight</title>
      <link>https://bobcopeland.com/blog/2007/04/in-flight/</link>
      <pubDate>Thu, 05 Apr 2007 14:14:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=482</guid> 
      <description>&lt;p&gt;AC and I showed up on the mall to throngs of kite fanatics, their sails dotting the sky very much like a plague of locusts. In the stiff breeze, my kite lept to the sky&amp;hellip;then went unstable, hit two people, and the kiteline yanked the grommet off. Still, it flew, and it wasn&amp;rsquo;t too bad for a first try given I learned a ton from the first stitch on. We spent the rest of the morning flying my two store-bought kites (toddlers love the spinner on my diamond kite), but already I&amp;rsquo;m contemplating my next hand-made.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kite Day</title>
      <link>https://bobcopeland.com/blog/2007/03/kite-day/</link>
      <pubDate>Wed, 28 Mar 2007 03:33:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=481</guid> 
      <description>&lt;p&gt;For those that don&amp;rsquo;t know, Saturday marks the beginning of the Cherry Blossom festival, and consequently the annual Smithsonian Kite festival &amp;ndash; always a blast. Last year I wanted to make a kite for the event, but never got around to it. So, last Sunday I opened up that roll of nylon sitting in the corner and got to work.&lt;/p&gt;
&lt;p&gt;Last night, I bought a cheap sewing machine for the appliquÃ© work necessary for the design (the obvious fractal). Clearly, home ec in middle school was worthless. I had to take apart the machine twice to remove big gobs of thread stuck therein, until I learned how the bobbin is supposed to be threaded. Then, tonight I went to work on the kite after some practice and proceeded to sew some really hideous seams.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hacking ReplayTV</title>
      <link>https://bobcopeland.com/blog/2007/03/hacking-replaytv/</link>
      <pubDate>Sat, 24 Mar 2007 13:21:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=480</guid> 
      <description>&lt;p&gt;A few weeks ago someone contacted me regarding my &lt;a href=&#34;http://bobcopeland.com/karma/&#34;&gt;OMFS filesystem driver&lt;/a&gt; for the Rio Karma. His interest is in getting it working for ReplayTV to do who knows what. This is coming a bit full circle, as I discovered long ago that the RK and RTV use the same proprietary filesystem, and indeed the ReplayTV hackers of yore had documented nearly everything there is to know about the FS, without which I would&amp;rsquo;ve been lost writing the Linux kernel driver in the first place. Of course, there are some differences in the way the two devices do their thing.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t own an RTV, but I like a challenge so I asked him to send me a dump of the first gig of the disk. One look and it is the crack-headedest thing I&amp;rsquo;ve seen in some time: somewhere along the way, their block layer must&amp;rsquo;ve moved from a big-endian to little-endian platform, without changing the code. OMFS is a 64-bit FS but the RTV block layer apparently works on 32 bits, so for example the 64-bit value 0x8877665544332211 gets written to disk as 0x5566778811223344. And it&amp;rsquo;s not just the metadata: *everything* is swapped. Filenames look like &amp;ldquo;tusCzimo..re&amp;rdquo; instead of &amp;ldquo;Customizer&amp;rdquo;. File data blocks are all swapped. Very odd.&lt;/p&gt;
&lt;p&gt;Well, for a time I&amp;rsquo;ve been wanting to experiment with OMFS written in FUSE, so I took my userspace routines from omfsprogs and in the space of an hour or two had a read-only FUSE-based OMFS that did the necessary byte swapping to work with Replay&amp;rsquo;s file system.&lt;/p&gt;
&lt;p&gt;The payoff is the text file that RTV developers apparently used in their version control process. I give you: ReplayTV &amp;ldquo;Token Haiku&amp;rdquo; (after the jump).&lt;/p&gt;
</description>
    </item>
    <item>
      <title>NCAAs</title>
      <link>https://bobcopeland.com/blog/2007/03/ncaas/</link>
      <pubDate>Thu, 22 Mar 2007 14:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=479</guid> 
      <description>&lt;p&gt;I used a complicated computer model to make bracket picks this year, and I&amp;rsquo;m 83.7% so far, which is good enough for 4th place in our office pool of eight (1 point off the 3-way tie for first). Ok, that part about the computer model was a lie but that would be cool wouldn&amp;rsquo;t it? Random guessing ftw!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checklist</title>
      <link>https://bobcopeland.com/blog/2007/02/checklist/</link>
      <pubDate>Wed, 28 Feb 2007 13:48:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=478</guid> 
      <description>&lt;p&gt;With 6.5 months to go, here&amp;rsquo;s the wedding planning update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Location - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reception location &amp;amp; catering - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Photographer - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hopefully non-cheesy DJ - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How to be married class - &lt;a href=&#34;http://bluesterror.livejournal.com/116744.html&#34;&gt;check&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rehearsal dinner location - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Flowers - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dress - check&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Craptacular wedding website - &lt;em&gt;&lt;a href=&#34;https://bobcopeland.com/blog/wedding&#34;&gt;roger that!&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Backed that thing up</title>
      <link>https://bobcopeland.com/blog/2007/02/backed-that-thing-up/</link>
      <pubDate>Sun, 25 Feb 2007 18:11:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=477</guid> 
      <description>I&amp;rsquo;ve had a lucky streak: even with the occasional hard drive failure I haven&amp;rsquo;t had any major data loss for a long time. But tempting fate all this time has become worrisome, so a couple of days ago I signed up for an account at rsync.net, a place that charges $1.60/GB/mo for network accessible hard drive space. This solves the problems I&amp;rsquo;ve always had with using my own disks or DVDs for backup: if it isn&amp;rsquo;t automatic I won&amp;rsquo;t do it, and it had better be offsite. As a bonus, they gave me half off for being open source developer. My setup detailed after the jump.</description>
    </item>
    <item>
      <title>Airport</title>
      <link>https://bobcopeland.com/blog/2007/02/airport/</link>
      <pubDate>Mon, 12 Feb 2007 12:30:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=476</guid> 
      <description>&lt;p&gt;[This entry backdated to when I actually wrote it]&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m currently sitting in the Atlanta airport as part of a quick in-and-out to visit a sick relative. I&amp;rsquo;d easily give a digit for a sausage biscuit right now, but alas the best I can do is trail mix.&lt;/p&gt;
&lt;p&gt;More evidence that the terrorists have won: while waiting in the security line with 2000 of my closest friends, having disposed of the Purell I forgot to check, they started playing some Glenn Medeiros over the intercom. You know,&lt;/p&gt;</description>
    </item>
    <item>
      <title>event.getCurrent</title>
      <link>https://bobcopeland.com/blog/2007/02/eventgetcurrent/</link>
      <pubDate>Wed, 07 Feb 2007 14:42:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=475</guid> 
      <description>&lt;p&gt;Congratulations, NASA, on finally managing to &lt;a href=&#34;http://www.boingboing.net/2007/02/05/jilted_diapered_astr.html&#34;&gt;make space interesting again&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;In other last week&amp;rsquo;s news, bunnie of Xbox hackery fame has a &lt;a href=&#34;http://www.bunniestudios.com/wordpress/?p=151&#34;&gt;nice rundown&lt;/a&gt; on why the ATHF debacle was such a sad commentary on our society. I hope the 2 mil extortion that Ted agreed to is just a face-saving thing and no money actually changed hands.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linuxy</title>
      <link>https://bobcopeland.com/blog/2007/01/linuxy/</link>
      <pubDate>Tue, 30 Jan 2007 13:12:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=474</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been trying out a few new Linux features lately. First, kernel 2.6.20 is shipping with kvm which includes support for the new virtualization instructions on recent processors. This is great because I can use the kvm-modified version of qemu to boot other Linux or Windows XP images while in Linux. Emulating Linux is nice for debugging those kernel bugs that lockup the box, while Windows could theoretically be useful for reverse engineering drivers. Qemu also sets up a NAT transparently so you can easily use the network once you&amp;rsquo;re in the guest OS. No news to anyone that&amp;rsquo;s used vmware, but this is free, and a heckuva lot faster than all-software emulation. Pictured is my little XP-under-Linux test:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Clocked</title>
      <link>https://bobcopeland.com/blog/2007/01/clocked/</link>
      <pubDate>Tue, 23 Jan 2007 02:31:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=473</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/366548679/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://farm1.static.flickr.com/185/366548679_8cf205cbea_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/366548679/&#34;&gt;Clock, side view&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I constructed this a week or two ago, but only just now got a chance to photograph it with a real camera. This represents the first theoretically useful circuit I built with the Arduino platform. It utilizes the 7 segment decoding program along with a real time clock (RTC), blinking out the time one digit at a time. The RTC speaks a serial protocol called I2C so only two pins on the microcontroller are needed to read the time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cooking</title>
      <link>https://bobcopeland.com/blog/2007/01/cooking/</link>
      <pubDate>Mon, 22 Jan 2007 12:46:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=472</guid> 
      <description>&lt;p&gt;Angeline and I took our first cooking class last Saturday, despite her having the worst case of pink eye I&amp;rsquo;ve ever seen (we tried to find a stand-in for her prepaid slot unsuccessfully). Anyway, the class was on basic Chinese cooking, and an area chef supplied us with recipes and went over some basic techniques. I can&amp;rsquo;t say that I learned much that I didn&amp;rsquo;t already know, apart from the Mandarin words approximately meaning &amp;lsquo;slice&amp;rsquo; and &amp;lsquo;shred&amp;rsquo; (and &amp;lsquo;death&amp;rsquo;), but this was a nice format for a class (that is, much wine was consumed).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cracker Jacked</title>
      <link>https://bobcopeland.com/blog/2007/01/cracker-jacked/</link>
      <pubDate>Fri, 12 Jan 2007 12:49:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=471</guid> 
      <description>&lt;p&gt;WTF is up with prizes from Cracker Jacks lately? I remember in my youth the prizes would sometimes suck, like you&amp;rsquo;d get a sticker or a temporary tattoo or something like that, but nowhere near the suckage of recent times. Last week I bought a huge bag of the sticky, not-enough-peanuts-having treat while at a Caps game. I thought the prize couldn&amp;rsquo;t be worse than my last one from several years ago, a &amp;ldquo;notepad&amp;rdquo; &amp;ndash; that is, a tiny square of paper with four lines on it and a picture of an Octopus &amp;ndash; but I was wrong. Instead, I got a piece of paper that informed me historical facts about Susan B. Anthony with an unflattering drawing of same. Who the hell would want this? CJ, if you have decided your mission is to help mankind by educating kids, how about educating them that this bag of caramel corn has 8000 calories inside it and eating it will make one enormous. And the kernels will somehow get stuck to all of your clothes and people will laugh at you and say, &amp;ldquo;hey look, it&amp;rsquo;s the guy with the popcorn stuck to his pants&amp;rdquo; and you will cry.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Can&#39;t spell geek without the EE</title>
      <link>https://bobcopeland.com/blog/2007/01/cant-spell-geek-without-the-ee/</link>
      <pubDate>Tue, 09 Jan 2007 14:03:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=470</guid> 
      <description>&lt;p&gt;Since I&amp;rsquo;ve been mucking with electronics again recently, I spent some xmas money on a Weller temperature-controlled soldering iron, my POS Radio Shack Board Burner 2000 no longer cutting it. Then I took the time last weekend to set up a workbench of sorts with some component drawers and all that good stuff. All it needs is a logic analyzer, oscope, and bench supply (yeah right!).&lt;/p&gt;
&lt;p&gt;Yesterday I received a kit in the mail from &lt;a href=&#34;http://www.sparkfun.com/&#34;&gt;Spark Fun&lt;/a&gt; for an Arduino &amp;lsquo;shield.&amp;rsquo; This is a little board that plugs on top of the Arduino microcontroller board, in this case giving you a little prototyping area. You get the PCB and a few resistors, LEDs and jumper headers to solder onto the board. It took me about an hour with my new setup to put the thing together, and I must say the Weller is *great*. Every single one of my solder connections was perfect whereas with my old iron there would be huge blobs everywhere, scorch marks on the PCB, cold joints aplenty. In another 10 minutes, I had wired up a circuit that basically implements a BCD to 7 segment converter with the microcontroller (i.e., it counts from 0-9 continuously). Here are some ugly phone-cam pics. Aren&amp;rsquo;t you so cuuute wit your widdle breadboard!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Toronto wrapup</title>
      <link>https://bobcopeland.com/blog/2007/01/toronto-wrapup/</link>
      <pubDate>Mon, 08 Jan 2007 01:59:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=469</guid> 
      <description>&lt;p&gt;I can&amp;rsquo;t remember what I was going to write here, except that I suck at Monopoly. We had a good time in Toronto even though it was crowded with eight people in a 2BR apartment. The weather was nice and warm. Weird, eh? Speaking of &amp;ldquo;eh,&amp;rdquo; I only heard one person say it, while we were watching some hockey game in a Queen Street pool hall. I came back with only a few CDN dollars this time. They don&amp;rsquo;t go quite as far as they used to.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Work</title>
      <link>https://bobcopeland.com/blog/2007/01/work-2/</link>
      <pubDate>Wed, 03 Jan 2007 16:40:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=468</guid> 
      <description>&lt;p&gt;Hrm, &lt;a href=&#34;http://www.schneier.com/blog/archives/2007/01/onedoj.html&#34;&gt;this evil project&lt;/a&gt; sounds familiar. Here&amp;rsquo;s hoping the contractors in Seattle that are implementing it aren&amp;rsquo;t hopeless idiots. /me scans work inbox&amp;hellip; oops, too late.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Back from Toronto</title>
      <link>https://bobcopeland.com/blog/2006/12/back-from-toronto/</link>
      <pubDate>Fri, 29 Dec 2006 19:44:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=467</guid> 
      <description>&lt;p&gt;Angeline &amp;amp; I went up to the not-quite-frozen north last week to visit her fam for Christmas. I shall account for time spent there in a future entry a few days from now, but not right now because the pictures I want to post are on my camera that I left there.&lt;/p&gt;
&lt;p&gt;Instead, I&amp;rsquo;ll continue to post about boring technical subjects. Today: one example of sucky Java performance (a topic which hardly anyone in the Java community cares about, apparently). I had a disagreement of opinion with a co-worker recently, as I was coming across code written by a 3rd person that went like:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arduino</title>
      <link>https://bobcopeland.com/blog/2006/12/arduino/</link>
      <pubDate>Sun, 10 Dec 2006 00:59:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=466</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/318153392/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://static.flickr.com/135/318153392_8e83980ba2_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/318153392/&#34;&gt;Arduino&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve had a few parts setting around a while for an upcoming electronics project, but it hasn&amp;rsquo;t gotten far off the ground because I was too lazy to spec out the control circuitry. I wanted it to be microcontroller based, but realizing that serial and parallel ports are ever-dwindling, I also wanted to make sure that I purchased/built a programmer that would still work in a few years&amp;rsquo; time. Enter the Arduino, a perfect little development board based around the Atmel ATmega8; at only $30 for the board and chip, it&amp;rsquo;s a great deal. The chip comes pre-programmed with a bootloader that you can use over USB to upload your programs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aquarium</title>
      <link>https://bobcopeland.com/blog/2006/12/aquarium/</link>
      <pubDate>Mon, 04 Dec 2006 01:10:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=465</guid> 
      <description>&lt;p&gt;While back in Atlanta two weeks ago, Angeline and I toured the one year old Georgia Aquarium, billed as the World&amp;rsquo;s Largest, perfect for a land-locked city, I hunted around the net the night before for some audio podcasts and found a couple, but the free ones that are on the official aquarium website are definitely the best. We followed the audio tour, looked around at the many fish, got hungry, then ate burgers at the Vortex, and I brought back lousy pictures. Click below for the goods.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Papers, please</title>
      <link>https://bobcopeland.com/blog/2006/11/papers-please/</link>
      <pubDate>Wed, 29 Nov 2006 13:16:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=464</guid> 
      <description>&lt;p&gt;I applied for a passport for the first time in mid-October of this year. I was sure that I had waited too long, that I would get one of these damnable passports with the RFID chips in them, and that my next purchase was sure to be an RFID zapper. But it arrived last week, and to my surprise, it lacked the magic you&amp;rsquo;ve-been-screwed symbol. It&amp;rsquo;s still not too late to get a non-chipped one! I believe it&amp;rsquo;s basically luck of the draw at this point, but for what it&amp;rsquo;s worth, I bought mine at the post office and got the non-expedited variety.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t panic</title>
      <link>https://bobcopeland.com/blog/2006/11/dont-panic/</link>
      <pubDate>Sun, 12 Nov 2006 17:23:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=463</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/295527647/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://static.flickr.com/103/295527647_863d245a6e_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/295527647/&#34;&gt;Don&amp;rsquo;t panic&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ever since buying my Accord a couple of years ago, I&amp;rsquo;ve been an enthusiastic frequent user of the keyless entry, as well as an unenthusiastic occasional user of its far-too-easily-activated panic mode. Whenever I sit on my keys, press on the pocket where my key fob resides, or hold it just so (usually when I&amp;rsquo;m carrying in groceries at 11pm on my quiet residential street), my car&amp;rsquo;s horn starts blaring, lights flash, and I have to run to my car hitting the unlock button until it shuts up. Yesterday, I triggered it twice, so I finally decided to do something about it. So I did some surgery: I took a box knife to the traces on its PCB and after thirty minutes (made longer because I screwed up and had to fix a mistake) I now have a fully un-functioning panic button on this thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gauged Encounter</title>
      <link>https://bobcopeland.com/blog/2006/11/gauged-encounter/</link>
      <pubDate>Wed, 08 Nov 2006 05:54:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=462</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://dilbertblog.typepad.com/the_dilbert_blog/2006/10/electronic_voti.html&#34;&gt;I think I voted today.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ange and I fulfilled our pre-Cana responsibilities in one fell swoop last week
by attending a weekend retreat. As in, you must retreat from your senses to
endure the silliness of the whole affair. The weekend was set up as a nonstop
series of lectures by a parade of snippy, passive-aggressive Catholic couples
(examples for us all), followed by sessions in which we betrothed would answer
discussion questions and then privately compare notes on the matter. The first
two or three were actually pretty good, touching on our past together, how we
planned to handle various aspects of married life and our plans for the future.
I&amp;rsquo;m happy to say Ange &amp;amp; I know each other well enough that we generally wrote the same things to each other. Then it got repetitive, and at turns disturbing, at which point we began writing essays with the sole aim of making the other laugh.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blaze</title>
      <link>https://bobcopeland.com/blog/2006/10/blaze/</link>
      <pubDate>Sun, 29 Oct 2006 20:03:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=461</guid> 
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/firetruck.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Dear people who pulled the fire alarm at Angeline&amp;rsquo;s apartment the other evening, causing the fire department to arrive, sirens a-blaring,&lt;/p&gt;
&lt;p&gt;Please wait for warmer, non-rainy weather next time.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I dislike Java.</title>
      <link>https://bobcopeland.com/blog/2006/10/i-dislike-java/</link>
      <pubDate>Wed, 25 Oct 2006 19:00:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=460</guid> 
      <description>&lt;p&gt;Dear lazy web,&lt;/p&gt;
&lt;p&gt;It would be nice if you could tell me a non-hacky way to do progress dialogs from within the event-dispatch thread in Swing, where all of our application logic happens to reside.&lt;/p&gt;
&lt;p&gt;This doesn&amp;rsquo;t work:
&lt;code&gt;display modal dialog start worker thread&lt;/code&gt; (won&amp;rsquo;t run because event thread is blocked)&lt;/p&gt;
&lt;p&gt;Nor does this:
&lt;code&gt;start worker thread display modal dialog&lt;/code&gt; (race condition hiding the dialog)&lt;/p&gt;
&lt;p&gt;Joining in the event thread won&amp;rsquo;t work because it blocks updates. Using a non-modal dialog and passing the bottom-half of the rest of the event thread to the worker thread to execute at completion will work, but is obscenely messy. Or, one can spin in the beginning of the thread waiting for the modal dialog to appear to avoid the race condition, but that is still gross. One could subclass Dialog and have it also signal a condition variable once it blocks&amp;hellip; ugh.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fusion</title>
      <link>https://bobcopeland.com/blog/2006/10/fusion/</link>
      <pubDate>Tue, 24 Oct 2006 01:38:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=459</guid> 
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/al_tkt.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;As the ticket says, last night we went to the State to catch Al Di Meola, who is touring in support of his new CD &lt;em&gt;Consequences of Chaos&lt;/em&gt;. Amazing show replete with Di Meola&amp;rsquo;s signature blazing-fast yet incredibly clean lines. The Project led off with a few selections from the new CD, then went into Azzura, Fugata, and from there into a rousing rendition of the Santana-like single from the new CD, &amp;ldquo;Red Moon.&amp;rdquo; The band took a break and came back with Al playing a few Piazzolla pieces solo on his nylon string guitar, the last teaming up with pianist Mario Parmisano who unfortunately loaded up the bandoneon patch on his keyboard (can&amp;rsquo;t we pretend those instruments never existed?). After that, Al picked up the PRS again, launched into &amp;ldquo;Turquoise&amp;rdquo; off of the new album, then the Chick Corea tune &amp;ldquo;Senor Mouse.&amp;rdquo; I can&amp;rsquo;t remember what finished up the set, but the encores were ambitious: &amp;ldquo;Race With the Devil&amp;rdquo; followed by &amp;ldquo;Egyptian Danza.&amp;rdquo; The only flaws in the performance lie at the feet of the sound engineers who had problems with feedback in the middle of the show, poor mixes, and a speaker that was picking up a radio station as if it was right out of Spinal Tap.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Denied</title>
      <link>https://bobcopeland.com/blog/2006/10/denied-2/</link>
      <pubDate>Tue, 17 Oct 2006 18:55:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=458</guid> 
      <description>&lt;p&gt;I just finished reading Woodward&amp;rsquo;s new book, &lt;em&gt;State of Denial&lt;/em&gt;, a very provocative and damning look at the Bush administration&amp;rsquo;s handling of the war in Iraq. My take-aways are: Rumsfeld is a jerk, a bunch of PhDs can bollocks things up quite nicely merely by lying, and Colin Powell is an AOLer. Worth a read.&lt;/p&gt;
&lt;p&gt;No idea what to be for Halloween this year. I suppose that is okay since I don&amp;rsquo;t have any plans either. Perhaps I should make another rock-icon-o-lantern?&lt;/p&gt;</description>
    </item>
    <item>
      <title>LX</title>
      <link>https://bobcopeland.com/blog/2006/10/lx/</link>
      <pubDate>Thu, 12 Oct 2006 14:24:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=457</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been sick the last few days. Meh.&lt;/p&gt;
&lt;p&gt;I went down to Georgia last weekend, looking for a soul to steal, as usual. My grandparents have attained their sixtieth year of marriage this year, so I spent 20 hours in the Atlanta suburb in which I once resided.&lt;/p&gt;
&lt;p&gt;The lady at the check-in counter told me to have a nice flight, and I said &amp;ldquo;you too.&amp;rdquo; I used to enjoy flying, but the soviet checkpoints we must navigate now have really killed it for me. Wearing my EFF shirt, I was surprised to not get the magic SSSes on my boarding pass. The trek through the screening area still sucked, though, even without the special treatment. I expect that for Thanksgiving I&amp;rsquo;ll be driving my car instead. Thanks, 4th amendment haters.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dead literati</title>
      <link>https://bobcopeland.com/blog/2006/10/dead-literati/</link>
      <pubDate>Wed, 04 Oct 2006 14:35:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=456</guid> 
      <description>&lt;p&gt;Fun fact: F Scott Fitzgerald and family are &lt;a href=&#34;http://en.wikipedia.org/wiki/Saint_Mary%27s_Cemetery_%28Maryland%29&#34;&gt;buried&lt;/a&gt; next to the chapel where Ange &amp;amp; I are to be married. Neat.&lt;/p&gt;
&lt;p&gt;BTW, if any of my few readers happen to be job hunting, let me know, as our company needs programmers badly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Date saved</title>
      <link>https://bobcopeland.com/blog/2006/09/date-saved/</link>
      <pubDate>Thu, 28 Sep 2006 20:11:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=455</guid> 
      <description>&lt;p&gt;Well, some progress has been made in the wedding planning, including the tentative selection of date: 15 Sept 2007. First, though, we have to talk to the priest this weekend and consequently do a bit of acting as to the degree of our collective piousness. Here&amp;rsquo;s hoping we&amp;rsquo;re judged to be adequate.&lt;/p&gt;
&lt;p&gt;Not much else going on this weekend, other than the Battle of Techs on the gridiron. May the worst team lose!&lt;/p&gt;</description>
    </item>
    <item>
      <title>keelhaul handlin&#39; of OEM flags</title>
      <link>https://bobcopeland.com/blog/2006/09/keelhaul-handlin-of-oem-flags/</link>
      <pubDate>Wed, 20 Sep 2006 14:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=454</guid> 
      <description>&lt;p&gt;Most of the pirate stuff annoys the heck out of me on talk like a pirate day (that was yesterday by the way, yarr and so forth). But Linus&amp;rsquo;&lt;a href=&#34;http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=115872699122126&amp;amp;w=2&#34;&gt;kernel announcement&lt;/a&gt; yesterday was priceless, though he could stand to work on his piratese.&lt;/p&gt;
&lt;p&gt;My next kernel contribution should ship with 2.6.19, w00t.&lt;/p&gt;</description>
    </item>
    <item>
      <title>People are dumb</title>
      <link>https://bobcopeland.com/blog/2006/09/people-are-dumb/</link>
      <pubDate>Mon, 11 Sep 2006 21:02:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=453</guid> 
      <description>&lt;p&gt;I saw a guy with a sticker on his backpack today that said &amp;ldquo;Rideing Durty.&amp;rdquo; Now, I know this has something to do with some song, and that it is also cool/trademarkable in some circles to spell things wrong (see Fabolous), but seriously, rideing? If you were the printer making said sticker, how could you let that one get through?&lt;/p&gt;
&lt;p&gt;Also, Oscar Mayer is now &lt;a href=&#34;http://www.kraft.com/newsroom/OMRanks.html&#34;&gt;making cooking &lt;em&gt;hot dogs&lt;/em&gt; easier&lt;/a&gt;. Is this the state of culinary despair to which our society has sunk, that cooking hot dogs is too onerus? I love the write-up in the press release: &amp;ldquo;Preparation is easy, and thereâ€™s no cook top mess or boiling water!&amp;rdquo; Oh, heavens, that my prayers have been answered so fully! I fear I&amp;rsquo;ll be telling my future children how I remember it taking almost a minute to make a hot dog, and we had to open the buns ourselves! And grilled cheese, boy was that a sisyphean task&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello, java!</title>
      <link>https://bobcopeland.com/blog/2006/09/hello-java/</link>
      <pubDate>Sat, 09 Sep 2006 21:00:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=452</guid> 
      <description>&lt;p&gt;I was messing around with Java bytecode today for no particular reason. It&amp;rsquo;s a fairly simple assembly language &amp;ndash; stack based so it takes a little getting used to but not hard for anyone who has used an HP calculator. I installed a copy of jasmin from my apt repository and got to work.&lt;/p&gt;
&lt;p&gt;I wanted to make a &amp;ldquo;Hello, world!&amp;rdquo; that wasn&amp;rsquo;t completely obvious at first blush, so the plan of attack was to just push all the ascii codes on the stack in reverse order then call System.out.print() on them in a loop. Each iteration checks the loop count, if ok then pop the next code and print it. Here is where the bytecode verifier is a pain in the ass: apparently, the instructions must be executed each time through a loop with the same stacksize, or else you are branded an evil hacker. Very annoying. I could&amp;rsquo;ve used an array instead but that also takes a bunch of pushes and stores, so I just unrolled the loop. It works, I guess. Code after the jump.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Bug</title>
      <link>https://bobcopeland.com/blog/2006/09/bug/</link>
      <pubDate>Fri, 08 Sep 2006 17:12:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=451</guid> 
      <description>&lt;p&gt;Philly didn&amp;rsquo;t happen, again because of rain. I saw on their website that the game went on anyway. Bah.&lt;/p&gt;
&lt;p&gt;My ubuntu install is doing a bit better after a week of various customizations. Now the Fn key and all of the special laptop keys do things (more than I ever had working on my Dell), and tap-to-click is going on the touchpad. I&amp;rsquo;m still having a strange problem with HAL, however, and negotiating its maze of XML config files isn&amp;rsquo;t the best. While looking for help, I saw this: &lt;a href=&#34;https://launchpad.net/distros/ubuntu/+bug/1&#34;&gt;Ubuntu bug #1&lt;/a&gt;. Silly, but I like the feedback, especially the &amp;ldquo;it&amp;rsquo;s a feature!&amp;rdquo; post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It&#39;s always rainy in Philadelphia</title>
      <link>https://bobcopeland.com/blog/2006/08/its-always-rainy-in-philadelphia/</link>
      <pubDate>Wed, 30 Aug 2006 15:01:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=450</guid> 
      <description>&lt;p&gt;Well, because the last trip was such a success (rained out ballgame), this Saturday a few of us are heading back to Philly to cash in the raincheck. Here&amp;rsquo;s hoping we have enough time for a wiz wit (and of course to soak up all the culture that PA has to offer.)&lt;/p&gt;
&lt;p&gt;In other news, I have a new laptop. After getting pissed at my Dell for its recent habit of turning itself off whenever it feels like it (hmm, just like my old Sony!), I picked up an Intel MacBook. Yep, my IQ points are already receding. First thoughts &amp;ndash; OSX is pretty cool but I probably won&amp;rsquo;t use it much: better than hockey pucks but still too graphical for a real Unix user.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perfectly reputable business</title>
      <link>https://bobcopeland.com/blog/2006/08/perfectly-reputable-business/</link>
      <pubDate>Sat, 26 Aug 2006 22:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=449</guid> 
      <description>&lt;p&gt;Sign seen in Falls Church:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/ending.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>blocks</title>
      <link>https://bobcopeland.com/blog/2006/08/blocks/</link>
      <pubDate>Thu, 24 Aug 2006 13:35:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=448</guid> 
      <description>&lt;p&gt;It can be a humbling experience to revist old code. And I&amp;rsquo;m not talking about the dynamic simulation stuff, which is obviously a hack on top of a pile of hacks. No, this week I returned to my old pal ansiconv, the program that converts text files to images of the text file, rendering it as if you had ANSI.SYS loaded and typed &lt;code&gt;TYPE KOOL.ANS&lt;/code&gt; at the cee colon backslash prompt. This program had achieved a modicum of success in its heyday but lately various alternatives have popped up written in languages such as C# and PHP. Being the C bigot that I am (one who writes Java for a living), I thought I would update this one great program, slap a PHP module interface on it, and unleash it upon the world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Denied</title>
      <link>https://bobcopeland.com/blog/2006/08/denied/</link>
      <pubDate>Sun, 20 Aug 2006 22:19:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=447</guid> 
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bob,&lt;/em&gt;
&lt;em&gt;We appreciate you coming by on Wednesday. Your playing was awesome, however we do not feel that that style would fit in the direction that we would like go. Good luck in your future endeavors.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Oh well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rodgered</title>
      <link>https://bobcopeland.com/blog/2006/08/rodgered/</link>
      <pubDate>Wed, 16 Aug 2006 17:00:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=446</guid> 
      <description>&lt;p&gt;Well, Herring and the boys put on a fine show last Friday night. Rodgers reprised his Codetalkers role as the twangy-voiced banjo picker, Herring blazed through his usual set of chromatic runs and intervallic melodies, Sipe served up an amazing drum solo, and Fountain rounded out the group, hefting a six string bass to sub-1kHz heights. I will admit to nearly falling asleep during some of the more wordy songs, especially the one about unicorns and rainbows, but the odd reference to guts splattered on walls reeled me back in. I wouldn&amp;rsquo;t mind seeing JH let loose a bit more, but of course I&amp;rsquo;m biased.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cod</title>
      <link>https://bobcopeland.com/blog/2006/08/cod/</link>
      <pubDate>Wed, 09 Aug 2006 14:39:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=445</guid> 
      <description>&lt;p&gt;Wondering what to do this weekend? Well here you go: Herring, Rodgers, Sipe, and Fountain are playing at the State&amp;rsquo;s late show on Saturday. Yup, that&amp;rsquo;s &lt;em&gt;Jimmy&lt;/em&gt; Herring (ARU, ProjectZ, Dragonflies, Jazz is Dead, Codetalkers), the best unknown guitarist alive today. Rodgers (Codetalkers) is no slouch himself. The other guys I have no idea, but I do know this will be a kick ass show. 10pm.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Engaged</title>
      <link>https://bobcopeland.com/blog/2006/08/engaged/</link>
      <pubDate>Sun, 06 Aug 2006 14:49:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=444</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/208003349/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://static.flickr.com/59/208003349_c5fbfa5f7e_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/208003349/&#34;&gt;Engagement ring&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the pretty present I gave to Angeline yesterday. Yes, that&amp;rsquo;s right, I&amp;rsquo;m soon to be among the few people on earth to have both code in the Linux kernel, &lt;em&gt;and&lt;/em&gt; a wife.&lt;/p&gt;
&lt;p&gt;She came over to my house after work, where I had candles burning and a half dozen roses in hand. Then I produced the ring box, knelt, and popped the question, to an enthusiastic &amp;lsquo;yes!&amp;rsquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>105</title>
      <link>https://bobcopeland.com/blog/2006/08/105/</link>
      <pubDate>Thu, 03 Aug 2006 21:26:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=443</guid> 
      <description>&lt;p&gt;What I want to know is: when are we going to get the terrorists for making it so hot?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Picks</title>
      <link>https://bobcopeland.com/blog/2006/07/picks/</link>
      <pubDate>Sat, 29 Jul 2006 21:40:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=442</guid> 
      <description>&lt;p&gt;I was feeling craft-y today so I made fridge magnets out of guitar picks. The Derek Trucks Band one came from a Derek Trucks Band merch stand, though.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/pickmags.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Philly</title>
      <link>https://bobcopeland.com/blog/2006/07/philly/</link>
      <pubDate>Tue, 25 Jul 2006 13:35:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=441</guid> 
      <description>&lt;p&gt;Last weekend I jumped on a bus full of snippy former Atlantans and visited my favorite city within a 3 hour drive (DC excepted of course)&amp;hellip; and that is Philadelphia. But you already knew that because of the subject. So you probably also figured that I would speak again about how good Amoroso&amp;rsquo;s rolls are when covered in beef and provolone, and you&amp;rsquo;d be wrong, because this time I got Cheez-whiz. Anyhow, our goal was to go watch a Braves-Phillies game in the stadium over there, but it rained all afternoon, so instead we watched &amp;ldquo;Phillie [sic] Phanatic Goes To Hollywood&amp;rdquo; on the jumbotron until they called the game. Then we ran up the steps of the art museum just like Rocky, if Rocky was really uncoordinated and was nine out of shape people who have never been in a fight. Finally we had awful food in an awful bar, then came home. I swear I had something interesting to say but I forgot what exactly. Oh well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kicks</title>
      <link>https://bobcopeland.com/blog/2006/07/kicks/</link>
      <pubDate>Tue, 18 Jul 2006 12:11:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=440</guid> 
      <description>&lt;p&gt;They&amp;rsquo;ve been around a while and made the blog rounds a year ago, but for the first time I saw a pair of these in the wild. From the people who brought you &lt;a href=&#34;http://www.engadget.com/2006/03/09/dada-unleashes-code-m-mp3-shoes-on-an-unsuspecting-populace/&#34;&gt;MP3 player shoes&lt;/a&gt; come the coolest thing I have ever seen: shoes with spinners.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://www.weblogsinc.com/common/images/2509517750662485.JPG&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delayed</title>
      <link>https://bobcopeland.com/blog/2006/06/delayed/</link>
      <pubDate>Fri, 30 Jun 2006 01:05:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=439</guid> 
      <description>&lt;p&gt;Delays on Metro today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A train experiencing mechanical problems at Reagan National&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A broken track circuit at Federal Triangle&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A sick guy at Pentagon City&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I might consider this some sort of perfect storm of mishaps, all just happening to occur during a single commute on all of the lines I take, except that this is starting to be the norm.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Banshee</title>
      <link>https://bobcopeland.com/blog/2006/06/banshee/</link>
      <pubDate>Thu, 29 Jun 2006 03:38:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=438</guid> 
      <description>&lt;p&gt;Look what I did:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/banshee-sm.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>St. Croix wrapup</title>
      <link>https://bobcopeland.com/blog/2006/06/st-croix-wrapup/</link>
      <pubDate>Mon, 26 Jun 2006 15:14:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=437</guid> 
      <description>&lt;p&gt;I was planning Wednesday morning to try out my aerial kite photography rig on the beach, but the saltwater that thoroughly soaked us on the day before destroyed the CVS &amp;ldquo;disposable&amp;rdquo; digital camera. It would turn on but then emit woeful beeps and Windows warned me that the USB device was out of spec. Oh well &amp;ndash; I&amp;rsquo;ll try to get another camera and give this another shot soon.&lt;/p&gt;
&lt;p&gt;We decided instead to have a leisurely breakfast then head out for an afternoon of kayaking. The resort had a half-dozen kayaks available for checkout so we took a two-seater into the bay. This is a fun way to spend an hour, but we&amp;rsquo;d have done well to remember this rule: start out against the current, so you can just coast back to the launching point. Our trip back was exhausting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tuesday on St. Croix</title>
      <link>https://bobcopeland.com/blog/2006/06/tuesday-on-st-croix/</link>
      <pubDate>Tue, 20 Jun 2006 23:44:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=436</guid> 
      <description>&lt;p&gt;We ate dinner last night at Kendrick&amp;rsquo;s in Christainsted. The waiter earned Angeline&amp;rsquo;s ire by arguing with her over how she should have her food cooked. I had a grilled filet mignon in an orange-tinted bouillabaise, and Ange had a pan-seared tuna. My filet was a little overly clove-y, but done to perfection. The food was good, but as a Frommer&amp;rsquo;s two-star recommendation, I expected more.&lt;/p&gt;
&lt;p&gt;We got up this morning to do a half day trip on Buck Island, the best beach and snorkeling spot around St. Croix. I had arranged a cab to pick us up at 11 so we could make the check-in time at 11:30. It finally showed, after a couple of calls, twenty-five minutes late. But all was well, we arrived just in time to board.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Monday on St. Croix</title>
      <link>https://bobcopeland.com/blog/2006/06/monday-on-st-croix/</link>
      <pubDate>Mon, 19 Jun 2006 08:26:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=435</guid> 
      <description>&lt;p&gt;Last night our flight got in okay. We took a long winding cab ride through slums and by dilapidated edifices, through the small nice touristy town of Christiansted, and finally to the hotel. I highly recommend the Chenay Bay Beach Resort, by the way. Each room is a separate little cottage with kitchenette, ample bedroom and bathroom. I only wish the showers had more water pressure, but it&amp;rsquo;s no huge annoyance. The deal is good during summer too: this being the offseason, our fourth night was free.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Beach bound</title>
      <link>https://bobcopeland.com/blog/2006/06/beach-bound/</link>
      <pubDate>Sun, 18 Jun 2006 16:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=434</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m sitting in the Luis Arroz San Juan Memorial International Regional Airport and Helicopter Concern, or something like that, in the heart of Puerto Rico. Angeline and I have decided to bid a &amp;ldquo;screw this&amp;rdquo; to working life and move down here&amp;hellip; for a few days, anyway. I&amp;rsquo;ll try to report on the goings on as the days progress.&lt;/p&gt;
&lt;p&gt;Today we awoke at a far-too-early 4 AM, jumped in the car and headed to The Right Honorable Jeremiah Hartsfield-Maynard Jackson-William Franklin Campbell Atlanta International Airport. The Delta ticketing agent there gave Angeline crap about being Canadian because she couldn&amp;rsquo;t read Angeline&amp;rsquo;s passport. Myself, I claimed to be a US citizen and they just took my word for it. Moral: lie about your citizenship if you&amp;rsquo;re on a visa.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KAP Rig</title>
      <link>https://bobcopeland.com/blog/2006/06/kap-rig/</link>
      <pubDate>Tue, 06 Jun 2006 03:11:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=433</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/161399817/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://static.flickr.com/49/161399817_279d6e4a78_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/161399817/&#34;&gt;KAP Rig&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made some more progress on the kite camera rig over the weekend. I attached the battery pack to the back and the RF receiver to the L-bracket using those foam mounting squares that are so good at tearing up walls. Then I velcro-ed the servo just above the shutter button so that pushing on the stick will cause it to snap a picture. I had to wrap a rubber band around the servo and camera body; otherwise the servo would simply lift up instead of applying force to the shutter. Finally, I finished up the lingering bits of the Pivacet suspension. So everything is ready to go for the next sunny weekend!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Saddle sore</title>
      <link>https://bobcopeland.com/blog/2006/05/saddle-sore/</link>
      <pubDate>Wed, 31 May 2006 14:13:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=432</guid> 
      <description>&lt;p&gt;My ride home last evening was much easier than the ride out. I was carrying less weight in my backpack (though still around 15lbs or so), had eaten something, and tightened the rear shocks up. And I noticed during the ride home that the rear tire would occasionally slip out of the dropout slightly and rotate sideways about 25 degrees, such that the edge of the tire would rub against the frame of the bike. Surprise, losing half of your energy to friction really makes a difference. Correcting this made the ride much easier. Though I&amp;rsquo;m still going to stick to the car for now: externalities aside, oil is just so much cheaper than food, and I&amp;rsquo;m lazy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reunbiked</title>
      <link>https://bobcopeland.com/blog/2006/05/reunbiked/</link>
      <pubDate>Tue, 30 May 2006 19:00:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=431</guid> 
      <description>&lt;p&gt;Hmm&amp;hellip; I forgot how much bike riding sucked&amp;hellip; or how much I suck at bike riding. So I think after one half of a commute, this idea is dead. I&amp;rsquo;ll try and dial back my suspension some though and see if I can&amp;rsquo;t make the return trip a little more comfortable this evening. It probably would have helped if I had a) worn shorts and b) had any sugar in my system to speak of this morning.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rebiked</title>
      <link>https://bobcopeland.com/blog/2006/05/rebiked/</link>
      <pubDate>Fri, 26 May 2006 12:46:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=430</guid> 
      <description>&lt;p&gt;Some days I feel a distinct lack of purpose. I call them weekdays! Hah-hah. But seriously ladies and gentlemen, your narrator is out of shape. It seems going to the gym only on presidential birthdays isn&amp;rsquo;t the best health plan. And while I may weigh less than this time last year, I&amp;rsquo;m certainly not as fit. So next week, provided it doesn&amp;rsquo;t rain and I can hit the bike store this weekend to get a lock [note copious outs], I&amp;rsquo;m going to try this bike-to-work thing. Well, not all the way to work, but at least to the bus stop. Someone&amp;rsquo;s got to use that bike path. I&amp;rsquo;ll apprise readers of the results of the experiment as it progresses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microwave</title>
      <link>https://bobcopeland.com/blog/2006/05/microwave/</link>
      <pubDate>Fri, 19 May 2006 15:21:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=429</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_photo.php?set_albumName=kitchen&amp;amp;id=img_0944&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kitchen/img_0944.thumb.jpg&#34;&gt;&lt;/a&gt;
I spent a vulgarity-filled evening last night installing a new microwave oven into the formerly blank area above my stove. This last and final piece of kitchen project 2005-6 may well have been the most annoying of the bunch. To begin with, I had to patch up the drywall holes left by the electricians when installing a new circuit &amp;ndash; they had reattached the cutouts but left the putty work to me. So I embarked on the now-familiar task of covering a wall in joint compound, then sanding it into oblivion, priming and painting. This naturally left me with a nice thin coat of sheetrock dust throughout the kitchen. After the paint dried, I began drilling holes as needed in the base cabinet. My drill&amp;rsquo;s battery died after approximately three seconds of this. Why do they even make cordless drills, I ask you?&lt;/p&gt;</description>
    </item>
    <item>
      <title>KAP</title>
      <link>https://bobcopeland.com/blog/2006/05/kap-2/</link>
      <pubDate>Mon, 15 May 2006 04:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=428</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/146660303/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://static.flickr.com/56/146660303_10d81e48fe_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/146660303/&#34;&gt;IMG_0931&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made a bit more progress with the kite cradle. I picked up a 1/4&amp;quot; dowel and some vinyl tubing from Home Depot, and scavenged various other bits of wood from the ex-kitchen cabinets. Pictured is more or less what the thing should look like once hitched to the kite, although I still haven&amp;rsquo;t decided how to mount the servos and R/C receiver &amp;ndash; duct tape is a leading candidate. This design, incidentally, is straight from the pages of Make: magazine, except that I pretty much ignored the directions and got all the wrong sizes for everything, and also that mine will be R/C controlled instead of timed with silly putty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Paleolithic</title>
      <link>https://bobcopeland.com/blog/2006/05/paleolithic/</link>
      <pubDate>Wed, 10 May 2006 15:17:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=427</guid> 
      <description>&lt;p&gt;Dear Slashdot, I briefly lifted my null route of your IP to read &lt;a href=&#34;http://linux.slashdot.org/linux/06/05/10/0439246.shtml&#34;&gt;some blather about microkernels&lt;/a&gt;. It&amp;rsquo;s not even a debate among Linux kernel developers, so why you bringin&amp;rsquo; up old shit? Oh yeah, so that people who have no clue can bitch about the Linux development process (&amp;ldquo;I want my latest network card to work but I don&amp;rsquo;t want any other work done! Oh and how about a stable ABI so NVidia can screw us more?&amp;rdquo;). *plonk*&lt;/p&gt;</description>
    </item>
    <item>
      <title>More readings</title>
      <link>https://bobcopeland.com/blog/2006/05/more-readings/</link>
      <pubDate>Tue, 09 May 2006 17:35:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=426</guid> 
      <description>&lt;p&gt;Recently added to my bookshelf:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/gp/product/0393329127&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://images.amazon.com/images/P/0393329127.01._SCTHUMBZZZ_V54435651_.jpg&#34;&gt;&lt;/a&gt; &lt;em&gt;Spook&lt;/em&gt; by Mary Roach. 4 stars. I believe Stiff was a notch funnier, but Spook doesn&amp;rsquo;t disappoint. Roach turns a skeptic&amp;rsquo;s eye on the afterlife and various occult shenanigans. Loses half a point for fart jokes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/gp/product/1400078776&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://images.amazon.com/images/P/1400078776.01._SCTHUMBZZZ_.jpg&#34;&gt;&lt;/a&gt;&lt;em&gt;Never Let Me Go&lt;/em&gt; by Kazuo Ishiguro. 4 stars. This novel reminds me of my youth,
growing up as a member of the experimental group in a controlled scientific
study.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KAP</title>
      <link>https://bobcopeland.com/blog/2006/05/kap/</link>
      <pubDate>Wed, 03 May 2006 12:55:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=425</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/139706042/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://static.flickr.com/49/139706042_090fa0b7c8_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/139706042/&#34;&gt;Power supply&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve made some slight progress on my aerial photography project. I bought a used R/C airplane radio with servos and a receiver. The receiver and servos were meant for park flyers (i.e. super light planes) so I figure that will be a good match for the kite where it&amp;rsquo;s all about weight. But you gotta power those things somehow, so I built a simple battery supply using a Radio Shack AA battery holder and shorting one of the terminals. The batteries add a lot of weight, but I can probably throw a resistor in series with the PS and power the camera off of the batteries as well. The idea is to mount the servo on top of the camera near the shutter button, then just wiggle the stick to snap a picture. I&amp;rsquo;ve tested this in a limited fashion and it seems to work nicely. The camera, of course, is the &amp;ldquo;one-time-use&amp;rdquo; CVS camera which has been hacked to be many-time-use.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shinedown Redux</title>
      <link>https://bobcopeland.com/blog/2006/05/424/</link>
      <pubDate>Tue, 02 May 2006 00:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=424</guid> 
      <description>&lt;p&gt;I am a bit late in getting to the requisite blog entries. Partly that is because my Dell laptop is sucking now. After only having the thing for two years, the power connector has broken internally such that batteries can no longer be charged; this appears to have happened to many many other Dell laptop owners. Great work, guys. So I take back any good things I said about Dell, especailly after half the desktops at work showed up with bad RAM.&lt;/p&gt;</description>
    </item>
    <item>
      <title>procced mail</title>
      <link>https://bobcopeland.com/blog/2006/04/procced-mail/</link>
      <pubDate>Sun, 23 Apr 2006 14:32:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=423</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been meaning to do something about my spam situation, which rather sucks at the moment. Now that my email address appears occasionally on the linux kernel mailing list and elsewhere, I&amp;rsquo;ve not suprisingly got a signal-to-noise ratio of something like 200:1. I&amp;rsquo;ve had spam assassin in the loop for a while, but the Bayesian analysis always invokes the OOM killer on my memory poor firewall so it&amp;rsquo;s not running with full effectiveness. Thus I took a little time out to add a whitelist to the front end to make things go better: if you&amp;rsquo;re in the whitelist, it skips all the filters. Meanwhile SA will get the threshold cranked up to consider practically everything spam, and I&amp;rsquo;ll be more likely to insert one-off regexps that trash certain spams that I get over and over again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shinedown</title>
      <link>https://bobcopeland.com/blog/2006/04/shinedown/</link>
      <pubDate>Fri, 21 Apr 2006 14:46:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=422</guid> 
      <description>&lt;p&gt;As soon as I discovered that it wasn&amp;rsquo;t Chris Cornell behind a certain song from the point of view of the overmedicated, I&amp;rsquo;ve been enjoying Shinedown. So next Monday night, AC and I are going to see if their stage show holds up to the CD. Also on the ticket is Trapt, whose song Still Frame was once played by my old band, and two bands with whom I&amp;rsquo;m unfamiliar. See you there at Ram&amp;rsquo;s Head Live in Baltimore, doors open at 7pm.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Awarded</title>
      <link>https://bobcopeland.com/blog/2006/04/awarded/</link>
      <pubDate>Fri, 21 Apr 2006 14:10:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=421</guid> 
      <description>&lt;p&gt;Yesterday, Director&amp;rsquo;s awards were distributed here at work, and the powers that be were nice enough to honor myself and a couple of other programmers on our mad software skillz even though we are only contractors. Despite the fact that everyone pronounces &amp;ldquo;Director&amp;rdquo; in hushed tones as if they are Death Star peons discussing The Emporer, sure that their thoughts are being probed by some dark-side evildoings, we didn&amp;rsquo;t realize that the awards ceremony was An Affair, which is to say that suits were required. So I show up, along with my coworkers, in full-on business casual to a gathering of hundreds of ensuited Vic Mackeys. Like the jackasses that wear a T-shirt on picture day1, we ignored the occasional looks of disdain directed towards our section during the service. I say service, because it was practically a church affair, with a prayer at the beginning, a prayer at the end, and lots of boredom in between that mostly didn&amp;rsquo;t apply to me. The only difference was that instead of an organ, the pre-ceremony music was played by members of The President&amp;rsquo;s Own Marine Corps band. After an interminable wait, during which people who actually deserved awards were recognized, we eventually got called, walked across the stage, shook hands with Palpitane and the second-in-command at DOJ, then hid behind better dressed personnel for the group photo. So I guess what I am saying is, fear my awesome certificate, bitches!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stanley Jordan</title>
      <link>https://bobcopeland.com/blog/2006/04/stanley-jordan/</link>
      <pubDate>Tue, 18 Apr 2006 14:08:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=420</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been scanning the local venues and home pages of a few favored artists to find good shows to attend this summer. Who would have guessed that Stanley Jordan, two-handed tapping jazz guitarist extraordinaire, would be a &lt;a href=&#34;http://www.stanleyjordan.com/Links/Computing.html&#34;&gt;full-on nerd&lt;/a&gt;? Of course, I mean that in the most complimentary sense. Watch as he &lt;a href=&#34;http://groups.google.com/group/comp.lang.apl/msg/11788d7221d96f58?hl=en&#34;&gt;schools usenet entities&lt;/a&gt; on his APL and C=64 FORTH hackery. Neat.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Projects afoot</title>
      <link>https://bobcopeland.com/blog/2006/04/projects-afoot/</link>
      <pubDate>Mon, 17 Apr 2006 15:02:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=419</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m in something of a manic mode now that winter has fully departed. This weekend saw the embarkation on/completion of a few projects. I finished up all of the remaining niggling table-saw work required for my kitchen &amp;ndash; the quarter round floor molding and the remaining decorative molding under the cabinets. Then I cleaned up my garage a bit; who knows, maybe in a month or two I&amp;rsquo;ll be able to get my car back in there. I also took the first steps in what I hope to be a less sucky landscape for my house: I mulched an area around my trees that tends to grow weeds like crazy, pulled up said weeds, removed a rotten and termite infested bench, and started a little indoor herb garden. I still had time to play a few rounds of &lt;a href=&#34;http://sc2.sourceforge.net/&#34;&gt;The Ur-Quan Masters&lt;/a&gt;, until I remembered what an incredible time sink StarCon2 happened to be, at which point I resigned my post as intergalactic diplomat forever and went back to noodling on the guitar.&lt;/p&gt;</description>
    </item>
    <item>
      <title>No Through Trucks</title>
      <link>https://bobcopeland.com/blog/2006/04/no-through-trucks/</link>
      <pubDate>Wed, 12 Apr 2006 13:25:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=418</guid> 
      <description>&lt;p&gt;I suppose I should say a word or two about the latest Derek Trucks showing, and compare it to the other 6(?) times I&amp;rsquo;ve seen them, but what is there to say except that DTB was good as always and the 9:30 Club was really smokey. Kofi was probably super high as he was more animated than I&amp;rsquo;d ever seen him, standing up in the middle of a solo and banging out the bass chords with his fist, bellowing &amp;ldquo;I have a Wah-Wah pedal&amp;rdquo; during a particularly wokka-wokka keyboard part, and acting the preacher during their gospel number, testifying that &amp;ldquo;one man saved his life&amp;rdquo; &amp;ndash; nope, not Jesus, but Derek Trucks! I picked up their new album &lt;em&gt;Songlines&lt;/em&gt; which is interesting in that each song flows into the next, much like at their shows. On the whole it&amp;rsquo;s worth the $15 and it&amp;rsquo;s nice to hear Mattison on a studio release, but unfortunately it fails to live up to past glory like &lt;em&gt;Soul Serenade&lt;/em&gt; when all the songs were brand new. There are definitely a lot more people at shows compared with
6 years ago so the word is getting out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Busy</title>
      <link>https://bobcopeland.com/blog/2006/04/busy/</link>
      <pubDate>Fri, 07 Apr 2006 14:36:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=417</guid> 
      <description>&lt;p&gt;This weekend is shaping up to be a full one. Six points music festival is going on, but my money is going to the 9:30 Club to see DTB again. I hear they have a whole new setlist and a new CD, so that should be a good change of pace. On top of that: apartment shopping, batting practice, guitar lesson, baking, yardwork, etc. w00t.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#43;&#43;Readings</title>
      <link>https://bobcopeland.com/blog/2006/03/readings-2/</link>
      <pubDate>Wed, 29 Mar 2006 12:52:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=416</guid> 
      <description>&lt;p&gt;A great companion to &lt;em&gt;High Fidelity&lt;/em&gt;, I just started reading &lt;em&gt;Sex, Drugs, and Cocoa Puffs&lt;/em&gt; by Chuck Klosterman. This is a collection of hilarious essays deconstructing pop culture and its many important implications for us as human beings. Think of it as an embittered yet philosophical &lt;a href=&#34;http://www.x-entertainment.com/&#34;&gt;X-Entertainment&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I picked this book up because of the title, obviously, but I took it home because a scan of the book found an entire chapter dedicated to &amp;ldquo;Saved By The Bell.&amp;rdquo; I&amp;rsquo;m not sure why I watched this particular bit of inane zeitgeist twice every afternoon after school, except perhaps, as Klosterman says, &amp;ldquo;because it was on TV.&amp;rdquo; But there were always lessons to be learned in the glib storylines, such as when Zack Morris bought securities on margin (Screech: &amp;ldquo;on margarine&amp;rdquo;) using Miss Bliss&amp;rsquo;s brokerage account (Lesson: &lt;em&gt;buy low sell high&lt;/em&gt;), or the time when Zack beat Jessie on the SATs, scoring 1502 (Lessons: &lt;em&gt;don&amp;rsquo;t judge a book by its cover&lt;/em&gt; and &lt;em&gt;you can somehow get two extra points on the SATs&lt;/em&gt;). And people said TV has no value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kites flown</title>
      <link>https://bobcopeland.com/blog/2006/03/kites-flown/</link>
      <pubDate>Mon, 27 Mar 2006 14:40:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=415</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_photo.php?set_albumName=kites&amp;amp;id=IMG_0884&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kites/IMG_0884.thumb.jpg&#34;&gt;&lt;/a&gt; Saturday was perfect weather for the 40th Annual Smithonian Kite Festival. AC and I relived our youth on the Washington Monument grounds, getting my pair of kites up into the air with various levels of success. AC proved superior at piloting, managing to get the hard-to-fly spinning diamond to the end of its tether, 150 feet up, and the froggy kite to somewhere in the 200 ft. range. Unlike our Pakistani counterparts, for whom kites are apparently illegal, we tangled lines with other freedom-loving fliers sporting dragonflies, airplanes, fish, monkeys, boxes, rings, and multifarious other shapes. Much fun was had.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blessed Beef</title>
      <link>https://bobcopeland.com/blog/2006/03/blessed-beef/</link>
      <pubDate>Wed, 22 Mar 2006 13:17:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=414</guid> 
      <description>&lt;p&gt;Those who have seen the recorded programs list on my DVR or have seen me in a kitchen store probably know that I am one of the many food geeks who worships upon the altar of the great foodsmith &lt;a href=&#34;http://altonbrown.com&#34;&gt;AB&lt;/a&gt;. Nice new website, Alton, but I miss the blog. So last weekend, thanks to my wonderful birthday gift of a food processor, I made a pilgrimage to the temple of taste: I built the &lt;a href=&#34;http://www.foodnetwork.com/food/recipes/recipe/0,,FOOD_9936_13959,00.html&#34;&gt;Burger of The Gods&lt;/a&gt;. This Good Eats recipe is pretty simple: a pound of meat, a dash of salt, add fire. But the inventive part is that you start with a couple of steaks, and grind the meat yourself. The idea is that, free of handling and bits of intestine, self-ground meat is a lot safer than the ground meat you get at the store, and consequently cooking it to death is not required. And apart from cleaning the equipment afterwards, chopping up the meat in a food processor is quick and dead simple. The result: heavenly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open sores</title>
      <link>https://bobcopeland.com/blog/2006/03/open-sores/</link>
      <pubDate>Tue, 21 Mar 2006 13:49:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=413</guid> 
      <description>&lt;p&gt;Well, as of yesterday, after a long protracted review and release process, several lines of code by me have found their way into an operating system: Linux 2.6.16 includes my Rio Karma drivers. So you can go ahead and blame me if Linux sucks. Then I&amp;rsquo;ll blame Jeff Garzik in turn, just because.&lt;/p&gt;
&lt;p&gt;Last weekend was nice. Angeline and I spent most of it shopping for her DC area apartment for her new job at NIH beginning this summer. If anyone knows of a cheap but nice apartment convenient to Bethesda, let&amp;rsquo;s hear it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Readings</title>
      <link>https://bobcopeland.com/blog/2006/03/readings/</link>
      <pubDate>Thu, 16 Mar 2006 13:47:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=412</guid> 
      <description>&lt;p&gt;I finally jumped on the Sarah Vowell bandwagon and started reading &lt;em&gt;Assassination Vacation&lt;/em&gt;. I&amp;rsquo;m too lazy to find Amazon links so search yourself if you are one of the three people who hasn&amp;rsquo;t read it yet. Anyway, so far it&amp;rsquo;s very amusing, and I can&amp;rsquo;t help comparing to Mary Roach&amp;rsquo;s &lt;em&gt;Stiff&lt;/em&gt; (4.2 stars), another book by a woman fascinated with death. I give &lt;em&gt;AV&lt;/em&gt; 3.9 stars out of five; she loses a tenth of a point for unnecessarily inserting political views, though I generally agree with them. It is nice to know that so many pieces of presidents happen to reside nearby, so perhaps I shall inspect them someday.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kites</title>
      <link>https://bobcopeland.com/blog/2006/03/kites-2/</link>
      <pubDate>Tue, 07 Mar 2006 14:16:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=411</guid> 
      <description>&lt;p&gt;Thanks to all who showed up this weekend and left beer at my house. My 31st year shall begin with much drinking.&lt;/p&gt;
&lt;p&gt;Now it&amp;rsquo;s time to look forward to the next big event&amp;hellip; after St. Patrick&amp;rsquo;s Day&amp;hellip; and that is of course the annual Smithsonian Kite Festival. I went last year as a spectator and watched hundreds of people try to get little squares of fabric way up in the sky. This year, I plan to have a square of my own. I have a couple of prefab kites ready to go, and I also have some plain nylon in transit to my house, where, should enough time and creativity strike, I shall try to construct a third. So, on the 25th of March, why not join me with your own sail on the Mall. Or if you aren&amp;rsquo;t into the whole kite scene, there&amp;rsquo;s always the enjoyable prospect of freezing in the blustery wind while taking pictures of cherry blossoms.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mobile</title>
      <link>https://bobcopeland.com/blog/2006/03/mobile/</link>
      <pubDate>Wed, 01 Mar 2006 12:13:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=410</guid> 
      <description>&lt;p&gt;A few months ago I bowed to peer pressure and purchased a new phone. Prior to that, my antenna had been held on with hot melt glue for several months. So I read the internets, picked out a phone, found an unlocked version (I&amp;rsquo;m not going to be a serf to the mobile companies!) and plonked down the requisite credit card number into the order form. When it arrived a few days later, my co-workers were mystified. &amp;ldquo;That&amp;rsquo;s not a RAZR,&amp;rdquo; they said, incredulously. &amp;ldquo;Why get a dumpy looking Nokia [ &lt;em&gt;6230 for those who care&lt;/em&gt;]? Paris Hilton wouldn&amp;rsquo;t touch that.&amp;rdquo;) Well, a few reasons: I get craptastic reception at the house, and Nokias are legendary for good reception. On that front, I&amp;rsquo;ve been very pleased; no dropouts anywhere in my house whereas I had to stand on the porch with my old phone. Also, it has a decent MP3 player built in with expandable flash memory. I have a real MP3 player already but it never hurts to have a few tunes with you for bumpy places such as the gym where the hard drive is unwelcome. Reason the third: EDGE.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Yellow for a day</title>
      <link>https://bobcopeland.com/blog/2006/02/yellow-for-a-day/</link>
      <pubDate>Wed, 22 Feb 2006 13:07:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=409</guid> 
      <description>&lt;p&gt;I decided to put some new color on the walls of my breakfast area before my newly rescheduled party (March 4th, 8pm, be there) and so I hopped on down to Home Depot. Yellow was the decided color, because breakfasts are supposed to be sunny early morning affairs. I spent half an hour pouring over the little cards trying to pick out one that wouldn&amp;rsquo;t be too bright, too washed out, too dark, or ugly. A tough set of requirements when dealing with yellow. Anyway, picked up the best candidate and headed for home, and spent the day painting. End result: hideous. It looks like a dayglo schoolbus parked in the room. So I get to repaint it a new color. Awesome. I&amp;rsquo;ll update this with a picture later when I get rejoined with my mini-USB cable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>90% crap</title>
      <link>https://bobcopeland.com/blog/2006/02/90-crap/</link>
      <pubDate>Tue, 14 Feb 2006 02:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=408</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m a believer in Sturgeon&amp;rsquo;s law, but why must bad SF be so very bad? Especially when written by non-scientific sorts, as in my latest literary conquest, &lt;em&gt;The Smithsonian Institution&lt;/em&gt; by Gore Vidal. This is a truly lamentable alternate history wherein the main character goes back in time to prevent World War II, all the while cavorting with a President&amp;rsquo;s wife in Gore&amp;rsquo;s so-bad-they-are-amusing love scenes which always end, &amp;ldquo;he entered her.&amp;rdquo; Now of course time travel is a stretch, yet I didn&amp;rsquo;t think anyone could do it worse than Michael Crichton. Alas, try this garbage on:&lt;/p&gt;</description>
    </item>
    <item>
      <title>White stuff</title>
      <link>https://bobcopeland.com/blog/2006/02/white-stuff/</link>
      <pubDate>Sun, 12 Feb 2006 20:25:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=407</guid> 
      <description>&lt;p&gt;In case you missed the thirty hours of news coverage, it snowed this weekend. My car is punk: it has a snohawk.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/snow2.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/punkcar1.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/punkcar2.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cow</title>
      <link>https://bobcopeland.com/blog/2006/02/cow/</link>
      <pubDate>Mon, 06 Feb 2006 14:23:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=406</guid> 
      <description>&lt;p&gt;There&amp;rsquo;s a raging debate on at work on the best cut of beef around here: Mortons vs. L&amp;rsquo;Auberge. This weekend I made my first long overdue trip to the one place that could possibly top either of those: Five Guys. Bacon double cheeseburger with pickels, lettuce, fried onions, ketchup and mustard, and those wonderful fries whose pedigree is prominently displayed for all to see&amp;hellip; Yum.&lt;/p&gt;
&lt;p&gt;What other &amp;ldquo;super&amp;rdquo; activity did I do this weekend? Oh yeah, I ignored some football game while learning as many songs as I could. Guess what? Plenty of previously unobjectionable songs really start to suck on their tenth consecutive listen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Band</title>
      <link>https://bobcopeland.com/blog/2006/02/band/</link>
      <pubDate>Wed, 01 Feb 2006 15:01:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=405</guid> 
      <description>&lt;p&gt;It&amp;rsquo;s about time I got back on the road again. The Herndon circuit. Crossroads, will you ever let me go? So, I&amp;rsquo;m auditioning for a new band next Tuesday. If all turns out well, I&amp;rsquo;ll be back where I belong this summer: playing cheesy 80s pop songs to drunk people who don&amp;rsquo;t care what day it is much less that there&amp;rsquo;s a band playing. Before I get there though, I have to pass the audition, and before that, I have to learn forty songs this weekend. I heard you had a big mp3 collection&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Two degrees</title>
      <link>https://bobcopeland.com/blog/2006/01/two-degrees/</link>
      <pubDate>Sat, 28 Jan 2006 13:44:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=404</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m Kevin Bacon on BoingBoing today, for some reason. First we have the link to &lt;a href=&#34;http://mbox.bz/slurp/ascii/bbsads/&#34;&gt;BBS Ads&lt;/a&gt; which then links to my &lt;a href=&#34;https://bobcopeland.com/blog/projects.html&#34;&gt;projects&lt;/a&gt; page because they used my awesome ansiconv program. Actually this program is pretty dead and numerous better projects have sprung up to replace it, but I still claim first mover status.&lt;/p&gt;
&lt;p&gt;Then there&amp;rsquo;s former roommate Matt&amp;rsquo;s dad, &lt;a href=&#34;http://www.newscientist.com/article.ns?id=dn8642&#34;&gt;saying&lt;/a&gt; that beer serving robots are just an attention grab compared to real robots like Roomba. To that I have to say: I want a beer pouring Roomba!&lt;/p&gt;</description>
    </item>
    <item>
      <title>jconsole</title>
      <link>https://bobcopeland.com/blog/2006/01/jconsole/</link>
      <pubDate>Thu, 26 Jan 2006 14:36:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=403</guid> 
      <description>&lt;p&gt;I still hate Java, but I do have to say that J2SE &amp;ldquo;5&amp;rdquo; is a much needed improvement. Ahh, generics, where have you been all this time? This week I&amp;rsquo;ve been rewriting an old buggy, crufty server we had sitting around (before: 5000 lines of code, after: 600) and discovered one of the neatest new whizbang features: jconsole, a standalone JVM monitor and JMX console. If you&amp;rsquo;ve used JBoss&amp;rsquo; jmx-console webapp before, it&amp;rsquo;s the same idea, just prettier.&lt;/p&gt;</description>
    </item>
    <item>
      <title>day verbed noun</title>
      <link>https://bobcopeland.com/blog/2006/01/day-verbed-noun/</link>
      <pubDate>Tue, 24 Jan 2006 14:43:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=402</guid> 
      <description>&lt;p&gt;Recent minutiae:&lt;/p&gt;
&lt;p&gt;Saturday, saw vampires.&lt;/p&gt;
&lt;p&gt;Sunday, visited National Building Museum. Didn&amp;rsquo;t pay $5 suggested donation. About as dry as sounds, though translucent and fiber optic concrete are interesting.&lt;/p&gt;
&lt;p&gt;Tuesday, used no pronouns or articles.&lt;/p&gt;</description>
    </item>
    <item>
      <title>in-kernel</title>
      <link>https://bobcopeland.com/blog/2006/01/in-kernel/</link>
      <pubDate>Tue, 17 Jan 2006 14:25:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=401</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ChangeLog-2.6.16-rc1:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit 0e6e1db4ac7acfe3e38bbef9eba59233ba7f6b9a
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Author: Bob Copeland
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Date:   Mon Jan 16 22:14:20 2006 -0800
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[PATCH] partitions: Read Rio Karma partition table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;The Rio Karma portable MP3 player has its own proprietary partition table.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;The partition layout is similar to a DOS boot sector but it begins at a
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;different offset and uses a different magic number (0xAB56 instead of
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0xAA55).  Add support for it to enable mounting the device.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Signed-off-by: Bob Copeland
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Signed-off-by: Andrew Morton
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Signed-off-by: Linus Torvalds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Who wants to touch me?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fete</title>
      <link>https://bobcopeland.com/blog/2006/01/fete/</link>
      <pubDate>Fri, 13 Jan 2006 13:58:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=400</guid> 
      <description>&lt;p&gt;By the way, readers of this who happen to know where I live, if you are wondering what to do next Saturday night, the 21st: party at my house! Though I may cancel the thing since there are a few conflicts and I&amp;rsquo;ve heard yesses from only a couple of people. Incriminating photos will be posted here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mishmash</title>
      <link>https://bobcopeland.com/blog/2006/01/mishmash/</link>
      <pubDate>Fri, 13 Jan 2006 13:39:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=399</guid> 
      <description>&lt;p&gt;While riding the Rosslyn escalator today, I wondered where it stood in the hierarchy of tall escalators. Wikipedia seems self-contradictory on this point, but I believe it is credible in &lt;a href=&#34;http://en.wikipedia.org/wiki/Escalator&#34;&gt;proclaiming Wheaton&lt;/a&gt; the West&amp;rsquo;s largest. Go WMATA! Now if you can just extend the superior escalator tech to keeping them running.&lt;/p&gt;
&lt;p&gt;I believe myself simpatico with everyone at &lt;a href=&#34;http://we.hates-software.com/&#34;&gt;hates-software&lt;/a&gt;. So allow me to air a gripe of my own: LaTeX, WTF? Why must you have no useful interaction mode that actually tells where the errors are? Why must I run you twice to fix up references, couldn&amp;rsquo;t you try rescanning yourself? Why must you, even in batchmode, tell me that you got wedged, and refuse to exit? Too bad you are still way better than Word.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Still here</title>
      <link>https://bobcopeland.com/blog/2006/01/still-here/</link>
      <pubDate>Wed, 11 Jan 2006 02:07:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=398</guid> 
      <description>&lt;p&gt;Yeah, I got nothing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#43;&#43;year;</title>
      <link>https://bobcopeland.com/blog/2006/01/year/</link>
      <pubDate>Wed, 04 Jan 2006 13:46:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=397</guid> 
      <description>&lt;p&gt;Well I trust everyone had a good set of holidays. I worked through most of it, but I did take an extra day off to celebrate the birth of Santa Claus, that fickle diety who will destroy the universe if retailers end the year in the red. Once again we made it, barely.&lt;/p&gt;
&lt;p&gt;Christmas dinner was gluttonous, featuring a 10 lb. turkey, cranberry sauce, green bean casserole, baked macaroni &amp;amp; cheese, mashed potatoes (AB&amp;rsquo;s &amp;ldquo;mashers&amp;rdquo;), dinner rolls, a bottle of white wine and the piece de resistance, a Ghirardelli chocolate cheesecake, all homemade. Not a bad meal for the two of us.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chipotle</title>
      <link>https://bobcopeland.com/blog/2005/12/chipotle/</link>
      <pubDate>Tue, 27 Dec 2005 00:39:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=396</guid> 
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/burrito.jpg&#34;&gt;&lt;br&gt;
Oh, the humanity!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Happy Christmas</title>
      <link>https://bobcopeland.com/blog/2005/12/happy-christmas/</link>
      <pubDate>Sun, 25 Dec 2005 22:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=395</guid> 
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/xmas.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Holidays are here again</title>
      <link>https://bobcopeland.com/blog/2005/12/holidays-are-here-again/</link>
      <pubDate>Wed, 21 Dec 2005 14:03:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=394</guid> 
      <description>&lt;p&gt;For those still looking for gifts, Shinedown is the best Soundgarden cover band this side of Audioslave. And, the CD doesn&amp;rsquo;t have any of that XCP BS. Not to be confused with Trey Anastasio&amp;rsquo;s solo effort, Shine, which &lt;em&gt;does&lt;/em&gt; have XCP, and it really sucks besides.&lt;/p&gt;
&lt;p&gt;Weary of travel, I am spending the X-mas and New Year&amp;rsquo;s here in VA. I&amp;rsquo;m going to cook a turkey on Christmas morning with AC. Should any friends reading this feel like joining us in person, you are more than welcome to drop by. There will be way too much food for the two of us to eat. Also, my yearly confession of no social life: invite me to your NYE party, kthx.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pipes</title>
      <link>https://bobcopeland.com/blog/2005/12/pipes/</link>
      <pubDate>Mon, 12 Dec 2005 14:21:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=393</guid> 
      <description>&lt;p&gt;Did I say patching the hole in my wall was the last engineering hurdle for my kitchen? Well, in fact, I had plenty this weekend. My original sink was about 75% of the size of the new one. My new sink, in addition to being wider in the front-to-back dimension, is also an inch deeper than the previous one. And, it&amp;rsquo;s an undermount whereas the previous went on top of the countertop. So my installation of the new garbage disposer with the new sink faced two problems: the old waste line plumbing was too tall to mate with the much lower discharge side of the disposer, and, more annoyingly, was two inches too short to reach the unit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>World of Carbonated Beverage</title>
      <link>https://bobcopeland.com/blog/2005/12/world-of-carbonated-beverage/</link>
      <pubDate>Mon, 12 Dec 2005 13:29:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=392</guid> 
      <description>&lt;p&gt;While in Atlanta, I finally faced the object of my derision. I became one of them. I paid ten bucks to watch a commercial. In short, I went to World of Coke.&lt;/p&gt;
&lt;p&gt;Listen: there isn&amp;rsquo;t a whole lot to do in Atlanta, touristly speaking. We didn&amp;rsquo;t have time to visit the zoo/Cyclorama, and the new aquarium was fully booked. The olympic park took a few minutes to circumnavigate, as did the Adult Swim section of the Turner store at CNN center. The High closed too early. Plus, I like the soft drink, isn&amp;rsquo;t that enough reason to go? Okay, enough rationalizing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Kitchening</title>
      <link>https://bobcopeland.com/blog/2005/12/the-kitchening/</link>
      <pubDate>Thu, 08 Dec 2005 03:39:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=391</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_photo.php?set_albumName=kitchen&amp;amp;id=countertop_001&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kitchen/countertop_001.thumb.jpg&#34;&gt;&lt;/a&gt; Since I&amp;rsquo;ve been slacking, I have a number of unposted posts swimming in my head. You may get to see them, or not, so there. Anyway, here&amp;rsquo;s an update on my decade long kitchen project. A couple of weeks ago saw the arrival of hundreds of pounds of rock on my doorstep. The results, I have to say, are well worth the trouble.&lt;/p&gt;
&lt;p&gt;Tasks remaining: replumb the P-trap to fit with the garbage disposal, add cover panels, base trim, molding, quarter-round around the edges of floor, and install an over-the-range microwave. Easy!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Back</title>
      <link>https://bobcopeland.com/blog/2005/12/back/</link>
      <pubDate>Tue, 06 Dec 2005 18:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=390</guid> 
      <description>&lt;p&gt;I am finished with my whirlwind tour of North America including five nights in Atlanta and three in Toronto. In this new age of starbucksification, let it be said that there is no place &lt;em&gt;un&lt;/em&gt; like home. Click your heels thrice and have a McGriddle, Dot, you&amp;rsquo;re still in Kansas. More later.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Caveat Canem</title>
      <link>https://bobcopeland.com/blog/2005/11/caveat-canem/</link>
      <pubDate>Mon, 21 Nov 2005 17:57:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=389</guid> 
      <description>&lt;p&gt;As authority on all things good, it is occasionally my responsibility to advise you, the public, on which products to avoid. First up is the Poulan &amp;ldquo;Weed Eater&amp;rdquo; brand leaf blower. This is a product with an identity crisis: it has never, as far as I know, eaten a weed while in my employ. I bought this a couple of years ago, and while it has served me well for two seasons, yesterday the throttle control decided to jettison itself in the middle of leaf cleaning duty. I believe a piece of the throttle is now forever missing (possibly at the bottom of a mountain of leaves), without which I shall no longer be able to start the engine on the thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vidi</title>
      <link>https://bobcopeland.com/blog/2005/11/vidi/</link>
      <pubDate>Mon, 14 Nov 2005 20:38:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=388</guid> 
      <description>&lt;p&gt;Man you know you&amp;rsquo;ve been gone a while when you come back and LJ has a whole ton of new features.&lt;/p&gt;
&lt;p&gt;Anyway, I have a table saw now. 4800 RPMs &amp;ndash; Yum. And I haven&amp;rsquo;t even lost a digit yet! Word is that my kitchen will be completed within two weeks, as that is when my countertop is installed. Just in time for the holidays. I may throw one of those &amp;ldquo;party&amp;rdquo; things once I get it all cleaned up. Pictures of the completed thing to appear soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Halloween</title>
      <link>https://bobcopeland.com/blog/2005/10/halloween/</link>
      <pubDate>Mon, 31 Oct 2005 23:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=387</guid> 
      <description>&lt;p&gt;Happy halloween, you evil devil worshippers.&lt;/p&gt;
&lt;p&gt;This year I went as The Monarch from Venture Bros. (No, not a transformer, or the Burger King guy!) I used three cans of spraypaint and a large box to masquerade as the world&amp;rsquo;s most diabolical butterfly (sans wings). Ange was a good enough sport to go as Doctor Girlfriend. I think it turned out nicely:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/monarch.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://bobcopeland.com/blog/images/lj/monarch2.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;To continue the Venture Bros. theme, I ripped off the skull from their logo for a jack-o-lantern. Watch out kids.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Philly 2</title>
      <link>https://bobcopeland.com/blog/2005/10/philly-2/</link>
      <pubDate>Thu, 27 Oct 2005 13:53:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=386</guid> 
      <description>&lt;p&gt;Ange and I made a return trip to Philly last weekend to see dead people. We visited the &lt;a href=&#34;http://www.bodyworlds.com/&#34;&gt;Body Worlds&lt;/a&gt; exhibit there, which consists of actual corpses whose blood has been replaced with plastic (let&amp;rsquo;s see if they notice the difference!). And then their skin, musculature, and innards are disected for all to see. It was actually pretty interesting, and not too disturbing except for the guy that was carrying around his hairy skin like a coat. I learned some new words that will come in handy next time I am impersonating a doctor.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stoned</title>
      <link>https://bobcopeland.com/blog/2005/10/stoned/</link>
      <pubDate>Thu, 20 Oct 2005 14:24:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=385</guid> 
      <description>&lt;p&gt;It&amp;rsquo;s time to play the blog drinking game: every time someone says they&amp;rsquo;ve been bad about updates, you drink. Get your shotglass ready&amp;hellip;&lt;/p&gt;
&lt;p&gt;So anyway, not a lot has been happening lately. Last weekend I bought a countertop for my kitchen: Impala Black granite. I purchased from Lowe&amp;rsquo;s after the &amp;ldquo;20% cheaper than home centers&amp;rdquo; place never called me back. But I got pretty much the exact same stone (and for less). Here&amp;rsquo;s an interesting fact about granite: there are only so many different colors, and apparently, they don&amp;rsquo;t go in for variety in naming. So I GISed to get a picture from some other vendor: &lt;a href=&#34;http://www.normandeaustone.com/images/Impala_Black4x4.jpg&#34;&gt;clicky clicky&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nerd stuff</title>
      <link>https://bobcopeland.com/blog/2005/10/nerd-stuff/</link>
      <pubDate>Wed, 12 Oct 2005 20:06:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=384</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m entering a new phase in the product cycle at work so I get to think more about the current state of the way-behind-the-times while designing a new system.&lt;/p&gt;
&lt;p&gt;Swing&amp;rsquo;s MVC design for tables and combo boxes and so on totally misses the point. MVC is about abstracting away the UI from the model; making the tables explicitly require a model that implements a javax.swing interface does nothing to reduce the coupling between interface and core code. What if I want a curses-based view instead of Swing on top of the same model? I am annoyed that Gtk2 seems to have picked up this misfeature.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traffic</title>
      <link>https://bobcopeland.com/blog/2005/10/traffic-2/</link>
      <pubDate>Wed, 05 Oct 2005 15:15:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=383</guid> 
      <description>&lt;p&gt;You know what&amp;rsquo;s great? When you are on your way home from work and a high speed police chase breaks out, ending in a wreck about 100 yards in front of your vehicle that ultimately closes down the interstate, such that your conveyance must execute a three point turn an hour later to go the wrong way off the highway, thus extending the usual 45 minute commute to three hours.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dam</title>
      <link>https://bobcopeland.com/blog/2005/10/dam/</link>
      <pubDate>Tue, 04 Oct 2005 21:26:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=382</guid> 
      <description>&lt;p&gt;A.C. and I went hiking last Sunday, on what was supposed to be a two hour, 6.8 mile loop around Loch Raven north of Baltimore. Of course, it was a total debacle thanks to Bryan Mackay, author of &lt;em&gt;Baltimore Trails&lt;/em&gt;, who is officially no longer my friend.&lt;/p&gt;
&lt;p&gt;Soon after beginning the hike a few things became apparent: the trail is not blazed, and Mackay has done a craptacular job of indicating which way to go. At least three forks in the trail passed without comment, so we had to backtrack a time or two, including one unfortunate half-mile side-trip ending at an abandoned campfire and a newspaper dispenser.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bad music</title>
      <link>https://bobcopeland.com/blog/2005/09/bad-music/</link>
      <pubDate>Thu, 29 Sep 2005 16:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=381</guid> 
      <description>&lt;p&gt;My new contender for worst song ever is the dance mix of &amp;ldquo;Kiss the Rain.&amp;rdquo; Somehow I managed to escape this song for most of its lifetime; however, it caught up with me: they play it &lt;strong&gt;every single time&lt;/strong&gt; I am at the gym. Hearing the lady wail a barely-on-key refrain over and over and over again provides a strong incentive to either work out more often such that if I ever meet the guilty sampler, I may handily pummel him, or else to never work out again. I&amp;rsquo;m not sure which.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New computer</title>
      <link>https://bobcopeland.com/blog/2005/09/new-computer/</link>
      <pubDate>Mon, 26 Sep 2005 19:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=380</guid> 
      <description>&lt;p&gt;Allow me once again to sing the praises of &lt;a href=&#34;http://freecycle.org/&#34;&gt;freecycle&lt;/a&gt;, the group that exemplifies &amp;ldquo;one man&amp;rsquo;s trash is another man&amp;rsquo;s trash.&amp;rdquo; While I&amp;rsquo;ve unloaded a few junky things this route, last week was my first pick-up. A poster offered an &amp;ldquo;old&amp;rdquo; Dell case with Pentium III (733 mHz) motherboard and CPU, and I didn&amp;rsquo;t hesitate to grab it.&lt;/p&gt;
&lt;p&gt;Now, let&amp;rsquo;s put &amp;ldquo;old&amp;rdquo; into context: the machine was evidently made around Y2K. I had my firewall running off of a machine that was also given to me, &amp;ldquo;old,&amp;rdquo; in 1999. It was a Pentium 100 that used to belong to a Gateway, had 64 megs of RAM and sat in an AT case. Remember ISA? Big keyboard connectors? Serial ports? This machine has served me faithfully, running a 2.0 Linux kernel for years, delivering mail and proxying all of my network traffic, even back to the days when the upstream connection was a modem. As of yesterday it was on a 160 day uptime &amp;ndash; certainly I&amp;rsquo;ve had longer, but still not bad. I think the last downtime was when I painted my room and had to move it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>hashed</title>
      <link>https://bobcopeland.com/blog/2005/09/hashed/</link>
      <pubDate>Thu, 22 Sep 2005 13:44:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=379</guid> 
      <description>&lt;p&gt;Despite earning my degree in computer engineering, I haven&amp;rsquo;t done anything useful with assembly language since I was a strapping young idealistic lad convinced that compilers lie along the road to inefficiency. Much has changed. Heck, I write Java code for a living now &amp;ndash; pretty much the opposite of efficient. I have to have a gig of ram just to run that sucky ant program.&lt;/p&gt;
&lt;p&gt;While hacking my MP3 player, I discovered that the filesystem uses hashing to quickly lookup file names, which brought up the question of which hash function it uses. While I suppose one could reverse the hash function knowing a very large set of inputs and outputs, I decided it would probably be much more expedient to just put my atrophied x86 asm knowledge to work for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My eatin&#39; room</title>
      <link>https://bobcopeland.com/blog/2005/09/my-eatin-room/</link>
      <pubDate>Tue, 20 Sep 2005 16:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=378</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_photo.php?set_albumName=kitchen&amp;amp;id=IMG_0758&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kitchen/IMG_0758.thumb.jpg&#34;&gt;&lt;/a&gt; As promised, here is another installment of My Kitchen Hates Me. Since last update, some doors have been added to the high cabinets and they have entered actual use; most of the base cabinets are in place and just need to be leveled and mounted to the wall; the pantry is ready to go; the trim was painted white and looks really nice. Still remaining: I need to get a vent hood and possibly cut down the appropriate cabinet so that the hood will fit over the existing hole, buy a countertop, move two base cabinets over about 4 inches so that a drawer will open fully instead of hitting the door molding, attach cover panels and kickplates and doors and drawers. So, most of the hard work is done.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blah</title>
      <link>https://bobcopeland.com/blog/2005/09/blah-3/</link>
      <pubDate>Tue, 13 Sep 2005 16:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=377</guid> 
      <description>&lt;p&gt;Last weekend saw the debut of my cowor-ker&amp;rsquo;s new rock band, the 15th Annual Rosslyn Jazz fest, GT vs UNC &amp;ndash; watched at Mister Days, and lots of work on my kitchen. My goal was to complete the kitchen cabinets on Sunday; I didn&amp;rsquo;t, but I did at least finish hanging all of the wall cabinets. So if I get the base cabinets finished this week I can go buy a countertop. Expect a kitchen pictorial update soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Labor days are here again</title>
      <link>https://bobcopeland.com/blog/2005/09/labor-days-are-here-again/</link>
      <pubDate>Wed, 07 Sep 2005 13:08:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=376</guid> 
      <description>&lt;p&gt;Now that it&amp;rsquo;s Wednesday, it&amp;rsquo;s time to recap the weekend. I&amp;rsquo;m a slacker.&lt;/p&gt;
&lt;p&gt;Saturday night I had the pleasure of seeing Derek Trucks Band (again) with Angeline up at the Recher. DTB was in good form with a mostly new set (not even Joyful Noise made an appearance) featuring some good gospel-y numbers and a straight-ahead jazz rendition of Greensleeves. Good stuff, &lt;a href=&#34;http://www.archive.org/audio/etreelisting-browse.php?collection=etree&amp;amp;cat=Derek%20Trucks%20Band%3A%202005&#34;&gt;listen for yourself&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A pleasant surprise was Baltimore-based opener &lt;a href=&#34;http://www.jayakarband.com&#34;&gt;Jayakar&lt;/a&gt;, who turned out a set full of nicely arranged, funky, memorable jam tunes. Apart from some weakness in the vocals department, the band has got it together and I look forward to seeing them on their own soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kitchen update</title>
      <link>https://bobcopeland.com/blog/2005/08/kitchen-update-3/</link>
      <pubDate>Mon, 29 Aug 2005 13:54:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=375</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_album.php?set_albumName=kitchen&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kitchen/IMG_0751.thumb.jpg&#34;&gt;&lt;/a&gt; Since the last update, I&amp;rsquo;ve had my new appliances delivered, painted the ceiling, put together and hung a few of the cabinets, and redid the plumbing on my hot water sink line to accomodate my dishwasher (this last involved me getting soaked with warm water four times before I figured out how to attach a compression valve). So, things are coming along. The cabinets, as pictured, show the interior; once finished they will be the darker wood color on the outside.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Good Karma</title>
      <link>https://bobcopeland.com/blog/2005/08/good-karma/</link>
      <pubDate>Wed, 24 Aug 2005 20:30:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=374</guid> 
      <description>&lt;p&gt;Just to follow up the &lt;a href=&#34;http://www.livejournal.com/users/bluesterror/93280.html&#34;&gt;earlier post&lt;/a&gt;, I officially announce my &lt;a href=&#34;https://bobcopeland.com/blog/karma/&#34;&gt;Karma driver&lt;/a&gt; web page, including the kernel patch such as it is. I&amp;rsquo;ve worked out some more details about the disk so I expect to be able to mount it shortly. Peter from empeg declares it &amp;ldquo;could be useful.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>$20 digicam</title>
      <link>https://bobcopeland.com/blog/2005/08/20-digicam/</link>
      <pubDate>Sun, 21 Aug 2005 15:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=373</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/35866395/&#34; title=&#34;photo sharing&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://photos32.flickr.com/35866395_d5dc36920c_m.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;http://www.flickr.com/photos/67517783@N00/35866395/&#34;&gt;CVS camera&lt;/a&gt;&lt;br&gt;
Originally uploaded by &lt;a href=&#34;http://www.flickr.com/people/67517783@N00/&#34;&gt;bluesterror&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Everyone&amp;rsquo;s done it by now so it&amp;rsquo;s not cool anymore, but I now have my very own hacked CVS digital camera. For those living under a rock, CVS sells one-time-use digital cameras for $20, and video cameras for $30. The idea is you are supposed to return the camera, pay them to develop it, and they keep the camera. The only advantages of the still camera over a disposable film camera are that you can preview and delete photos after you take them and presumably you get a digital copy of the prints. So, the only thing to do is hack the cam so you can get the pictures off yourself and keep it for good.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kitchen update</title>
      <link>https://bobcopeland.com/blog/2005/08/kitchen-update-2/</link>
      <pubDate>Fri, 19 Aug 2005 18:50:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=372</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_photo.php?set_albumName=kitchen&amp;amp;id=IMG_0736&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kitchen/IMG_0736.thumb.jpg&#34;&gt;&lt;/a&gt; I painted my kitchen. It&amp;rsquo;s gray, not purple. Or so I tell myself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Karma</title>
      <link>https://bobcopeland.com/blog/2005/08/karma/</link>
      <pubDate>Wed, 17 Aug 2005 14:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=371</guid> 
      <description>&lt;p&gt;My poor MP3 player is destined to be relegated to the trash heap with all of the other Not-An-iPods. For good reason, really, since I have broken it in several different ways since I&amp;rsquo;ve had it: first the hard drive failed, then after replacing the unit, I dropped the new one and the scroll wheel broke off, and the battery leads came off the mainboard. I&amp;rsquo;ve soldered the battery back on and glued the scroll wheel back, so it continues to hobble along. Other than build quality, it is a fine MP3 player: it does OGG and FLAC, gapless, has a decent UI, fits nicely in one&amp;rsquo;s pocket.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hike</title>
      <link>https://bobcopeland.com/blog/2005/08/hike/</link>
      <pubDate>Fri, 05 Aug 2005 15:48:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=370</guid> 
      <description>&lt;p&gt;I am usually rather obsessive about checking that my keys and wallet are on my person when leaving a building, room, chair, or any given two-square-foot area. This fact makes it all the more annoying that all my faculties broke down yesterday, such that I found myself in Reston, with my keys in Crystal City, wondering how to get home without being able to start or even enter my car.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Forms</title>
      <link>https://bobcopeland.com/blog/2005/08/forms/</link>
      <pubDate>Mon, 01 Aug 2005 19:20:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=369</guid> 
      <description>&lt;p&gt;I think it would be nice to get a contract law degree on the side, because I hate signing forms whose sole purpose is to screw me over legally. And the most dreadful of these: the waiver. I understand that these are even questionable legally, and yet I still get anxious when putting my Johnny H on the bottom of some form that says Company X has the right to do anything they would like including harvesting my organs and using my house for parties while I recuperate, whilst I am legally bound to sit there and take it. Screw that!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kitchen update</title>
      <link>https://bobcopeland.com/blog/2005/07/kitchen-update/</link>
      <pubDate>Thu, 28 Jul 2005 23:27:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=368</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;http://apps.bobcopeland.com/gallery/view_photo.php?full=1&amp;amp;set_albumName=kitchen&amp;amp;id=IMG_0734&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://apps.bobcopeland.com/albums/kitchen/IMG_0734.thumb.jpg&#34;&gt;&lt;/a&gt;&lt;br&gt;
Yay, I have a new horizontal surface!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weekend</title>
      <link>https://bobcopeland.com/blog/2005/07/weekend-2/</link>
      <pubDate>Tue, 26 Jul 2005 18:04:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=367</guid> 
      <description>&lt;p&gt;So, the weekend was a smash. It began on Saturday (as many weekends do), with the fun that is removing kitchen cabinets. Armed with a crowbar, an electric screwdriver, and a healthy disregard for safety, Angeline and I tore into the melamine boxes, liberating screws and nails from twenty years of servitude. In the space of a couple of hours, we pulled out all of the base cabinets, the countertop, and the range hood. We then took a break and screened Jerome&amp;rsquo;s new favorite movie, Wedding Crashers. I concur with &lt;a href=&#34;http://www.livejournal.com/users/teamferrara/85638.html&#34;&gt;his review&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>That guy named after fish</title>
      <link>https://bobcopeland.com/blog/2005/07/that-guy-named-after-fish/</link>
      <pubDate>Wed, 20 Jul 2005 15:43:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=366</guid> 
      <description>&lt;p&gt;People often ask me to recommend new music. They ask, I presume, because radio sucks now, and because, as a musician, I must have my fingers on the pulse of the underground. Unfortunately, my few musical discoveries have been more or less serendipitous, or else the artists that I do like are not accessible to the average non-musician. (My mom once said of a frenetic Coltrane solo, &amp;ldquo;That sounds like a bunch of noise.&amp;rdquo; &amp;ldquo;Of course,&amp;rdquo; I replied.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Philadelphia</title>
      <link>https://bobcopeland.com/blog/2005/07/philadelphia/</link>
      <pubDate>Tue, 19 Jul 2005 03:45:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=365</guid> 
      <description>&lt;p&gt;Angeline and I spent yesterday afternoon in the home of Will Smith and Benjamin &amp;ldquo;DJ Bizzy&amp;rdquo; Franklin: Philadelphia, PA. Unfortunately I forgot my camera, so you don&amp;rsquo;t get any pictures. This being my first visit to Philly, we had to go see the large, bronze, cracked&amp;hellip;hot steamy bread with gooey cheesy meat and onions &amp;hellip; where was I? Oh yes, the Liberty Bell. So we looked at the bell, then headed off for lunch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Salt</title>
      <link>https://bobcopeland.com/blog/2005/07/salt/</link>
      <pubDate>Tue, 12 Jul 2005 12:55:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=364</guid> 
      <description>&lt;p&gt;One other observation about Ohio: fully half of my meals on my trip were the saltiest meals I&amp;rsquo;d ever eaten. Now, I am a connoisseur of salt. I like it. I have three different types of salt in my pantry. But this&amp;hellip; this is too much. I&amp;rsquo;m not sure if this is a regional thing, or whether I just got unlucky, but it&amp;rsquo;s surprising that I didn&amp;rsquo;t undergo wholesale plasmolysis and dry up to a tiny wrinkled husk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>EJ</title>
      <link>https://bobcopeland.com/blog/2005/07/ej/</link>
      <pubDate>Mon, 11 Jul 2005 15:51:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=363</guid> 
      <description>&lt;p&gt;Last night I went to go see the guitarist Eric Johnson. This makes the fifth show of his that I&amp;rsquo;ve seen. It was a decent show, but I don&amp;rsquo;t think EJ brought anything new to this tour. He has a new CD out (I haven&amp;rsquo;t heard it) and most of the selections he played from it were less than stellar, except &amp;ldquo;12 to 12&amp;rdquo; which has been in his setlist for years. Anyway, he played lots of Ah Via stuff including &amp;ldquo;Cliffs of Dover&amp;rdquo; which I am happy to learn is hybrid picked. String skipping that intro is damn near impossible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ohio</title>
      <link>https://bobcopeland.com/blog/2005/07/ohio/</link>
      <pubDate>Mon, 11 Jul 2005 15:06:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=362</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve been derelict in my duties to describe the magic of Ohio. So I&amp;rsquo;ll let you know when I figure it out. Just kidding. Canton is nice enough, the people are friendly except for the guy at Radio Shack, and where else can you visit the home of Goodyear, the birthplace of Hoover vacuum cleaners, and the Pro football hall of fame all in one day? I didn&amp;rsquo;t manage to visit any of these though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>k-rad</title>
      <link>https://bobcopeland.com/blog/2005/07/k-rad/</link>
      <pubDate>Fri, 01 Jul 2005 13:37:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=361</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;build.ejb.classes:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[javac] Compiling 1337 source files to /home/bob/projects/...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Heh. In other news, I am playing around with &lt;a href=&#34;http://greasemonkey.mozdev.org/&#34;&gt;greasemonkey&lt;/a&gt;. Finally, a use for javascript! I&amp;rsquo;ve already fixed the brain-dead handling of attachments with MS Outlook&amp;rsquo;s web interface, where it tells you that PDFs are too dangerous to launch directly, whereas you can click on Word and Excel files with no problems.&lt;/p&gt;
&lt;p&gt;And with that I&amp;rsquo;m off to Ohio this weekend. If anyone can recommend roadside attractions along the PA turnpike, let&amp;rsquo;s hear &amp;rsquo;em. Ok, didn&amp;rsquo;t think so.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
