Older blog entries for Rich (starting at number 33)


Disclaimer: I don't require, or even particularly care about, your approval of my parenting style. I will cheerfully ignore any parenting advice you offer. Unless you're my parents.

My kids are very goal-driven. My son wants to save for a new iPod. My daughter wants a particular pair of shoes. These things motivate them.

But when it comes to something as pointless as taking out the garbage or vacuuming the living room, it's hard to get them to see the point. They'll do it when told, but they're not likely to think of it on their own.

We've gone through a number of experiments in getting them motivated to do their chores, including tying what chores they do to how much allowance they get. But that's a huge hassle to keep track of.

Last week I decided that since I like hacking on Open Source anyway, I'd throw something together to both track what chores they're doing - so that it's less work for us - and also to provide them with some incentive.

So, here it is: Chores is a PHP/MySQL web app to track what chores they're doing, and tie their allowance directly to that. I chose PHP because it's easy and, more importantly, I thought it might lower the bar to getting other folks to pitch in, whereas mod_perl or mod_lua might make it certain that I'd never get any help.

Chores is currently very simple, allowing you to:

  • Manage user accounts, and define how much money a point is worth for those individuals, so that each person can have a different base allowance.
  • Manage chores, and define how many points each chore is worth, and how frequently it may be done.
  • Track when a chore has been done, who did it, and when it can be done again.
  • Tell you how much you have earned today, and so far this week.
  • Provide reports of allowance earned for any given time period.
  • Formats nicely on the iPhone, iPod, and Nexus7, so that the kids can use it from whatever mobile device they have in their hands at the time.


I have other stuff planned, but for the moment we're kind of in a testing phase, to see if this actually works to motivate them.

I don't yet have a packaged distribution, because I don't have any documentation written, other than very rudimentary install docs. But you can check it out of svn if you want a copy. Patches are eagerly accepted, and if you'd like to participate on the project I'd be glad to add you to it.

Syndicated 2013-03-10 17:15:01 from Notes In The Margin

Getting your CM19a working on Linux

I recently acquired a Raspberry Pi, and my main project is to get X10 stuff working again in my house.

To that end, I purchased a CM19a. I'm going to chronicle the process of getting it working here, so that eventually this will be a helpful howto. At the moment, it's just a collection of notes and frustration.

First, plug in your CM19a to the USB port.

Run dmesg. You'll see something like:

[ 11.236260] input: X10 Wireless Technology Inc USB Transceiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/input/input0
[ 11.436218] usb 1-1.3: Weird data, len=1 ff 00 ff 00 00 00 ...
[ 11.447235] usbcore: registered new interface driver ati_remote
[ 11.584656] ati_remote: 2.2.1:ATI/X10 RF USB Remote Control

Also, when you run lsusb you'll see:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bc7:0002 X10 Wireless Technology, Inc. Firecracker Interface (ACPI-compliant)

And in /dev you'll see:

rbowen@raspberrypi ~ $ ls -la /dev/usb*
crw------T 1 root root 189, 0 Jan 1 1970 /dev/usbdev1.1
crw------T 1 root root 189, 1 Jan 1 1970 /dev/usbdev1.2
crw------T 1 root root 189, 2 Jan 1 1970 /dev/usbdev1.3
crw-rw-rwT 1 root root 189, 3 Jan 1 1970 /dev/usbdev1.4

So far, so good. Linux sees it.

You'll need to create /dev/ttyUSB* to go along with that. Paste this at the shell:

for i in 0 1 2 3 4; do
sudo mknod /dev/ttyUSB$i c 188 $i

Note: 1) This is a magical incantation. I don't yet know what the args to mknod mean. 2) I did 0..4 because lsmod shows devices up to 4. If you have more, make more.

I'm fond of heyu, so go install that. There's a sample config file that should get installed at /usr/local/etc/heyu/x10config.sample - copy that over to ~/.heyu/x1config and tinker with the settings in there.

Now, from here, I'm making it up as I go along. Please let me know if you know something I don't. Next step seems to simply be figuring out how to map a serial device to the USB one, since heyu seems to only know how to talk serial. Hopefully this is an easy thing to do, right?

Syndicated 2013-01-02 15:57:42 from Notes In The Margin

Raspberry Pi, episode 1

I got a Raspberry Pi for Christmas. I've been meaning to get one for some time, because I wanted to play with home automation (x10) stuff again. So here we go.

I'd rather not mess with getting usb/serial stuff working again. That was a pain. So I'm going to get a CM19a instead and see if I can get that working.

Should be fun.

So far, I have the Rasberry Pi booted, and I've got some basic stuff installed on it. It's running Debian 6 (Raspbian) and I've got a 4G card in it, which, so far, looks like it's going to be plenty.

Syndicated 2012-12-27 16:00:20 from Notes In The Margin

The myth of the death of SourceForge

I'm the Community Manager at SourceForge. As such, every day, I see tweets about how SourceForge is dead, dying, or terminally ill. The evidence given for this is the huge number of dead projects on SourceForge.

This reflects a profound ignorance of how Open Source (and software development in general) works.

One of the things that makes software development such a compelling hobby is that it is so very cheap to fail. You have an idea? Great. Try it out. Did it work? No? Well, no great loss. Move on to the next idea. But, also, leave your notes out in the public so other people can have a look and see if they can do better.

Most software projects fail. Sorry. That's reality.

So, the fact that SourceForge has a lot of failed projects is not an indication of the death of SourceForge. It's an indication of its age. SourceForge is 12 years old. Github is still a baby, and so has a much smaller number of dead projects. Just wait a few years, and we'll be hearing about how Github is where projects go to die, and the new thing on the block is so much better.

This is nonsense, and measures the wrong thing. Open Source forges are a place where you can try out an idea, cheaply, and, if necessary, find where it fails. It is the rare thing to succeed.

Of course, this leads to the question that always gets asked - why don't we just purge all of the dead projects? Well, if you think about it for a minute or two, you'll see why that's not feasible. Who am I to determine what project is dead and what is not? I have a project that's over ten years old, which I haven't touched in 8 years, that I'm planning to rewrite this weekend. What if we'd purged that last week? More importantly, the notes and source code from your "failed", or "dead" project often leads to a fork that is more successful. Purging the historical reference does nobody a service.

Meanwhile, I spend hours every day promoting releases and developments of very active and very passionate Open Source projects. The week isn't long enough to fit in a tweet for every one of these releases without my wife saying to me, wow, you tweet an awful lot. A tweet almost every hour, 24 hours a day, every day for the last 9 months. That's a lot of active projects. Not dead at all.

It is a great honor to be the community manager at SourceForge, working with tens of thousands of vibrant, passionate projects. SourceForge remains a very important player in the Open Source ecosystem, with new projects started every day. Some of those projects are destined to become successes, and others are not. That's just how it works, and doesn't indicate a failing of any of the open source forges where it happens.

Syndicated 2012-12-07 15:20:32 from Notes In The Margin

GTasks for Android

I use Google Tasks as my primary ToDo list. I switched a month or two ago upon finding out that there's no decent Teuxdeux app for Android, and now I appreciate it for other reasons.

On Android, I use GTasks, by DATO.

This morning, they pushed an update, which broke certain features, and this resulted in a lot of negative feedback from folks who, like myself, rely on it for daily task management. Within hours, they had pushed a new release which reverted the breakage.

I'm hugely impressed with the app itself, and also with their responsiveness. I'm also delighted with the Google Play Store, which allows for this kind of responsiveness. From what I understand, in the Apple App Store, it would have taken several more days to get the fixed version pushed out, and I would have been unable to use my to-do list until next week, at best.

So, thanks to all the players in this particular scene. If you're looking for a todo list manager, I can't recommend anything higher. Oh, and there's an iOS version, too, but it's not nearly as nice.

Syndicated 2012-11-08 18:31:34 from Notes In The Margin

ApacheCon EU

ApacheCon EU starts tomorrow, and, for the first time ever, I won't be there.

In fact, today is my very last chance to say this - I've been to every (official) ApacheCon. In fact, if you don't count 1998, I'm the only person who has been to every ApacheCon.

In 1998, there was an event called ApacheCon, in San Francisco, hosted by CNet, but that was before the Apache Software Foundation was formed. So I choose not to count that one.

Then, in 2000, I spoke at ApacheCon 2000 in Orlando. Then there was London 2000 with Douglas Adams keynoting. Since then, we've been a lot of places, including Santa Clara, San Diego, Las Vegas, Atlanta, New Orleans, Amsterdam, Dublin, Vancouver (Canada) and Stuttgart - not in that order.And Colombo, Sri Lanka, where I met Arthur C. Clarke. In fact, it's the Sri Lanka one that lets me claim the honor of being the only person to go to every one, because the only ASF members there were me, Ken Coar, and Danese Cooper.

But, tomorrow, ApacheCon EU starts, in Sinsheim Germany, and I won't be there. Already many of my friends have gathered there, and are having dinner there right now. I wish I could be there with them, and not just because it would keep my record intact. I love ApacheCon. I love giving and attending the talks. I love spending time with old friends and meeting new ones. I love the passion of the community, and learning about the new sub-communities that are joining the larger Apache family.

And I sincerely hope that the is the last one I'll miss.

Looking forward to ApacheCon North America 2013 in Portland. I plan to be at that one. You should come, too.

Syndicated 2012-11-04 19:07:27 from Notes In The Margin

Throwing my vote away

I grow increasingly more frustrated with the "common wisdom" that voting for anybody but the top two clowns is "throwing my vote away." This seems to assume that the only measure of a vote's value is whether your candidate wins.

By this logic, if I vote for Romney, and Obama wins (or vice versa) then I will have thrown my vote away.

I firmly believe that that if everyone in this nation dispensed with this fiction and actually voted what they believe, we would see a repudiation of the voice of Washington, and actually hear the voice of the people.

We, the people of the United States of America, are sick of the government of the wealthy, by the wealthy, for the wealthy. So why do we keep voting for them? Why do we keep voting for the two parties who have consistently given us a government that doesn't actually represent what we seem to want and believe?

Because people tell us that voting for the candidates we actually believe in is "throwing our vote away."

I firmly believe that voting for a candidate I don't support is throwing my vote away. If voting is indeed the ultimate expression of free speech, then voting for a candidate I do not support is lying.

People keep asking me why I would consider throwing my vote away. I find this baffling. Why would I consider voting for a candidate I don't support?

People keep saying that "voting for a third party is in fact voting for Obama." This is patently nonsense. It is true only if I agree that the only thing that matters is the winner. I do not believe this. I believe that my voice matters. If I am the only voice in a crowd expressing my perspective, then surely I should speak louder, not throw my lot in with voices I disagree with.

The current incarnation of the Republican party (which seems to have little to do with its historical roots) has created the current economic crisis. The current incarnation of the Democratic party hasn't done a lot to solve it.

We spend an immoral amount of money on war. Killing and destruction seems to be the major purpose of our empire, as evidenced by where we put our money. A vote for the status quo is a vote to continue wars in Afghanistan, and start one in Iran. I cannot support that. I cannot lend my voice to a course of action that I fundamentally repudiate.

That would be throwing my vote away.

Syndicated 2012-10-18 12:00:21 from Notes In The Margin

Rich's Rule of Content

I mentioned Rich's Rule of Content today on IRC, in the context of a patch that I'd applied to the Apache httpd documentation.

Rich's Rule of Content is something that I started jokingly referring to back in the DataBeam days. It goes something like this:

Make up any old thing. If it's wrong, someone will be quick to point it out.

The serious side of this is that people are much quicker to correct errors than they are to provide the content in the first place. So if you make your best effort at writing a document about something, someone will quickly step up to point out the errors that you have made. Sometimes they'll be rude about it. Most of the time (at least in the httpd project) they will be gentle and polite.

And, as a result, the docs are better than they were yesterday. Thanks, Jeff and Daniel.

Syndicated 2012-10-08 15:35:16 from Notes In The Margin

Washing dishes and muzzling oxen

Deuteronomy 25:4 - You shall not muzzle an ox when it is treading out the grain.

Last weekend I spent the entire weekend at the sink at St. Andrew Orthodox Church, washing dishes. We were having our annual heritage festival, which involves dancing - Greek, Arabic, Russian, Irish - a silent auction, and food. Lots and lots of food. Most of this food is from Greece and various parts of the middle east.

So, the kitchen is the place to be during all of this. There is constantly something toothsome coming out of the oven. And if you're right there, someone is going to ask you to taste it to make sure it's ok. And, even when the cabbage rolls are running out, the folks working in the kitchen have access to the fresh ones coming out of the oven.

Because, as Deuteronomy says, you don't muzzle the ox while he's treading the grain.

So, I washed dishes all day, and ate like a king. Or, perhaps, like a sheikh.

Syndicated 2012-10-06 13:46:59 (Updated 2012-10-06 13:47:01) from Notes In The Margin


Sword of Shannara

I've had the rare good fortune to meet many of my favorite authors. Notably, Douglas Adams, Arthur C Clarke, and, a few weeks ago, Terry Brooks. I've also met Cory Doctorow, Mo Willems, Will Wheaton, Frank X Walker and a host of other authors, and each time was struck by the humanity of great people. I deeply regret that I never had an opportunity to tell Ray Bradbury how much his work means to me.

Two of the authors I've met have since died, and I remember meeting them - particularly Sir Arthur - as high points of my life. Shaking the hand that penned Rama was an inexpressible honor.

(Indeed, I've had the fortune to meet many of my heroes over the years - that's a post for another time.)

Several weeks ago I met Terry Brooks, the author of The Sword of Shannara which, for a long time, held the title of Favorite Book Ever. That spot has since been usurped by Dandelion Wine, and I somehow think that Terry might not begrudge Ray Bradbury that spot.

Mr. Brooks was signing books at Joseph Beth Booksellers, in Lexington.

Mr. Brooks answered a *lot* of questions, and really gave them thought, and spoke to the people asking them as though they mattered. He read a *long* section from his new book, but carefully chose a section that didn't actually give anything away. And he signed books. Boy, did he sign books. He signed everything that anyone brought. One guy brought a suitcase. I am not making this up. A suitcase which purportedly contained The Complete Works. And Mr. Brooks signed them.

When we went up to have our books signed (alas, I only took three!) he spoke with us as though we were people. He made eye contact. He wrote our names in the books, and made sure he was spelling them right.

I was so impressed that I've now started buying and reading all of his books that I've missed over the years. And, somehow, having heard him read makes the books come alive a little more. I think Sword might be creeping back up my favorite book list again.

Syndicated 2012-10-03 18:00:00 (Updated 2012-10-03 17:44:09) from Notes In The Margin

24 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!