Older blog entries for Rich (starting at number 38)

Mac OS X Time Machine disks on Linux

Useful information about accessing a Mac OS X Time Machine backup disk on Linux: http://hints.macworld.com/article.php?story=20080623213342356

This information has proved very helpful over the last few days - although what I ended up doing was plugging the drive into a Mac and scp'ing the data across the network, since that was less hassle.

Looks like a good place for some Linux utility that provides a file browser for this kind of file system. Although I expect there's probably already one out there that I just didn't find yet.

Syndicated 2013-06-03 00:02:22 from Notes In The Margin

What I've learned at SourceForge

Today I'll be leaving SourceForge and taking a role at RedHat. Please don't think for a moment that it's because I don't like SourceForge. I continue to think that SourceForge does community *way* better than either Github or Google Code, and while there are places where the platform can improve, the team that's working on it is one of the finest bunch of engineers I've ever had the privilege of working with.

Here's a few of the many things I've learned at SourceForge.

People are passionate

Every time I talk to anybody about my job, I mention two projects: PonyKart and OpenMRS. These projects illustrate to me how people can be passionate about anything. Having talked with the leads of both of these projects, I'm blown away by their passion for excellence.

Of course, these projects could hardly be more different.

PonyKart is a My Little Pony themed Mario-Kart style game. It's fun. The physics are well done. The courses are well designed. The community is very engaged. And it has My Little Pony characters in it. The guys that did this project wanted it to be a MLP game, but they also wanted it to be excellent. They wanted it to be fun. They wanted it to be *good*. They are passionate about it.

The OpenMRS project is a medical records system that was developed for a hospital in Kenya that had a hacked-together Access database monstrosity, and it was faster and easier for these guys to hack something together than to try to fix what was there. But that wasn't enough. They were passionate. They wanted it to be done right, and they wanted hospitals all over the world to benefit from it. And now they have a non-profit dedicated to giving this product away to hospitals in developing nations that need it. These guys are my heroes.

I am continually blown away by the quest for excellence, and the vast range of ways that it manifests itself.

People are kind

I've met amazing people in my time at SourceForge. These people are helpful, kind, patient, and, as I've mentioned, passionate. For the most part, people get that I'm human and can't solve all of their problems immediately. They get that we all have the limitation of time and resources.

Most people *don't* throw tantrums or demand their way. For this I am very grateful. I'm glad to have met a few of the nice people.

People are cruel

Sure, SourceForge is the underdog right now. I get that. It's not necessary to be a jerk.

It's hard to remember, when people are being jerks, that they're in the minority. Most people are, in fact, nice. But the jerks are very loud.

I'd like to remind the jerks that the folks who happen to be developing their project on the SourceForge platform are passionate, and they are pragmatic, and they are doing something useful while you fling mud at them.

'nuff said.

People are pragmatic

Tools are tools. They are not your children.

For the most part, people want to get a job done, and they use the tools they have, because the focus is the task, not the tools. Once, we used CVS and MailMan and we *liked* it. SVN is better. Some people like Git better. But if we had to use CVS and MailMan, you know what? We'd still get stuff done.

Religious debates over the relative merits of DVCS and CVCS systems are all well and good over beer at conferences, but most of us have a job to do, and we don't have time for that indulgence. You may, in fact, be right, but I don't have that kind of time.

I grow very weary of the This vs That flame wars that have characterized the IT world for so long. Perl vs Python, VI vs Emacs, Linux vs Windows vs Mac, Git vs SVN. The thing is, if you're a professional, you need to know *all* of them, and you're not coming across as brilliant, you're coming across as only knowing one tool. Nice hammer. Sometimes a screwdriver is useful.

But, much as most people are nice, it turns out most people are pragmatic. Most people don't have time for those debates either. They want to get their job done. I really appreciate having met a lot of those kinds of people.

Syndicated 2013-05-20 12:03:49 (Updated 2013-05-20 12:05:14) from Notes In The Margin


Today I discovered Maqetta - http://maqetta.org/ - which is exactly what I was looking for about a month ago. It's a browser-based HTML5 editor for creating mobile web app thingies without having to actually know anything about mobile CSS.

Syndicated 2013-04-05 21:20:42 from Notes In The Margin

A Haiku, in honor of today's meeting

For a brief moment,
I thought I had no meeting.
It was very nice.

Syndicated 2013-04-05 12:48:23 from Notes In The Margin

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.

Syndicated 2013-04-02 00:44:16 from Notes In The Margin


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

29 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!