<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ry4an&#39;s Unblog</title>
    <link>https://ry4an.org/unblog/</link>
    <description>Recent content on Ry4an&#39;s Unblog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© Ry4an Brase</copyright>
    <lastBuildDate>Thu, 19 Mar 2026 09:39:12 -0400</lastBuildDate>
    <atom:link href="https://ry4an.org/unblog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Canadian Dual Citizenship</title>
      <link>https://ry4an.org/unblog/post/canadian_dual_citizenship/</link>
      <pubDate>Thu, 19 Mar 2026 09:39:12 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/canadian_dual_citizenship/</guid>
      <description>&lt;p&gt;Over the last month I put about 40 hours of effort into preparing to get&#xA;documentation for my Canadian citizenship.  Canada &lt;a href=&#34;https://www.canada.ca/en/immigration-refugees-citizenship/services/canadian-citizenship/act-changes/rules-2025.html&#34;&gt;changed their citizenship&#xA;law&lt;/a&gt;&#xA;in December 2025 to remove a limit on how many generations removed you can be&#xA;from a Canadian citizen to still be a Canadian citizen by descent.  The former&#xA;limit was one generation, and now there is no limit.  As a result millions of&#xA;folks who weren&amp;rsquo;t Canadian citizens suddenly are.  Getting that recognized isn&amp;rsquo;t&#xA;automatic and requires a lot of paperwork.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Testing Antenna Quality</title>
      <link>https://ry4an.org/unblog/post/antenna_quality_testing/</link>
      <pubDate>Wed, 04 Mar 2026 08:31:29 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/antenna_quality_testing/</guid>
      <description>&lt;p&gt;With a &lt;a href=&#34;https://meshtastic.org/&#34;&gt;Meshtastic&lt;/a&gt; antenna the advice is to put it as&#xA;high as you can with as few obstructions as you can manage.  For my home setup&#xA;that meant a few physical iterations as it went from inside my office, to inside&#xA;the attic, to outside the attic below the roofline, and finally outside the&#xA;attic and higher than the roofline.&lt;/p&gt;&#xA;&lt;p&gt;As an engineer I want baseline quality data before I make a change, so I know if&#xA;my change helped, did nothing, or actually made things worse.  I don&amp;rsquo;t have the&#xA;knowledge or the tools to really measure the quality of my antenna setups, and&#xA;I want real-world connectivity metrics more than I want a gain measurement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pushing Data From Meshtastic to Home Assistant</title>
      <link>https://ry4an.org/unblog/post/meshtastic-to-homeassistant/</link>
      <pubDate>Thu, 26 Feb 2026 15:11:54 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/meshtastic-to-homeassistant/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://ry4an.org/unblog/post/homeautomation_part2/&#34;&gt;mentioned previously&lt;/a&gt; that I was playing&#xA;around with &lt;a href=&#34;https://meshtastic.org/&#34;&gt;Meshtastic&lt;/a&gt; stuff, but here&amp;rsquo;s more detail&#xA;on the software side of those projects.  I&amp;rsquo;ll show the hardware side and what&#xA;Meshtastic does in a later post, but here I talk about &lt;strong&gt;three ways I&amp;rsquo;m getting&#xA;information from my Meshtastic node into &lt;a href=&#34;https://www.home-assistant.io/&#34;&gt;Home&#xA;Assistant&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Using the MQTT pub/sub protocol&lt;/li&gt;&#xA;&lt;li&gt;Polling a telemetry REST API on the node&lt;/li&gt;&#xA;&lt;li&gt;Using the Meshtastic python API to poll the node&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;All of these offer a different subset of the same info and none of them offer&#xA;everything.  Years of operating long lived systems has me really reluctant to&#xA;modify more than I have to to get what I want &amp;ndash; every customization is&#xA;a maintenance task when you upgrade.  For all of these I&amp;rsquo;ve avoided&#xA;integrations that aren&amp;rsquo;t built-in and Add-Ons/Apps that aren&amp;rsquo;t bog standard.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Automation Part 2</title>
      <link>https://ry4an.org/unblog/post/homeautomation_part2/</link>
      <pubDate>Wed, 11 Feb 2026 22:25:06 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/homeautomation_part2/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://ry4an.org/unblog/post/homeautomation_part1/&#34;&gt;Back in October&lt;/a&gt; I talked about my growing,&#xA;local Home Assistant setup, including some of my favorite custom automations.&#xA;Three months on I&amp;rsquo;m still having fun with it.  Recent automations include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Ry4an/homeassistant-config/commit/9de4bd9af5f2201211eac46e8633e2b0d7f61996#diff-438c5c6c1d1096474c5df4d59ddcb12d5cccf934daa5ee7583351457f7385b44&#34;&gt;Turning off the whole home&amp;rsquo;s water supply if a flood sensor&#xA;triggers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Ry4an/homeassistant-config/blob/95fc244bb442b3ce84f8ebefd909cf377f2a7363/automations.yaml#L676&#34;&gt;Turning on the north kitchen undercabinet lights when the south undercabinet&#xA;lights are turned&#xA;on&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Ry4an/homeassistant-config/commit/e2e4f9f121e5c8774df9b2f186296626ea26e000#diff-438c5c6c1d1096474c5df4d59ddcb12d5cccf934daa5ee7583351457f7385b44R738&#34;&gt;Automatically turning off the christmas tree at&#xA;1am&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Ry4an/homeassistant-config/commit/60e756c8fe87e8437d29fea023fbc5b83c4b6884#diff-4100aa6a34f3a2817e9b70eaf2efca531092a33868910e6cb46d1327a4277029R31-R37&#34;&gt;Polling a meshtastic&#xA;node&lt;/a&gt; and &lt;a href=&#34;https://github.com/Ry4an/homeassistant-config/commit/df7e0f6ebca87e7cf3c4d6f7dfb2ee9a80a88303#diff-438c5c6c1d1096474c5df4d59ddcb12d5cccf934daa5ee7583351457f7385b44R751-R772&#34;&gt;alerting if it&amp;rsquo;s not available&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Ry4an/homeassistant-config/blob/d2b578436c8d199f868d47708e6136c83c1e628b/automations.yaml#L773&#34;&gt;Relaying meshtastic (LoRa) messages to my phone if I&amp;rsquo;m not&#xA;home&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I&amp;rsquo;m particularly happy with how that undercabinet lighting synchronization&#xA;worked out.  We have a galley kitchen and wall-switched undercabinet lights on&#xA;both sides.  We always use the ones on the south side with a conveniently&#xA;located switch and seldom use the ones on the north side with the awkwardly&#xA;placed switch.  Now when we turn on one, the other turns on.  That could have&#xA;been done when it was wired 20 years ago, but now one Sonoff switch module in&#xA;each switch, and it&amp;rsquo;s done over radio in a way no one has to think about.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New SRE Job Hunting Advice</title>
      <link>https://ry4an.org/unblog/post/new-sre-advice/</link>
      <pubDate>Tue, 03 Feb 2026 23:19:10 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/new-sre-advice/</guid>
      <description>&lt;p&gt;An acquaintance asked me about entering tech in today&amp;rsquo;s job market with a SRE,&#xA;operations, or &amp;ldquo;devops&amp;rdquo; type role, and here&amp;rsquo;s the best response I could come up&#xA;with:&lt;/p&gt;&#xA;&lt;p&gt;The tricky bit about SRE and devops is that in any company we&amp;rsquo;re on the&#xA;cost-side of the books, not the revenue side.  Companies that are growing fast&#xA;learn quickly that they need us to keep services available and to keep&#xA;developer velocity high.  Companies that are shrinking start by pulling back&#xA;from cost-side groups like SRE, operations, and even security while they push&#xA;resources toward feature development and sales.  That&amp;rsquo;s short term thinking,&#xA;and they end up with quality, reliability, and security tech-debt that they&#xA;eventually need to pay down.  If they survive they&amp;rsquo;ll come to understand that&#xA;accutely, but it still might have been the right move at the time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Science Fair Ideas</title>
      <link>https://ry4an.org/unblog/post/science-fair/</link>
      <pubDate>Thu, 25 Dec 2025 11:49:16 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/science-fair/</guid>
      <description>&lt;p&gt;When I was growing up the science fair, where you do an experiment and make&#xA;a display about it, was a non-optional part of our science curriculum.  You&#xA;&lt;strong&gt;had&lt;/strong&gt; to do a science fair project, and I often felt like I had no good ideas.&#xA;I assumed that my own kids&amp;rsquo; educations would include a lot of science fair&#xA;projects, so whenever we&amp;rsquo;d come across a testable unknown I&amp;rsquo;d add it to&#xA;a growing list.  Turns out the science fair was optional for them, or maybe it&#xA;didn&amp;rsquo;t exist at all?  At any rate I&amp;rsquo;ve now got a list of kid-testable&#xA;hypothesis-ready project ideas and nothing to do with them, so here they are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Home Automation Part 1</title>
      <link>https://ry4an.org/unblog/post/homeautomation_part1/</link>
      <pubDate>Tue, 21 Oct 2025 13:58:26 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/homeautomation_part1/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been futzing with home automation projects for longer than I&amp;rsquo;ve had a home,&#xA;but it sure has gotten easier lately.  Twenty years ago I was cobbling together&#xA;individual hardware sensor and actuator pairs for automations with no central&#xA;coordinating system and no logging.  Ten years ago I was buying third party&#xA;automation sets where everything was controlled by a cloud service and&#xA;everything worked well until that company lost interest in the product they&amp;rsquo;d&#xA;sold you and then everything stopped working suddenly.  Now there are great&#xA;local control options, with open sensors, open acutators, open controller&#xA;software, and great history keeping.  I&amp;rsquo;m buying parts from many companies, but&#xA;the continued working of my setup doesn&amp;rsquo;t require any of them being around next&#xA;year.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Front Door Rehab</title>
      <link>https://ry4an.org/unblog/post/front-door-rehab/</link>
      <pubDate>Mon, 13 Oct 2025 15:49:01 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/front-door-rehab/</guid>
      <description>&lt;p&gt;Kate and I like old homes even if they come with a lot of mechanical puzzles.&#xA;One of my favorite features on our current 100+ year old home is its original&#xA;oak and stained glass front door.&lt;/p&gt;&#xA;&lt;p&gt;A hundred years of slamming and freezing weather had left the stained glass&#xA;precariously loose with broken zinc came and gaps you could pass a pencil&#xA;though.  After a lot of hunting we found a local restoration company who did&#xA;a great job fixing the window using all the original glass and new lead came.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maintaining a Futel Payphone in Ypsi</title>
      <link>https://ry4an.org/unblog/post/futel-payphone-ypsi/</link>
      <pubDate>Fri, 12 Sep 2025 13:40:38 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/futel-payphone-ypsi/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://futel.net&#34;&gt;&lt;figure&gt;&lt;img src=&#34;https://ry4an.org/unblog/post/futel-payphone-ypsi/futel_logo_black.png&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;A friend has long run a non-profit, called &lt;a href=&#34;https://futel.net/&#34;&gt;Futel&lt;/a&gt;, that&amp;rsquo;s&#xA;sort of a hybrid community service and art project providing free payphones.  As&#xA;they describe it:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;At Futel, we believe in the preservation of public telephone hardware as&#xA;a means of providing access to the agora for everybody, and toward that goal&#xA;we are privileged to provide free telephone calls, voicemail, and&#xA;telephone-mediated services.&lt;/p&gt;&#xA;&lt;p&gt;All services, including telephony and human interaction, are free from any&#xA;Futel telephone.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nerd Nite Talk</title>
      <link>https://ry4an.org/unblog/post/nerd-nite-talk/</link>
      <pubDate>Wed, 20 Aug 2025 14:50:27 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/nerd-nite-talk/</guid>
      <description>&lt;p&gt;Back in 2018 I gave a 15 minute talk at &lt;a href=&#34;https://annarbor.nerdnite.com/2018/02/05/thurs-feb-15-2018-nna2-52-fighting-phragmites-buying-bitcoin-celebrating-sitcoms/&#34;&gt;Ann Arbor Nerd&#xA;Nite&lt;/a&gt;,&#xA;and I just came across the video again.  I think it holds up, and I was glad the&#xA;video shows the audience seemed to have a good time too.&lt;/p&gt;&#xA;&lt;p&gt;I really like public speaking &lt;em&gt;because&lt;/em&gt; it&amp;rsquo;s terrifying.  I get a huge&#xA;adrenaline rush and stuggle to control my breathing.  It&amp;rsquo;s like skydiving but&#xA;without the actual risk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tech Employment Sabbatical</title>
      <link>https://ry4an.org/unblog/post/tech-employment-sabbatical/</link>
      <pubDate>Mon, 18 Aug 2025 02:01:29 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/tech-employment-sabbatical/</guid>
      <description>&lt;p&gt;After 30 years of steady employment in the tech industry I&amp;rsquo;ve gotten the family&#xA;on board with my taking a one year sabbatical.  My employer didn&amp;rsquo;t offer&#xA;extended unpaid time off as a benefit, so I resigned in June and am now two&#xA;months into a year&amp;rsquo;s leave.  I&amp;rsquo;m hoping to return to the tech industry&#xA;re-energized and with some new perspectives.  I&amp;rsquo;d be kidding if I didn&amp;rsquo;t say the&#xA;current tech job market is concerning relative to when I first made this&#xA;decision, but I&amp;rsquo;m counting on a large network of past coworkers and some&#xA;AI-resistant skills to smooth my reentry in 2026.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unblog Generation Four</title>
      <link>https://ry4an.org/unblog/post/unblog-generation-four/</link>
      <pubDate>Sun, 17 Aug 2025 08:15:48 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/unblog-generation-four/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been blogging, unreliably, at ry4an.org since 2003, and just changed the&#xA;software powering it for the third time.  Up until today I was using&#xA;&lt;a href=&#34;https://app.readthedocs.org/projects/blohg/&#34;&gt;blohg&lt;/a&gt;. It worked great, but&#xA;hadn&amp;rsquo;t had a release in seven year and still required python 2.7, which is&#xA;annoying to install cleanly these days.&lt;/p&gt;&#xA;&lt;p&gt;A quick look around showed that the static site generator space has exploded&#xA;since last I checked.  &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; is mature and doesn&amp;rsquo;t&#xA;require a javascript runtime, which was good enough for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Outcome Probability for One Handed Solitaire</title>
      <link>https://ry4an.org/unblog/post/one_handed_solitaire/</link>
      <pubDate>Sun, 13 Aug 2023 12:45:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/one_handed_solitaire/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Back in 1994 my circle of high school friends spent a lot of time sitting around&#xA;talking (there were no cell phones) and for about a week we were all playing&#xA;&lt;a class=&#34;reference external&#34; href=&#34;https://en.wikibooks.org/wiki/Solitaire_card_games/One-Handed&#34;&gt;one handed solitaire&lt;/a&gt;. In suburban St. Louis we called it idiot&#39;s delight&#xA;solitaire (which turns out to be an entirely &lt;a class=&#34;reference external&#34; href=&#34;http://www.solitairecentral.com/rules/IdiotsDelight.html&#34;&gt;different game&lt;/a&gt;), because there&#xA;is absolutely no human input after the shuffle.  As soon as you&#39;ve started&#xA;playing it&#39;s already determined whether you&#39;ve won -- you just spend five&#xA;minutes learning if you did.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>A Gamebook Report with Graphviz, Google Sheets, Python, and Juypter/Colab</title>
      <link>https://ry4an.org/unblog/post/gamebook_report/</link>
      <pubDate>Sat, 02 May 2020 16:53:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/gamebook_report/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;An 11 year old in our house needed to do a book report for school in the form of&#xA;a board game and selected a gamebook, apparently the generic name for the&#xA;trademarked Choose Your Own Adventure books.  The non-linear narrative made the&#xA;choice of board layout easy -- just use the graph of pages-transitions (&amp;quot;Turn to&#xA;page 110&amp;quot;).&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a class=&#34;reference external&#34; href=&#34;https://www.graphviz.org/&#34;&gt;graphviz&lt;/a&gt; library is always my first choice when I want to visualize nodes&#xA;and edges, and the &lt;a class=&#34;reference external&#34; href=&#34;https://pypi.org/project/graphviz/&#34;&gt;python graphviz module&lt;/a&gt; provides a convenient way to get&#xA;data into a renderable graph structure.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Apache To CloudFront With Lambda At Edge</title>
      <link>https://ry4an.org/unblog/post/apache_to_cloudfront/</link>
      <pubDate>Thu, 02 May 2019 22:45:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/apache_to_cloudfront/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve been running my (this) vanity website and mail server on Linux machines&#xA;I administer myself since 1998 or so, but it&#39;s time to rebuild the machine and&#xA;hosting static HTTPS no longer makes sense in a world where GitHub or AWS can&#xA;handle it flexibly and reliably for effectively free.  I did want to keep&#xA;running my own mail server, but centralization in email has made delivery iffy&#xA;and everyone I&#39;m communicating with is on gmail, so the data is going there&#xA;anyway.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ry4an in Title Case</title>
      <link>https://ry4an.org/unblog/post/title_case/</link>
      <pubDate>Thu, 02 May 2019 15:39:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/title_case/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Python has a uniquely bad title case function which turns my already silly name&#xA;into Ry4An, capitalizing the &#39;a&#39; because it follows a non-letter character.&#xA;I can&#39;t be sure that all the bulk email I get that&#39;s sent to Ry4An Brase has&#xA;passed through Python&#39;s .title() function, but I&#39;ve not found another language&#xA;or framework with so bad an implementation.&lt;/p&gt;&#xA;&lt;p&gt;At least Python warns you that their version is terrible right in &lt;a class=&#34;reference external&#34; href=&#34;https://docs.python.org/3/library/stdtypes.html#str.title&#34;&gt;the docstring&#xA;for title&lt;/a&gt; and provides a slightly better one they suggest you paste directly&#xA;into your code.  There are, of course, better versions available in libraries&#xA;like &lt;a class=&#34;reference external&#34; href=&#34;https://pypi.org/project/titlecase/&#34;&gt;titlecase&lt;/a&gt; which handle things like not capitalizing articles.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Kindle Highlights and Ratings</title>
      <link>https://ry4an.org/unblog/post/book-highlights/</link>
      <pubDate>Mon, 15 Apr 2019 00:41:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/book-highlights/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When reading I&#39;ve always underlined sentences that make me happy.  Once the kids&#xA;got old enough to understand there&#39;s no email or fun on a Kindle I switched from&#xA;dead tree books, and now the underlining is stored in Amazon&#39;s datacenters.&lt;/p&gt;&#xA;&lt;p&gt;After a few years of highlighting on Kindle I started to wonder if the number of&#xA;sentences that I liked and the eventual five-star scale rating I gave a book had&#xA;any correlation.  Amazon owns &lt;a class=&#34;reference external&#34; href=&#34;https://www.goodreads.com/&#34;&gt;Goodreads&lt;/a&gt; and Kindle services sync data into&#xA;Goodreads, but unfortunately highlight data isn&#39;t available through any API.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Home Alarm Analytics With AWS Kinesis</title>
      <link>https://ry4an.org/unblog/post/home_alarm_kinesis/</link>
      <pubDate>Wed, 18 Jan 2017 00:19:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/home_alarm_kinesis/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Home security system projects are fun because everything about them screams&#xA;&amp;quot;1980s legacy hardware design&amp;quot;.  Nowhere else in the modern tech landscape&#xA;does one program by typing in a three digit memory address and then entering&#xA;byte values on a numeric keypad.  There&#39;s no enter-key -- you fill the&#xA;memory address.  There&#39;s no display -- just eight LEDs that will show you&#xA;a byte at a time, and you hope it&#39;s the address you think it is.  Arduinos&#xA;and the like are great for hobby fun, but these are real working systems&#xA;whose core configuration you enter byte by byte.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Raspberry Pi UPS</title>
      <link>https://ry4an.org/unblog/post/dc-ups-raspberry-pi/</link>
      <pubDate>Sun, 13 Mar 2016 23:12:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/dc-ups-raspberry-pi/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m starting to do more on a raspberry pi I&#39;ve got in the house, and I wanted it&#xA;to survive short power outages.  I looked at buying an off the shelf&#xA;Uninteruptable Power Supply (UPS), but it just struck me as silly that I&#39;d be&#xA;using my house&#39;s 120V AC to power to fill a 12V DC battery to be run through an&#xA;inverter into 120V AC again to be run through a transformer into DC yet again.&#xA;When the house is out of power that seemed like a lot of waste.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Pylint To Github</title>
      <link>https://ry4an.org/unblog/post/pylint-to-github/</link>
      <pubDate>Sun, 14 Sep 2014 23:16:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/pylint-to-github/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I spent a few hours trying to get the &lt;a class=&#34;reference external&#34; href=&#34;http://jenkins-ci.org/&#34;&gt;Jenkins&lt;/a&gt; Git &amp;amp; Github plugins to:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;run &lt;a class=&#34;reference external&#34; href=&#34;http://www.pylint.org/&#34;&gt;pylint&lt;/a&gt; on &lt;strong&gt;all&lt;/strong&gt; remote branch heads that:&lt;ul&gt;&#xA;&lt;li&gt;arent&#39; too old&lt;/li&gt;&#xA;&lt;li&gt;haven&#39;t already had pylint run on them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;send the repo status back to GitHub&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&#39;m sure it&#39;s possible, but the Jenkins Git plugin doesn&#39;t like a single build&#xA;to operate on multiple revisions.  The repo statuses weren&#39;t posting, the wrong&#xA;branches were getting built, and it was easier to write &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/Ry4an/pylint-to-github&#34;&gt;a quick script&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Bitcoin Conversion In Google Spreadsheets</title>
      <link>https://ry4an.org/unblog/post/bitcoin_google_spreadsheet/</link>
      <pubDate>Mon, 11 Nov 2013 23:00:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/bitcoin_google_spreadsheet/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve been using &lt;a class=&#34;reference external&#34; href=&#34;https://plus.google.com/u/0/108380884935330936839/about&#34;&gt;Charlie Lee&lt;/a&gt;&#39;s excellent &lt;a class=&#34;reference external&#34; href=&#34;https://spreadsheets.google.com/spreadsheet/ccc?key=0Amu2Hoiel5SYdFJMVV95cG5pbFppSHc4YnVwUzZwanc&amp;amp;hl=en_US&amp;amp;authkey=CIa_g-AM&#34;&gt;Google Spreadsheet Bitcoin&lt;/a&gt; tracker&#xA;sheet for awhile but it pulls data from a single exchange at a time and relies&#xA;on the ordering of those exchanges on the bitcoinwatch.com site, which vary with&#xA;volume.&lt;/p&gt;&#xA;&lt;p&gt;I figured out I could get better numbers more reliably from &lt;a class=&#34;reference external&#34; href=&#34;http://bitcoinaverage.com&#34;&gt;bitcoinaverage.com&lt;/a&gt;,&#xA;which (predictably) averages multiple exchanges over various time periods.  They&#xA;offer a great JSON API, but unfortunately Google spreadsheets only export JSON&#xA;-- they don&#39;t have a function for importing it.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Occuped: Twine &#43; Go &#43; App Engine</title>
      <link>https://ry4an.org/unblog/post/occupied/</link>
      <pubDate>Sun, 11 Aug 2013 01:08:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/occupied/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;In our NY office We&#39;ve got 40 people working in a space with two&#xA;bathrooms.  Walking to the bathrooms, finding them both occupied, and&#xA;grabbing a snack instead is a regular occurrence.  For a lark I took&#xA;a &lt;a class=&#34;reference external&#34; href=&#34;http://supermechanical.com/&#34;&gt;Twine&lt;/a&gt; with the breakout board and a few magnetic switches and&#xA;connected them to the over taxed bathroom doors.&lt;/p&gt;&#xA;&lt;p&gt;The good folks at Twine will invoke a web hook on state change, so&#xA;I created a &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/ry4an/occupied&#34;&gt;tiny webapp in Go&lt;/a&gt; that takes the GET from Twine and&#xA;stashes it in the App Engine datastore.  I wrote a &lt;a class=&#34;reference external&#34; href=&#34;http://dfoccupied.appspot.com/&#34;&gt;cheesy web front&#xA;end&lt;/a&gt; to show the current state based on the most recent change.  It&#xA;also exposes a JSON API, allowing my &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/chltjdgh86&#34;&gt;excellent&lt;/a&gt; &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/Minasokoni/&#34;&gt;coworkers&lt;/a&gt; to build&#xA;a native OS X menulet and a &lt;a class=&#34;reference external&#34; href=&#34;http://lab.robertismy.name/bio/&#34;&gt;much nicer web version&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Crossed Lamps</title>
      <link>https://ry4an.org/unblog/post/crossed-lamps/</link>
      <pubDate>Sat, 06 Apr 2013 20:42:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/crossed-lamps/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Last weekend we bought two &lt;a class=&#34;reference external&#34; href=&#34;http://www.ikea.com/us/en/catalog/products/00192419/#/70192425&#34;&gt;Rodd&lt;/a&gt; lamps at Ikea for the guest room, and it struck&#xA;me how amused I&#39;d be if each one switched the other.  Six hours and a few new&#xA;parts later, and it came out pretty well:&lt;/p&gt;&#xA;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/DbliHjD3zWo?si=0Jpfx9V3cOPo5a50&#34; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;The remote action is especially jarring because the switches are right next to&#xA;the bulbs they would normally control:&lt;/p&gt;&#xA;&lt;img alt=&#34;Ikea Rodd lamp head&#34; src=&#34;https://ry4an.org/unblog/attachments/ikea-rodd.png&#34; style=&#34;width: 241px; height: 430px;&#34; /&gt;&#xA;&lt;!-- read_more --&gt;&#xA;&lt;p&gt;I really lucked out with those lamps.  The switches aren&#39;t integral to the bulb&#xA;sockets as is often the case, and they&#39;re not even soldered.  I was able to fit&#xA;two extra wires through the lamp&#39;s main tube without going to a wire gauge that&#xA;felt scarily thin -- LED bulbs helped there.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Amazon S3 as Append Only Datastore</title>
      <link>https://ry4an.org/unblog/post/amazon-s3-as-append-only-datastore/</link>
      <pubDate>Sun, 03 Feb 2013 10:10:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/amazon-s3-as-append-only-datastore/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;As a hack, when I need an append-only datastore with no authentication&#xA;or validation, I use Amazon S3.  S3 is usually a read-only service from&#xA;the unauthenticated web client&#39;s point of view, but if you enable access&#xA;logging to a bucket you get full-query-parameter URLs recorded in a text&#xA;file for GETs that can come from a form&#39;s action or via XHR.&lt;/p&gt;&#xA;&lt;p&gt;There aren&#39;t a lot of internet-safe append-only datastores out there.&#xA;All my favorite noSQL solutions divide permissions into read and/or&#xA;write, where write includes delete.  SQL databases let you grant an&#xA;account &lt;tt class=&#34;docutils literal&#34;&gt;insert&lt;/tt&gt; without &lt;tt class=&#34;docutils literal&#34;&gt;update&lt;/tt&gt; or &lt;tt class=&#34;docutils literal&#34;&gt;delete&lt;/tt&gt;, but still none&#xA;suggest letting them listen on a port that&#39;s open to the world.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Creating Burn Down Charts for GitHub Repositories Using Google Apps Script</title>
      <link>https://ry4an.org/unblog/post/github-burn-down-chart-with-google-apps-script/</link>
      <pubDate>Sat, 05 Jan 2013 00:07:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/github-burn-down-chart-with-google-apps-script/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;At &lt;a class=&#34;reference external&#34; href=&#34;http://www.dramafever.com/&#34;&gt;DramaFever&lt;/a&gt; I got folks to buy into to &lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Burn_down_chart&#34;&gt;burn down&lt;/a&gt; charts as the daily&#xA;display for our weekly sprints with the rotating release person being&#xA;responsible for updating a Google spreadsheet with each day&#39;s end-of-day open&#xA;and closed issue counts.&lt;/p&gt;&#xA;&lt;p&gt;It works fine, and it&#39;s only a small time burden, but if one forgets there&#39;s no&#xA;good way to get the previous day&#39;s counts.  Naturally I looked to automation,&#xA;and &lt;a class=&#34;reference external&#34; href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt; has &lt;a class=&#34;reference external&#34; href=&#34;http://developer.github.com/v3/&#34;&gt;an excellent API&lt;/a&gt;.  My usual take on something like this would&#xA;be to have cron trigger a script that:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>GitHub Jenkins Deploy Keys Config</title>
      <link>https://ry4an.org/unblog/post/github-jenkins-deploy-keys-config/</link>
      <pubDate>Tue, 06 Nov 2012 14:37:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/github-jenkins-deploy-keys-config/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://github.com&#34;&gt;GitHub&lt;/a&gt; doesn&#39;t let you use the same deploy key for multiple repositories within&#xA;a single organziation, so you have to either (a) manage multiple keys, (b)&#xA;create a non-human user (boo!), or (c) use their not-yet-ready for primetime&#xA;HTTP OAUTH deploy access, which can&#39;t create read-only permissions.&lt;/p&gt;&#xA;&lt;p&gt;In the past to managee the multiple keys I&#39;ve either (a) used ssh-agent or (b)&#xA;specified which private key to use for each request using &lt;tt class=&#34;docutils literal&#34;&gt;&lt;span class=&#34;pre&#34;&gt;-i&lt;/span&gt;&lt;/tt&gt; on the command&#xA;line, but neither of those are convenient with &lt;a class=&#34;reference external&#34; href=&#34;http://jenkins-ci.org/&#34;&gt;Jenkins&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>spdyproxy on Ubuntu 12.4 LTS</title>
      <link>https://ry4an.org/unblog/post/spdyproxy-on-ubuntu/</link>
      <pubDate>Sun, 04 Nov 2012 23:12:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/spdyproxy-on-ubuntu/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m often on unencrypted wireless networks, and I don&#39;t always trust everyone on&#xA;the encrypted ones, so I routinely run a SOCKS proxy to tunnel&#xA;my web traffic through an encrypted SSH tunnel.  This works great, but I have&#xA;to start the SSH tunnel before I start browsing -- that&#39;s okay IRC before&#xA;reader -- but when I sleep the laptop the SSH tunnel dies and requires a restart&#xA;before I can browse again.  &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/ssh_lojack/&#34;&gt;In the past&lt;/a&gt; I&#39;ve used &lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Autossh&#34;&gt;autossh&lt;/a&gt; to automate that&#xA;reconnect, but it still requires more attention than it deserves.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Getting Chef Solo Working With the Database Cookbook and Vagrant</title>
      <link>https://ry4an.org/unblog/post/chef_mysql_database_vagrant/</link>
      <pubDate>Sat, 21 Jul 2012 00:10:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/chef_mysql_database_vagrant/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This is going to be one big jargon laden blob if you&#39;re not trying to do&#xA;exactly what I was trying to do this week, but hopefully it turns up in&#xA;a search for the next person.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;m setting up a new development environment using &lt;a class=&#34;reference external&#34; href=&#34;http://vagrantup.com/&#34;&gt;Vagrant&lt;/a&gt; and I&#39;m&#xA;using &lt;a class=&#34;reference external&#34; href=&#34;http://www.opscode.com/chef/&#34;&gt;Chef&lt;/a&gt; Solo to provision the &lt;a class=&#34;reference external&#34; href=&#34;http://www.ubuntu.com/&#34;&gt;Ubuntu&lt;/a&gt; (12.4 Precise Penguin)&#xA;guest.  I wanted &lt;a class=&#34;reference external&#34; href=&#34;http://www.mysql.com/&#34;&gt;MySQL&lt;/a&gt; server running and wanted to use the &lt;a class=&#34;reference external&#34; href=&#34;http://community.opscode.com/cookbooks/database&#34;&gt;database&#xA;cookbook&lt;/a&gt; from &lt;a class=&#34;reference external&#34; href=&#34;http://www.opscode.com/&#34;&gt;Opscode&lt;/a&gt; to pre-create a database.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Android Fragmentation Analogy</title>
      <link>https://ry4an.org/unblog/post/android-fragmentation-analogy/</link>
      <pubDate>Wed, 30 May 2012 14:32:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/android-fragmentation-analogy/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This whole post should just be a single tweet, but somehow it doesn&#39;t feel safe&#xA;to say anything comparing Android and iOS development, even implicitly, without&#xA;five paragraphs full of disclaimers.  First, here&#39;s the tweet:&lt;/p&gt;&#xA;&lt;blockquote class=&#34;pull-quote&#34;&gt;&#xA;Developers complaining about fragmentation on the Android platform are like&#xA;fashion designers complaining about size fragmentation on the human body.&lt;/blockquote&gt;&#xA;&lt;p&gt;Expanding on that I&#39;d say, yes, it&#39;s easier to make something that fits&#xA;beautifully if you know the exact size and shape you&#39;re targeting and don&#39;t have&#xA;to think about how it will look on other form factors / body shapes.  Some&#xA;designers create clothes for only the fashion model body shape, and some create&#xA;clothes that fit a wider variety of body shapes.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Low Flow Shower Delay</title>
      <link>https://ry4an.org/unblog/post/low-flow-shower-delay/</link>
      <pubDate>Wed, 23 May 2012 11:35:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/low-flow-shower-delay/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When I start up the shower it&#39;s the wrong temperature and adjusting it to the&#xA;right temperature takes longer in this apartment than it has in any home in&#xA;which I&#39;ve previously lived.  I wanted to blame the problem on the &lt;a class=&#34;reference external&#34; href=&#34;https://en.wikipedia.org/wiki/Shower#Shower_heads&#34;&gt;low flow&#xA;shower head&lt;/a&gt;, but I&#39;m having a hard time doing it.  My thinking was that the&#xA;time delay from when I adjust the shower to when I actually feel the change is&#xA;unusually high due to the shower head&#39;s reduced flow rate.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>OS X Linux Clipboard Sharing</title>
      <link>https://ry4an.org/unblog/post/os-x-linux-clipboard-sharing/</link>
      <pubDate>Tue, 17 Apr 2012 20:44:00 -0400</pubDate>
      <guid>https://ry4an.org/unblog/post/os-x-linux-clipboard-sharing/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My primary home machine is a Linux deskop, and my primary work machine is an OSX&#xA;laptop.  I do most of my work on the Linux box, ssh-ed into the OS X machine&#xA;-- I recognize that&#39;s the reverse of usual setups, but I love the&#xA;&lt;a class=&#34;reference external&#34; href=&#34;http://awesome.naquadah.org/&#34;&gt;awesome&lt;/a&gt; window manager and the copy-on-select &lt;a class=&#34;reference external&#34; href=&#34;https://en.wikipedia.org/wiki/X_Window_selection&#34;&gt;X Window selection&lt;/a&gt; scheme.&lt;/p&gt;&#xA;&lt;p&gt;My frustration is in having separate copy and paste buffers across the two&#xA;systems.  If I select something in a work email, I often want to paste it into&#xA;the Linux machine.  Similarly if I copy an error from a Linux console I need to&#xA;paste it into a work email.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>NFC PayPass Rick Roll</title>
      <link>https://ry4an.org/unblog/post/nfc-paypass-rick-roll/</link>
      <pubDate>Sat, 10 Mar 2012 21:02:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/nfc-paypass-rick-roll/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Near_field_communication&#34;&gt;NFC&lt;/a&gt; tags are tiny wireless storage devices, with very thin antennas, attached&#xA;to poker chip sized stickers.  They&#39;re sort of like RFID tags, but they only&#xA;have a 1 inch range, come in various capacities, and can be easily rewritten.&#xA;If the next iPhone adds a NFC reader I think they&#39;ll be huge.  As it is they&#39;re&#xA;already pretty fun and only a buck each even when &lt;a class=&#34;reference external&#34; href=&#34;http://www.webevolved.com/nfctags&#34;&gt;bought in small quantities&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Word Star Retaliation</title>
      <link>https://ry4an.org/unblog/post/word-star-retaliation/</link>
      <pubDate>Fri, 09 Mar 2012 12:17:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/word-star-retaliation/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Wordstar&#34;&gt;WordStar&lt;/a&gt; was the first word processor I ever used.  It was non-WYSIWYG, and&#xA;it was good.  I haven&#39;t used it since the mid 80s, but I haven&#39;t used MS Word&#xA;since the mid 90s either.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes I am sent .doc or .docx files, and usually I can figure out what&#39;s&#xA;inside them using OS X Preview or Google Docs, but it&#39;s never perfect and&#xA;frequently numbered lists get renumbered, which makes discussing the docs on the&#xA;phone particularly hard.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Mercurial Chart Extension</title>
      <link>https://ry4an.org/unblog/post/mercurial-chart/</link>
      <pubDate>Sat, 11 Feb 2012 22:10:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/mercurial-chart/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Back in 2008 I wote an extension for Mercurial to render activity charts like&#xA;this one:&lt;/p&gt;&#xA;&lt;img alt=&#34;Mercurial Change Chart&#34; src=&#34;https://ry4an.org/unblog/attachments/mercurial-chart.png&#34; style=&#34;width: 400px; height: 400px;&#34; /&gt;&#xA;&lt;p&gt;Yesterday I finally got around to updating it for modern Mercurial builds,&#xA;including 2.1.  It&#39;s &lt;a class=&#34;reference external&#34; href=&#34;https://bitbucket.org/Ry4an/hg-chart-extension&#34;&gt;posted on bitbucket&lt;/a&gt; and has a &lt;a class=&#34;reference external&#34; href=&#34;http://mercurial.selenic.com/wiki/ChartExtension&#34;&gt;page on the Mercurial&#xA;wiki&lt;/a&gt;.  It uses &lt;a class=&#34;reference external&#34; href=&#34;http://pygooglechart.slowchop.com/&#34;&gt;pygooglechart&lt;/a&gt; as a wrapper around the excellent &lt;a class=&#34;reference external&#34; href=&#34;http://code.google.com/apis/chart/image/&#34;&gt;Google&#xA;image chart API&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I really like the google image charts becuse the entire image is encapsulated as&#xA;a URL, which means they work great with command line tools.  A script can output&#xA;a URL, my terminal can make it a link, and I can bring it up in a browser window&#xA;w/o ever really using a GUI tool at all.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Minneapolis Surveillance Camera Project Shut Down</title>
      <link>https://ry4an.org/unblog/post/mpls-surveillance-shut-down/</link>
      <pubDate>Sun, 29 Jan 2012 15:51:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/mpls-surveillance-shut-down/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Now that I no longer live in Minneapolis it seems a fine time to shut&#xA;down the Minneapolis Surveilance Camera Project I &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2003-06-12/&#34;&gt;launched in 2003&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;At peak it got mentioned in a few strib articles, was written about in&#xA;the downtown journal, and got a lot of hits from computers within city&#xA;and county government.  After my initial inventory walk most of the&#xA;camera additions came in via the website from strangers.  More of the&#xA;reports had photos of the cameras once everyone had a camera in their&#xA;phone.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Eulogy For a Good Server</title>
      <link>https://ry4an.org/unblog/post/eulogy-for-a-good-server/</link>
      <pubDate>Sun, 18 Dec 2011 01:09:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/eulogy-for-a-good-server/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Two days ago I powered down a good server for the first time in years and the&#xA;last time ever.  It doesn&#39;t compare to euthanizing a pet, but it still made me&#xA;more sad than I expected.  Below is a remembrance.  I&#39;ve made the server male&#xA;because once you&#39;ve gotten so silly as to write a eulogy for a server you might&#xA;as well go all out.&lt;/p&gt;&#xA;&lt;p&gt;Ry4an.org II was a good server.  In 2001 his Pentium III hardware was already&#xA;old -- corporate castoff acquired for free.  He took a Fedora install without&#xA;any configuration hassles and always assigned the same ethX numbers to each of&#xA;his three PCI NICs, without aliases in the modules.conf, which Ry4an.org I could&#xA;never get right.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Posthumous Key Revocation</title>
      <link>https://ry4an.org/unblog/post/key-revocation/</link>
      <pubDate>Sun, 11 Dec 2011 21:20:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/key-revocation/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve just emptied out my safe deposit box for the move, and thought I&#39;d re-post&#xA;this:&lt;/p&gt;&#xA;&lt;p&gt;If you hear I&#39;ve died someone who knows their way around gpg should ask Kate for&#xA;the CD pictured below. It&#39;ll be in a safe deposit box that&#39;s in my name, and&#xA;she&#39;ll have access after my death. There&#39;s a &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/home/ry4an-key.txt&#34;&gt;key&lt;/a&gt; revocation certificate with reason&#xA;&#39;death&#39; on the CD and a printed ASCII-armored version too since the odds of us&#xA;being able to read CDs in a few decades is approximately nil.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Miscellaneous Open Source Contributions</title>
      <link>https://ry4an.org/unblog/post/misc-open-source/</link>
      <pubDate>Sun, 13 Nov 2011 23:34:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/misc-open-source/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ll take Mercurial over git any day for all the reasons obvious to anyone who&#39;s&#xA;&lt;em&gt;really&lt;/em&gt; used both of them, but geeyah github sure makes contributing to&#xA;projects easy.  At work we had a ten minute MongoDB upgrade downtime turn into&#xA;two hours, and when we finally figured out what deprecated option was causing&#xA;the daemon launch to abort, rather than grouse about it on Twitter (okay, I did&#xA;that too) I was able to submit a &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/Ry4an/mongo/commit/cc3de60beb95eebd1e414c50fdbc7a6c8b370a6e&#34;&gt;one line patch&lt;/a&gt; without even cloning down the&#xA;repository that got merged in.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ancient Content Warnings</title>
      <link>https://ry4an.org/unblog/post/ancient-content/</link>
      <pubDate>Sat, 12 Nov 2011 17:03:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/ancient-content/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I just rebuilt the ry4an.org server, and as part of the migration I realized&#xA;a still had a lot of very old, almost embarrassing content online.  I took the&#xA;broken or not-conceivably interesting stuff off-line and am serving up &lt;a class=&#34;reference external&#34; href=&#34;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11&#34;&gt;410&#xA;GONE&lt;/a&gt; responses for it.&lt;/p&gt;&#xA;&lt;p&gt;There exists, however, a broad swath of stuff that&#39;s not yet entirely useless,&#xA;but is more than ten years old and not stuff I would likely post today.  For all&#xA;of these pages I&#39;ve left the content up, but you first have to click through&#xA;a modal dialog warning you you&#39;re looking at very old stuff I don&#39;t necessarily&#xA;endorse.  That pop up looks like this:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Asynchronous Python Logging</title>
      <link>https://ry4an.org/unblog/post/python_async_logging_django/</link>
      <pubDate>Mon, 26 Sep 2011 23:50:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/python_async_logging_django/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The Python logging module has some nice built-in LogHandlers that do network IO,&#xA;but I couldn&#39;t square with having HTTP POSTs and SMTP sends in web response&#xA;threads.  I didn&#39;t find an asynchronous logging wrapper, so I wrote a decorator&#xA;of sorts using the really nifty monkey patching availble in python:&lt;/p&gt;&#xA;&lt;pre class=&#34;code python literal-block&#34;&gt;&#xA;&lt;span class=&#34;keyword&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;name function&#34;&gt;patchAsyncEmit&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;handler&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;):&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;name&#34;&gt;base_emit&lt;/span&gt; &lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;handler&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;emit&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;name&#34;&gt;queue&lt;/span&gt; &lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;Queue&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;Queue&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;keyword&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;name function&#34;&gt;loop&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;():&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;        &lt;span class=&#34;keyword&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;keyword constant&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;            &lt;span class=&#34;name&#34;&gt;record&lt;/span&gt; &lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;keyword constant&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;comment single&#34;&gt;# blocks&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;            &lt;span class=&#34;keyword&#34;&gt;try&lt;/span&gt; &lt;span class=&#34;punctuation&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;                &lt;span class=&#34;name&#34;&gt;base_emit&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;record&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;            &lt;span class=&#34;keyword&#34;&gt;except&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;comment single&#34;&gt;# not much you can do when your logger is broken&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;                &lt;span class=&#34;name builtin&#34;&gt;print&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;exc_info&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;name&#34;&gt;thread&lt;/span&gt; &lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;threading&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;Thread&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;target&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;loop&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;name&#34;&gt;thread&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;daemon&lt;/span&gt; &lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;keyword constant&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;name&#34;&gt;thread&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;keyword&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;name function&#34;&gt;asyncEmit&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;record&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;):&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;        &lt;span class=&#34;name&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;put&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;record&lt;/span&gt;&lt;span class=&#34;punctuation&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;name&#34;&gt;handler&lt;/span&gt;&lt;span class=&#34;operator&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;name&#34;&gt;emit&lt;/span&gt; &lt;span class=&#34;operator&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;asyncEmit&lt;/span&gt;&lt;span class=&#34;whitespace&#34;&gt;&#xA;&lt;/span&gt;    &lt;span class=&#34;keyword&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;name&#34;&gt;handler&lt;/span&gt;&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;In a more traditional OO language I&#39;d do that with extension or a dynamic proxy,&#xA;and in Scala I&#39;d do it as a trait, but this saved me having to write delegates&#xA;for all the other methods in LogHandler.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Graduation Form Letter</title>
      <link>https://ry4an.org/unblog/post/graduation_form_letter/</link>
      <pubDate>Sat, 18 Jun 2011 15:20:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/graduation_form_letter/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;We just passed through another graduation season, and for the second year&#xA;running I was able to get by with the same stack of form letters:&lt;/p&gt;&#xA;&lt;pre class=&#34;literal-block&#34;&gt;&#xA;Dear _______________________________,&#xA;&#xA;My ( Congratulations | Condolences | ___________________ ) on your recent (&#xA;Graduation | Eagle Rank | Loss | ___________________ ).  It is with ( Great Joy&#xA;| a Heavy Heart ) that I received the news.  I&#39;m sure it took a lot of ( Hard&#xA;Work | Cigarettes ) to make it happen.&#xA;&#xA;I&#39;m sure you&#39;ll have a ( great time | good cry ) at the ( open house | wake )&#xA;and ( regret | am glad) that I ( can | cannot ) attend.&#xA;&#xA;As you move on to your next phase in life please remember:&#xA;&#xA;[  ] the importance of hard work&#xA;[  ] the risks of smoking&#xA;[  ] there are other fish in the sea&#xA;[  ] don&#39;t have your mom send out your graduation invites -- you&#39;re an adult now&#xA;[  ] ________________________________________&#xA;&#xA;and the value of personal correspondence.&#xA;&#xA;Sincerely, your (Cousin | Scoutmaster | Parolee | _____________________),&#xA;&#xA;Ry4an Brase&#xA;&#xA;Enclosures (1): ( Check | Card | Gift | Best Wishes )&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;It&#39;s available as a &lt;a class=&#34;reference external&#34; href=&#34;https://docs.google.com/document/d/1GeQqt0e7Qpb_tpJkdg4df8b8UY2DotFijtjZNuXc3As/edit?hl=en_US&#34;&gt;Google Doc&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Scholars Walk Time Traveller</title>
      <link>https://ry4an.org/unblog/post/scholars-walk/</link>
      <pubDate>Sun, 29 May 2011 12:17:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/scholars-walk/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The University of Minnesota has a &lt;a class=&#34;reference external&#34; href=&#34;http://web.archive.org/web/20091219055227/http://www.scholarswalk.umn.edu/&#34;&gt;Scholar&#39;s Walk&lt;/a&gt; which celebrates great&#xA;persons affiliated with the U and the awards they&#39;ve won.  One display labeled&#xA;&amp;quot;Historical Giants&amp;quot; remains without any names.  Since the U can&#39;t reasonably be&#xA;anticipating any new history, I imagine that four years after installation&#xA;there&#39;s still a committee somewhere arguing about which department gets more&#xA;names.  Not content to wait for committee I decided to add a historical giant of&#xA;my own -- a time traveller.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Homemade Tonic</title>
      <link>https://ry4an.org/unblog/post/tonic/</link>
      <pubDate>Sat, 14 May 2011 22:15:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/tonic/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I just made my third batch of tonic water from &lt;a class=&#34;reference external&#34; href=&#34;http://marksexauer.wordpress.com/2008/05/13/how-to-make-you-own-house-tonic-water/&#34;&gt;Mark Sexauer&#39;s Recipe&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;4 cups water&lt;/li&gt;&#xA;&lt;li&gt;4 cups sugar&lt;/li&gt;&#xA;&lt;li&gt;1/4 cup cinchona bark&lt;/li&gt;&#xA;&lt;li&gt;1/4 cup citric acid&lt;/li&gt;&#xA;&lt;li&gt;Zest and juice of 1 lime&lt;/li&gt;&#xA;&lt;li&gt;Zest and juice of 1 lemon&lt;/li&gt;&#xA;&lt;li&gt;Zest and juice of 1 orange&lt;/li&gt;&#xA;&lt;li&gt;1 teaspoon coriander seeds&lt;/li&gt;&#xA;&lt;li&gt;1 teaspoon dried bitter orange peel&lt;/li&gt;&#xA;&lt;li&gt;10 dashes bitters&lt;/li&gt;&#xA;&lt;li&gt;1 hand crushed juniper berry (I used two)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The flavor is excellent, but the process is terrible.  Specifically, filtering&#xA;the cinchona bark from the mixture after extracting the quinine (actually&#xA;totaquine) from it is nearly impossible.  It&#39;s so finely ground it clogs any&#xA;filter, be it paper or the mesh on a french press coffeemaker, almost&#xA;immediately.  I&#39;ve tried letting it settle and pouring off the liquid, forcing&#xA;the liquid through with back pressure, and letting it drip all night -- none&#xA;work well.  A friend using the same recipe build a homemade vacuum extractor,&#xA;but I&#39;ve not yet gone that far.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>A Few Quick EC2 Security Group Migration Tools</title>
      <link>https://ry4an.org/unblog/post/ec2_security_group_tools/</link>
      <pubDate>Mon, 25 Apr 2011 23:50:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/ec2_security_group_tools/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Like half the internet I&#39;m working on duplicating a setup from one Amazon EC2&#xA;availability zone to another.  I couldn&#39;t find a quick way to do that if my&#xA;stuff wasn&#39;t already described in Cloud Formation templates, so I put together a&#xA;script that queries the security groups using &lt;tt class=&#34;docutils literal&#34;&gt;&lt;span class=&#34;pre&#34;&gt;ec2-describe-group&lt;/span&gt;&lt;/tt&gt; and&#xA;produces a shell script that re-creates them in a different region.&lt;/p&gt;&#xA;&lt;p&gt;If all your ec2 command line tools and environment variables are set you can&#xA;mirror us-east-1 to us-west-1 using:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Using the Khan Academy to Vet Online Panhandlers</title>
      <link>https://ry4an.org/unblog/post/khan_academy_for_panhandlers/</link>
      <pubDate>Thu, 31 Mar 2011 15:51:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/khan_academy_for_panhandlers/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m a huge fan of the &lt;a class=&#34;reference external&#34; href=&#34;http://www.khanacademy.org/&#34;&gt;Khan Academy&lt;/a&gt; (and if you haven&#39;t yet watched &lt;a class=&#34;reference external&#34; href=&#34;http://www.youtube.com/watch?v=gM95HHI4gLk&#34;&gt;Salman&#39;s&#xA;presentation at TED2011&lt;/a&gt; you should go do that).  I&#39;m involved (slightly) in an&#xA;effort to bring Khan Academy instruction to a local school district and have&#xA;a standing offer to &amp;quot;coach&amp;quot; participants.  Today, though, I found a use for the&#xA;Khan Academy site probably doesn&#39;t endorse: dealing with online panhandlers.&lt;/p&gt;&#xA;&lt;p&gt;Before today I&#39;d never seen an &lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Internet_Relay_Chat&#34;&gt;IRC&lt;/a&gt; panhandler, email sure, but never IRC.  This&#xA;morning, though, someone wandered into #mercurial asking for money to renew&#xA;a domain.  Most people ignored the request since it&#39;s grossly inappropriate in&#xA;a software development work space, but I offered the kid the money if he&#39;d do&#xA;algebra problems on the Khan Academy site.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>reStructuredText Resume</title>
      <link>https://ry4an.org/unblog/post/restructuredtext_resume/</link>
      <pubDate>Sat, 19 Mar 2011 23:18:00 -0500</pubDate>
      <guid>https://ry4an.org/unblog/post/restructuredtext_resume/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve had a resume in active maintenance since the mid 90s, and it&#39;s gone through&#xA;many iterations.  I started with a Word document (I didn&#39;t know any better).  In&#xA;the late 90s I moved to parallel Word, text, and HTML versions, all maintained&#xA;separately, which drifted out of sync horribly.  In 2010 I redid it in Google&#xA;Docs using a template I found whose HTML hinted at a previous life in Word for&#xA;OS X.  That template had all sorts of class and style stuff in it that Google&#xA;Docs couldn&#39;t actually edit/create, so I was back to hand-editing HTML and then&#xA;using Google Docs to create a PDF version.  I still had to keep the text version&#xA;current separately, but at least I&#39;d decided I didn&#39;t want any job that wanted a&#xA;Word version.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Trying Hirelite</title>
      <link>https://ry4an.org/unblog/post/hirelite/</link>
      <pubDate>Thu, 10 Mar 2011 00:08:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/hirelite/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Tonight I tried &lt;a class=&#34;reference external&#34; href=&#34;http://www.hirelite.com&#34;&gt;Hirelite&lt;/a&gt;, and I really think they&#39;re on to something.  They&#xA;arrange online software developer interview speed-dating-style events where N&#xA;companies and N software developers each sit in in front of their own webcams&#xA;and are connected together for live video chats five minutes at a time.&#xA;It&#39;s like chatroulette with more hiring talk and less genitalia.&lt;/p&gt;&#xA;&lt;p&gt;They pre-screen the developers to make sure they&#39;re at least able to solve a&#xA;simple programming problem and screen the companies by charging them a little&#xA;money.  Each session has a theme, like &amp;quot;backend developers&amp;quot;, and a geographic&#xA;region associated with it.  After each five minute interview -- there&#39;s a&#xA;countdown timer at the top -- each party indicates with a click whether or not&#xA;they&#39;d like to talk further.  Mutual matches get one another&#39;s contact&#xA;information immediately afterward.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Automatic SSH Tunnel Home As Securely As I Can</title>
      <link>https://ry4an.org/unblog/post/ssh_lojack/</link>
      <pubDate>Mon, 07 Mar 2011 00:48:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/ssh_lojack/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;After watching a &lt;a class=&#34;reference external&#34; href=&#34;http://www.youtube.com/watch?v=U4oB28ksiIo&#34;&gt;video from Defcon 18&lt;/a&gt; and seeing a &lt;a class=&#34;reference external&#34; href=&#34;http://twitter.com/#!/stevelosh/status/19918648672002049&#34;&gt;tweet from Steve Losh&lt;/a&gt; I&#xA;decided to finally set up an automatic SSH tunnel from my home server to my&#xA;traveling machines.  The idea being that if I leave the machine somewhere or&#xA;it&#39;s taken I can get in remotely and wipe it or take photos with the camera.&#xA;There are plenty of commercial software packages that will do something like&#xA;this for Windows, Mac, and Linux, and the highly-regarded, open-source prey, but&#xA;they all either rely on 3rd party service or have a lot more than a simple back-tunnel.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>BoingBoing Posts in Rogue</title>
      <link>https://ry4an.org/unblog/post/boingboing_rogue/</link>
      <pubDate>Tue, 01 Mar 2011 00:55:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/boingboing_rogue/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/boingboing_to_json/&#34;&gt;Previously&lt;/a&gt; I mentioned I was importing the full corpus of &lt;a class=&#34;reference external&#34; href=&#34;http://boingboing.net&#34;&gt;BoingBoing&lt;/a&gt; posts&#xA;into MonogoDB, which went off without a hitch.  The import was just to provide a&#xA;decent dataset for trying out &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/foursquare/rogue&#34;&gt;Rogue&lt;/a&gt;, the Mongo searching DSL from the folks at&#xA;Foursquare.  Last weekend I was in New York for the &lt;a class=&#34;reference external&#34; href=&#34;http://www.nescala.org/2011/&#34;&gt;Northeast Scala&#xA;Symposium&lt;/a&gt; and the &lt;a class=&#34;reference external&#34; href=&#34;http://blog.foursquare.com/2011/02/22/stop-hacker-time/&#34;&gt;Foursquare Hackathon&lt;/a&gt;, so I took the opportunity finish up&#xA;the query part while I had their developers around to answer questions.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Loading BoingBoing into MongoDB with Scala</title>
      <link>https://ry4an.org/unblog/post/boingboing_to_json/</link>
      <pubDate>Tue, 15 Feb 2011 00:54:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/boingboing_to_json/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I want to play around with &lt;a class=&#34;reference external&#34; href=&#34;http://engineering.foursquare.com/2011/01/21/rogue-a-type-safe-scala-dsl-for-querying-mongodb/&#34;&gt;Rogue&lt;/a&gt; by the Foursquare folks, but first I needed a&#xA;decent sized collections of items in a &lt;a class=&#34;reference external&#34; href=&#34;http://www.mongodb.org/&#34;&gt;MongoDB&lt;/a&gt;.  I recalled that &lt;a class=&#34;reference external&#34; href=&#34;http://boingboing.net&#34;&gt;BoingBoing&lt;/a&gt;&#xA;had just released &lt;a class=&#34;reference external&#34; href=&#34;http://www.boingboing.net/2011/01/25/eleven-years-worth-o.html&#34;&gt;all their posts in a single file&lt;/a&gt;, so I downloaded that and&#xA;put together a little Scala to convert from XML to &lt;a class=&#34;reference external&#34; href=&#34;http://www.json.org/&#34;&gt;JSON&lt;/a&gt;.  The built-in XML&#xA;support in Scala and the excellent &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/lift/lift/tree/master/framework/lift-base/lift-json/&#34;&gt;lift-json&lt;/a&gt; DSL turned the whole thing into no&#xA;work at all:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Traffic Analysis In Perl and Scala</title>
      <link>https://ry4an.org/unblog/post/perl_to_scala/</link>
      <pubDate>Sun, 06 Feb 2011 12:19:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/perl_to_scala/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I needed to implement the algorithm in &lt;a class=&#34;reference external&#34; href=&#34;http://scholar.google.com/scholar?cluster=12277737764453076362&#34;&gt;Practical Traffic Analysis Extending and&#xA;Resisting Statistical Disclosure&lt;/a&gt; in a hurry, so I turned to my old friend&#xA;Perl.  Later, when time permitted I re-did it in my new favorite language,&#xA;&lt;a class=&#34;reference external&#34; href=&#34;http://www.scala-lang.org/&#34;&gt;Scala&lt;/a&gt;.  Here&#39;s a quick look at how a few different pieces of the implementation&#xA;differed in the two languages -- and really how idiomatic Perl and idiomatic&#xA;Scala can look pretty similar when one gets past syntax.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Syntax Highlighting and Formulas for Blohg</title>
      <link>https://ry4an.org/unblog/post/blohg_code_and_math/</link>
      <pubDate>Sat, 05 Feb 2011 01:51:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/blohg_code_and_math/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m thus far thrilled with &lt;a class=&#34;reference external&#34; href=&#34;http://hg.rafaelmartins.eng.br/blohg/&#34;&gt;blohg&lt;/a&gt; as a blogging platform.  I&#39;ve got a large post&#xA;I&#39;m finishing up now with quite a few snippets of source code in two different&#xA;programming languages.  I was hoping to use the excellent &lt;a class=&#34;reference external&#34; href=&#34;http://alexgorbatchev.com/SyntaxHighlighter/&#34;&gt;SyntaxHighlighter&lt;/a&gt;&#xA;javascript library to prettify those snippets, and was surprised to find that&#xA;docutils reStructuredText doesn&#39;t yet do that (though some other implementations&#xA;do).&lt;/p&gt;&#xA;&lt;p&gt;Fortunately, adding new rendering directives to reStructuredText is incredibly&#xA;easy.  I was able to add support for a &lt;tt class=&#34;docutils literal&#34;&gt;.. code&lt;/tt&gt; mode with just this little&#xA;bit of Python:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Blacklisting Changesets in Mercurial</title>
      <link>https://ry4an.org/unblog/post/mercurial_changeset_blacklist/</link>
      <pubDate>Sat, 29 Jan 2011 00:34:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/mercurial_changeset_blacklist/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Distributed version control systems have revolutionized how software teams work,&#xA;by making merges no longer scary.  Developers can work on a feature in relative&#xA;isolation, pulling in new changes on their schedule, and providing results back&#xA;on their (manager&#39;s) timeline.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes, however, a developer working in their own branch can do something&#xA;really silly, like commit a &lt;em&gt;huge&lt;/em&gt; file without realizing it.  Only after they&#xA;push to the central repository does the giant size of the changeset become&#xA;known.  If one catches it quickly, one just removes the changeset and all is&#xA;will.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Switching Blogging Software</title>
      <link>https://ry4an.org/unblog/post/switch_to_blohg/</link>
      <pubDate>Thu, 27 Jan 2011 14:04:00 -0600</pubDate>
      <guid>https://ry4an.org/unblog/post/switch_to_blohg/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This blog started out called the unblog back when blog was a new-ish term and I&#xA;thought it was silly.  I&#39;d been on mailing lists like &lt;a class=&#34;reference external&#34; href=&#34;http://www.xent.com/FoRK-archive/spring96/0000.html&#34;&gt;fork&lt;/a&gt; and Kragan Sitaker&#39;s&#xA;&lt;a class=&#34;reference external&#34; href=&#34;http://lists.canonical.org/pipermail/kragen-tol/&#34;&gt;tol&lt;/a&gt; for years and couldn&#39;t see a difference between those and blogs.  I set up&#xA;some &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2003-04-13/&#34;&gt;mailing list archive software to look like a blog&lt;/a&gt; and called it a day.&lt;/p&gt;&#xA;&lt;p&gt;Years later that platform was aging, and wikis were still a new and exciting&#xA;concept, so I &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2005-01-16/&#34;&gt;built a blog around a wiki&lt;/a&gt;.  The ease of online editing was&#xA;nice, though readers never took to wiki-as-comments like I hoped.  It worked&#xA;well enough for a good many years, but I kept having a hard time finding my own&#xA;posts in Google.  Various SEO-blocking strategies Google employs that I hope&#xA;never to have to understand were pushing my entries below total crap.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Mercurial Remote Test Runner via Push</title>
      <link>https://ry4an.org/unblog/post/2010-04-15/</link>
      <pubDate>Thu, 15 Apr 2010 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2010-04-15/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I heard someone in IRC saying that the mercurial test suite was bogging down theirlaptop, so I set up a quick push-test service for the mercurial crew.  If you&#39;re in crew and you do a push to &lt;tt class=&#34;docutils literal&#34;&gt;&lt;span class=&#34;pre&#34;&gt;ssh://hgtester&amp;#64;ry4an.org:2222/&lt;/span&gt;&lt;/tt&gt; these steps will be taken:&lt;/p&gt;&#xA;&lt;ol class=&#34;arabic simple&#34;&gt;&#xA;&lt;li&gt;a local clone of the crew repo is updated from intevention.de&lt;/li&gt;&#xA;&lt;li&gt;a new, disposable local clone is created from that crew clone&lt;/li&gt;&#xA;&lt;li&gt;your csets are pushed to that new clone&lt;/li&gt;&#xA;&lt;li&gt;the working directory is updated to &#39;tip&#39;&lt;/li&gt;&#xA;&lt;li&gt;a build is done&lt;/li&gt;&#xA;&lt;li&gt;the test suite is run&lt;/li&gt;&#xA;&lt;li&gt;the build and results show up in your stdout&lt;/li&gt;&#xA;&lt;li&gt;the new clone (and your pushed csets) are deleted&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;It&#39;s on a reasonably fast, unloaded box so the test suite runs in about 3 mins 30 seconds.  Thanks to ThomasAH for providing the crew pubkeys.  If you&#39;re not in crew and want to use the service please contact me and convince me you&#39;re not going to write a test that does a &amp;quot;rm -rf ~&amp;quot;, because that would completely work.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Remote Repository Creation for Mercurial Over HTTP</title>
      <link>https://ry4an.org/unblog/post/2009-09-17/</link>
      <pubDate>Thu, 17 Sep 2009 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2009-09-17/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I park in the #mercurial IRC channel a lot to answer the easy questions, and on that comes up often is, &amp;quot;How can I create a remote repository over HTTP?&amp;quot;. The answer is: &amp;quot;You can&#39;t.&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;Mercurial allows you to create a repository remotely using ssh with a command line like this:&lt;/p&gt;&#xA;&lt;pre class=&#34;literal-block&#34;&gt;&#xA;hg clone localrepo ssh://host//abs/path&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;but there&#39;s no way to do that over HTTP using either hg serve or hgweb behind Apache.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Grand Central Direct Dialer</title>
      <link>https://ry4an.org/unblog/post/2008-09-01/</link>
      <pubDate>Mon, 01 Sep 2008 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2008-09-01/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m a huge fan of &lt;a class=&#34;reference external&#34; href=&#34;http://grandcentral.com&#34;&gt;Grand Central&lt;/a&gt;&#39;s call screening features.  It&#39;s irksome, however, that they make it hard to dial outward -- sending your GC number instead of your cell number as the caller id.  To do so you need to first add the target number to your address book, and often I&#39;m calling someone I don&#39;t intend to call again often.&lt;/p&gt;&#xA;&lt;p&gt;I started scripting up a way around that when I saw someone named Stewart &lt;a class=&#34;reference external&#34; href=&#34;http://groups.google.com/group/grandcentral-help-poweruser/msg/cd920e04d8a70de0&#34;&gt;already had&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Sasha Megan Bauer Brase</title>
      <link>https://ry4an.org/unblog/post/2008-08-10/</link>
      <pubDate>Sun, 10 Aug 2008 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2008-08-10/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;On July 29th, Kate gave birth to Sasha Megan Bauer Brase.  Details and photos are on &lt;a class=&#34;reference external&#34; href=&#34;http://sasha.brase.com&#34;&gt;her site&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;hr class=&#34;docutils&#34; /&gt;&#xA;&lt;p&gt;Is the Jerry Farber piece, an anthem of my youth, not copyrighted?  Do you have permission?  Where can I reach Farber? -- Some Random Person&lt;/p&gt;&#xA;&lt;hr class=&#34;docutils&#34; /&gt;&#xA;&lt;p&gt;Presumably you&#39;re referring to &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/readings/short/student/&#34;&gt;this&lt;/a&gt;, though I&#39;ve no idea why you attached the comment to my daughter&#39;s birth announcement.  I typed this from a blurry photocopy twenty years ago.  If the copyright holder objects, I&#39;ll happily remove it.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Home Carbonator</title>
      <link>https://ry4an.org/unblog/post/2008-05-31/</link>
      <pubDate>Sat, 31 May 2008 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2008-05-31/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Last year I &lt;a class=&#34;reference external&#34; href=&#34;http://www.kk.org/cooltools/archives/001818.php&#34;&gt;read about home carbonation&lt;/a&gt;, and looking at the amount of club soda Kate and I buy it made sense.  The only unknown was where to put the ugly tank that would be out of sight yet still convenient to use.&lt;/p&gt;&#xA;&lt;p&gt;Months later coworkers and I were at the &lt;a class=&#34;reference external&#34; href=&#34;http://www.redstagsupperclub.com&#34;&gt;Red Stag&lt;/a&gt;, which carbonates their own sparkling water, and talked about doing the same at the office. I still didn&#39;t act until a friend got a &lt;a class=&#34;reference external&#34; href=&#34;http://www.sodaclub.com&#34;&gt;soda club&lt;/a&gt; machine as a gift.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Misc. Projects Including A Baby</title>
      <link>https://ry4an.org/unblog/post/2008-01-18/</link>
      <pubDate>Fri, 18 Jan 2008 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2008-01-18/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;To look at this long neglected unblog one would thing I&#39;ve stopped doing things, but quite the contrary there&#39;s been so very much doing of things that there&#39;s been no time for posting.  In no particular order we have:&lt;/p&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;&lt;em&gt;Installed a home security system&lt;/em&gt; -- No particular need, but I&#39;ve always enjoyed alarms and now our home has an RSS feed&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Installed an electric garage door opener&lt;/em&gt; -- No more brushing off the car in the morning after a snow.  Granted it&#39;s still powered by an extension cord running from the basement, but hey so goes it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Installed nifty&lt;/em&gt; &lt;a class=&#34;reference external&#34; href=&#34;http://ibuttonlock.com&#34;&gt;iButton electronic locks&lt;/a&gt; -- Now the same key opens every door to which I&#39;ve got access including the Swarmcast offices.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Un-finshed the basement&lt;/em&gt; -- wool insulation and moisture: a winning combination.  The project included a fun trip to the city trash transfer station.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Remodeled the kitchen&lt;/em&gt; -- I did almost no actual labor on this excepting some tile installation with Kate, the adding of rolley shelves in the pantry, and having to eat out for four straight months.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Add to those minor projects some time spent on general upkeep of an 85 year old home, scouts and a decidedly non-zero number of hours spent at work, and it becomes clear that what Kate and I need is a baby.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Autobahn Accelerator for iTunes</title>
      <link>https://ry4an.org/unblog/post/2007-06-19/</link>
      <pubDate>Tue, 19 Jun 2007 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2007-06-19/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My company, &lt;a class=&#34;reference external&#34; href=&#34;http://swarmcast.com&#34;&gt;Swarmcast&lt;/a&gt;, announced one of our first public releases today.  Previously we&#39;ve been primary selling to content providers, but now we&#39;re putting out a user facing free release.  If you download our &lt;a class=&#34;reference external&#34; href=&#34;http://getautobahn.com&#34;&gt;Autobahn Accelerator for iTunes&lt;/a&gt; you&#39;ll find your purchases from the iTunes music store come down three to ten times faster than they did before.  We&#39;ll be adding support for lots of other sites (you tube, etc.) in upcoming weeks.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Customer Service Call Log</title>
      <link>https://ry4an.org/unblog/post/2007-02-22/</link>
      <pubDate>Thu, 22 Feb 2007 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2007-02-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Between telecom troubles, warranty repairs, botched on line orders, and marriage related changes in insurance, mortgage, and bank accounts I&#39;ve spent a lot of time on the phone with customer service representatives lately.  Few issues get resolved in a single call and even fewer without a transfer to another office.&lt;/p&gt;&#xA;&lt;p&gt;I put together a sheet to keep track of who I spoke to, when, how to get back to them, and what they promised me.  Now I grab one whenever I&#39;m about to dial a 1-800 number to talk to the almost-friendly, nearly-helpful people on the other end.  Besides the convenience of being able to say &amp;quot;On January 21st at 3pm Janice, CSR number JA5692, told me she&#39;d ship the replacement FedEx overnight,&amp;quot; representatives seem on their best behavior when you start out every interaction asking for their name and customer representative number.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>View Any Simon Delivers Order</title>
      <link>https://ry4an.org/unblog/post/2007-02-14/</link>
      <pubDate>Wed, 14 Feb 2007 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2007-02-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I forwarded a Simon Delivers order receipt email on to a friend, and he was able to view the order without being logged in as me.  Turns out that if you have a Simon Delivers account at all they let you view any order.  I created a &lt;a class=&#34;reference external&#34; href=&#34;http:/simon/view&#34;&gt;quick web form&lt;/a&gt; to let anyone view any order using my account.  Here&#39;s my favorite order so far:&lt;/p&gt;&#xA;&lt;table border=&#34;1&#34; class=&#34;docutils&#34;&gt;&#xA;&lt;colgroup&gt;&#xA;&lt;col width=&#34;4%&#34; /&gt;&#xA;&lt;col width=&#34;86%&#34; /&gt;&#xA;&lt;col width=&#34;10%&#34; /&gt;&#xA;&lt;/colgroup&gt;&#xA;&lt;tbody valign=&#34;top&#34;&gt;&#xA;&lt;tr&gt;&lt;td&gt;Qty&lt;/td&gt;&#xA;&lt;td&gt;Item Name&lt;/td&gt;&#xA;&lt;td&gt;Each&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&#xA;&lt;td&gt;Cetaphil Moisturizing Lotion&lt;/td&gt;&#xA;&lt;td&gt;$10.99&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Coke Diet - 24/12 oz. Cans&lt;/td&gt;&#xA;&lt;td&gt;$7.49&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Dr Pepper Diet - 24/12 oz. Cans&lt;/td&gt;&#xA;&lt;td&gt;$7.49&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Hershey&#39;s Milk Chocolate Candy Bars - 6 ct.&lt;/td&gt;&#xA;&lt;td&gt;$3.49&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Life Savers Wintergreen Flavored - Individually Wrapped - Bag&lt;/td&gt;&#xA;&lt;td&gt;$1.89&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&#xA;&lt;td&gt;Nabisco Nutter Butter Peanut Butter Sandwich Cookies&lt;/td&gt;&#xA;&lt;td&gt;$3.79&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&#xA;&lt;td&gt;Nestea Cool Lemon Iced Tea Fridge Pack - 12/12 oz. Cans&lt;/td&gt;&#xA;&lt;td&gt;$4.19&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Pepsi - 24/12 oz. Cans&lt;/td&gt;&#xA;&lt;td&gt;$7.49&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Pepsi 8/12 oz. Bottles&lt;/td&gt;&#xA;&lt;td&gt;$3.69&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&#xA;&lt;td&gt;Seven-Up - 12/12 oz. Cans&lt;/td&gt;&#xA;&lt;td&gt;$4.19&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&#xA;&lt;td&gt;Seven-Up Diet - 12/12 oz. Cans&lt;/td&gt;&#xA;&lt;td&gt;$4.19&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;I&#39;m sure fixing this problem is simple as adding whatever the .asp equivalent of this is:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Alarm System</title>
      <link>https://ry4an.org/unblog/post/2007-02-11/</link>
      <pubDate>Sun, 11 Feb 2007 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2007-02-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My favorite book in the Wren Hollow Elementary school library was &lt;em&gt;The Gadget Book&lt;/em&gt; by Harvey Weiss.  I must have checked it out a hundred times during the second and third grade and tried to build most of the half-practical projects it detailed.  The best among them was the burglar alarm.  It used wooden blocks, a door hinge, and a strip of metal to make a simple normally-open contact switch.  It was the first electrical work I ever did and almost certainly shaped my interests and career path.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Trash Can Snorkel</title>
      <link>https://ry4an.org/unblog/post/2007-01-22/</link>
      <pubDate>Mon, 22 Jan 2007 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2007-01-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This one&#39;s dumb.  We&#39;ve got the same trash can that everyone who shops at Target has.  The inner removable pail is handy for keeping spills from pouring out the foot pedal hole, but its air-tight nature creates quite the vacuum when you&#39;re trying to pull the bag out.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://www.target.com/gp/detail.html/sr=1-11/qid=1169524414/ref=sr_1_11/602-0868447-3796659?ie=UTF8&amp;amp;asin=B000JT7N7A&#34;&gt;|http://www.target.com/gp/detail.html/sr=1-11/qid=1169524414/ref=sr_1_11/602-0868447-3796659?ie=UTF8&amp;amp;asin=B000JT7N7A|&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After ripping the handles off yet another Glad bag trying to get it out of the pail I went to get a drill to poke an air hole in the bottom -- leak proof be damned.  Next to the drill I saw a piece of 3/4&amp;quot; plastic tubing, which I ran from the top of the inner pail to the bottom.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>The Death of the Har Mar Theater</title>
      <link>https://ry4an.org/unblog/post/2006-12-07/</link>
      <pubDate>Thu, 07 Dec 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-12-07/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Years ago I had a bad movie viewing experience I can&#39;t actually recall at Har Mar Theater in Roseville.  As an experiment in how rumors spread and as mild revenge I decided that every time someone mentioned the Har Mar Theater I was going to let them know that once a rat ran across my foot while I was watching a movie there.  It&#39;s not true, but I figured it was a story that people would pass on to friends.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Whole House Humidifier</title>
      <link>https://ry4an.org/unblog/post/2006-11-28/</link>
      <pubDate>Tue, 28 Nov 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-11-28/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This weekend I put in a Honeywell 360A whole house humidifier.  The instructions said it should take an hour, and it only took me four. Nothing went wrong, which what you hope for when a project means cutting holes in your duct work, tapping into your water, and some wiring.  Now when we wake up our throats don&#39;t hurt.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;IMG_1153.jpg&#34; src=&#34;https://ry4an.org/unblog/attachments/2006-11-28-IMG_1153.jpg&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;IMG_1154.jpg&#34; src=&#34;https://ry4an.org/unblog/attachments/2006-11-28-IMG_1154.jpg&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; If you don&#39;t tighten down the compression fittings on the water supply line it will let go and you&#39;ll drain water into the floor drain all night.  d&#39;oh&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>The Wedding Planned With Bugzilla</title>
      <link>https://ry4an.org/unblog/post/2006-10-27/</link>
      <pubDate>Fri, 27 Oct 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-10-27/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;If things have been a little sparse around here over the last year or so it&#39;s because outside of work the bulk of my organizational and creative energies have been going into the planning of our wedding.&lt;/p&gt;&#xA;&lt;p&gt;The wedding was this weekend, and everything was spectacular.  Photos and details can be found on the &lt;a class=&#34;reference external&#34; href=&#34;http://kateandry4an.org&#34;&gt;wedding website&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve come away from the wedding planning experience with this advice for guys: Don&#39;t bother helping; no one but your finance/wife will believe you&#39;ve done anything, and she&#39;s already in love with you.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Motion Lights and Silliness</title>
      <link>https://ry4an.org/unblog/post/2006-09-04/</link>
      <pubDate>Mon, 04 Sep 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-09-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;We&#39;ve got an old lighting fixture for our front porch, which we didn&#39;t want to replace with an ugly motion light.  I tried putting a socket adapter in-line with the bulb, but it wouldn&#39;t fit in the globe.&lt;/p&gt;&#xA;&lt;p&gt;More time spent staring at the lighting offerings at Home Depot turned up a workable, if convoluted, solution.  An external motion detector sends a wireless signal to a replacement indoor light switch, which then turn on the external light.  To make what should have been a ten minute project even sillier, I should be able to control the remote switch from the &lt;a class=&#34;reference external&#34; href=&#34;http://www.acura.com/index.aspx?initPath=RL_Learn_FeaturesOptions_SafetySecurity_Security_HomeLink&#34;&gt;home link&lt;/a&gt; button in my car.  Heh.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Home Repair and Misc.</title>
      <link>https://ry4an.org/unblog/post/2006-08-05/</link>
      <pubDate>Sat, 05 Aug 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-08-05/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When I don&#39;t post here in a while it either means I&#39;m not building anything new or that I&#39;m too busy to write about what I am doing.  This time it&#39;s the later.  Not that any of it&#39;s been exciting, but almost all of it involved using a saw, which totally counts.&lt;/p&gt;&#xA;&lt;p&gt;Gwin, our eldest cat, has always kicked toys into the basement sump for the joy of watching humans pick them out later.  Milo, on the other hand, likes running into the muddy sump and then running up stairs.  To keep the cats and their toys out I built a little wooden frame to fit and covered it with chicken wire.  It&#39;s ugly but functional.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ivy and Stucco</title>
      <link>https://ry4an.org/unblog/post/2006-06-04/</link>
      <pubDate>Sun, 04 Jun 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-06-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This weekend was full of discoveries involving ivy and stucco and removing the former from the later.  Summarizing them we have:&lt;/p&gt;&#xA;&lt;ol class=&#34;arabic simple&#34;&gt;&#xA;&lt;li&gt;&lt;strong&gt;Don&#39;t&lt;/strong&gt;.  Keep them away from one another.  If you have a stucco home and your neighbor plants ivy secretly poison it.&lt;/li&gt;&#xA;&lt;li&gt;If there is ivy on your stucco, just leave it there.  Removing it is not worth the pain.&lt;/li&gt;&#xA;&lt;li&gt;If you do remove the ivy, remove it completely.  If you pull it off and plan on getting the residual debris later, you&#39;re going to find it&#39;s dried to a state where it can no longer be pulled off in strands like it can be when green.&lt;/li&gt;&#xA;&lt;li&gt;If you&#39;ve let residual ivy dry to the point where it&#39;s brittle, plan on a day full of power washers, long handled brushes, and ladders.  Try to drink a lot.  Expect to repaint.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;!-- date: 1149397200 --&gt;&#xA;&lt;!-- tags: home,funny --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Caching In My Moving Karma</title>
      <link>https://ry4an.org/unblog/post/2006-05-16/</link>
      <pubDate>Tue, 16 May 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-05-16/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;There&#39;s a purchase agreement in place for the condo, and it&#39;s time to organize the moving extravaganza.  Saturday, June 17th at 11am moving helpers generous with their time will find everything pre-boxed, wrapped, stacked, and ready.  Half the stuff will be going to Salvation Army down the street and half will be moving from 580 N 2nd St. #120 to 330 E 50th St.  I&#39;m renting a large truck (and possibly selling off a good fraction of the furniture in advance), so with luck we&#39;ll be on to the beer and lots of food portion of the afternoon after just one short trip.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Meager Home Improvements</title>
      <link>https://ry4an.org/unblog/post/2006-04-15/</link>
      <pubDate>Sat, 15 Apr 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-04-15/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;After moving into the house I started a series of small home improvement tasks.  Some of them have genuine safety reasons but many happened only because changing things demonstrates residence.  Here&#39;s an incomplete list of things I&#39;ve done:&lt;/p&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;added a ceiling fan to the bedroom&lt;/li&gt;&#xA;&lt;li&gt;rewired the doorbell with modern wire so it doesn&#39;t ring everytime you walk past the dining room heat register&lt;/li&gt;&#xA;&lt;li&gt;added shelving, a phone jack and power outlets to create a &lt;a class=&#34;reference external&#34; href=&#34;http://ry4an.org/pictures/web/datacenter&#34;&gt;server corner&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;added appliance-grade outlets behind the stove and fridge (rather than the ungrounded lamp-grade extension cords running through holes in the floor they previously had)&lt;/li&gt;&#xA;&lt;li&gt;added a &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/pictures/web/motionlight&#34;&gt;motion light&lt;/a&gt; to the break-in-ariffic back yard&lt;/li&gt;&#xA;&lt;li&gt;cleaned out the gutters (I &lt;em&gt;knew&lt;/em&gt; there&#39;s a reason I got that condo)&lt;/li&gt;&#xA;&lt;li&gt;replaced the rotting wiring for the basement lighting&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://ry4an.org/pictures/web/datacenter&#34;&gt;|https://ry4an.org/pictures/web/datacenter|&lt;/a&gt; &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/pictures/web/motionlight&#34;&gt;|https://ry4an.org/pictures/web/motionlight|&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Display Google Calendars with PHP iCalendar</title>
      <link>https://ry4an.org/unblog/post/2006-04-14/</link>
      <pubDate>Fri, 14 Apr 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-04-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Google has a &lt;a class=&#34;reference external&#34; href=&#34;http://google.com/calendar&#34;&gt;new calendar service&lt;/a&gt;, and it&#39;s great.  I really try to avoid hosted data solutions, but this one&#39;s just too good to pass up.  My one gripe is that there&#39;s no easy way for non google calendar users to view the calendars.  They&#39;re available live as both ical and rss/xml files, but the average home web user doesn&#39;t know what to do with either of those.&lt;/p&gt;&#xA;&lt;p&gt;There are plenty of services out there that will display an ical file as a web page, but none of them I tested rendered the google ical output well, and all of them were packed with ads.  Previously, I&#39;d used software called &lt;a class=&#34;reference external&#34; href=&#34;http://sf.net/projects/phpicalendar&#34;&gt;phpicalendar&lt;/a&gt; to display ical files created by my &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2003-10-09&#34;&gt;old calendaring solution&lt;/a&gt; on the web, so I started there.  It didn&#39;t parse the google output well either.  However, with a little tweaking (see the patch in the zip file below) and some Apache trickery (see the README in the zip file) I can now get &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/calendar/&#34;&gt;good phpicalendar output from google&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Condo on the Market</title>
      <link>https://ry4an.org/unblog/post/2006-03-21/</link>
      <pubDate>Tue, 21 Mar 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-03-21/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;After a lot of cleaning, painting, and decorating my condo is finally on the market.  Thanks to Kate and Natz for all their help.  We&#39;ve priced it very aggressively in hopes of not having this process drag on, so if we&#39;re lucky we&#39;ll be bidding a fond farewell to &lt;a class=&#34;reference external&#34; href=&#34;http://www.edinarealty.com/Consumer/Listing/ListingDetail.aspx?Listing=10788390&#34;&gt;MLS 3165642&lt;/a&gt; soon.&lt;/p&gt;&#xA;&lt;p&gt;If you ever came by and admired the place, tell your house hunting friends.&lt;/p&gt;&#xA;&lt;!-- date: 1142920800 --&gt;&#xA;&lt;!-- tags: home --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Yet More Staging</title>
      <link>https://ry4an.org/unblog/post/2006-02-09/</link>
      <pubDate>Thu, 09 Feb 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-02-09/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Last week Kate, Natz, and I painted a few more rooms, added handles to the cabinets, added some bookshelves, and did a lot of minor repairs around the condo in preparation for selling it.  I also cut up the throw pillows and sewed some arm covers for the couch.  They look as cheesy as arm covers always do, but they hide the cat damage.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;front-view.jpg&#34; src=&#34;https://ry4an.org/unblog/attachments/2006-02-09-front-view.jpg&#34; /&gt; &lt;img alt=&#34;top-view.jpg&#34; src=&#34;https://ry4an.org/unblog/attachments/2006-02-09-top-view.jpg&#34; /&gt;&lt;/p&gt;&#xA;&lt;!-- date: 1139464800 --&gt;&#xA;&lt;!-- tags: home --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>A Very IKEA Sunday</title>
      <link>https://ry4an.org/unblog/post/2006-01-29/</link>
      <pubDate>Sun, 29 Jan 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-01-29/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m finally tackling all the little projects I always meant to do around the house in preparation for selling it.  Today I installed some simple &lt;a class=&#34;reference external&#34; href=&#34;http://www.ikea.com/webapp/wcs/stores/servlet/ProductDisplay?topcategoryId=15594&amp;amp;catalogId=10103&amp;amp;storeId=12&amp;amp;productId=49065&amp;amp;langId=-1&amp;amp;parentCats=15594*15828*15847&#34;&gt;roller shades&lt;/a&gt; downstairs and built a fairly complex multi-panel window covering system thing in the bedroom using the ridiculously modular &lt;a class=&#34;reference external&#34; href=&#34;http://www.ikea.com/webapp/wcs/stores/servlet/IkeamsSearch?storeId=12&amp;amp;langId=-1&amp;amp;catalogId=null&amp;amp;searchType=product&amp;amp;pageNumber=-1&amp;amp;orderBy=score&amp;amp;query=kvadrant&amp;amp;category=%23%7EProducts&#34;&gt;KVADRANT stuff&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;ve never had serious problems with IKEA stuff before, and these weren&#39;t any worse than usual, but one really is constantly beset by low-level disappointment at the quality of the pieces, their fit and finish, and the meager guidance the instructions offer when working with IKEA stuff.  Still it&#39;s cheap and looks nice, which is exactly what one wants when staging for a sale.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Wiki History Overlay</title>
      <link>https://ry4an.org/unblog/post/2006-01-26/</link>
      <pubDate>Thu, 26 Jan 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-01-26/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Wikis, like ry4an.org, are websites meant to be easily edited.  One simply clicks the edit button, changes the content, and &lt;em&gt;poof&lt;/em&gt; the page is changed.  One of the most famous wikis is &lt;a class=&#34;reference external&#34; href=&#34;http://wikipedia.org/&#34;&gt;Wikipedia&lt;/a&gt;, the free encyclopedia.  It&#39;s a wonderful resource and chocked full of information.  Unfortunately, due to its anyone-can-change-it-at-any-time freedom, some folks are hesitant to consider it a reliable reference.&lt;/p&gt;&#xA;&lt;p&gt;Wikipedia&#39;s documented accuracy is largely due to careful edit policing by interested persons.  I could go change the date of Abraham Lincoln&#39;s birthday right now, but someone monitoring the changes would detect the &amp;quot;vandalism&amp;quot; and revert the change in minutes.  Sadly, anyone viewing the &lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Abraham_Lincoln&#34;&gt;Abraham_Lincoln&lt;/a&gt; page between my edit and the repair would see the wrong birthday.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Fixing the Roomba Circle Dance</title>
      <link>https://ry4an.org/unblog/post/2006-01-25/</link>
      <pubDate>Wed, 25 Jan 2006 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2006-01-25/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My &lt;a class=&#34;reference external&#34; href=&#34;http://www.irobot.com&#34;&gt;Roomba&lt;/a&gt; had been on the fritz lately.  When I powered it on it went forward a few inches and then started backing up in a tight circle.  I figured it was a dirty sensor, but I cleaned everything I could see and had no luck.&lt;/p&gt;&#xA;&lt;p&gt;My coworker Brandon pointed me to the &lt;a class=&#34;reference external&#34; href=&#34;http://mysteryroad.blogs.com/photos/circledance800x600/xintroroomba_3549.html&#34;&gt;Circle Dance&lt;/a&gt; website, which explains how a dirty internal sensor can cause just that problem.  I&#39;ve got an older Roomba, but the wheel assembly seemed the same.  The site has great instructions and photos showing how one can fix the problem.  They do, however, go through &lt;a class=&#34;reference external&#34; href=&#34;http://mysteryroad.blogs.com/photos/circledance800x600/2hubcover1_3580.html&#34;&gt;incredible contortions&lt;/a&gt;, including removing 10 screws and a hard to replace panel, just to remove a single screw.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>KateAndRy4an.org</title>
      <link>https://ry4an.org/unblog/post/2005-12-26/</link>
      <pubDate>Mon, 26 Dec 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-12-26/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Kate Bauer and I put together the vanity/informational &lt;a class=&#34;reference external&#34; href=&#34;http://kateandry4an.org&#34;&gt;website for our wedding&lt;/a&gt;.  Those joining us will find information on travel and hotels. Note the snazzy embedded google map on the bottom of the hotels page.  Thanks go to Kate for writing most of the content and putting up with my insistance on hand-edited HTML.&lt;/p&gt;&#xA;&lt;p&gt;The site also links to our &lt;a class=&#34;reference external&#34; href=&#34;http://kateandry4an.org/gallery/engagement/&#34;&gt;engagement photos&lt;/a&gt;, where you can see how very lucky I am.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Improving Nick Tracking using String Similarity</title>
      <link>https://ry4an.org/unblog/post/2005-12-21/</link>
      <pubDate>Wed, 21 Dec 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-12-21/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Years back I &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2003-10-03/&#34;&gt;wrote an IRC nick tracking script&lt;/a&gt;.  It&#39;s served me well since then, but it has one major annoyance.  When people changed their name slightly it would remember that name change, even though the old/new mapping didn&#39;t contain any real identity change information.&lt;/p&gt;&#xA;&lt;p&gt;For example, when &lt;tt class=&#34;docutils literal&#34;&gt;Gabe_&lt;/tt&gt; became &lt;tt class=&#34;docutils literal&#34;&gt;Gabe&lt;/tt&gt; it would display every message from him as &lt;tt class=&#34;docutils literal&#34;&gt;&amp;lt;Gabe_(Gabe)&amp;gt;&lt;/tt&gt;.  That doesn&#39;t tell me anything interesting about who &lt;tt class=&#34;docutils literal&#34;&gt;Gabe&lt;/tt&gt; is.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Linux on the Dell X1</title>
      <link>https://ry4an.org/unblog/post/2005-12-13/</link>
      <pubDate>Tue, 13 Dec 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-12-13/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Yesterday I got the warranty replacement machine for my (company&#39;s) Dell X300 laptop.  Dell mailed me an &lt;a class=&#34;reference external&#34; href=&#34;http://www1.us.dell.com/content/products/productdetails.aspx/latit_x1&#34;&gt;X1&lt;/a&gt;, which seems a nice enough machine.  It meets my firm criteria: under 3 lbs and thinner than an inch.  If Apple would hit those numbers I&#39;d be there in a second.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, it looks like getting Linux on to this thing is going to be a pain. &lt;a class=&#34;reference external&#34; href=&#34;http://www.emperorlinux.com/mfgr/dell/koala/&#34;&gt;Emperor Linux&lt;/a&gt; will sell an X1 with Linux pre-installed, but they want $450 to take the X1 I already &amp;quot;own&amp;quot; and put Linux on to it.  If they&#39;re not able to simply mirror a debugged installation over, that says a lot about their volume.  I value my time pretty highly, but $450 for a software install seems extreme.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Email Sub-Address Spam Frequency</title>
      <link>https://ry4an.org/unblog/post/2005-12-08/</link>
      <pubDate>Thu, 08 Dec 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-12-08/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My email server is configured such that email to &lt;a class=&#34;reference external&#34; href=&#34;mailto:ry4an-anything&amp;#64;ry4an.org&#34;&gt;ry4an-anything&amp;#64;ry4an.org&lt;/a&gt; gets correctly delivered to me.  The dash and whatever is after it are retained but ignored completely.&lt;/p&gt;&#xA;&lt;p&gt;When I give an email address to a company, say Northwest Airlines,I&#39;ll give them an email address that shows to whom it was given, say &lt;a class=&#34;reference external&#34; href=&#34;mailto:ry4an``-nwa``&amp;#64;ry4an.org&#34;&gt;ry4an``-nwa``&amp;#64;ry4an.org&lt;/a&gt;.  By doing this I&#39;m able to check which companies are giving/selling/leaking my email address to spammers. Some of the leaks are surprising -- just a few weeks after giving out ry4an-philmont for the first time, giving it to the Boy Scouts, I started getting porn spam on it.  When I called to let them know about the leak they assured me it was impossible.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Pocket Pair Palsy</title>
      <link>https://ry4an.org/unblog/post/2005-11-09/</link>
      <pubDate>Wed, 09 Nov 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-11-09/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;A little googling shows I&#39;m the first person to (publically) coin the phrase &lt;em&gt;pocket pair palsy&lt;/em&gt; to describe the adrenaline powered tremors poker players get when they&#39;ve got a good hand.  Dibs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;hr class=&#34;docutils&#34; /&gt;&#xA;&lt;p&gt;I would argue that palsy is not the best condition to compare this to.  While involuntary movement is occasionally the result of palsy, paralysis is more common and likely.  Some definitions of palsy do not even include tremor-like movements.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Novelty Keg Scale</title>
      <link>https://ry4an.org/unblog/post/2005-11-08/</link>
      <pubDate>Tue, 08 Nov 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-11-08/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;At the haloween party we got a keg of New Castle, but most folks went for the mixed drinks or the bottled beer.  We kept trying to steer folks toward the keg, but it&#39;s hard to get people behind a project that&#39;s not providing good status reports.&lt;/p&gt;&#xA;&lt;p&gt;That got me thinking that one could make a simple scale showing a gas-tank style empty to full scale for a keg of liquid.  &lt;a class=&#34;reference external&#34; href=&#34;http://www.kegworks.com/shoppingcart/catalog/DraftBeerInventoryControlKegScale19874.html&#34;&gt;Googling for keg scale&lt;/a&gt; turned up some products for bar owners, but nothing consumer focused:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Using Mutt to Automate Mailman Message Rejections</title>
      <link>https://ry4an.org/unblog/post/2005-11-06/</link>
      <pubDate>Sun, 06 Nov 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-11-06/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Since &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2003-06-22&#34;&gt;this post&lt;/a&gt; I&#39;ve upgraded my &lt;a class=&#34;reference external&#34; href=&#34;http://www.list.org/&#34;&gt;mailman&lt;/a&gt; installation to a newer version, which allows me to automatically reject messages from non-subscribers without having to resort to external scripting.&lt;/p&gt;&#xA;&lt;p&gt;However, some of the mailing lists I run are subscribed to by a significant number of members who can&#39;t be counted on to post from the email address with which they subscribed, or indeed to even understand what that means.  For those lists a policy that automatically rejects messages from non-members is just too draconion.  Unfortunately, that means the few spam messages a day from non-members which make it past my filters but would normally be automatically rejected due to their non-member origins have be manually discarded so that I can approve the few non-member messages per month that really do belong on the list.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Halloween 2005</title>
      <link>https://ry4an.org/unblog/post/2005-11-03/</link>
      <pubDate>Thu, 03 Nov 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-11-03/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Last weekend Bridget, Joe, and I threw our annual Halloween party.  It was well attended and everyone seemed to have a good time.  It peaked around midnight with a good 50 people inside and out, which is about the same as last year.&lt;/p&gt;&#xA;&lt;p&gt;This year we did a little more with the decor including the building of a coffin cut-out and a few corpses.  The walls got covered with cheesy off the shelf decorations that drew more praise than anything else -- go figure.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>A Cheap and Easy Sidebar</title>
      <link>https://ry4an.org/unblog/post/2005-10-25/</link>
      <pubDate>Tue, 25 Oct 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-10-25/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I hacked the MonthCalendar macro for moin moin to include some javascript which includes a sidebar built from a RSS feed.  The javascript and back-end Rebol were written by p3k.org.  The RSS feed is produced from (a subset of) my links at del.icio.us.  All in all a quick, easy addition, requiring just a little Python twiddling.&lt;/p&gt;&#xA;&lt;p&gt;Wow, this post contains almost no nouns a normal person would recognize.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;hr class=&#34;docutils&#34; /&gt;&#xA;&lt;blockquote&gt;&#xA;Hrm, the side bar stopped working because the &lt;a class=&#34;reference external&#34; href=&#34;http://p3k.org&#34;&gt;http://p3k.org&lt;/a&gt; site hasn&#39;t been responding for at least 24 hours.  I wonder if/when it will come back.  If anyone notices it&#39;s returned let me know and I&#39;ll re-enable the side bar.&lt;/blockquote&gt;&#xA;&lt;p&gt;That sort of thing is &lt;em&gt;exactly&lt;/em&gt; why I don&#39;t like relying on external web services be they flickr, gmail, del.icio.us, or whatever.  I know in theory google and yahoo can keep those services running with 100% availability, and that they don&#39;t want the PR hit that elmininating them would cause, but still if you&#39;re not paying someone to store you&#39;re data you shouldn&#39;t expect it to still be there tomorrow.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Isle Royal GPS Data</title>
      <link>https://ry4an.org/unblog/post/2005-09-22/</link>
      <pubDate>Thu, 22 Sep 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-09-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Earlier this month some friends and I hiked across Isle Royale in lake Superior.  Joe kept his GPS running and produced good track points in an odd export format from his Mac software called &amp;quot;Topo&amp;quot;.  I created a quick &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/attachments/2005-09-22-convert.pl&#34;&gt;conversion script&lt;/a&gt; to produce this &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/attachments/2005-09-22-isle-royale.gpx.xml&#34;&gt;GPS format data&lt;/a&gt; which can be used with the &lt;a class=&#34;reference external&#34; href=&#34;http://gpsvisualizer.com&#34;&gt;GPS visualizer&lt;/a&gt; website to produce images like this:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;isle-royale.png&#34; src=&#34;https://ry4an.org/unblog/attachments/2005-09-22-isle-royale.png&#34; /&gt;&lt;/p&gt;&#xA;&lt;!-- date: 1127365200 --&gt;&#xA;&lt;!-- tags: perl,ideas-built,software --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Engagement Ring</title>
      <link>https://ry4an.org/unblog/post/2005-09-21/</link>
      <pubDate>Wed, 21 Sep 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-09-21/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Again, it probably doesn&#39;t exactly meet the &amp;quot;things I&#39;ve created&amp;quot; criteria for this website, but I just couldn&#39;t help but post this one.  A few months ago Kate Bauer and I put together this ring:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;IMG_0831.JPG&#34; src=&#34;https://ry4an.org/unblog/attachments/2005-09-21-IMG_0831.JPG&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;IMG_0836.JPG&#34; src=&#34;https://ry4an.org/unblog/attachments/2005-09-21-IMG_0836.JPG&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Today when it arrived she agreed to marry me, and I couldn&#39;t be happier.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;hr class=&#34;docutils&#34; /&gt;&#xA;&lt;p&gt;Hey Ry4an, you may or may not remember me, but my name is Brenden Johnson and was in IT at the U with you.  We had Serge Rudaz (and FOSSIL) among other classes together. I happened across your blog a little bit ago on GeoURL.org and had to congratulate you on your engagement.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Vodka Fruit Infusion</title>
      <link>https://ry4an.org/unblog/post/2005-08-22/</link>
      <pubDate>Mon, 22 Aug 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-08-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;A few months back Kate Bauer and I hosted a BBQ at her place.  I wanted to try putting together a fruit and vodka infusion of the sort I&#39;d previously seen at bars.&lt;/p&gt;&#xA;&lt;p&gt;Kate bought a bunch of fresh fruit and I picked up the vodka (&lt;a class=&#34;reference external&#34; href=&#34;http://www.svedka.com/&#34;&gt;Svedka&lt;/a&gt;, the best vodka for the dollar, and damn near the best at any price).  We used the same glass container from Pier One I purchased to house pickled eggs for my Moe the bartender Halloween costume a few years back.  The infusion came out great, but we learned a few things along the way:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Timed Home Phone Ringers</title>
      <link>https://ry4an.org/unblog/post/2005-08-02/</link>
      <pubDate>Tue, 02 Aug 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-08-02/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I really need to sleep in once a week, and I actually get to once a month.  When I do sleep in I want the ringers off on all the phones in the house, but that&#39;s three phones to go find and then to remember to un-silence in the &amp;quot;morning&amp;quot;.  This past weekend I figured out that by using the call-forwarding feature on my home phone line to route all calls to my cell phone I can keep all the extensions from ringing.  What&#39;s more by using the &lt;em&gt;timed profiles&lt;/em&gt; feature on my cell phone I can have it muted until a pre-set time (say, 2pm) at which time the ringer re-enables itself.  Finally I&#39;ve got a good way to sleep in uninterrupted without forgetting to turn the ringers back on for the next three days.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Shades of Coke Blind Taste Test</title>
      <link>https://ry4an.org/unblog/post/2005-07-12/</link>
      <pubDate>Tue, 12 Jul 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-07-12/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;On Sunday Kate Bauer and I ran and participated in a double blind random taste test of the various shades of Coca-Cola.  Into numbered glasses Kate poured the samples from bottles whose labels I&#39;d replaced with lettered labels.  The samples we included were:&lt;/p&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;Coke&lt;/li&gt;&#xA;&lt;li&gt;Diet Coke&lt;/li&gt;&#xA;&lt;li&gt;Diet Coke with Splenda&lt;/li&gt;&#xA;&lt;li&gt;Coke C2 (already hard to find!)&lt;/li&gt;&#xA;&lt;li&gt;Coke Zero&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Kate was 3 for 5 with only Coke and C2 transposed.  I got only one of them right (everyone knows the gasoline flavor of Diet Coke).  From this we can conclude that either Kate&#39;s got a much better palate than I do or that she drinks a lot of Coke when I&#39;m not looking.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>MTN Televised Scrabble Archive</title>
      <link>https://ry4an.org/unblog/post/2005-06-24/</link>
      <pubDate>Fri, 24 Jun 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-06-24/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve been hooked on &lt;a class=&#34;reference external&#34; href=&#34;http://mtn.org/&#34;&gt;MTN&lt;/a&gt;&#39;s televised scrabble since Kate Bauer and I stumbled across it a few weeks back.  The only on-line mention I can find of it is an old &lt;a class=&#34;reference external&#34; href=&#34;http://faculty.normandale.edu/~lions_roar/April%2029/scrabble.html&#34;&gt;review&lt;/a&gt; in a student paper.&lt;/p&gt;&#xA;&lt;p&gt;I&#39;m thinking of getting a group of folks together to play as a team semi-regularly, but while that&#39;s getting setup I decided to start archiving the games, because that&#39;s the sort of thing I do, I guess.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Netflix Self Annotations</title>
      <link>https://ry4an.org/unblog/post/2005-06-17/</link>
      <pubDate>Fri, 17 Jun 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-06-17/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m a happy &lt;a class=&#34;reference external&#34; href=&#34;http://www.netflix.com/&#34;&gt;Netflix&lt;/a&gt; user.  Before I used Netflix I used to maintain a list of movies I wanted to see.  Now I just use my Netflix queue for the same purpose.  The only problem with my new system is by the time a recommended movie goes from the back of the queue to the front, about a year, I&#39;ve long since forgotten who recommended it.&lt;/p&gt;&#xA;&lt;p&gt;If Netflix offered a way for me to put a little note next to my own queue entries, I&#39;d better be able to track who recommended movies or just why they made it on to my queue in the first place.  Netflix does offer a feature they call their &lt;a class=&#34;reference external&#34; href=&#34;http://www.netflix.com/FAQ?p_faqid=514&#34;&gt;two cents&lt;/a&gt; system wherein you can write reviews of movies, which other members on your friends list can view. That&#39;s not really what I&#39;m looking for though.  I just want some space I can make notes to myself -- not for others.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Poker Timer DVD</title>
      <link>https://ry4an.org/unblog/post/2005-06-04/</link>
      <pubDate>Sat, 04 Jun 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-06-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;There&#39;s a ton of &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2004-01-25&#34;&gt;poker time software&lt;/a&gt; out there and even some nifty looking &lt;a class=&#34;reference external&#34; href=&#34;http://www.thepokergenie.com&#34;&gt;dedicated hardware&lt;/a&gt;.  At the games I attend we&#39;ll usually use a computer for the timing, but often there isn&#39;t one in the room and no one wants to bring over a laptop. However, there is almost always a TV with DVD player in whatever room gets temporarily re-purposed as the game room.&lt;/p&gt;&#xA;&lt;p&gt;That got me thinking that a DVD that could serve as a poker timer would work in all the rooms in which we play poker and would offer these other benefits:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>May Wrap-Up</title>
      <link>https://ry4an.org/unblog/post/2005-05-31/</link>
      <pubDate>Tue, 31 May 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-05-31/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The policy here at the UnBlog is that I only write up things I&#39;ve created -- not just things I&#39;ve seen.  Last month, however, most all my creative output went into work, with very little time and energy left for side projects.  I&#39;ve got a few nearing completion, but nothing worth writing about yet.&lt;/p&gt;&#xA;&lt;p&gt;I did manage to get a few small projects done -- some of which involved a little ingenuity:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Campfire Frozen Pizza</title>
      <link>https://ry4an.org/unblog/post/2005-05-11/</link>
      <pubDate>Wed, 11 May 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-05-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Last weekend I was camping and the person buying the food bought frozen pizzas.  I couldn&#39;t think of any good way to cook them until I saw we had some aluminum foil.  We defrosted the pizzas and cut them into slices.  Slices were places &lt;em&gt;face-to-face&lt;/em&gt;, wrapped in two layers of tin foil, and then tossed into the coals of our fire.  After ten minutes or so they were fished out, and they&#39;d turned into perfectly palatable pizza-pocket-alikes.  It&#39;s not good camping food, but its better than raw frozen pizza.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Guidelines For Better Directions</title>
      <link>https://ry4an.org/unblog/post/2005-05-04/</link>
      <pubDate>Wed, 04 May 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-05-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When getting or giving directions I always prefer a map to written directions.  Maps are great because they don&#39;t become useless if you make a wrong turn.  With a good map you can always find where on it you are and can always build a new route to your destination.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, one can&#39;t always produce a map on the spot -- especially a good map.  In those cases you have to fall back on written directions.  I&#39;ve given and received plenty of directions, some good, but mostly bad.  I&#39;m thinking a list of guidelines to use when vetting directions could help.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>CVS Commit Blocking</title>
      <link>https://ry4an.org/unblog/post/2005-04-11/</link>
      <pubDate>Mon, 11 Apr 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-04-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When editing source files checked out from CVS I sometimes want to prevent them from going back in to source control without further edits. Until now I&#39;ve just used  // FIXME  comments and have tried to remember to grep for FIXMEs before committing the files back.&lt;/p&gt;&#xA;&lt;p&gt;Problem is others use FIXME comments, and sometimes I forget to grep. So I&#39;ve tweaked our CVSROOT files to prevent custom FIXME tags from going in to source control.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Garble To GPX Track Conversion</title>
      <link>https://ry4an.org/unblog/post/2005-04-10/</link>
      <pubDate>Sun, 10 Apr 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-04-10/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;For years I&#39;ve been using  garble to pull track and way point data off of my Garmin eTrex GPS. Unfortunately it produces data in a completely non-standard format. In the past I&#39;ve written a little custom software to turn the garble data into maps.&lt;/p&gt;&#xA;&lt;p&gt;Now I&#39;m using  &lt;a class=&#34;reference external&#34; href=&#34;http://gpsvisualizer.com&#34;&gt;http://gpsvisualizer.com&lt;/a&gt; to produce much nicer maps, but it takes data in the superior  GPX format. The  GPSBabel software will pull way point data off of Garmin GPSs and puts them into GPX, but it doesn&#39;t handle tracks.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Adopt a Vegetarian</title>
      <link>https://ry4an.org/unblog/post/2005-04-06/</link>
      <pubDate>Wed, 06 Apr 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-04-06/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I was just digging through some old files, and I came across my first web pages. They were hand written HTML done in late 1995.  Among the worst of them design-wise was my &#39;Adopt a Vegetarian&#39; page.  It was a joke started in October 1995 wherein non-vegetarians would &amp;quot;adopt&amp;quot; vegetarians and agree to eat twice as much meat, so as to balance the vegetarian out.&lt;/p&gt;&#xA;&lt;p&gt;The Adopt a Vegetarian website was up before most of the world had even heard of the web, and certainly before folks learned not to take anything on-line too seriously.  The volume of vitriolic hate mail I got was amazing.  I wish I&#39;d have saved them.  The site existed during the period when the mainstream press was writing a lot of &amp;quot;gee whiz, look at this crazy website&amp;quot; articles.  I ended up getting written about in a few different publications including &lt;a class=&#34;reference external&#34; href=&#34;http://www.spiegel.de/&#34;&gt;Der Spiegel&lt;/a&gt; (&lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Der_Spiegel&#34;&gt;wikipedia&lt;/a&gt;), which I&#39;ve got clipped and stored somewhere.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Approval Voting for the ACM</title>
      <link>https://ry4an.org/unblog/post/2005-03-21/</link>
      <pubDate>Mon, 21 Mar 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-03-21/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Approval_voting&#34;&gt;Approval voting&lt;/a&gt; is an alternate voting system  that has &lt;a class=&#34;reference external&#34; href=&#34;http://www.approvalvoting.com/&#34;&gt;many&lt;/a&gt; &lt;a class=&#34;reference external&#34; href=&#34;http://www.aaronsw.com/weblog/001168&#34;&gt;benefits&lt;/a&gt; &lt;a class=&#34;reference external&#34; href=&#34;http://electionmethods.org/IRVproblems.htm&#34;&gt;as compared to&lt;/a&gt; &lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Instant-runoff_voting&#34;&gt;Instant Run-Off Voting&lt;/a&gt;.  For years I&#39;ve been running the on-line officer elections for the &lt;a class=&#34;reference external&#34; href=&#34;http://acm.cs.umn.edu/&#34;&gt;local campus chapter&lt;/a&gt; of the &lt;a class=&#34;reference external&#34; href=&#34;http://acm.org/&#34;&gt;Association of Computing Machinery&lt;/a&gt;.  Last year I talked them into switching to approval voting (even though it probably violates their  charter), and it worked really well.  Their elections have kicked off again, and once again &lt;a class=&#34;reference external&#34; href=&#34;http://sarinity.com/&#34;&gt;I&#39;m hosting them and using my voting script&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>SwarmStream Article on the O&#39;Reilly Network</title>
      <link>https://ry4an.org/unblog/post/2005-03-17/</link>
      <pubDate>Thu, 17 Mar 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-03-17/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I wrote &lt;a class=&#34;reference external&#34; href=&#34;http://www.onjava.com/pub/a/onjava/2005/03/16/swarmstream.html&#34;&gt;an article&lt;/a&gt; that got posted on the O&#39;Reilly Network.  It sounds a little more huckster-ish than I&#39;d like, but the tech does get explained pretty well.  There&#39;s a link to the new beta 2 release of &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2005-02-15&#34;&gt;SwarmStream Public Edition&lt;/a&gt; at the bottom of the article.&lt;/p&gt;&#xA;&lt;!-- date: 1111039200 --&gt;&#xA;&lt;!-- tags: java,ideas-built,software --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Detecting Recently Used Words On the Fly</title>
      <link>https://ry4an.org/unblog/post/2005-03-11/</link>
      <pubDate>Fri, 11 Mar 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-03-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When writing I frequently find myself searching backward, either visually or using a reverse-find, to see if I&#39;ve previously used the word that I&#39;ve just used.  Some words, say &lt;em&gt;furthermore&lt;/em&gt; for example, just can&#39;t show up more than once per paragraph or two without looking overused.&lt;/p&gt;&#xA;&lt;p&gt;I was thinking that if my editor/word-processor had a feature wherein all instances of the word I just typed were briefly highlighted it would allow me to notice awkward repeats without having to actively watch for them.  Nothing terribly intrusive, mind you, but just a quick flicker of highlight while I type.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Obscuring MoinMoin Wiki Referrers</title>
      <link>https://ry4an.org/unblog/post/2005-03-09/</link>
      <pubDate>Wed, 09 Mar 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-03-09/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;When you click on a link in your browser to go to a new web page your browser sends along a &lt;tt class=&#34;docutils literal&#34;&gt;Referrer:&lt;/tt&gt; header, which tells the owner of the site that&#39;s been linked to the URL of the site where the link was found.  It&#39;s a nice little feature that helps website creators know who is linking to them.  Referrer headers are easily faked or disabled, but in general most people don&#39;t bother, because there&#39;s generally no harm in telling a website owner who told you about their site.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ringback Tones Made Less Evil</title>
      <link>https://ry4an.org/unblog/post/2005-03-02/</link>
      <pubDate>Wed, 02 Mar 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-03-02/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Foreign cell phone services have had a feature for awhile called &lt;em&gt;Ringback Tones&lt;/em&gt; which allows you replace the normal ringing sound that callers hear while they&#39;re waiting for you to answer with a short audio clip.  This isn&#39;t the annoying ring that the people near you hear until you answer your phone, but the even more annoying ring that the people calling you will hear directly in their ear.  The feature has come to the US recently, and my cell phone provider, T-Mobile, calls its offering &lt;em&gt;Caller Tunes&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Designing a Beer Temperature Experiment</title>
      <link>https://ry4an.org/unblog/post/2005-02-16/</link>
      <pubDate>Wed, 16 Feb 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-02-16/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve repeatedly encountered the statement, always presented as fact, that if you chill beer, let it return to room temperature, and then chill it again you will have affected in it a degradation of quality.  This has always seemed like nonsense to me for a few different reasons, chief among them that surely this chill/warm cycle happened repeatedly during transport and retail.&lt;/p&gt;&#xA;&lt;p&gt;As a beer snob, I generally drink beers imported from Europe.  These are shipped to the US in huge container ships across the icy North Atlantic.  They&#39;re then shipped in semi trucks to Minnesota.  Next they&#39;re stored at distribution centers, in retail warehouses, and on the sales floor (or in the beer cooler) Surely in one season or another the temperature variance during those many legs and stops constitutes at least one cooling/warming cycle.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>SwarmStream Public Edition</title>
      <link>https://ry4an.org/unblog/post/2005-02-15/</link>
      <pubDate>Tue, 15 Feb 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-02-15/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My latest project for Onion Networks has just been released: it&#39;s a first beta release of &lt;a class=&#34;reference external&#34; href=&#34;http://onionnetworks.com/products/swarmstream/sspe/&#34;&gt;SwarmStream Public Edition&lt;/a&gt;, a completely free Java protocol handler plug-in that transparently augments any HTTP data transfer with caching, automatic fail-over, automatic resume, and wide-area file transfer acceleration.&lt;/p&gt;&#xA;&lt;p&gt;SwarmStream Public Edition is a scaled-down version of our commercially-licensable &lt;a class=&#34;reference external&#34; href=&#34;http://onionnetworks.com/products/swarmstream/&#34;&gt;SwarmStream SDK&lt;/a&gt;. Both systems are designed to provide networked applications with high levels of reliability and performance by combining commodity servers and cheap bandwidth with intelligent networking software.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Who Wins &#39;Click Here&#39;</title>
      <link>https://ry4an.org/unblog/post/2005-02-04/</link>
      <pubDate>Fri, 04 Feb 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-02-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The &lt;a class=&#34;reference external&#34; href=&#34;http://www.w3.org/&#34;&gt;w3c&lt;/a&gt;, the nominal leader of web standards, has a &lt;a class=&#34;reference external&#34; href=&#34;http://www.w3.org/QA/Tips/noClickHere&#34;&gt;recommendation against&lt;/a&gt; using &lt;em&gt;click here&lt;/em&gt; or &lt;em&gt;here&lt;/em&gt; as the text for links on web pages.  In addition to the good reasons they provide, there&#39;s google to consider.  Google assigns &lt;em&gt;page rank&lt;/em&gt; to web sites based on, among a great many other things, the text used in links to that page.  When you link to &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/&#34;&gt;https://ry4an.org/&lt;/a&gt; with &lt;em&gt;ry4an&lt;/em&gt; as the link text I get more closely associated with the term &lt;em&gt;ry4an&lt;/em&gt; in google&#39;s rankings. However, when you link to a page using generic link text, such as &lt;em&gt;here&lt;/em&gt; or &lt;em&gt;click here&lt;/em&gt; you&#39;re not really helping anyone to find anything any easier.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Better Random Subject Lines</title>
      <link>https://ry4an.org/unblog/post/2005-02-02/</link>
      <pubDate>Wed, 02 Feb 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-02-02/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2005-01-24&#34;&gt;Earlier&lt;/a&gt; I talked about generating random Subject lines for emails.  I settled on something that looked like  &lt;tt class=&#34;docutils literal&#34;&gt;Subject: Your email (1024)&lt;/tt&gt; .  Those were fine, but got dull quickly.  By switching the procmail rules to look like:&lt;/p&gt;&#xA;&lt;pre class=&#34;literal-block&#34;&gt;&#xA;:0 fhw&#xA;* ^Subject:[\ ]*$&#xA;|formail -i &amp;quot;Subject: RANDOM: $(fortune -n 65 -s | perl -pe &#39;s/\s+/ /g&#39;)&amp;quot;&#xA;&#xA;:0 fhw&#xA;* !^Subject:&#xA;|formail -i &amp;quot;Subject: RANDOM: $(fortune -n 65 -s | perl -pe &#39;s/\s+/ /g&#39;)&amp;quot;&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;I&#39;m now able to get random subject lines with a little more meat to them.  They come out looking like:  &lt;tt class=&#34;docutils literal&#34;&gt;RANDOM: The coast was clear.&amp;nbsp; &lt;span class=&#34;pre&#34;&gt;--&lt;/span&gt; Lope de Vega&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Jetty with Large File Support</title>
      <link>https://ry4an.org/unblog/post/2005-01-26/</link>
      <pubDate>Wed, 26 Jan 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-01-26/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;http://jetty.mortbay.org/jetty/index.html&#34;&gt;Jetty&lt;/a&gt; is a great Java servlet container and web server.  It&#39;s fully embeddable and at OnionNetworks we&#39;ve used it in many of our products.  It, however, has the same &lt;a class=&#34;reference external&#34; href=&#34;http://justin.chapweske.com/archives/000016.html&#34;&gt;2GiB file size limit&lt;/a&gt; that a lot of software does.  This limit comes from using a 32 bit wide value to store file size yeilding a 4GiB (unsigned) or 2GiB (signed) maximum, and represents a real design gaff on the part of the developers.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Adding a Subject with Procmail</title>
      <link>https://ry4an.org/unblog/post/2005-01-24/</link>
      <pubDate>Mon, 24 Jan 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-01-24/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Lately I&#39;ve been corresponding a great deal with someone who doesn&#39;t elect to use the Subject: line in emails.  When responding to this emails my mail application, mutt, uses the Subject line: &lt;tt class=&#34;docutils literal&#34;&gt;re: your mail&lt;/tt&gt;.  Mutt also groups conversations into threads using (among other things) the Subject line.  So every reply to every person who has sent a message with a blank subject line gets grouped into a single thread when they, in fact, have nothing to do with one another.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>2004 Email Response Patterns</title>
      <link>https://ry4an.org/unblog/post/2005-01-20/</link>
      <pubDate>Thu, 20 Jan 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-01-20/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/2003-07-17&#34;&gt;Back in 2003&lt;/a&gt; I started tracking some numbers on my email use patterns, especially related to replies.  I ran those old scripts on my 2004 mail and the numbers look pretty similar:&lt;/p&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;Of the 3236 emails I sent during 2004, 2094 of them were replies&lt;/li&gt;&#xA;&lt;li&gt;My five most common response times in minutes were:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;ten minutes: 40 times&lt;/li&gt;&#xA;&lt;li&gt;thireen minutes: 36 times&lt;/li&gt;&#xA;&lt;li&gt;sixteen minutes: 36 times&lt;/li&gt;&#xA;&lt;li&gt;twelve minutes: 35 times&lt;/li&gt;&#xA;&lt;li&gt;eleven minutes: 33 times&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;My mean response times was 22.36 minutes&lt;/li&gt;&#xA;&lt;li&gt;My longest response time was 58.4 days.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The only really meaningful number there is the median response time and comparing it to 2003, I&#39;m a lot faster in general.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>New UnBlog System</title>
      <link>https://ry4an.org/unblog/post/2005-01-16/</link>
      <pubDate>Sun, 16 Jan 2005 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2005-01-16/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve switched from a mailing list driven system to a wiki based one for this UnBlog.  It&#39;s less weird than the mailing list setup was, but it&#39;s not exactly moveable type either.  It offers RSS feeds and subscriptions, though through entirely different mechanisms than the list did.  I think I&#39;ve moved everything over well enough that there are no dead links into the old space.  I ended up using my WikiChump thing modified to handle attachments and create comment pages to populate the data.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Brute Forcing My Own Password</title>
      <link>https://ry4an.org/unblog/post/2004-12-20/</link>
      <pubDate>Mon, 20 Dec 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-12-20/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I try to maintain good password practices -- total random gibberish, never use the same password for two things, change them monthly --, and the EBP lite from &lt;a class=&#34;reference external&#34; href=&#34;http://mandylionlabs.com/&#34;&gt;http://mandylionlabs.com/&lt;/a&gt; certainly helps.&lt;/p&gt;&#xA;&lt;p&gt;Last night, at about 3am I was doing my monthly password change and somehow I typed one password wrong &lt;em&gt;in exactly the same way&lt;/em&gt; three times.  Today when I tried to add my ssh private key it just wouldn&#39;t unlock.  I tried the &amp;quot;right&amp;quot; password 10 or so times and no luck.  I then started trying slight variants on the password: fingers shifted, missed shift key, similar looking characters, etc.  After 30 or so of those tries with no luck it was time to script.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Oldenburg Survey Results Released</title>
      <link>https://ry4an.org/unblog/post/2004-12-19/</link>
      <pubDate>Sun, 19 Dec 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-12-19/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I went ahead and aggregated the survey results related to this previous entry about starting a social club:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/msg00076.html&#34;&gt;https://ry4an.org/unblog/msg00076.html&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;The results can be found at:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/oldenburg/survey/&#34;&gt;https://ry4an.org/oldenburg/survey/&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Sadly, I&#39;ve been forced to conclude that there&#39;s just no way to start something like I&#39;d hoped for without a good year&#39;s worth of operating expenses in the bank.  You need members to gather dues, need dues to open the club, and need the club to gather members.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Time For Another Key Signing</title>
      <link>https://ry4an.org/unblog/post/2004-12-14/</link>
      <pubDate>Tue, 14 Dec 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-12-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;It&#39;s time once again for that marriage of mathematics and paranoia that is a cryptographic key signing.  I&#39;m organizing another for Thursday, January 20th, 2005.   Details can be found at: &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/keysigning/&#34;&gt;https://ry4an.org/keysigning/&lt;/a&gt;  Results from my last key signing can be found at: &lt;a class=&#34;reference external&#34; href=&#34;http://ry4an.org/keysigning/visualize/&#34;&gt;http://ry4an.org/keysigning/visualize/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If all that&#39;s gibberish to you, check you my much better explanation last time I did one of these: &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/msg00026.html&#34;&gt;https://ry4an.org/unblog/msg00026.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Thanks once again to the ACM for letting us use their room.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dead Pool Update</title>
      <link>https://ry4an.org/unblog/post/2004-11-19/</link>
      <pubDate>Fri, 19 Nov 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-11-19/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve got the entries and current scores posted for the Dead Pool at &lt;a class=&#34;reference external&#34; href=&#34;http://sarinity.com/deadpool/&#34;&gt;http://sarinity.com/deadpool/&lt;/a&gt; .  Thanks to those who entered.  I was planning on hitting everyone up to join at the Halloween party, but then I got distracted and forgot.  O&#39;well six people, two of whom already have points, is good enough.&lt;/p&gt;&#xA;&lt;p&gt;Best of luck to the entrants,&lt;/p&gt;&#xA;&lt;!-- date: 1100844000 --&gt;&#xA;&lt;!-- tags: ideas-built --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>The Hierarchy of Pretzel Sins</title>
      <link>https://ry4an.org/unblog/post/2004-11-14/</link>
      <pubDate>Sun, 14 Nov 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-11-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I eat pretzels like Darwin would have.  It&#39;s a constant survival of the fittest competition.  I select two pretzels, eat whichever is most flawed, select another, re-test, and just keep going from there.  At the end I&#39;ve got the best pretzel of the whole bag left, which I then eat.&lt;/p&gt;&#xA;&lt;p&gt;Admittedly it&#39;s not an actual test of the pretzels&#39; fitness to survive -- the pretzels with inferior qualities aren&#39;t dying off due to failure to feed themselves and attract mates.  Really it&#39;s just their ability to conform to my invented notion of the master pretzel, but if you go around saying you eat pretzels like Hitler people back away slowly.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dorm Apology Ad</title>
      <link>https://ry4an.org/unblog/post/2004-11-05/</link>
      <pubDate>Fri, 05 Nov 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-11-05/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;On Tuesday some friends and I were talking about how we immaturely approached alcohol back in the dorms, and I was thinking it would be fun to take out a full (or half) page ad in the student paper, The Minnesota Daily, like this:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;WE LIVED IN THE DORMS.  WE DRANK.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;WE COULDN&#39;T HOLD OUR LIQUOR.&lt;/blockquote&gt;&#xA;&lt;p&gt;Thank you, Resident Hall Facilities Staff, for your&lt;/p&gt;&#xA;&lt;p&gt;service above and beyond the call of duty.  We&#39;re sorry.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>AntFlow 1.0rc1 Released</title>
      <link>https://ry4an.org/unblog/post/2004-11-04/</link>
      <pubDate>Thu, 04 Nov 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-11-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I code for a hobby and a profession, but usually it&#39;s only the hobby stuff I can release here.  However I&#39;m happy to say and proud to announce that Onion Networks, my employer, has okay-ed the release of AntFlow, a tool I largely wrote.&lt;/p&gt;&#xA;&lt;p&gt;AntFlow adds hot folder triggers and workflow functionality to the ever popular Ant build tool.  It&#39;s a great fit and a right good bit of code, so check it out at &lt;a class=&#34;reference external&#34; href=&#34;http://antflow.onionnetworks.com/&#34;&gt;http://antflow.onionnetworks.com/&lt;/a&gt; .&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>A Clockwork Orange Costume</title>
      <link>https://ry4an.org/unblog/post/2004-10-31/</link>
      <pubDate>Sun, 31 Oct 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-10-31/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My Halloween costume this year came out pretty well.  I went as Alex from Kubrick&#39;s &lt;em&gt;A Clockwork Orange&lt;/em&gt; during his brainwashing.  I made the head piece from scrap metal, some syringes, galvanized steel wire, rubber tubing, and a lot of rivets.  The actual actor was temporarily blinded during the filming of that scene, but I went less hard-core on the eye restraints and the only after effects I&#39;ve got are some bruising and puffiness.  All in all better than I was hoping for.  See the attached image for a photo.  Thanks to the Kromhout clan for the photo.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dead Pool</title>
      <link>https://ry4an.org/unblog/post/2004-10-11/</link>
      <pubDate>Mon, 11 Oct 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-10-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve decided to run a dead pool this year.  You can sign up at &lt;a class=&#34;reference external&#34; href=&#34;http://sarinity.com/deadpool/&#34;&gt;http://sarinity.com/deadpool/&lt;/a&gt; by guessing 10 famous persons who you think might die during the next calendar year.  The younger they are the more points you get, and the highest point total wins.  Remember, it&#39;s not any more morbid than fantasy football is athletic.&lt;/p&gt;&#xA;&lt;!-- date: 1097470800 --&gt;&#xA;&lt;!-- tags: ideas-built --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Twin Cities Marathon</title>
      <link>https://ry4an.org/unblog/post/2004-10-04/</link>
      <pubDate>Mon, 04 Oct 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-10-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m again going against the &#39;only things that I create&#39; policy for this mailing list, but unless you count lactic acid nothing was creating during my running of the twin cities marathon yesterday, yet I&#39;m posting about it just the same.  I beat my target time by a good 15 minutes though was still certainly in the tail-end of the pack zone.  I hope to never run so much again so long as I live.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Mail To Wiki Gateway</title>
      <link>https://ry4an.org/unblog/post/2004-09-18/</link>
      <pubDate>Sat, 18 Sep 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-09-18/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I wanted a way to quickly append text to Moin Moin wikis.  I wrote a Perl script to do just that.  It relies on the email address suffix features available in most modern MTAs to get the page name.&lt;/p&gt;&#xA;&lt;p&gt;Once the procmail recipe included in the accompanying procmail.rc file is in place for the user &#39;wiki&#39; email sent to &lt;a class=&#34;reference external&#34; href=&#34;mailto:wiki-TextHere&amp;#64;somewhere.com&#34;&gt;wiki-TextHere&amp;#64;somewhere.com&lt;/a&gt; will be appended to the TextHere wiki page.&lt;/p&gt;&#xA;&lt;p&gt;I cheaped out on the formatting and just put the text inside literal/pre blocksblocks.  The subject line and from header are retained and displayed.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Diplomacy Tutorial</title>
      <link>https://ry4an.org/unblog/post/2004-09-08/</link>
      <pubDate>Wed, 08 Sep 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-09-08/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My all time favorite board game is called &lt;em&gt;Diplomacy&lt;/em&gt;.  It&#39;s got the tactical simplicity of chess mixed with the social aspects of poker. It&#39;s been popular in quite a few white houses -- reportedly the Kennedys played ferociously.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, it can be a difficult game to learn.  Not because the rules are complex -- they&#39;re not, but only because there aren&#39;t a lot of good presentations of the rules.  Oral descriptions quickly devolve into edge cases and exceptions, the printed rules look like they were written by lawyers, and just looking at the game board gives one the totally wrong impression that Diplomacy is like Risk or the hateful Axis and Allies.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>I Buy Liquor For Minors</title>
      <link>https://ry4an.org/unblog/post/2004-08-31/</link>
      <pubDate>Tue, 31 Aug 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-08-31/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;It&#39;s not much of a creation, but I recently made a T-shirt that says, &amp;quot;I BUY LIQUOR FOR MINORS&amp;quot; in nice white on black lettering.  I&#39;ve worn it out a few times including to the Minnesota State Fair, mostly just to gauge responses to the sentiment.  It seems the average parent furrows their brow, the average teenager looks intrigued, and the average bartender will still sell me two beers.  I didn&#39;t actually have a single youth ask me to buy liquor for them, and all the people who actually told me they liked the shirt were in their 20s or 30s.  Completely not the responses I expected.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Poker Table</title>
      <link>https://ry4an.org/unblog/post/2004-08-04/</link>
      <pubDate>Wed, 04 Aug 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-08-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;As mentioned previously I&#39;m a tool of the media machine and am thus now playing poker.  I don&#39;t like online play so I host local events here at the house.  We&#39;re getting more and more people and I wanted something nicer on which to play than folding card tables.  Louis Duhon, a friend, and I drew up some plans, bought a lot of materials, moved the cars out of his garage, and spent four days working on a &amp;quot;one day project&amp;quot;.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Silly Defensive Prompt Coloring</title>
      <link>https://ry4an.org/unblog/post/2004-07-22/</link>
      <pubDate>Thu, 22 Jul 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-07-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I don&#39;t like color in my command line windows.  Colorization in ls&#39;s directory listings drives me bonkers; it&#39;s the first thing I turn off on a new system.  I have, however, relented and added a little bit of conditional color to save me from an all too frequent error.&lt;/p&gt;&#xA;&lt;p&gt;I have access to a lot of UNIX and UNIX-like systems.  Some are machines I run, some are my employer&#39;s, and some belong to customers.  Most all of them I&#39;ve never physically seen but instead access through remote ssh, secure shell, connections.  My normal command line prompt on these machines looks like:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Roomba on the Pronto Remote</title>
      <link>https://ry4an.org/unblog/post/2004-07-14/</link>
      <pubDate>Wed, 14 Jul 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-07-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;A few weeks back I got a Roomba Robotic Vacuum (&lt;a class=&#34;reference external&#34; href=&#34;http://www.irobot.com/consumer/product_detail.cfm?prodid=9&#34;&gt;http://www.irobot.com/consumer/product_detail.cfm?prodid=9&lt;/a&gt;) as a wonderful gift.  Shipped with it was the optional remote control.  The Roomba is fully automatic, but it&#39;s programmed to pick up dirt not to chase the cat -- you need the remote for that.&lt;/p&gt;&#xA;&lt;p&gt;However, long time readers (you poor bastards) will remember that I try to maintain a strictly one remote coffee table (&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/msg00022.html&#34;&gt;https://ry4an.org/unblog/msg00022.html&lt;/a&gt;).  That meant the Roomba had to go onto the Phillips Pronto TSU-2000 Universal Remote.  I thought for sure I&#39;d find a CCF file for it, but it looks like only the people with newer remotes are getting the Roomba.  Fortunately someone in the RemoteCentral forms helped out with instructions on how to back-convert the remote configuration and after a few wasted hours I can now steer the vacuum from the couch.  Apparently I became a yuppie when I wasn&#39;t looking.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>The Oldenburg</title>
      <link>https://ry4an.org/unblog/post/2004-06-05/</link>
      <pubDate>Sat, 05 Jun 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-06-05/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve been rolling this one around in my head for a few years now, and I think it&#39;s finally coming closer to fruition: I&#39;d like to start an old style social club.&lt;/p&gt;&#xA;&lt;p&gt;In his book &lt;em&gt;The Great Good Place&lt;/em&gt; Ray Oldenburg, Professor Emeritus at the Department of Sociology at the University of West Florida, says:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&amp;quot;Most needed are those &#39;third places&#39; which lend a public balance to the increased privatization of home life. Third places are nothing more than informal public gathering places. The phrase &#39;third places&#39; derives from considering our homes to be the &#39;first&#39; places in our lives, and our work places the &#39;second.&#39;&amp;quot;&lt;/blockquote&gt;&#xA;&lt;p&gt;Working from home I distinctly feel the need for at least a second place.  Each day I head to the local coffee shop and drink more coffee than I should around semi-familiar faces.  It&#39;s a pleasant time, but it&#39;s not community.  Similarly in the evenings I frequently find myself wanting to get out of the house and amongst friends, without incurring the organizational and monetary expenses of an organized restaurant or bar outing.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Filtering Mail Using Time of Day</title>
      <link>https://ry4an.org/unblog/post/2004-05-28/</link>
      <pubDate>Fri, 28 May 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-05-28/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I get a lot of email, and a good percentage of it is spam.  To help filter the spam from the ham I use software called SpamAssassin (&lt;a class=&#34;reference external&#34; href=&#34;http://useast.spamassassin.org/&#34;&gt;http://useast.spamassassin.org/&lt;/a&gt;).  SpamAssassin applies hundreds of tests to each incoming email and increases or decreases the mail&#39;s spam score depending on the result.  If the total spam score for a message is above a pre-set threshold (4.0 for me) it gets put aside.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dumbing Down scp</title>
      <link>https://ry4an.org/unblog/post/2004-05-27/</link>
      <pubDate>Thu, 27 May 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-05-27/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The tool scp, UNIX for secure copy, is a wrapper around ssh, secure shell.  It lets you move files from one machine to another through an encrypted connection with a command line syntax similar to that of the standard cp, local copy, command.  I use it 100 times a day.&lt;/p&gt;&#xA;&lt;p&gt;The command line syntax for scp is at its most basic:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;scp &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Either the source, destination, or both can be on a remote computer.  To denote that one just prefixes the file name with &amp;quot;&lt;a class=&#34;reference external&#34; href=&#34;mailto:username&amp;#64;machinename&#34;&gt;username&amp;#64;machinename&lt;/a&gt;:&amp;quot;.  So this command:&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Diplomacy at Sea and a Templated Evolver</title>
      <link>https://ry4an.org/unblog/post/2004-05-06/</link>
      <pubDate>Thu, 06 May 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-05-06/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve got a policy here on the unblog where I only do entries about things I&#39;ve created.  When I wanted to hype the Diplomacy at Sea V/Dip Con event coming up March 2005 I had to find something to do with it first, so I volunteered to set up their website.&lt;/p&gt;&#xA;&lt;p&gt;Whenever I need to set up a quick site I head over to the Open Source Web Design site (&lt;a class=&#34;reference external&#34; href=&#34;http://oswd.org/&#34;&gt;http://oswd.org/&lt;/a&gt;) and pick from their vast array of great designs.  This time I went with one called Evolver.  It has a clean look and clean code.  Rialto did a great job of synthesis and design on this one.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>RSS Feed for Security Camera List</title>
      <link>https://ry4an.org/unblog/post/2004-05-03/</link>
      <pubDate>Mon, 03 May 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-05-03/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I added a RSS feed to the Minneapolis Security Camera Project site. Subscribers to it will see any new cameras as soon as they&#39;re posted. If you&#39;re not yet using an RSS aggregator let me know and I&#39;ll chisel the list on a stone tablet and mail it to you whenever it&#39;s updated.&lt;/p&gt;&#xA;&lt;p&gt;The feed is at &lt;a class=&#34;reference external&#34; href=&#34;http://mpls-watched.org/map/rss.xml&#34;&gt;http://mpls-watched.org/map/rss.xml&lt;/a&gt;&lt;/p&gt;&#xA;&lt;!-- date: 1083560400 --&gt;&#xA;&lt;!-- tags: ideas-built,software --&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>History of the World - Attack Probabilities</title>
      <link>https://ry4an.org/unblog/post/2004-05-02/</link>
      <pubDate>Sun, 02 May 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-05-02/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;History of the World is a fine game from Avalon Hill.  It&#39;s distributed by Hasbro now, and it&#39;s one of the rare Avalon Hill games that Hasbro managed to improve when they &amp;quot;cleaned it up&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;History of the World uses dice to simulate combat, and they do so in a way so as to intentionally skew the likelihood of success toward the attacker.  There are, however, various terrains (mountainous, ocean straight, forest), types of attack (amphibious), bonuses (strong leader, elite troops, forts, weaponry, etc.) which can affect the success rate of an attacker.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Bookmarksync Patch for Tab-Group Bookmarks</title>
      <link>https://ry4an.org/unblog/post/2004-05-01/</link>
      <pubDate>Sat, 01 May 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-05-01/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I use the Mozilla web browser on a few different machines, and its lack of roaming profiles/bookmarks is a source of annoyance.  When I bookmark a site on my laptop, I want that bookmark to be available on my desktop machine.  In order to achieve that I use a kludgy network of scripts, CVS, crontab entries, and the bookmarksync application.&lt;/p&gt;&#xA;&lt;p&gt;Bookmarksync (&lt;a class=&#34;reference external&#34; href=&#34;http://sourceforge.net/projects/booksync/&#34;&gt;http://sourceforge.net/projects/booksync/&lt;/a&gt;) is a tiny little program that takes as input two different bookmark files and outputs the combination of the two.  It works just fine in all respects, except that it converts tab-group bookmarks into bookmark folders.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>University of MN Magic Number Guessing</title>
      <link>https://ry4an.org/unblog/post/2004-03-27/</link>
      <pubDate>Sat, 27 Mar 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-03-27/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Back when I started at the University of Minnesota in 1995 the course registration system was terminal/telnet based.  Students would register using a clumsy mainframe-style form interface.  When a class a student wanted was full or required unsatisfied prerequisites, the student come supplicant would go to the department to beg for a &amp;quot;magic number&amp;quot; which, when input into the on-line registration system, would allow him or her admission into the course.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Turn Sequence Diagram for Kill Doctor Lucky</title>
      <link>https://ry4an.org/unblog/post/2004-03-25/</link>
      <pubDate>Thu, 25 Mar 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-03-25/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Cheap Ass Games (&lt;a class=&#34;reference external&#34; href=&#34;http://cheapass.com&#34;&gt;http://cheapass.com&lt;/a&gt;) make a lot of great games which are available for very little money.  A perennial favorite is Kill Doctor Lucky which is sort of like Clue, in reverse, and with a better sense of humor.  It&#39;s an easy game to learn from the rules, but no one wants to read the rules.  I&#39;ve found that putting this turn sequence diagram I whipped up in front of a first time player augmented with a quick explanation of killing and failure is enough to get someone from zero to playing in 30 seconds.  Maybe the computer geeks with whom I hang out are more into state diagrams than the general populace, but it works for us.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Making Driftnet work in Webcollage in Xscreensaver</title>
      <link>https://ry4an.org/unblog/post/2004-03-04/</link>
      <pubDate>Thu, 04 Mar 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-03-04/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;EtherPEG (&lt;a class=&#34;reference external&#34; href=&#34;http://www.etherpeg.org/&#34;&gt;http://www.etherpeg.org/&lt;/a&gt;) is software for the Mac the listens in on local network traffic, identifies any images being downloaded, and displays them.  Driftnet (&lt;a class=&#34;reference external&#34; href=&#34;http://www.ex-parrot.com/~chris/driftnet/&#34;&gt;http://www.ex-parrot.com/~chris/driftnet/&lt;/a&gt;) is Linux software that does the same thing, but offers better command line integration.  Xscreensaver (&lt;a class=&#34;reference external&#34; href=&#34;http://www.jwz.org/xscreensaver/&#34;&gt;http://www.jwz.org/xscreensaver/&lt;/a&gt;) is the screen saver/console locking program I use to keep people from using my laptop when I&#39;m getting a refill at my local coffee shop.&lt;/p&gt;&#xA;&lt;p&gt;Xscreensaver has a display mode called &#39;webcollage&#39; (&lt;a class=&#34;reference external&#34; href=&#34;http://www.jwz.org/webcollage/&#34;&gt;http://www.jwz.org/webcollage/&lt;/a&gt;) that can use driftnet to show modified images from the network as the screen saver display.  So when I&#39;m away from the laptop it pops up pictures from all the websites that everyone else on the wireless network is looking at.  At least in theory it does. Actually, I couldn&#39;t get it to do that at all.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Drink Recipe Fortune File</title>
      <link>https://ry4an.org/unblog/post/2004-02-29/</link>
      <pubDate>Sun, 29 Feb 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-02-29/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I like mixing drinks, despite having no real skill for it.  The commercial bar-tending courses seem to rely extensively on flashcards for the learning of drink recipes, so I though a UNIX fortune file of drink recipes would be a natural fit for learning.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, I couldn&#39;t find any good, public drink listings in a format I could parse.  Eventually I found one in CVS from this project: &lt;a class=&#34;reference external&#34; href=&#34;http://drinkmixer.sourceforge.net/&#34;&gt;http://drinkmixer.sourceforge.net/&lt;/a&gt;  It&#39;s not huge, but at least its a start and easily added to.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Poker Timer Configuring Launcher</title>
      <link>https://ry4an.org/unblog/post/2004-02-27/</link>
      <pubDate>Fri, 27 Feb 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-02-27/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I got sick of having to edit the launch file whenever I ran my Poker Timer (&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/msg00038.html&#34;&gt;https://ry4an.org/unblog/msg00038.html&lt;/a&gt;), so I wrote a quick CGI that generates a JNLP file which launches the app with the specified settings.  You&#39;ll need to have a 1.2 or higher Java Virtual Machine installed (&lt;a class=&#34;reference external&#34; href=&#34;http://java.com&#34;&gt;http://java.com&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;So we&#39;ve got a Perl interpreter dynamically producing a JNLP file that tells a Java Virtual Machine what to do.  Talk about an unholy alliance.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>PokerBot in IRC</title>
      <link>https://ry4an.org/unblog/post/2004-02-23/</link>
      <pubDate>Mon, 23 Feb 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-02-23/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I said I wasn&#39;t going to do it, but I ended up doing so anyway.  I&#39;ve written a Poker dealing IRC bot.  It&#39;s not terribly modular and it only supports TexasHold&#39;em, but it works.  It requires Perlbot 1.9.5 which is available on source forge.  Here&#39;s an excerpt from play:&lt;/p&gt;&#xA;&lt;pre class=&#34;literal-block&#34;&gt;&#xA;&amp;lt;Dealer&amp;gt; Board now shows: AH 2C 9D 2D&#xA;&amp;lt;Dealer&amp;gt; joe, action is to you. Current bet is 0.&#xA; * joe bets 20&#xA;&amp;lt;Dealer&amp;gt; joe bets 20.&#xA;&amp;lt;Dealer&amp;gt; Ry4an, action is to you. Current bet is 20.&#xA; * joe peeks&#xA; * Ry4an calls&#xA;&amp;lt;Dealer&amp;gt; Ry4an calls.&#xA;&amp;lt;Dealer&amp;gt; Board now shows: AH 2C 9D 2D 2H&#xA;&amp;lt;Dealer&amp;gt; joe, action is to you. Current bet is 0.&#xA; * joe checks&#xA;&amp;lt;Dealer&amp;gt; joe checks.&#xA;&amp;lt;Dealer&amp;gt; Ry4an, action is to you. Current bet is 0.&#xA; * Ry4an checks&#xA;&amp;lt;Dealer&amp;gt; Ry4an checks.&#xA;&amp;lt;Dealer&amp;gt; joe has been called and shows: 7D 8D&#xA;&amp;lt;Dealer&amp;gt; Ry4an shows 10C 6C and wins 70 with Trips (2 A T)&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;Anyway, I&#39;ve attached the code in case someone wants to take it and make it better or update it to the newer versions of perlbot.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Referrer-Aware, HTML-Rewriting, Caching Web Server</title>
      <link>https://ry4an.org/unblog/post/2004-02-11/</link>
      <pubDate>Wed, 11 Feb 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-02-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;There are no new ideas in the message, I just don&#39;t know if the existing components have been previously combined in the way I&#39;m proposing.  If they have been I couldn&#39;t find anyone talking about it.  Anyway...&lt;/p&gt;&#xA;&lt;p&gt;Most websites live forever in obscurity getting a few hundred hits a day at best.  However, if that same website gets linked to from a popular super-recommender like slashdot.org or boing-boing.net the hits can jump from 100s per days to 100s per minute.  This phenomenon is called the slashdot effect (&lt;a class=&#34;reference external&#34; href=&#34;http://en.wikipedia.org/wiki/Slashdot_effect&#34;&gt;http://en.wikipedia.org/wiki/Slashdot_effect&lt;/a&gt;).  On a server built with a low hit volume in mind it&#39;s pretty devastating, generally resulting in complete denial of service.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Non-Linear Time Display</title>
      <link>https://ry4an.org/unblog/post/2004-02-10/</link>
      <pubDate>Tue, 10 Feb 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-02-10/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;A few years back I was working in an office where my workspace was so noisy I kept slipping away to find quieter places in the building to work whenever I has a task which could be completed away from my desk. To avoid looking perpetually absent I wrote a quick script that would display (if available) the contents of a file named I-AM-AT and the how long it had been since I&#39;d last pressed a key.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Poker in IRC</title>
      <link>https://ry4an.org/unblog/post/2004-01-26/</link>
      <pubDate>Mon, 26 Jan 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-01-26/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;As seen in the previous posting my friends and I are on a bit of a poker kick lately.  As mentioned a good while back we sit in an IRC channel all day while working.  I thought it would be fun to find and run a tiny little IRC bot that would deal poker for us.  You know a few hands over lunch.  No real money of course, just a little diversion.  There exist IRC bots that do everything from serve virtual drinks to search google for you.  Making a bot that deals poker should be well within the realm of the medium.  I expected to find ten poker dealing bots in the usual places and if I was lucky one of them would be decent enough to be usable.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Poker Timer</title>
      <link>https://ry4an.org/unblog/post/2004-01-25/</link>
      <pubDate>Sun, 25 Jan 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-01-25/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Some friends and I have been playing poker a couple of times a month for the last year or so.  Our play is terrible, no one cares, and we usually spend more on beer than we win.  It&#39;s a good time.&lt;/p&gt;&#xA;&lt;p&gt;In November a few of us decided to head to the local card club and try our hands at play in the wild.  We decided to enter a tournament. Tournaments are a great way to start out playing at a card club because you know going in exactly how much money you&#39;re going to loose from the start.  Ninety or so people each pay a fixed entrance free, and only the top nine of them get any prize money at all.  Tournaments all offer good initial chip parity -- everyone starts with exactly the same amount of money so you can&#39;t be pushed around by bigger stack from the start.  Another added bonus is that for your initial buy-in of twenty or so dollars you get a few thousand &amp;quot;dollars&amp;quot; in tournament chips.  They&#39;re not real money but they&#39;re the closest I&#39;ll ever come to saying, &amp;quot;I raise 2000,&amp;quot; without having to append, &amp;quot;pennies.&amp;quot;&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Shrimp Recycling Only</title>
      <link>https://ry4an.org/unblog/post/2004-01-24/</link>
      <pubDate>Sat, 24 Jan 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-01-24/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Last November while sitting in the Atlanta airport with not much to do I saw a bank of six different trash cans.  They were in a neat row, each was in a different color, and they were all good for only one thing. People would walk up with a piece of trash and then carefully place it into whichever bin it best fit.  Is this bottle glass or plastic?  The lid is aluminum does it need to come off?  Is this a number two plastic or a number four plastic?&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Improving the RCA RP3711 Alarm Clock</title>
      <link>https://ry4an.org/unblog/post/2004-01-23/</link>
      <pubDate>Fri, 23 Jan 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-01-23/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I live in a sleep deprived state.  Not just because I have a lot to do and resent sleep as the short-term death it is, but also because I enjoy the swirling colors.  Maintaining a sleep deprived state requires a good alarm clock.  When your brain knows it needs 8 hours and you&#39;re giving it 4 it&#39;s gonna fight you, and given that it&#39;s in charge of your perceived reality, it doesn&#39;t have to fight fairly.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Net::Friends for GPSDrive</title>
      <link>https://ry4an.org/unblog/post/2004-01-11/</link>
      <pubDate>Sun, 11 Jan 2004 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2004-01-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;GPSDrive (&lt;a class=&#34;reference external&#34; href=&#34;http://www.gpsdrive.de/&#34;&gt;http://www.gpsdrive.de/&lt;/a&gt;) is nifty software for Linux that turns a laptop and a cheap GPS receiver into a vehicle navigation system.  It displays maps, records tracks, logs speed traps, and all the other little features you&#39;d expect in a system trying to divert your eyes from the road.&lt;/p&gt;&#xA;&lt;p&gt;It also sports a built-in system for networking with other GPSDrive enabled systems on the road to mutually plot one another&#39;s locations. The system, called friendsd, uses a simple UDP server to record and report the position, speed, and heading of other reporting systems on the same server.  Of course, this reporting only works if the laptop has access to the Internet but with the various cellular and wi-fi systems available that&#39;s not so much a stretch.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>You Can&#39;t Beat City Hall</title>
      <link>https://ry4an.org/unblog/post/2003-12-05/</link>
      <pubDate>Fri, 05 Dec 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-12-05/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;...or your own silly Condo board.  For the second time I&#39;ve run for and been shot down running for the association board for my condominium development.&lt;/p&gt;&#xA;&lt;p&gt;The board determines the budget, handles rules infractions, and controls the contract with our management company.  The current board, though well meaning, has made a lot of choices I haven&#39;t understood and they haven&#39;t felt it necessary to explain.&lt;/p&gt;&#xA;&lt;p&gt;The first time I ran, two years ago, I ran offering a &amp;quot;do nothing&amp;quot; board.  I wanted the board to do as little as possible with as little as possible and feared things wouldn&#39;t go that way without my involvement. I didn&#39;t make the board then and we have had a very... hands on board.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>A Young Hacker&#39;s Interactive Primer</title>
      <link>https://ry4an.org/unblog/post/2003-11-14/</link>
      <pubDate>Fri, 14 Nov 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-11-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;For the last five or so years I&#39;ve been trying to imagine what it would have been like growing up with easy computing, and I don&#39;t think it would have been good for me.  Back in 1988 when I first started seriously playing with computers they were hard to use.  You had to learn a lot of obscure text commands, and most everything you tried to do required that you know how something worked that could reasonably have been abstracted away from you.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>The Flaming Moe</title>
      <link>https://ry4an.org/unblog/post/2003-11-03/</link>
      <pubDate>Mon, 03 Nov 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-11-03/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;For the last three years Cari, Bridget, Joe and I have co-hosted a Halloween party at Cari&#39;s and my place.  Every year I man the bar because I enjoy doing so and like the chance to talk to everyone periodically over the course of the night.  This year I decided to turn the role into my costume and dressed as Moe Szyslak, the bartender from The Simpsons.&lt;/p&gt;&#xA;&lt;p&gt;In one particularly good third season episode, titled &amp;quot;Flaming Moe&amp;quot; (&lt;a class=&#34;reference external&#34; href=&#34;http://www.snpp.com/episodes/8F08.html&#34;&gt;http://www.snpp.com/episodes/8F08.html&lt;/a&gt;), Moe finds great success serving a drink whose recipe was stolen from Homer.  The drink, which Moe calls the Flaming Moe, includes as its secret ingredient Krusty Brand non-narkotik cough syrup and erupts into quickly retreating pillar of flame when lit.  I figured if I was gonna do Moe I had to make that drink.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Lying to Myself About Calendaring</title>
      <link>https://ry4an.org/unblog/post/2003-10-09/</link>
      <pubDate>Thu, 09 Oct 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-10-09/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Three days ago I posted a rather lengthy entry wherein I decried the current state of open, collaborative calendaring.  In it I listed six requirements for calendaring software and settled on the option available to me that met the most of them.   Now I&#39;m changing my mind.&lt;/p&gt;&#xA;&lt;p&gt;At the time I needed a new calendaring solution fast and had checked out all the candidates before.  The software package Remind had a nice interface, an expressive configuration language, web-visibility, local-storage, and was open source.  It met four of the six requirements and would have served admirably for a few years.  So why did I find myself laying awake worrying about my choice?  (Seriously, I&#39;m that big of a loser.)&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Calendaring Migration</title>
      <link>https://ry4an.org/unblog/post/2003-10-06/</link>
      <pubDate>Mon, 06 Oct 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-10-06/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m happy with my email client, text editor, compilers, IRC client, news reader, web browser, and just about every other tool I use in the process of my daily computing.  The only consistent source of displeasure has been my calendaring (when the hell did that become a word?) application.  I have a hideously over-scheduled life and need some sort of scheduling solution be it computerized or otherwise to keep things straight, but I&#39;ve never found anything that really suits me needs.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>IRC Nickname Tracking Script</title>
      <link>https://ry4an.org/unblog/post/2003-10-03/</link>
      <pubDate>Fri, 03 Oct 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-10-03/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Being a telecommuter, the closest thing I have to an office is an IRC channel.  IRC (Internet Relay Chat) is like a chat room minus the emoticons and pedophiles.  While normally the office IRC channel is the very embodiment of maturity, there are two silly things about it that have always annoyed me.  The first being that everyone gets to pick their own name, and the second being they can change their names at will.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>PGP Key Signing - October 23, 2003</title>
      <link>https://ry4an.org/unblog/post/2003-09-22/</link>
      <pubDate>Mon, 22 Sep 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-09-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;On Thursday, October 23rd, 2003 I&#39;m hosting another PGP key signing event.  For those not familiar with the concept here&#39;s a four paragraph primer on public key cryptography:&lt;/p&gt;&#xA;&lt;p&gt;Each person in the system has two matched &amp;quot;keys&amp;quot;: a public key and a private key.  A message encrypted with a public key can only be decrypted the complementary private key.  Thus public keys are distributed far and wide while private keys are carefully guarded.  When someone wants to send me a secret message they need only grab my public key from one of many freely accessible public repositories, use that key to encrypt their message, and then send the newly encrypted message to me.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Email to SMS Conversion</title>
      <link>https://ry4an.org/unblog/post/2003-09-11/</link>
      <pubDate>Thu, 11 Sep 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-09-11/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;There&#39;s a program on freshmeat called email2sms (&lt;a class=&#34;reference external&#34; href=&#34;http://freshmeat.net/projects/email2sms/&#34;&gt;http://freshmeat.net/projects/email2sms/&lt;/a&gt;) that runs emails through a series of filters until they&#39;re short enough to be sent to a cell phone as a SMS message -- which typically have a maximum length of 150 characters.  The script is mostly just a wrapper around the nifty Lingua::EN::Squeeze Perl module.&lt;/p&gt;&#xA;&lt;p&gt;Squeeze takes English text and shortens it aggressively using all manner of abbreviations.  It leaves the text remarkably readable for being about half its original length.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Philips Pronto TSU-2000 Remote</title>
      <link>https://ry4an.org/unblog/post/2003-09-09/</link>
      <pubDate>Tue, 09 Sep 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-09-09/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I try to lead a very uncluttered life whether one&#39;s talking about hard drive layout, personal responsibilities, or physical clutter in my condo.  Three years ago I got my first TV and DVD player.  Each came with its own remote control.  Not wanting to deal with two remotes on my coffee table (which at the time was a cardboard box) I went out and bought a nice $20 universal remote that was very programmable and easily handled the functions of both the TV and the DVD player.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Canoeing with a GPS Unit</title>
      <link>https://ry4an.org/unblog/post/2003-07-21/</link>
      <pubDate>Mon, 21 Jul 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-07-21/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;This weekend I had a great time canoeing with six friends.  We camped, swam, paddled, drank and just generally goofed around for a weekend. Two of us had brought along Garmin eTrex GPS units which I&#39;d not previously had when canoeing.  They really added a lot.&lt;/p&gt;&#xA;&lt;p&gt;I built an 18 point route approximating our course before hand and loaded them into the GPSs.  With that info and the GPS&#39;s natural data collection we were able to always know our current speed, average speed (3.2 mph), max speed (mine = 10.5 mph), distance paddled (total = 29.1 miles), and elapsed time (10 hours 31 minutes of paddling).&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Email Response Times</title>
      <link>https://ry4an.org/unblog/post/2003-07-17/</link>
      <pubDate>Thu, 17 Jul 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-07-17/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I get and send a lot of email.  Many of the emails I send are responses to emails I received.  When I respond to email I almost always quote the email to which I&#39;m responding, and when I do my email client (mutt) inserts a line like:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;On Thu, Jan 02, 2003 at 11:40:25AM -0600, Justin Chapweske wrote:&lt;/blockquote&gt;&#xA;&lt;p&gt;Knowing the time of the original message and the time of my reply provides enough information to track my response times to email.  I used the inbound message ids to make sure only the first reply to an email was counted.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>WikiChump</title>
      <link>https://ry4an.org/unblog/post/2003-07-14/</link>
      <pubDate>Mon, 14 Jul 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-07-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;A chump bot (&lt;a class=&#34;reference external&#34; href=&#34;http://www.w3.org/2001/09/chump/&#34;&gt;http://www.w3.org/2001/09/chump/&lt;/a&gt;) sits in an IRC (Chat) channel and remembers any URL (web addresses) that people say.  It displays them on a web page for later reference.  I spend time in #infoanarchy on the freenode network (freenode.org) where someone runs a chump bot whose output is visible here: &lt;a class=&#34;reference external&#34; href=&#34;http://peerfear.org/chump/&#34;&gt;http://peerfear.org/chump/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;A wiki is website anyone can edit.  Every page has an edit button on the bottom which anyone can press to edit the page.  They grow organically and are great for group collaboration.  Some friends and I set one up and track plan most of our group activities using it.  The most famous wiki is &lt;a class=&#34;reference external&#34; href=&#34;http://c2.com/cgi-bin/wiki?WikiWikiWeb&#34;&gt;http://c2.com/cgi-bin/wiki?WikiWikiWeb&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Hand Scanner</title>
      <link>https://ry4an.org/unblog/post/2003-07-07/</link>
      <pubDate>Mon, 07 Jul 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-07-07/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Some friends and I just threw a huge party with a Dystopian future theme.  I wanted to have a hand scanner at the door because biometrics scare the hell out of me.  I started out with grand plans involving laptops and real scanners and all sorts of things like that, but as time drew short I resorted to trickery.&lt;/p&gt;&#xA;&lt;p&gt;We ended up with a stainless steel cylinder (trash can).  Atop it was supposed to be a black glass sheet against which palms could be pressed, but I accidentally shattered that while working on it the night before the party.  I ended up using some black foam core board with a white palm on it that looked okay.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Mailman Non-Subscriber Message Auto-Rejector</title>
      <link>https://ry4an.org/unblog/post/2003-06-22/</link>
      <pubDate>Sun, 22 Jun 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-06-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I run a lot of mailing lists on mailman, &lt;a class=&#34;reference external&#34; href=&#34;http://www.list.org/&#34;&gt;http://www.list.org/&lt;/a&gt;, servers. Most all of these lists are configured so that only list subscribers are allowed to post messages.  I do this because these lists get a lot of spam messages that I don&#39;t want to get through to all subscribers.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, when a non-subscriber posts they&#39;re not automatically rebuffed, but instead I, as the mailing list administrator, get an email asking if I want to approve their message anyway.  If I don&#39;t answer that question I get get a reminder every 24 hours.  The reminders can be turned off, but there are some of mailman&#39;s questions that I do want to have brought to my attention (ex: subscribed posters who have exceeded maximum message size, etc.).&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Last Surveillance Camera Post</title>
      <link>https://ry4an.org/unblog/post/2003-06-18/</link>
      <pubDate>Wed, 18 Jun 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-06-18/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I got permission from Derek Tonn at tonnhaus design to use his map on the site, and I got the new site fully setup at &lt;a class=&#34;reference external&#34; href=&#34;http://mpls-watched.org&#34;&gt;http://mpls-watched.org&lt;/a&gt;. With all that done I figured it was time to send out press released and fired them off to the Strib, City Pages, Rake and Skyway News.  Who knows, maybe one of &#39;em will run something.&lt;/p&gt;&#xA;&lt;p&gt;When I wasn&#39;t sure if I&#39;d be able to use the tonnhaus map, I was trying to figure out ways to make my gathered location data still useful.  As mentioned I took some GPS points to test the theory that the map was to scale.  I then marked those same four points on the tonnhaus map and calculated the X and Y pixel/degree ratios for each of the six ( (4-1)! ) runs.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Surveillance Camera Website</title>
      <link>https://ry4an.org/unblog/post/2003-06-15/</link>
      <pubDate>Sun, 15 Jun 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-06-15/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;It took most of a weekend to do it, but there&#39;s now a nice website for the Minneapolis Surveillance Camera Project at &lt;a class=&#34;reference external&#34; href=&#34;http://sarinity.com&#34;&gt;http://sarinity.com&lt;/a&gt; . I&#39;ll be moving it to its own domain eventually, but that&#39;ll be a week or so.&lt;/p&gt;&#xA;&lt;p&gt;The look is entirely owed to the Open Source Web Design site, &lt;a class=&#34;reference external&#34; href=&#34;http://oswd.org&#34;&gt;http://oswd.org&lt;/a&gt;.  I love being able to just go snarf a well coded template for a new project.  Those people are doing a real service.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Surveillance Camera Reporting</title>
      <link>https://ry4an.org/unblog/post/2003-06-13/</link>
      <pubDate>Fri, 13 Jun 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-06-13/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I got the surveillance camera location reporting stuff working tonight. It&#39;s amazing how easy Perl&#39;s CGI.pm can make stupid little web input forms.  I&#39;m sure I&#39;ll think of some other fields that I want in the data before this thing goes live, but for now this should do nicely: &lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/surveillance/report/&#34;&gt;https://ry4an.org/surveillance/report/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The map I&#39;m using is nice, but doesn&#39;t include all of downtown, and I still haven&#39;t heard back from its creators about getting permission to use it.  Since I might have to change maps in the future (or might want to expand project scope) I&#39;m hoping to store the camera locations as GPS coordinates rather than as useless pixel locations.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Minneapolis Surveillance Camera Project</title>
      <link>https://ry4an.org/unblog/post/2003-06-12/</link>
      <pubDate>Thu, 12 Jun 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-06-12/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Target Corporation is donating a quarter million dollars to the city of Minneapolis, which city council rapidly accepted, to install 30+ police monitored security cameras.  I&#39;m not able to articulate why stuff like this scares me as much as it does, but I just get a queasy feeling when I think of government surveillance of the citizenry.&lt;/p&gt;&#xA;&lt;p&gt;The ACLU has found that police cameras do not yield any significant reduction in crime, and there are many documented instances where police cameras have been used to illegally and inappropriately infringe on the privacy rights of citizens.  That said, I think keeping camera counts down is a losing battle.  Most people just can&#39;t get worked up about privacy rights in general and security cameras specifically.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Symlink Re-Creator</title>
      <link>https://ry4an.org/unblog/post/2003-06-08/</link>
      <pubDate>Sun, 08 Jun 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-06-08/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;At Onion Networks our CVS repository has a lot of symlinks that need to exist within it for builds to work.  Unfortunately, CVS doesn&#39;t support symbolic links.  Both subversion and metacvs support symbolic links but neither of those are sufficiently ready for our needs, so we&#39;re stuck with creating links manually in each new CVS checkout.&lt;/p&gt;&#xA;&lt;p&gt;Sick of creating links by hand, I decided to write a quick shell script that creates a new shell script that recreates the symlinks in the current directory and below.  A year or two ago I would have done this in Perl.  I love Perl and I think it gets an undeserved bad wrap, but I find I&#39;m doing little one-off scripts in straight shell (well bash) lately as others are more inclined to try them out that way.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Road Rage Races</title>
      <link>https://ry4an.org/unblog/post/2003-04-22/</link>
      <pubDate>Tue, 22 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-22/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Road Rage Races are an idea I came up with a few years back that I&#39;m trying to resurrect.  I&#39;ve updated the website (&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/rrr&#34;&gt;https://ry4an.org/rrr&lt;/a&gt;), and tacked on a new tag line: &amp;quot;Light travels at 299,792,460 m/s. Immaturity travels at 5 mph.&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;In a Road Rage Race the competitors start out in a centrally located parking lot in the Twin Cities area.  They then race to one of five previously agreed upon destinations selected randomly at the time of the race start.  The hitch being that this is done during the height of the evening rush hour keeping top speed in the 10 to 20 mph range.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>False Point Filtering on the Mimio</title>
      <link>https://ry4an.org/unblog/post/2003-04-21/</link>
      <pubDate>Mon, 21 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-21/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;m trying not to have all the projects and ideas posted to this list be computer related, but I guess that&#39;s where I expend most of my creative energy.  I bought a Mimio electronic white board (&lt;a class=&#34;reference external&#34; href=&#34;http://mimio.com&#34;&gt;http://mimio.com&lt;/a&gt;) cheap on eBay ($40), and while the Windows software for it is reported to be quite good, the Linux software options ranged from vapor to unusable.  I did, however, find some Perl code that handled protocol parsing (the tedious part), so I started with that.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Jump to New Feeds in Amphetadesk</title>
      <link>https://ry4an.org/unblog/post/2003-04-17/</link>
      <pubDate>Thu, 17 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-17/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Amphetadesk (&lt;a class=&#34;reference external&#34; href=&#34;http://www.disobey.com/amphetadesk/&#34;&gt;http://www.disobey.com/amphetadesk/&lt;/a&gt;) is a great RSS feed reader.  I use it to track 20 or so different news sources a day. However, I mostly subscribe to feeds that include copious content, and once I determine there are no new entries on a feed I still have to scroll down fifteen screens worth of old content to see the top of the next feed.&lt;/p&gt;&#xA;&lt;p&gt;To speed the process I make a quick 5 minute template hack that provides a &amp;quot;jump to next&amp;quot; link in the title banner of each entry and a   corresponding anchor in each title.  Since the jump link is always in the same place relative to the start of each new feed listing, I&#39;m able leave the mouse in one place and check the top of each feed w/ just a series of clicks.  Like I said handy, but trivial.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Half Baked Ideas I&#39;ve Had</title>
      <link>https://ry4an.org/unblog/post/2003-04-16/</link>
      <pubDate>Wed, 16 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-16/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Half Bakery (&lt;a class=&#34;reference external&#34; href=&#34;http://halfbakery.com&#34;&gt;http://halfbakery.com&lt;/a&gt;) is a website where people can post poorly thought out ideas so they can be commented on, criticized, and (occasionally) praised by total (and generally snarky) strangers.  It&#39;s a clique-y place that&#39;s often unkind to new arrivals, but I was lucky enough to get generally favorable reviews for a few of the ideas I&#39;ve posted there.  Here are a some of the entries I&#39;ve created there in the past.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Perseverance as Measured with Google Hits</title>
      <link>https://ry4an.org/unblog/post/2003-04-15/</link>
      <pubDate>Tue, 15 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-15/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I was eating outside a few weeks ago and saw a sign for the 2nd Annual Cabanna Boy Contest at a local bar. I wisely decided not to enter the contest, but then started to wonder if they had called their first one the 1st Annual Cabanna Boy Contest. That&#39;s pretty optimistic. I then started wondering how likely it is that a 1st Annual leads to a 2nd Annual to a 3rd Annual. Being a modern geek I figured google would know the answer if I asked right.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Text to Speech Tuning with a Polygraph</title>
      <link>https://ry4an.org/unblog/post/2003-04-14/</link>
      <pubDate>Mon, 14 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-14/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;Text to speech programs do okay on words they know, but on longer words not in their &#39;dictionary&#39; they have to sound them out phonetically which seems to be a really hit or miss operation.  I wonder if one could hook up text to speech software and a polygraph sensor together to monitor the listeners reaction to the words being read.&lt;/p&gt;&#xA;&lt;p&gt;I know I cringe when I hear something mis-pronounced and surely something in my mental wince is externally measurable.  If the software detected a negative reaction to the way it pronounced a word it could try an alternate pronunciation the next time.  Granted it would be a highly iterative process -- requiring many listeners for a each text sample so that the most-favorable response for each word can be found, but how many people listened to Harry Potter as a book on tape.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Blogging 1990s Style</title>
      <link>https://ry4an.org/unblog/post/2003-04-13/</link>
      <pubDate>Sun, 13 Apr 2003 01:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/post/2003-04-13/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My good friends Luke (&lt;a class=&#34;reference external&#34; href=&#34;http://justlooking.recursion.org/&#34;&gt;http://justlooking.recursion.org/&lt;/a&gt;) and Gabe (&lt;a class=&#34;reference external&#34; href=&#34;http://twol.dopp.net/&#34;&gt;http://twol.dopp.net/&lt;/a&gt;) are working on a project that archives mailings lists to blogging software.  Essentially something that subscribes to lists and gateways to posts in a blog.  I politely told them the idea didn&#39;t make sense to me and instead advocated just putting a blog-look onto existing mailing list software.  This is my attempt to put my money where my mouth is.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>404</title>
      <link>https://ry4an.org/unblog/404/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/404/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The page that you&#39;ve requested doesn&#39;t exist or wasn&#39;t found.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>410 Gone</title>
      <link>https://ry4an.org/unblog/gone/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/gone/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;The page you&#39;re trying to reach&#xA;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/ancient-content/&#34;&gt;has been intentionally removed&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://ry4an.org/unblog/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/about/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;I&#39;ve had a public online life since 1996, earlier if you count my WWIV BBS, and&#xA;this site is the latest iteration.  It brings together all my blog entries since&#xA;2003 and whatever old content is still relevant.  Of course, a great deal of my&#xA;online life exists on other sites, listed below, but I try to keep anything&#xA;substantial here.&lt;/p&gt;&#xA;&lt;p&gt;If there&#39;s anything in my life that passes as a FAQ, it&#39;s the four in my name.&#xA;Covering the standard questions: It&#39;s not a typo. It is legal, and it&#39;s silent&#xA;when pronounced.  I added the four 30 years ago for what seemed like good&#xA;reasons at the time.  I&#39;m still quite fond of it even if it does make every&#xA;aspect of my life very easy to Google.  Besides, if I thought about changing&#xA;back I&#39;d have a tattoo to remove.&lt;/p&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Resume</title>
      <link>https://ry4an.org/unblog/resume/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ry4an.org/unblog/resume/</guid>
      <description>&lt;div class=&#34;document&#34;&gt;&#xA;&#xA;&#xA;&lt;p&gt;My resume is available in three different formats, all identical.&lt;/p&gt;&#xA;&lt;p&gt;Please do not distribute this resume without first asking me.  I am not&#xA;interested in positions that require a MS Word version.&lt;/p&gt;&#xA;&lt;ul class=&#34;simple&#34;&gt;&#xA;&lt;li&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/resume/resume.html&#34;&gt;HTML version&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/resume/resume.pdf&#34;&gt;PDF version&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/resume/resume.txt&#34;&gt;Text version&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;reference external&#34; href=&#34;https://ry4an.org/unblog/post/restructuredtext_resume/&#34;&gt;The making of this resume&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
