<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>Nathan's Weblog   </title>
    <link>http://www.litech.org/~lutchann/weblog</link>
    <description>Yet another Blosxom weblog.</description>
    <language>en</language>

  <item>
    <title>Fame and Fortune!</title>
    <link>http://www.litech.org/~lutchann/weblog/2005/03/12#200503121324</link>
    <description>
&lt;p&gt;Ah, &lt;a href=&quot;http://www.plextor.com/english/news/press/LinuxPVR_pr.htm&quot;&gt;my
first press release&lt;/a&gt;.  This is the most attention anything I've done has
ever received.  Part of me wishes it was for something less mundane than
writing a driver for some off-the-shelf consumer hardware, but I guess I can't
complain.  It's not often that &lt;a
href=&quot;http://linux.slashdot.org/article.pl?sid=05/03/09/004227&amp;tid=137&amp;tid=129&amp;tid=186&amp;tid=163&amp;tid=8&amp;tid=106&quot;&gt;Slashdot
posts about driver releases&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What has been interesting is the response from the community that the press
exposure has generated.  Criticism that I was expecting&amp;mdash;lack of kernel
2.4 support, for example&amp;mdash;hasn't come up at all, and the response on
Slashdot was decidedly positive which is almost unheard-of.  The only
(reasonable) complaint so far, besides the missing features like VBI and PAL
which I'm planning to remedy anyway, is the price of the Plextor devices
compared to similar products.  The &quot;Plextor quality costs extra&quot; argument only
goes so far, especially considering that Lifeview and Georgia Tech are selling
substantially identical GO7007-based units for 25-50% less.&lt;/p&gt;

&lt;p&gt;Plextor has been kind enough to donate a TV402U to Isaac Richards, author
of MythTV, so maybe soon Myth will support these guys.  Ultimately, I'd like
to see ODMs develop self-contained PVRs running MythTV with WIS hardware
on-board, but we'll have to see.  For now, I'll be content to just get some
community support around the GO7007.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Lots of webcams</title>
    <link>http://www.litech.org/~lutchann/weblog/2005/02/17#200502171205</link>
    <description>
&lt;p&gt;&lt;a href=&quot;http://web.ics.purdue.edu/~nolandd/voyeurism.html&quot;&gt;Purdue is
apparently well-covered&lt;/a&gt;.  Really.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Some ideas on Spook</title>
    <link>http://www.litech.org/~lutchann/weblog/2005/02/08#200502080044</link>
    <description>
&lt;p&gt;I've just released the first new version of Spook in almost six months.
Embarrassing that I've let things go for so long, but at least all the
features that have been accumulating in private trees since then have
mostly been added.  The network-side code has been overhauled which not
only made things more efficient but paved the way for multiple media
streams in the same RTSP session.  Audio.  w00t.&lt;/p&gt;

&lt;p&gt;Since I started adding the audio support, the limitations and flaws in
the current stream implementation have been bothering me.  It kind of made
sense at first to declare &quot;the output from this grabber is named 'foo', and
the input to this encoder is named 'foo' and the output will be named
'bar',&quot; etc, but it's not only confusing but it prevents me from
implementing a number of more useful features.  It would be nice, for
example, to have Spook automatically open all the video and audio capture
devices it could get its hands on, compress them to some default reasonable
format, and put up a template webpage with a list of everything it found so
that the user could test out Spook without configuring anything at all.
Not possible if all capture and transformation actions have to be declared
explicitly.&lt;/p&gt;

&lt;p&gt;There's two major changes I'd like to make to the way Spook creates
media streams.  The first is to change the media compression and format
specification from an imperative form to a declarative form.  There's no
good reason (other than Unix tradition, I suppose) to force the user to
explicitly list the various filters and encoders and the order they should
be used, when all that's really necessary is for the user to specify the
desired end result.  &quot;I want a 320x240 384kbps MPEG4 stream&quot; is enough
information to set up the entire module pipeline automatically.  The main
problem that arises is getting all the nuances of each type of stream
correct&amp;mdash;providing two different streams, one of 30 fps and one of
10fps, can be done by dropping frames after compression with JPEG, but with
MPEG4 the frames must be dropped before they are encoded.&lt;/p&gt;

&lt;p&gt;The other change is to convert the stream namespace into a hierarchy
instead of using free-form strings.  This sounds minor, but it allows
modules to create new streams on the fly without causing confusion.
Through the magic of sysfs, the V4L module can automatically discover all
your USB webcams, configure streams for them, and create meaningful, static
names for them.  The two cams plugged into the hub on the lower USB port on
the front of your system will be always be named something like
&quot;Device::Video::USB::2-1:1.0&quot; and &quot;Device::Video::USB::2-2:1.0&quot; no matter
when they were connected, because their name is based on their position on
the bus.  The same devices can be accessible with their device path, like
&quot;Device::Video::/dev/video1&quot; or whatever, if you prefer that.&lt;/p&gt;

&lt;p&gt;The real advantage of putting the streams into a tree is being able to
perform transformations over an entire subtree rather than on one at a
time.  This would allow one part of the tree to contain a &quot;mirror&quot; the same
streams as another part, but having passed through one or more modules.
For example, the &quot;Low Quality::&quot; tree could contain the above streams as
&quot;Low Quality::Video::USB::2-1:1.0&quot;, etc, compressed as 100 kbps 10 fps
video, rather than the native 30 fps uncompressed YUV format received from
the hardware.  These mappings from an existing subtree to a new one would
be specified in the configuration file, of course, so the user could
control which subtrees were available and the exact parameters used.&lt;/p&gt;

&lt;p&gt;At the end of the whole chain, there still needs to be some sort of
connection to make the stream available to clients across the network.
This could be done through explicit pairings (&quot;rtsp://*/webcam&quot; will serve
video from &quot;Low Quality::Video::USB::2-1:1.0&quot;) or by exporting entire
subtrees (&quot;rtsp://*/cams/&quot; will serve anything below &quot;Low Quality::Video&quot;,
such as &quot;rtsp://*/cams/USB::2-1:1.0&quot;) as the user sees fit.  As I
mentioned, template webpages could optionally enumerate the streams in
exported subtrees to simplify the initial configuration.&lt;/p&gt;

&lt;p&gt;By now, you're probably wondering why I'm putting so much effort into
automated support for large numbers of streams.  It's not like most people
have so many webcams that they can't configure them manually, right?  Well,
the ultimate goal is to turn Spook into more of a generic network media
mixer, capable of importing video from any video source local or remote,
performing some set of transforms on it, and exporting it over the network
using a variety of formats and protocols.  Re-encode video from the &lt;a
href=&quot;http://www.dlink.com/products/?pid=270&quot;&gt;DCS-900&lt;/a&gt; watching your koi
pond into MPEG4 and relay it through another, more well-connected server
via RTSP?  No problem.  Webcast press conferences from the room's AV system
while simultaneously recording them for later retrieval over streaming RTSP
or AVI download over HTTP?  Makes sense to me.  &quot;Tune in&quot; to the physics
class lecture you're skipping by dialing a number from your mobile phone?
Why not?&lt;/p&gt;

&lt;p&gt;Putting as many media sources as possible into a common namespace
doesn't get much closer to convergence, but it's a necessary step.&lt;/p&gt;</description>
  </item>
  <item>
    <title>They took AIM</title>
    <link>http://www.litech.org/~lutchann/weblog/2005/02/01#200502011558</link>
    <description>
&lt;p&gt;AOL suspended my instant messenger account today for supposed violations
of their terms of service.  No idea if I'll get it back.  If not, I'll
probably go register for Yahoo's IM service, or something similar.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Spammers and Drivers</title>
    <link>http://www.litech.org/~lutchann/weblog/2005/01/25#200501242050</link>
    <description>
&lt;p&gt;The spambots finally found my weblog, so the comment plugin is gone.
Hope y'all don't miss it too much.  Feel free to email me directly if
you're unable to contain your rage over my scathing political
commentary.&lt;/p&gt;

&lt;p&gt;I guess I've been kind of anti-social for the past few months.  I've
been doing some work for &lt;a href=&quot;http://www.wischip.com/&quot;&gt;Wis
Technologies&lt;/a&gt;, who makes the world's most bad-ass real time video
encoder ASIC, filling in some gaps in their reference software.  They've
been funding work on &lt;a href=&quot;http://www.litech.org/spook/&quot;&gt;Spook&lt;/a&gt;, and
although most of it hasn't yet gone back into the public tree, it's come a
long ways.  I also have some stream-relay code that I've yet to check in.
Hm, Spook is looking kind of abandoned these days.  I should poke it a bit
more in the near future.&lt;/p&gt;

&lt;p&gt;January has been consumed with a mad rewrite of the Linux driver for the
WIS encoder.  The old driver sucked mightily, so when Plextor wanted to
their ConvertX product line to have Linux support (which didn't exist
before only because it didn't occur to anybody), trashing the old code and
starting from scratch was pretty much the only option.  It came out pretty
well though.  It's in QA now and should be released via Plextor in a week
or so.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Um...</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/12/12#200412121339</link>
    <description>
&lt;p&gt;So I was &lt;a
href=&quot;http://www.google.com/search?q=gondwanaland&amp;btnG=Search&amp;hl=en&amp;lr=&amp;safe=off&quot;&gt;searching 
Google for &quot;Gondwanaland&quot;&lt;/a&gt;, the &lt;a
href=&quot;http://www.palaeos.com/Earth/Geography/Gondwana.htm&quot;&gt;huge southern
supercontinent from long ago&lt;/a&gt;, and noticed that somebody had actually
bothered to buy ads for that keyword.  Maybe a museum or a science book
publisher?  Nooooooo....&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/~lutchann/gondwanaland.png&quot;/ &gt;&lt;/p&gt;

&lt;p&gt;Somebody needs to scrub their geographical location database a little
better, methinks.&lt;/p&gt;</description>
  </item>
  <item>
    <title>For the low, low price</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/10/21#200410211557</link>
    <description>
&lt;p&gt;Those of us on the &lt;a href=&quot;http://www.xprize.org/&quot;&gt;X Prize&lt;/a&gt; mailing
list have received an &lt;a href=&quot;/~lutchann/xprize-invite/&quot;&gt;invitation to the
X Prize award ceremony&lt;/a&gt;.  Truly a historic event to be a part of.  And
what would you expect to pay for such a once-in-a-lifetime opportunity?
Tickets range from $275-$750 per person, depending on how close you'd like
to sit to the world's newest astronaut.&lt;/p&gt;

&lt;p&gt;I guess that explains how they got the &quot;backing&quot; for the prize money.
They'll tell you to just bring the cash to the event, which they'll put
into a big box and present to Burt Rutan during the ceremony.  Clever,
eh?&lt;/p&gt;</description>
  </item>
  <item>
    <title>How can people stand this??</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/10/15#200410142050</link>
    <description>
&lt;p&gt;For consulting I decided that I really should have a working Microsoft
Office workstation, so I bought a Dell Dimension 3000 with WinXP Pro and
Office SBE for just under $1000.  (At retail, XP Pro and SBE would cost
$710, so I figured I'd spend the extra $250 and get a rather nice PC to run
it on.)  I ordered seven days ago, Dell shipped it the next day, and I
received it today on the third delivery attempt.&lt;/p&gt;

&lt;p&gt;Having not owned a Windows system for almost four years, I was rather
surprised at the amount of hassle it takes to get an out-of-the-box PC up
and running.  I can understand having to update the virus database, install
a couple patches to Windows, etc (although the drive was imaged at the
factory a week ago) and I can even tolerate &quot;Windows Product Activation&quot;,
but just to get the &lt;i&gt;preinstalled&lt;/i&gt; copies of XP, Office, and McAfee
running, I was &lt;i&gt;not&lt;/i&gt; expecting:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;Clicking &quot;I Agree&quot; on eight different EULAs, not counting Dell's
infamous &quot;Press any key to indicate acceptance of all EULAs for all
software preinstalled on this system&quot; screen that pops up two seconds after
the first boot.&lt;/li&gt;

&lt;li&gt;Seven required reboots, two of which occurred after nothing obvious had
happened.&lt;/li&gt;

&lt;li&gt;A 23-meg &quot;critical update&quot; for XP.&lt;/li&gt;

&lt;li&gt;Harassment from Windows Security Manager (whatever that is) every time
I boot because I have set Windows Update to only notify me when updates are
available, but not to download and install them automatically.&lt;/li&gt;

&lt;li&gt;Harassment from &quot;Dell Support&quot;, telling me it wants to upload
&quot;anonymous usage statistics&quot;.  No, there's no way to turn it off.  The only
relevant option lets you toggle between asking before sending statistics
or simply sending statistics without notifying you at all.&lt;/li&gt;

&lt;li&gt;Having to open the help browser to figure out how to update my McAfee
virus definitions, even though the McAfee control panel popped up on every
boot to alert me that my definitions were out-of-date.&lt;/li&gt;

&lt;li&gt;Language settings in all my Office applications default to &quot;Chinese
(Taiwan)&quot;.  (I'm pretty sure Dell ships legal software...)&lt;/li&gt;

&lt;li&gt;And, of course, having fifty different preinstalled apps that I
&lt;i&gt;didn't&lt;/i&gt; ask for, telling me to sign up for music downloads, dialup
Internet access, etc.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Honestly, how do people put up with this nonsense?  Suffering through
all this crap makes setting up Gentoo look easy!&lt;/p&gt;</description>
  </item>
  <item>
    <title>I thought the attraction was the *coffee*</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/09/24#200409232325</link>
    <description>
&lt;p&gt;So, every time you see a blog post or magazine review for some new tech
device with onboard 802.11, the inevitable suggestion is that the
usefulness of the device is substantially increased because now it can get
online from the nearest coffee shop.  &quot;With onboard Wifi, the newest iPods
can download tunes from iTunes Store while you're at the coffee shop!!&quot;
&lt;i&gt;Huh?&lt;/i&gt;  How is this a selling point?  I'd much rather be able to
download new music while I'm laying on the couch feeling too lazy to pick
my laptop up off the endtable, which is a much more likely place to find
Wifi anyway.&lt;/p&gt;

&lt;p&gt;Does the coffee shop aspect of 802.11 connectivity really make that much
of a difference to people?  How much time do ordinary iPod-toting folks
spend sipping lattes and wishing they could download the 839th Dave
Matthews concert CD without having to leave the lively, stimulating
environment of their local Starbucks?&lt;/p&gt;

&lt;p&gt;Sheesh.  Clearly these people need help to overcome their unhealthy
addition to Wifi access and caffeinated beverages.  I recommend a
Bluetooth-enabled 3G cell phone and some Penguin mints.&lt;/p&gt;</description>
  </item>
  <item>
    <title>When upgrading Gnome...</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/09/10#200409092125</link>
    <description>
&lt;p&gt;OK, so I figured if I shut down my X session entirely, I could let emerge
upgrade Gnome to 2.6 and start up a new session afterwards and everything
would work fine.  I even checked to make sure gconfd and friends were gone,
as they have a habit of sticking around after a session ends.&lt;/p&gt;

&lt;p&gt;Turns out that's not good enough.  Apparently, during the upgrade
process, some test suite started up the Bonobo activation server, and when
I started my first Gnome 2.6 session there was much weird behavior, like
gnome-settings-daemon failing to start.&lt;/p&gt;

&lt;p&gt;Probably the best way to make sure everything's reset is to reboot the
system entirely, but damn, that feels waaaaay too un-Unixy.&lt;/p&gt;

&lt;p&gt;In related news, Gnome 2.6 is pretty much identical to 2.4, although
that annoying dialog box in Epiphany asking whether to open or save the
playlists from Shoutcast is fixed.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Unpleasant discovery #329</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/09/03#200409022252</link>
    <description>
&lt;p&gt;The outlets in our living room and dining room are controlled via a
light switch.  All of them.  In both rooms.  From two switches.  And I
don't mean that the two switches control two separate sets of
outlets&amp;mdash;it's a 3-way configuration so all of the outlets can be
switched together from either the living room or the front door.&lt;/p&gt;

&lt;p&gt;I guess I know what tomorrow's project will be...&lt;/p&gt;</description>
  </item>
  <item>
    <title>Like a hot knife through butter</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/09/01#200408311934</link>
    <description>
&lt;p&gt;I just finished pulling network cable through the house from the
bedroom, office and living room into the basement where the server farm
will live.  With any luck, all the runs will be good enough for
gigabit.&lt;/p&gt;

&lt;p&gt;I also had to install a new phone jack in the basement, because, oddly
enough, nobody thought to put a phone down there before.  Eventually, it
will be the only jack hooked up to the Verizon loop once I get the VoIP
service setup running, but for now I just twisted the new line onto the big
wads of wires that are bypassing the nice 66 punch-down block next to the
electrical panel.  Everything was all nasty and corroded, so I figured I'd
have to go back and fix it later.&lt;/p&gt;

&lt;p&gt;After I finished installing cable, I plugged a phone into the new jack
to see if I had wired it to the right pair.  Even with a DSL filter, the
dialtone sounded pretty noisy, but I tried plugging the DSL modem into it
anyway.  Synced right up.  Huh.  So I hooked up the server and booted.
PPPoE came up.  Pings worked; even flood pings only lost a few packets.
Download speeds were around 180 KB/sec, right where they should be.  Who'd
have thought that a line too sketchy for analog voice would work fine with
1.5 Mbit DSL?&lt;/p&gt;</description>
  </item>
  <item>
    <title>Spelunking</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/08/25#200408242305</link>
    <description>
&lt;p&gt;Webcams are surprisingly useful for discovering where heating ducts go.
They are small and can be dangled by the cord for a good 15 feet down a
vertical duct or look around corners under the floor.  I posted a &lt;a
href=&quot;http://www.litech.org/~lutchann/vent.jpg&quot;&gt;typical picture&lt;/a&gt; looking
at the hidden side of a light fixture inside one of our returns.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Posted so I don't forget</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/07/09#200407091750</link>
    <description>
&lt;p&gt;Charter One Bank has &lt;a
href=&quot;http://www.charterone.com/giftcards/default.asp&quot;&gt;pre-paid
MasterCards&lt;/a&gt; available online.  Lots of people do that, I know, but
Charter One does not charge a service fee, and they don't even charge you
for shipping &amp; handling.  You choose an amount from $20 to $500, select a
message to be embossed into the card, and enter the recipient's name and
address.  The payment is funky though&amp;mdash;your only option is to take the
money off an existing credit card, which presumably will be charged as a
cash advance.  Maybe using a debit card will work?&lt;/p&gt;</description>
  </item>
  <item>
    <title>Another day, another tarball</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/04/17#200404152305</link>
    <description>
&lt;p&gt;I've got my process down.  Update the README, `make distcheck`, upload
the tarball, update the webpage, submit to Freshmeat, update the
weblog.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.litech.org/spook/&quot;&gt;Tonight's release&lt;/a&gt; adds
Video4Linux support, so now the other 95% of the Linux community can use
it.  V4L is the API used by frame grabber cards and USB webcams, so I guess
I should support it.  USB webcams are pretty pathetic quality in comparison
to Firewire webcams, and are also annoying to support because every USB
webcam driver has its own funky API to set framerate and what-not.  But
it's what most people seem to have, unfortunately.  Just for fun, I threw
in support for the Philips webcams, but since I don't have one myself I
have no idea if it will work.&lt;/p&gt;

&lt;p&gt;Maybe tomorrow somebody will actually subscribe to the mailing list,
too.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Return from the land of the lost</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/04/12#200404112116</link>
    <description>
&lt;p&gt;Been a while since I posted here, eh?  As it happens, I've been deeply
engrossed in a little toy that grew into a real project.&lt;/p&gt;

&lt;p&gt;I've always been disappointed in the lack of decent streaming webcam
software.  Everyone and their dog has written a &quot;grab an image and FTP it
somewhere&quot; app, usually complete with a crappy, useless GUI.  (All you
people who remember Cyclops are nodding your heads and thinking, &quot;Yeah
Nathan, you're one to criticise crappy webcam servers.&quot;)  Some people go so
far as to write a custom Java/ActiveX applet to pull down images &lt;i&gt;real
fast&lt;/i&gt; for kind of a redneck &quot;streaming&quot; effect.  (Carson calls this
&quot;faux streaming&quot;.)  The closest I've seen to live video is the HTTP
multipart/jpeg streaming implemented by &lt;a
href=&quot;http://cserv.sourceforge.net/&quot;&gt;camserv&lt;/a&gt; and the &lt;a
href=&quot;http://www.axis.com/products/video/camera/how.htm&quot;&gt;Axis network
cameras&lt;/a&gt;.  This works, to some extent, but there's just something
repulsive about shovelling JPEGs down a TCP socket as fast as possible and
calling it &quot;live video&quot;.&lt;/p&gt;

&lt;p&gt;Come on, people!  For decades we've had video compression techniques
that are specifically designed to push live video down small pipes.  And
protocols for streaming real-time multimedia over IP networks have been
standardized for over 10 years.  The folks lucky enough to have multicast
IP access have been holding multi-user video conferences since before most
of the world had even &lt;i&gt;heard&lt;/i&gt; the word &quot;Internet&quot;.  So why on Earth
should we put up with the equivalent of mailing Grandma a stack of
Polariods and telling her to flip through them really fast?&lt;/p&gt;

&lt;p&gt;Before you say anything, don't give me that &quot;widest possible audience&quot;
crap.  I &lt;i&gt;know&lt;/i&gt; you want your webcam to be accessible to anybody with
a web browser, but how many people do you know who don't have QuickTime
installed?  Seriously, everybody who didn't have QuickTime installed
already went and installed it to watch the Lord of the Rings trailer.  And
if they didn't care about the LotR trailer, they don't deserve to watch
your webcam anyway.&lt;/p&gt;

&lt;p&gt;OK, so where was I?  Right&amp;mdash;my point was that we already have the
technology, standards, infrastructure, and most importantly the viewing
software in place to start feeding people quality live video from our homes
and offices.  All we need is the server software.  So, properly motivated
by such an obvious need, I &lt;a href=&quot;http://www.litech.org/spook/&quot;&gt;wrote
some&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Spook is my attempt at a decent live streaming video solution.  It
captures video from Firewire cameras, compresses it to MPEG4 with XviD, and
streams it (via unicast, no multicast required) to anybody who asks for it
using RTSP.  The result: &lt;i&gt;true&lt;/i&gt; live video at &lt;i&gt;30 frames per
second&lt;/i&gt; with a resolution of 320x240.  In half the upstream bandwidth of
the average cable modem.  Now &lt;i&gt;that&lt;/i&gt; is what I'm &lt;i&gt;talking&lt;/i&gt;
about.&lt;/p&gt;

&lt;p&gt;Today was the first release of Spook.  It only supports Firewire cameras
for the moment, so I'm sure I'll get a few more folks interested once I
support Video4Linux and all the TV capture cards and USB webcams it brings.
The problem with V4L is that configuration for each camera chipset is
different, so it may be a bear to support configuration of FPS and all
that.  I'll find out soon, I guess.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Bittersweet victory</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/03/20#200403201748</link>
    <description>
&lt;p&gt;Sad is the world of Linux wireless Ethernet.  Sure, the &quot;traditional&quot;
chipsets like Orinoco/WaveLAN, Prism, and Aironet work as well as they
always have, but newer hardware like the Atheros chipset, the new MPI-350
card from Cisco, and the infamous Centrino chipset are all only supported
by broken/outdated closed-source drivers, or are not supported at all.&lt;/p&gt;

&lt;p&gt;My new Thinkpad is &quot;wireless-ready&quot; meaning it has a built-in antenna
and a mini-PCI slot for a wireless card.  Nifty, right?  The niftiness of
having internal wireless hardware combined with the advantage of being able
to select a NIC with good Linux drivers.  But naturally, IBM doesn't make
it this easy.  For &quot;regulatory&quot; reasons, which I guess are understandable
considering the anal retentiveness of the FCC, the BIOS is programmed to
accept only one of three cards in the mini-PCI slot.  You can guess which
three cards they are based on the previous paragraph.&lt;/p&gt;

&lt;p&gt;The Thinkpad shipped with a Centrino card, which wasn't looking
promising as Intel has been promising Linux drivers for over a year now
without delivering anything.  The best option seemed to be the Aironet
card, since older Aironet cards have been supported under Linux since the beginning of
time.  The &quot;official&quot; Cisco Linux driver for the
MPI-350 was a closed source module last updated over a year ago, but kernel
2.6.3 was released with experimental support for the card in the airo
module, so I figured my odds of getting it working were good.&lt;/p&gt;

&lt;p&gt;I priced out the MPI-350 in the usual places, coming up with about $70,
but then it occurred to me that the IBM OEM cards might have a different PCI
ID and only the IBM-supplied MPI-350s would make it past the Nazi BIOS.
So I bit the bullet and ordered an Aironet MPI-350 for $120 from IBM.&lt;/p&gt;

&lt;p&gt;The day before my new card showed up, Intel announced the first release
of their Linux Centrino wireless driver.  Open-source and everything.  I
tried it out and it worked.  But a bit buggy and no WEP, so I decided not
to return the Aironet card.&lt;/p&gt;

&lt;p&gt;So today I finally got around to installing the new card.  Hardware
installation was painless, of course.  Then I booted up and found that the
airo module had been loaded, but the card wasn't associating with the
access point.  A Google search revealed that my card's firmware was too
new, and that I needed to downgrade to 5.00.03 to get it to work.  No
problem, I can download that from Cisco, and flash it into the card with...
oops.&lt;/p&gt;

&lt;p&gt;The open-source driver won't talk to the new firmware at all.  The Cisco
Linux driver &lt;i&gt;also&lt;/i&gt; requires an older firmware, so there were zero
options for flashing the card on Linux.&lt;/p&gt;

&lt;p&gt;Two hours later, Windows XP was restored on the laptop.  Three minutes
after that, the card had been downgraded.  An hour later, Linux was
back.&lt;/p&gt;

&lt;p&gt;One final issue.  Although Linux could now talk to the card, it wouldn't
associate with an access point.  It seemed to be a problem with the WEP
configuration due to messages like:&lt;/p&gt;

&lt;pre&gt;Setting key 0
airo: Max tries exceeded waiting for command
PC4500_writerid: Write rid Error 65535
PC4500_writerid: Cmd=0121
airo:  WEP_PERM set ffff&lt;/pre&gt;

&lt;p&gt;The solution was to download the Cisco Linux Aironet Configuration
Utility (ACU), which actually works with the open-source kernel module as
well as Cisco's kernel module, and use that to set the WEP key.  Since the
card stores the key in non-volatile memory, this only needs to be done
once.  Now when I boot the system, I use &lt;i&gt;iwconfig eth1 enc on&lt;/i&gt; to
enable WEP without trying to set a key, and this uses the stored key to
associate with the access point.  Success!&lt;/p&gt;

&lt;p&gt;I believe at this point, my laptop is now fully functional.  All I need
to do now is figure out how to do some of the fancier power management to
squeeze the maximum life possible out of my battery.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Figures</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/03/16#200403152210</link>
    <description>
&lt;p&gt;I finally got around to fixing my Perl script to forward email to my
cell phone, which Verizon broke last month, and the first email that came
through was a worm with a forged address from a whitelisted domain.  That
really says something about the Internet today.&lt;/p&gt;</description>
  </item>
  <item>
    <title>Syndication formats</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/03/07#200403071412</link>
    <description>
&lt;p&gt;I guess now's as good a time as any to jump into the Atom vs. RSS
debate.  (I've been meaning to post this for a while...) For those of you
who don't follow the exciting world of weblog syndication, the venerable &lt;a
href=&quot;http://blogs.law.harvard.edu/tech/rss&quot;&gt;RSS syndication format&lt;/a&gt; is
under attack by a young upstart format named &lt;a
href=&quot;http://www.atomenabled.org/&quot;&gt;Atom&lt;/a&gt;.  While the development of Atom
was started only eight months ago, it has caught on quickly in the weblog
world, and most weblog software now supports it as well as a number of
prominent sites such as LiveJournal and Blogger.&lt;/p&gt;

&lt;p&gt;Why a new syndication format?  Mostly the issue seems to be over the
control of the RSS spec.  While RSS was originally developed by Netscape,
it was abandoned as the company lost market traction, and Dave Winer took
over maintenance of the specification.  The problem is, Dave Winer doesn't
seem to understand how standards are supposed to be maintained and
developed, and many people feel he is exerting undue control over the
future of RSS.&lt;/p&gt;

&lt;p&gt;So, to take advantage of starting from scratch, the Atom standard goes
beyond just defining a &quot;syndication&quot; format.  A format for accessing
archived entries was created, and there are even standardized mechanisms for
posting new entries and updating old entries.  Soon, the variety of weblog
update clients that LiveJournal users have available will be able to update
and maintain weblogs running on any server software using the Atom API.&lt;/p&gt;

&lt;p&gt;The Atom spec is cleaner and better designed than RSS, and as a result
can support a much wider range of uses.  Wiki sites are already using Atom
to publish entries and accept new submissions.  Want to publish
XML-formatted security updates with Atom?  You can embed your XML directly
into the feed without having to entity-escape it, allowing much simpler
implementation of the parsers.  Atom supports feeding information from
machine-to-machine, instead of just the machine-to-person format that
RSS imposes by its poor design.&lt;/p&gt;

&lt;p&gt;Hopefully, more sites will discover nifty uses for Atom, and it will
become the starting point for growing the semantic web beyond the current
content syndication rut we're stuck in now.  The sooner we discard RSS in
favor of Atom, the sooner we can move on.&lt;/p&gt;</description>
  </item>
  <item>
    <title>I'm glad I'm not the only one who hates MT</title>
    <link>http://www.litech.org/~lutchann/weblog/2004/03/02#200403020949</link>
    <description>
&lt;p&gt;Some dude posted a &lt;a
href=&quot;http://www.kuro5hin.org/story/2004/2/2/171117/8823&quot;&gt;tirade about the
uselessness and banality of most weblogs&lt;/a&gt;, which obviously touched off
some sentiments throughout the &quot;blogosphere&quot;.  (Yeah, it's from February 3;
I'm not exactly Mr. Current Affairs, am I?)  The article starts off
attacking bloggers in general, then degrades to harsh criticism of Movable
Type.  I don't agree with his attacks on weblogging, which I believe rivals
instant messaging as a revolutionary communications technology, but I'm
more than happy to add my piece about Movable Type.&lt;/p&gt;

&lt;p&gt;This sentence sums it up: &quot;Movable Type is written by web designers, not
programmers.&quot;  We all know how well web designers can program.  Most of
them are even honest enough to admit that they are not capable of producing
code any more than I am capable of producing a decent-looking webpage.  Not
the oblivious folks at Six Apart though.  To make matters worse, they've
taken it upon themselves to lead the creation of new weblog &quot;standards&quot;,
such as the disgustingly-broken TrackBack mechanism.  I could live with
ignoring their bad code, but creating bad standards that other people have
to conform to is inexcusable.&lt;/p&gt;

&lt;p&gt;Maybe one day some sort of standards group will tackle the problems
confronting weblog interoperability.  It has already started, in fact, with
the intention of developing Atom through the IETF.  Until then, we'll be
forced to put up with &quot;standards&quot; defined by a single, incompetent
vendor.&lt;/p&gt;</description>
  </item>
  </channel>
</rss>