<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>mark shroyer, dot com</title>
        <link>http://markshroyer.com/</link>
        <description></description>
        <language>en</language>
        <copyright>Copyright 2008</copyright>
        <lastBuildDate>Wed, 02 Jul 2008 23:52:58 -0500</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Patch for segfault in OpenBSD 4.3&apos;s pfctl</title>
            <description><![CDATA[<p>A couple of months ago, I upgraded an old PowerPC machine from OpenBSD 4.2 to 4.3, and I discovered that the new version of <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=pfctl&amp;apropos=0&amp;sektion=0&amp;manpath=OpenBSD+4.3&amp;arch=macppc&amp;format=html">pfctl</a> in 4.3 would segfault when reading my old pf.conf file.  Some brief poking around with GDB revealed the root of the problem, an uninitialized variable in the new configuration file parser.</p>

<p>If you've been bitten by this as well, here's a patch with the minor change that solved the problem for me:</p>

<pre>
--- sbin/pfctl/parse.y  Sat Feb 23 15:31:08 2008                                          
+++ sbin/pfctl/parse.y  Thu May 15 08:55:38 2008                                          
@@ -3487,9 +3487,11 @@                                                                    

 qname          : QUEUE STRING                          {                                 
                        $$.qname = $2;                                                    
+                       $$.pqname = NULL;                                                 
                }                                                                         
                | QUEUE '(' STRING ')'                  {                                 
                        $$.qname = $3;                                                    
+                       $$.pqname = NULL;                                                 
                }                                                                         
                | QUEUE '(' STRING comma STRING ')'     {                                 
                        $$.qname = $3;
</pre>

<p>To apply this patch, perform the following (assuming that you have the OpenBSD 4.3 source code tree at <code>/usr/src</code> on your system):</p>

<pre>
# cd /usr/src
# patch -p0 &lt;/path/to/above/patch
# cd sbin/pfctl
# make && make install
</pre>

<p>My ISP blocks outbound SMTP traffic, unfortunately, and I didn't feel like setting up Sendmail relaying just so I could submit a sendbug report, so I couldn't open a ticket for the bug.  I did send this patch to the bugs@ mailing list, but it was unable to generate any interest there; if someone stumbles across this who has a functional sendbug on their system, I'd be grateful if you could submit this patch in a proper bug report.</p>

<p>The segmentation fault doesn't occur on the i386 port of OpenBSD (as far as I can tell), nor does it occur on the macppc port unless you use the "<code>queue ( qname, pqname )</code>" ALTQ syntax, so it's easy to see why the hordes aren't exactly beating down the OpenBSD folks' doors about this one.  So I figured I should post this here, where people might find it, until someone gets around to committing an official fix.</p>
]]></description>
            <link>http://markshroyer.com/blog/2008/07/patch-for-segfault-in-openbsd.html</link>
            <guid>http://markshroyer.com/blog/2008/07/patch-for-segfault-in-openbsd.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Unix</category>
            
            
            <pubDate>Wed, 02 Jul 2008 23:52:58 -0500</pubDate>
        </item>
        
        <item>
            <title>Opera 9.50</title>
            <description><![CDATA[<p>I finally got around to trying the Linux version of <a href="http://www.opera.com/">Opera 9.50</a>, the newest version of the Opera web browser.  Here's what I think of it after a couple weeks of using Opera 9.50 as my main web browser, particularly how it compares to Firefox 3.0.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="opera.png" src="http://markshroyer.com/assets/2008/07/01/opera.png" width="450" height="358" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></p>

<p>Things I like in the latest Opera:</p>

<ul>
<li>Tab management, particularly the "Create Follower Tab" feature: You can make a new tab in which any links from the current tab will be automatically opened.  This can be great for reading the news.</li>
<li>Site preferences: Manage cookie, JavaScript, and other preferences on a site-by-site basis from a single location.</li>
<li>The new rendering engine has better CSS compliance than Firefox, and it seems to handle poorly-designed sites with much greater grace than in previous versions of Opera.</li>
<li>Plugins such as Adobe Flash appear to be handled using a child process and IPC, making the browser resilient against Flash crashes.  This can be done with Firefox too, but it requires the separate <code>nspluginwrapper</code> program, which isn't installed by default on 32-bit versions of Ubuntu.</li>
</ul>

<p>Things that I still prefer about Firefox 3.0:</p>

<ul>
<li>I initially loathed it, but the <a href="http://www.dria.org/wordpress/archives/2008/04/17/628/">Awesome Bar</a> has really grown on me.  I miss it when I'm in Opera.</li>
<li>Firefox automatically scales large images to fit within your browser window; if there's an option to do this in Opera, I haven't been able to find it.</li>
<li>Firefox offers spell-as-you-type spell checking in text entry fields, whereas Opera (on Linux, anyway) only provides a "click here to check spelling" type of functionality.</li>
<li>Firefox lets you preview RSS and Atom feeds before subscribing to them.</li>
<li>Extensions: In some shape or form, Opera can perform the basic functionality provided by Firefox's NoScript, Cookie Monster, Firebug, and Foxmarks extensions, but cannot match these addons' full feature sets.  Other Firefox addons, such as Live HTTP Headers, Adblock Plus, Unplug, and CustomizeGoogle, appear to have no analogues in Opera.</li>
<li>Opera does not obey your local QT theme for the positioning of its scrollbar buttons, so you can't easily use NeXT-style scrollbar buttons in Opera on Linux.  (Firefox 3.0 obeys your GTK+ settings in this regard.)</li>
<li>Opera's stability has gotten much, much better since 9.26 and the 9.50 betas, but it still crashes every so often.  Meanwhile, Firefox 3.0 has yet to fail me.</li>
</ul>

<p>So that's my little mini-review.  If you haven't given Opera a try yet, now would be a great time to do so.  But if features and flexibility are of the utmost importance to you, you'll probably end up sticking with Firefox.</p>
]]></description>
            <link>http://markshroyer.com/blog/2008/07/opera-950.html</link>
            <guid>http://markshroyer.com/blog/2008/07/opera-950.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Computers</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
            <pubDate>Tue, 01 Jul 2008 09:07:12 -0500</pubDate>
        </item>
        
        <item>
            <title>UF Weather Report Widget Thingy</title>
            <description><![CDATA[<p>I've tired of manually pointing my browser at <a href="http://www.phys.ufl.edu/weather/">http://www.phys.ufl.edu/weather/</a> each time I want to check the conditions on campus, so I made a small widget to bring the campus weather report to my <a href="http://www.netvibes.com/">NetVibes</a> home page:</p>

<div style="text-align: center;">
<a href="http://markshroyer.com/code/uwa/uf-weather/widget.xhtml"><img src="/code/uwa/uf-weather/widget-demo.png" alt="UF Weather widget screenshot" /></a>
</div>

<p>Fellow Gators can use this widget too &ndash; just <a href="http://www.netvibes.com/subscribe.php?module=UWA&amp;moduleUrl=http%3A%2F%2Fmarkshroyer.com%2Fcode%2Fuwa%2Fuf-weather%2Fwidget.xhtml">click here</a> to add it to your NetVibes home page, or <a href="http://www.google.com/ig/add?moduleurl=http%3A%2F%2Fwww.netvibes.com%2Fapi%2Fuwa%2Fcompile%2Fgoogle.php%3FmoduleUrl%3Dhttp%253A%252F%252Fmarkshroyer.com%252Fcode%252Fuwa%252Fuf-weather%252Fwidget.xhtml">here</a> to add it to iGoogle.  Or copy the widget's URL to manually add it to any other UWA-aware application:</p>

<p><a href="http://markshroyer.com/code/uwa/uf-weather/widget.xhtml">http://markshroyer.com/code/uwa/uf-weather/widget.xhtml</a></p>
]]></description>
            <link>http://markshroyer.com/blog/2008/06/uf-weather-report-widget-1.html</link>
            <guid>http://markshroyer.com/blog/2008/06/uf-weather-report-widget-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
            <pubDate>Tue, 03 Jun 2008 20:28:43 -0500</pubDate>
        </item>
        
        <item>
            <title>MacGyver movie!</title>
            <description><![CDATA[<p>I've been waiting for this since I was a kid: <a href="http://gizmodo.com/386877/holy-crap-macgyver-blockbuster-film-coming">MacGyver is headed for the theater!</a>  And better yet, the show's original creator, Lee David Zlotoff, has obtained the movie rights and will be in control of the film.  This is going to be amazing.</p>

<p>I have to assume right off the bat that Richard Dean Anderson will be reprising the role of Angus MacGyver... just don't skimp on the mullet, ok guys?</p>
]]></description>
            <link>http://markshroyer.com/blog/2008/05/macgyver-movie.html</link>
            <guid>http://markshroyer.com/blog/2008/05/macgyver-movie.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">film</category>
            
            <pubDate>Sat, 03 May 2008 23:36:02 -0500</pubDate>
        </item>
        
        <item>
            <title>Brush fire</title>
            <description><![CDATA[<p>Returning home from an errand today, I was driving north on Tower Road when I saw a faint gray wispy thing growing above the sidewalk, next to one of the residential lots along the street.  I smelled burning wood through my open car windows.  "Strange time of day to be having a bonfire," I thought.  "And that's a really bad spot for a fire, too: it's way too close to that brush and those pine trees.  In fact, if I didn't know better I'd think... oh."</p>

<p>It took a moment, in the heavy afternoon traffic, to make the two illegal U-turns needed to get back to what I now recognized as a small brush fire. By the time I arrived, a lady in a Dodge pickup had pulled up along the property too, and she was already on the phone with the fire department.  (One of the causes of my hesitation was the fact that so many other people were driving by the smoke without stopping or even seeming to notice: one of those degenerate cases of human behavior that can prove highly amusing when it can be appreciated outside the context of imminent property loss.)  I climbed over the chicken-wire fence and into the yard (those "Beware of Dog" signs are just for show, right?) and began clearing unspent leaves and branches away from the flames while said lady talked to the dispatcher.</p>

<p>Once Truck Lady got off the phone she ran up to the house to see if anyone was home; there was no answer at the door, but she did spot a garden hose attached to the side which looked long enough to reach the fire.  I pulled it across the yard and drowned the flames.</p>

<p>At this point the homeowner finally stepped outside: an elderly yet lively woman with a cast on her right leg.  She thanked us both profusely for doing our part to put out the fire.  My first thought was that this was a generous but silly reaction: of course we would stop and help; what kind of people would that make us, if we ignored the smoke and kept on driving?  But then I recalled all those other cars on Tower Road, their drivers unmoved by the smoke, through which I had weaved as I committed my particular egregious moving violation of the day.  And I realized that the reason these people kept going was (probably, for the most part) not some appalling moral failing, or really even laziness: they merely assumed that Someone Had It Covered, just as I nearly did.  And what better evidence that the situation was already under control, than the fact that nobody seemed to be reacting to it?</p>

<p>At the risk of being overtly moralistic (wait, when has that ever stopped me?), it really is an object lesson in initiative.  Or maybe not initiative, but something like that... autonomy might be a better word for it.  It's so easy &ndash; for me, anyway &ndash; to let the behavior of others dictate situational norms.  I guess that's a large part of what makes us human, but it can also be a hindrance to doing what's right or necessary.  Learning how to overcome this, and when it is necessary to overcome this, is important.</p>

<p>Anyhow, Truck Lady went on her way, and I watched over the soaked heap of branches and stray wind-blown leaves with the homeowner until the fire department's brush fire truck, whose sirens we could already hear, finally arrived.  She and I mulled over what could have ignited this; Truck Lady's guess of a stray cigarette seemed the most likely, despite the fire's distance from the road.  (As though I needed to really cement my hatred of smokers who toss cigarette butts out their car windows.)  I showed the real firefighters to the ex-fire and then I went along my way, satisfied to have discovered that my own firefighting skills do not completely suck.</p>]]></description>
            <link>http://markshroyer.com/blog/2008/04/mark-shroyer-brush-fireman.html</link>
            <guid>http://markshroyer.com/blog/2008/04/mark-shroyer-brush-fireman.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Life</category>
            
            
            <pubDate>Fri, 25 Apr 2008 20:02:49 -0500</pubDate>
        </item>
        
        <item>
            <title>Movable Type</title>
            <description><![CDATA[<p>I finally tired of WordPress eating up memory on my humble VPS that I'd really rather have for my email server and other things, so I tossed it (along with its requisite overkill DBMS back-end, MySQL) out the window in favor of Movable Type static publishing, with the Lighttpd web server and SQLite at the back-end.  It was easy enough to scrape together my own template set, and so far I haven't looked back... for this sort of thing, Movable Type &gt; WordPress by a long shot.</p>

<p>I'm having a bit of trouble importing the old WordPress entries, however.  If you got here because you found an old post of mine on a search engine, sorry; if it is any consolation whatsoever, most of that stuff was crap.</p>
]]></description>
            <link>http://markshroyer.com/blog/2008/04/movable-type.html</link>
            <guid>http://markshroyer.com/blog/2008/04/movable-type.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web</category>
            
            
            <pubDate>Fri, 25 Apr 2008 01:14:49 -0500</pubDate>
        </item>
        
        <item>
            <title>ISC DHCPD status report generator</title>
            <description><![CDATA[<p>After setting up my apartment's OpenBSD based network, I decided it would be handy to have a simple report generator to describe active DHCPD leases. I also wanted to brush up on Perl a bit. <a href="/files/dhcpd-report.pl">This Perl script</a> is the natural result of such circumstances.</p>

<p>Run dhcpd-report.pl to generate a plaintext or HTML report of current leases in the DHCPD lease database and reservations in <code>dhcpd.conf</code>. In my usage, I have the script set to run once every five minutes in a cron job, sending output to an HTML file in a web server document root. (On OpenBSD, httpd runs in a chroot jail; if I were to run this script as CGI it wouldn't have direct access to the DHCPD configuration files.) Thus the script can be used to give you a reasonably up to date web page displaying your network's DHCP clients.</p>

<p>By default, the program looks for <code>dhcpd.leases</code> and <code>dhcpd.conf</code> in <code>/var/db/</code> and <code>/etc/</code>, respectively, which are these files' locations in OpenBSD 4.1.  If needed, you can change where the script looks for these files by modifying a pair of constants near the top of the main program.</p>

<p>dhcpd-report.pl requires the <a href="http://search.cpan.org/~gbarr/TimeDate-1.16/lib/Date/Format.pm">Date::Format</a> and <a href="http://search.cpan.org/~gbarr/TimeDate-1.16/lib/Date/Parse.pm">Date::Parse</a> modules from CPAN. See the POD documentation<sup>*</sup> for more info.</p>

<p>Download: <a href="/files/dhcpd-report.pl">dhcpd-report.pl</a></p>

<div class="footnotes">
<hr />
<p><sup>*</sup>Sort of like an ATM machine or a PIN number...</p>
</div>
]]></description>
            <link>http://markshroyer.com/blog/2007/09/isc-dhcpd-status-report-generator.html</link>
            <guid>http://markshroyer.com/blog/2007/09/isc-dhcpd-status-report-generator.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Unix</category>
            
            
            <pubDate>Tue, 18 Sep 2007 15:46:54 -0500</pubDate>
        </item>
        
        <item>
            <title>Pale blue dot</title>
            <description><![CDATA[<p>I just found an excellent video mash-up of Carl Sagan's narration of part of his book <i>Pale Blue Dot</i>, inspired by the famous Voyager 1 photograph of the Earth from halfway across our solar system:</p>

<div style="text-align: center; margin-left: auto; margin-right: auto;"><object style="width:425px; height: 350px;" data="http://www.youtube.com/v/2pfwY2TNehw"><param name="movie" value="http://www.youtube.com/v/2pfwY2TNehw" /><param name="wmode" value="transparent" /></object></div>

<p>Courtesy <a href="http://palebluefilms.com/?p=11">palebluefilms.com</a>.</p>]]></description>
            <link>http://markshroyer.com/blog/2007/06/pale-blue-dot.html</link>
            <guid>http://markshroyer.com/blog/2007/06/pale-blue-dot.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Science</category>
            
            
            <pubDate>Mon, 11 Jun 2007 22:59:15 -0500</pubDate>
        </item>
        
        <item>
            <title>Exporting AddressBook birthdays to Remind</title>
            <description><![CDATA[<p>I always thought I was a bit of an oddball for choosing the ancient scheduler Remind as my favorite OS X calendar software. But as it turns out, <a href="http://www.43folders.com/2005/02/24/guest-mike-harris-looks-at-remind/">I'm not quite as alone</a> as I had assumed. I guess OS X is a bigger draw to Unix geeks than I realized.</p>

<p>So I've decided to publish a tool that I wrote a few months back, a simple little Objective-C command line application that reads the birthdays of all your OS X AddressBook contacts and outputs them in <code>.reminders</code> format.</p>

<p>The source code bundle is <a href="/code/osx/remind_birthdays/">here</a>. After installation, see the manpage <code>remind_birthdays(1)</code> for documentation.</p>]]></description>
            <link>http://markshroyer.com/blog/2007/05/exporting-addressbook-birthdays-to-remind.html</link>
            <guid>http://markshroyer.com/blog/2007/05/exporting-addressbook-birthdays-to-remind.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Macintosh</category>
            
            
            <pubDate>Sun, 20 May 2007 12:06:40 -0500</pubDate>
        </item>
        
        <item>
            <title>halfdim</title>
            <description><![CDATA[<p>It seems to be a <a href="http://www.macintouch.com/readerreports/imacintel/topic3844.html#feb27">commonly experienced problem</a> with the Intel rendition of OS X 10.4 that some power management settings, such as the <code>halfdim</code> pmset parameter (a.k.a., "automatically reduce the brightness of the display before display sleep") may be reset when the system boots. Since I started <a href="http://markshroyer.com/blog/2007/02/03/vista/">dual-booting Vista</a> my reboots have increased from about once a week to a few times a day, so I decided to tackle this annoying little bug with a StartupItem.</p>

<p>Here's how to do it. First, make a directory named <code>PMSetManager</code> in <code>/Library/StartupItems</code>. Create two files in this new directory, <code>StartupParameters.plist</code> and <code>PMSetManager</code>, with the specified contents.</p>

<p><code>/Library/StartupItems/PMSetManager/StartupParameters.plist</code>:</p>

<pre class="code">
{
    Description = "PMSetManager";
    OrderPreference = "Late";
    Provides = ("PMSetManager");
    Message =
    {
        start = "Starting pmset manager";
        stop = "Stopping pmset manager";
    };
}
</pre>

<p><code>/Library/StartupItems/PMSetManager/PMSetManager</code>:</p>

<pre class="code">
#!/bin/sh

# pmset manager
#
# Resets the 'halfdim' pmset parameter to false
# on reboot, in order to counteract what appears
# to be a bug on OS X 10.4.

. /etc/rc.common

StartService ()
{
    if [ "${PMSETMANAGER:=-NO-}" = "-YES-" ]
    then
        ConsoleMessage "Starting pmset manager"
        pmset -a halfdim 0
    fi
}

StopService ()
{
    ConsoleMessage "Stopping pmset manager"
}

RestartService ()
{
    StopService
    StartService
}

RunService "$1"
</pre>

<p>(The <code>pmset</code> command in this script can do more than just disable display dimming, if you like. See `<code>man 1 pmset</code>` for all your options.)</p>

<p>Next, make the <code>PMSetManager</code> script executable:</p>

<pre>
$ sudo chmod +x /Library/StartupItems/PMSetManager/PMSetManager
</pre>

<p>And finally, append "<code>PMSETMANAGER=-YES-</code>" to <code>/etc/hostconfig</code> in order to enable your new StartupItem. Now congratulate yourself for no longer needing to run System Preferences to get rid of that pesky dimming option every time you log in, and you're good to go.</p>]]></description>
            <link>http://markshroyer.com/blog/2007/02/halfdim.html</link>
            <guid>http://markshroyer.com/blog/2007/02/halfdim.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Macintosh</category>
            
            
            <pubDate>Wed, 07 Feb 2007 09:41:54 -0500</pubDate>
        </item>
        
        <item>
            <title>Vista</title>
            <description><![CDATA[<p>The University&#8217;s software licensing program proudly furnishes UF engineering students with Microsoft&#8217;s latest-and-greatest (with the notable exception of cash cow Microsoft Office). As of Wednesday, latest-and-greatest meant Windows Vista Business Edition*, so I decided to download it and, with the help of Boot Camp, give it a run on my iMac. Here are my notes and impressions, in no particular order:</p>
<ul>

<li>It&#8217;s faster than I expected. It takes almost twice as long as OS X to boot, but programs (subjectively) seem to start more quickly.</li>
<li>The new user interface is nice. I still prefer Exposé to Flip3D, but things such as real-time previews of taskbar items and a hardware-accelerated UI make this the first version of Windows that I actually feel comfortable while using.</li>
<li>User Account Control is a mess. Some operations, such as touching a file in <code>C:\Program Files\</code>, require you to confirm your intent twice &ndash; once for UAC, and once again for what appears to be some manifestation of Windows Security Center. Talk about the left hand not knowing what the right is doing.</li>
<li>AutoPlay finally asks for your confirmation before automatically executing whatever program or virus might be on that CD you just stuck in your computer. A small touch, but this one&#8217;s been a long time coming.</li>
<li>Data Execution Prevention (NX bit support) is enabled by default for the operating system, and optionally for the rest of your programs as well. This didn&#8217;t seem to cause any problems with the relatively small set of software that I&#8217;ve installed so far. Apple needs to bring this feature to OS X as soon as possible.</li>
<li>The whole system seems quite a bit less naggy than XP was about activating your OS and so on. Granted, &#8220;less naggy than XP&#8221; might not be saying much, but it goes a long way to improve the overall user experience.</li>

<li>It isn&#8217;t entirely stable. The whole system locked up on me three times while I attempted to install (the admittedly not-entirely-Vista-ready, but-whose-fault-is-that) Microsoft Visual Studio 2005. That shouldn&#8217;t happen.</li>
</ul>
<p>Aside from DRM issues, Vista really is a solid improvement over XP. In particular (and I&#8217;ll probably get burned at the stake for saying this), Vista is interesting because it may represent the first time in PC history that Microsoft Windows is, on paper but probably not in practice, on par with or better than the most prominent &#8220;alternative&#8221; desktop operating systems in terms of security against remote attack. I would really like to see OS X pick up heap-side support for the NX bit to complement the protection already in place against stack overrun attacks, and both OS X and the most popular Linux distributions integrate an analogue to Vista&#8217;s OpenBSD-inspired address space layout randomization.</p>
<p>However, despite the extended Beta stage Windows Vista still doesn&#8217;t have the feel of a finished product. Things like the quirkiness of UAC and possible stability issues (not to mention the lack of an entirely Vista-ready version of Visual Studio) make me recommend that anyone who relies on Windows as a primary operating system hold back from upgrading just yet, at least until the first service pack rolls around the corner. As history shows, one can never be too cautious with a first-iteration Microsoft product.</p>
<p class="footnote">*Too bad they couldn&#8217;t spring for Microsoft Windows Vista Ultimate Upgrade Limited Numbered Signature Edition. <a href="http://en.wikipedia.org/wiki/Windows_vista#Editions_and_pricing">Yes, it&#8217;s real.</a></p>
]]></description>
            <link>http://markshroyer.com/blog/2007/02/vista.html</link>
            <guid>http://markshroyer.com/blog/2007/02/vista.html</guid>
            
            
            <pubDate>Sat, 03 Feb 2007 19:41:26 -0500</pubDate>
        </item>
        
        <item>
            <title>Bill Amend is my hero</title>
            <description><![CDATA[<p>Thank you, Mr. Amend, for giving the dangers of electronic voting machines some <a href="http://images.ucomics.com/comics/ft/2006/ft061029.gif">much-needed press</a>.  The more people who are informed about such a frightening threat to our democratic process, the better.</p>
<p>In an attempt to convince a complacently skeptical public of just how much a problem that direct-recording electronic voting machines pose, Jon Stokes of Ars Technica has written a guide, <a href="http://arstechnica.com/articles/culture/evoting.ars">How to steal an election by hacking the vote</a>, which illustrates just how easy it is to hijack an election conducted entirely over electronic media.</p>
<p>If nothing else, watch <a href="http://itpolicy.princeton.edu/voting/">this video</a> by the security researchers at Princeton University&#8217;s Center for IT Policy, wherein researchers demonstrate how to load a malicious payload onto a Diebold voting machine in under one minute.  Come election day, this payload, a computer virus which spreads to other machines through normal memory card exchange, silently skews the vote toward its preferred candidate; these alterations are made untraceable by the fact that these voting machines provide users with no voter-verifiable paper trail.  Such a virus could even delete itself once the election has concluded, leaving behind no evidence within the machine itself.</p>

<p>In concluding his article, Mr. Stokes sums up the problem nicely:</p>
<ul>
<li>Bits and bytes are made to be manipulated; by turning votes into bits and bytes, we&#8217;ve made them orders of magnitude easier to manipulate during and after an election.</li>
<li>By rushing to merge our nation&#8217;s election infrastructure with our computing infrastructure, we have prematurely brought the fairly old and well-understood field of election security under the rubric of the new, rapidly evolving field of information security.</li>
<li>In order to have confidence in the results of a paperless DRE-based election, you must first have confidence in the personnel and security practices at these institutions: the board of elections, the DRE vendor, and third-party software vendor whose product is used on the DRE.</li>
<li>In the absence of the ability to conduct a meaningful audit, there is no discernable difference between DRE malfunction and deliberate tampering (either for the purpose of disenfranchisement or altering the vote record).</li>
</ul>
<p>Although researchers have been warning us of the dangers of direct electronic voting for a long time, by now it is too late to change this state of affairs before next month&#8217;s elections.  However, afterwards - if you are as troubled as I am about these challenges to the transparency and verifiability of our democratic process - contact your congresscritters and tell them to support <a href="http://www.verifiedvoting.org/article.php?list=type&#038;type=13">voter-verified paper record legislation</a>.</p>
]]></description>
            <link>http://markshroyer.com/blog/2006/10/bill-amend-is-my-hero.html</link>
            <guid>http://markshroyer.com/blog/2006/10/bill-amend-is-my-hero.html</guid>
            
            
            <pubDate>Sun, 29 Oct 2006 19:36:25 -0500</pubDate>
        </item>
        
        <item>
            <title>Apple battery recall</title>
            <description><![CDATA[<p>Probably to help ensure that <a href="http://www.macnotes.de/2006/08/18/explosions-gefahr-auch-bei-powerbook-akkus/">this</a> doesn&#8217;t happen to anyone else, Apple has decided to recall more than a million batteries shipped with its G4 iBook and PowerBook computers from October 2003 through 2006:</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="powerbookexplode_01.jpg" src="http://markshroyer.com/blog/2006/08/powerbookexplode_01.jpg" width="500" height="334" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>More information can be found <a href="http://support.apple.com/batteryprogram">on the Apple web site</a>.  On the positive side of this, at least I&#8217;m getting a fresh new battery for my two-year-old laptop&#8230;</p>
]]></description>
            <link>http://markshroyer.com/blog/2006/08/apple-battery-recall.html</link>
            <guid>http://markshroyer.com/blog/2006/08/apple-battery-recall.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Macintosh</category>
            
            
            <pubDate>Thu, 24 Aug 2006 15:53:00 -0500</pubDate>
        </item>
        
        <item>
            <title>A clean ABS speed sensor...</title>
            <description><![CDATA[<p>The ABS warning indicator in my Integra started lighting up this week.  Following the directions on <a href="http://www.team-integra.net/sections/articles/showArticle.asp?ArticleID=493">this forum</a>, I got the car to tell me that there seemed to be a problem with the rear, passenger-side ABS speed sensor.</p>
<p>In most ABS-equipped cars, there is a magnetic induction speed sensor at each wheel which allows the antilock controller to determine when a tire begins to slip under heavy braking.  But because these sensors contain magnets and are relatively exposed, they often collect metal brake filings and other junk that can obstruct their operation.  So, aside from interference due to Desiree&#8217;s magnificent aura (long story), the most likely explanation for my ABS troubles seemed to be that the sensor was just dirty.</p>
<p><span id="more-28"></span></p>
<p>For any other Integra owners out there, here&#8217;s a brief explanation of how to remove, inspect, and clean your rear ABS sensors.  It&#8217;s a pretty straightforward process, and all you will need are:</p>

<ul>
<li>a 10mm ratchet with short extension,</li>
<li>a rag or paper towel, and</li>
<li>a jack stand.</li>
</ul>
<p>Begin by raising your car onto the jack stand.  Remove the wheel in question.  On the front side of the hub, just behind the rotor, you&#8217;ll see a small, rectangular metal shield with three bolts in it.  Unscrew the bolts and pull off the shield.  You will now be able to see the sensor itself:</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="sensor-mounted.jpg" src="http://markshroyer.com/blog/2006/06/sensor-mounted.jpg" width="465" height="349" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
<p>Next, remove the two bolts directly holding the sensor in place, as well as the two bolts that attach the sensor cable to the car&#8217;s suspension.  The sensor should come out easily.</p>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="sensor.jpg" src="http://markshroyer.com/blog/2006/06/sensor.jpg" width="465" height="349" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
<p>Now wipe off any excess dirt and grime, then put it all back together.  My car hasn&#8217;t complained any more since I cleaned this sensor, and I couldn&#8217;t see any obvious damage to either it or the cable, so hopefully I won&#8217;t find myself spending $70 for a replacement somewhere down the road&#8230;</p>
]]></description>
            <link>http://markshroyer.com/blog/2006/06/a-clean-abs-speed-sensor.html</link>
            <guid>http://markshroyer.com/blog/2006/06/a-clean-abs-speed-sensor.html</guid>
            
            
            <pubDate>Thu, 29 Jun 2006 13:04:12 -0500</pubDate>
        </item>
        
    </channel>
</rss>
