Women's Roller Derby
Last night was a new experience for me. We went down to the Herbst Pavillion on Fort Mason in San Francisco to watch the Bay Area Derby Girls tear up the circle track (and each other). The basic concept is this: There’s a pack of girls from both teams that start on one line, and one girl from each team start about a quarter track-length back. The single girls have to fight their way through the pack and then lap the pack to score. The round ends, repeat. You can read all about the jammers and blockers and the rest of the rules if you’d like, but that’s the gist of it.
It’s a pretty grueling sport. Both from a single-round perspective, and from a endure-the-whole-hour-of-playtime perspective. I was impressed. I got tired just watching them.
If some derby girls are skating in your neighborhood, I recommend you go see them.
Ruby On Rails RSS Reader
We moved our Athlo blog to a http://wordpress.org/:WordPress app to separate it completely from the main app. One interaction I wanted between the two though was that I wanted the most recent blog entries to show on the Athlo site. I thought that RSS would offer an easy solution so I started looking around to find out if I’d need a Rails plugin or something like that.
The solution was far simpler. And pure Ruby (man I love this language!).
require 'rss'
rss = RSS::Parser.parse(open('http://blog.athlo.com/feed/').read, false).items[0..MaxRSSItems-1]
That’s it. That simple call supplies you with a full array of all the items from the RSS feed. In my specific example, I’ve used a range to limit the results to the value of MaxRSSItems.
No plugins required. No Rails required. Ruby RSS will do what you need to read feeds. (That should be in a poem.)
Adding Talk / Discussion Pages To Trac
I’m a big fan of wikis in general. This week I implemented one to help organize the Athlo project. There are literally dozens of wikis to choose from, but ultimately I went with Trac as it has built in milestone management and is super easy to install on Fedora.
One thing that bothered me was the lack of discussion or talk pages. Luckily, Trac is built on Python and uses the ClearSilver template engine so hacking in this functionality was very easy. Here’s what I did.
In the /usr/share/trac/templates folder, there is a file called wiki.cs. It is the template that defines the wiki (duh). Around line 28, the code looks like:
<li><a href="<?cs var:trac.href.wiki ?>">Start Page</a></li>
<li><a href="<?cs var:trac.href.wiki ?>/TitleIndex">Index by Title</a></li>
<li><a href="<?cs var:trac.href.wiki ?>/RecentChanges">Index by Date</a></li>
<li class="last"><a href="<?cs var:wiki.last_change_href ?>">Last Change</a></li><?cs
/if ?>
This defines the links that appear just under the main menus that appear horizontally in the default layout. To add talk pages, I simply modified the code like this:
<li><a href="<?cs var:trac.href.wiki ?>">Start Page</a></li>
<li><a href="<?cs var:trac.href.wiki ?>/TitleIndex">Index by Title</a></li>
<li><a href="<?cs var:trac.href.wiki ?>/RecentChanges">Index by Date</a></li>
<li><a href="<?cs var:wiki.last_change_href ?>">Last Change</a></li>
<?cs if:string.find(wiki.page_name, "Talk:") < 0 ?>
<li class="last"><a href="<?cs var:trac.href.wiki ?>/Talk:<?cs var:wiki.page_name ?>">Talk</a></li><?cs
/if ?>
Note that last part. It simply checks to see if you’re on a Talk page already. If not, if creates a link on the text Talk. If you’re viewing SomeWikiPage, the link will point to Talk:SomeWikiPage. If you’ve ever used wikipedia, it should be very familiar.
What’s nice is this same technique can be used to create any number of meta pages. Happy trac’ing and hacking.
Athlo Goes Public With Alpha Launch
If you know me, you know that I’ve been locked away for the last seven months working on a project called Athlo. Well, last night we turned it on … sort of. I disabled most of the core features with plans to roll them out one by one. It’s a sort of damage control I suppose. Our development staff is small, so the last thing I want is 100 bug reports coming in about 20 different portions of the site. Our roll out approach should allow us to focus on individual portions of the site, one at a time.
As it stands, you can create a user account and leave your friends messages. Not much, I know. However, we’ve got quite a few cool features that are ready, or days-from-ready, to put on the site. We’re planning on updating the site once a week until we get them all up and running.
For now, we’re not planning on making any big announcements. I think in a month or so, once we’ve got the key features up and running, we can send out some announcement email and contact a few relevant blogs for some press coverage. The site is public though, so if you want to sign up for an account now, go for it. Just don’t expect to be impressed for a few weeks.
That said, it was good to finally get something up and running on the server. Anyone who’s done this sort of thing knows what I mean. You work, work, work for months with nothing to show and then one day it’s online. So, despite it’s current alpha state, I’m excited to have Athlo on-line.
Power Book Broadcom Wireless In Fedora 8 Linux
Man do I hate Linux sometimes.
So I’ve got an old PowerBook G4 867Mhz that is just not keeping up with the latest Mac software. Rather than scrap it, I thought I’d see if I could give it a second life. I decided to try Fedora 8 as I’m very familiar with that OS. My wife only really uses this computer to surf the net and check email, so I figured a base install would be perfect. All went well until I got to the wireless card. It didn’t work out of the box so I started Googling only to find tons of incorrect information.
The most common was the application of a program called bcm43xx-fwcutter which is used to extract data from a proprietary driver and create useful drivers for Linux. Well, 99% of the information surrounding this kept leading me to the same error:
# /sbin/modprobe bcm43xx FATAL: Module bcm43xx not found. # sudo ifconfig wlan0 up SIOCSIFFLAGS: No such file or directory
After literally 2 days of trying variations of the bad info, I had a sudden flash of common sense: check dmesg to see what’s failing. I ran the following:
dmesg | tail -n 30
Buried in the output was a message telling me to go to linuxwireless and get new drivers. I followed the simple instructions there and bam, it works like a champ. Spread the good word!


