A Haiku, in honor of today's meeting
For a brief moment,
I thought I had no meeting.
It was very nice.
A Haiku, in honor of today's meeting
For a brief moment,
I thought I had no meeting.
It was very nice.
FitBit - Not what I was looking for
This evening I returned the FitBit I purchased a few days ago. It wasn't what I was looking for.
So I guess it's best to define what it is that I was looking for. Basically, I want everything that Strava does without having to lug my phone around. I thought that the FitBit was that, but it lacks one important element - a GPSr. I thought it had GPS fu in it, but it appears that I was mistaken.
So, instead, I've ordered a cheap armband thingy so that I can carry my phone without wearing a fanny pack. And maybe that'll be all I want.
The alternate is a $150 watch from Nike, and that's just a little too much to pay.
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:
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.
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.
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)
/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?
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.
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.
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.
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.
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.
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.
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!