All posts by John Goerzen

Complete.Org Migrated To Different Continent, 15 minutes downtime

It’s time to change locations for my server. I’ve been with CoreNetworks for almost 5 years. They provide a good value, with fully dedicated servers a lot cheaper than most places, and good support to boot — targeting people that can handle root on their own box. I’m switching, though, to Hetzner Online (of Germany), primarily because I am needing more than 1GB RAM, and they can provide a 2GB box for less than I pay now for 1GB. I asked for feedback on Google+, and got positive feedback. Today, I migrated from one machine to another, copying a dozen or two GB of data, and only had about 15 minutes downtime.

I was able to do this without console access to the source machine, though console access wasn’t really required for either. This will work with any basic Linux install on the destination, or it could be prepared directly from a rescue environment.

Before I explain how I did it, I thought it was interesting to think of the different places that the machine that was known as complete.org has lived over the years. Here’s a map (click for detail):

Here’s the general process.

First, well in advance of the move, crank the TTL on the domains way down. This way, old IPs won’t be cached for very long once the system moves.

Next, start rsyncing data from the old machine to the new. Do not yet shut down daemons on the old. Shut down as much as you can on the new. You’ll want to focus on static data, such as /home. /usr is a good candidate as well. /var if you are selective — databases may be a good candidate, or may not. The idea is to seed the destination with data so that when we do the “real” rsync, most of the data will be there; it will have to tidy things up after daemons are stopped, and update some things, but the bulk of the work should be done.

Next, start preparing some exclude lists for the final rsync, which will copy an entire machine to the other. You will likely want to exclude files such as /etc/fstab, /etc/network/interfaces, /etc/resolv.conf, /etc/hosts, /etc/default/grub, /sys/*, /proc/*, /dev/*, and the like. I used rsync -v -P -a -H -A -X -S –numeric-ids –delete-after.

Now, start editing config files for the new IP, but do it on the old server (these will be synced over to the new one). Start with the bind config files, and touch anything else that needs it — maybe Apache configs, whatever.

Next, get ready to do the final sync. In an ideal environment, we’d just shut both machines down to single-user mode, but that’s not going to quite cut it here. Use ps and shut down all daemons except sshd and udev on the destination. Yes, including even syslog. This is to prevent anything actively accessing the disk during the rsync, and also to prevent any issues with clients accessing server daemons that aren’t ready yet.

Now, on the source machine, reload bind. This will start answering DNS queries with the new machine’s IP, and should also propagate the changes to your secondary DNS. Next, kill off all the daemons on the source machine, except for ssh and bind. You might want to set /etc/nologin to prevent regular users from logging in on ssh, if you have them. Now rsync things over to the new machine. Do any final tweaking over there (merging in /etc/hosts maybe, dealing with the udev rules.d persistent net thing, etc.). Reboot the new server and you should be up and running.

A 4-year-old, Linux command line, and microphone

There are certain times when I’m really glad that we have Linux on the house for our boys to play with. I’ve already written how our 4-year-old Jacob has fun with bash and can chain together commands to draw ASCII animated steam locomotives. Today I thought it might be fun to install cw, a program that can take text on standard input and play it on the console speaker or sound card as Morse code. Just the sort of thing that I could see Jacob eventually getting a kick out of.

But his PC was mute. We opened it up and discovered it didn’t have a console speaker. So we traipsed downstairs, dug out an external speaker, and I figured out how to enable the on-board audio chipset in the BIOS. So now the cw command worked, but also there were a lot of other possibilities. We also brought up a microphone.

While Jacob was busy with other things, I set to work getting things hooked up, volume levels adjusted, and wrote some shell scripts for him. I also printed out this reference sheet for Jacob:

He is good at reading but not so good at spelling. I intentionally didn’t write down what the commands do, hoping that this would provide some avenue for exploration for him. He already is generally familiar with the ones under the quiet category.

I wrote a shell script called “record”. It simply records from the microphone and drops a timestamped WAV file in a holding directory. He can then type “play” to simply play back whatever he recorded most recently. Easy enough.

But what he really wanted was sound for his ASCII steam locomotive. So with the help of a Google search for “steam train mp3”, I wrote a script “ssl” (sound steam locomotive) that starts playing the sound in the background if it isn’t already going, and then runs sl to show the animation. This was a big hit.

I also set it up so he can type “play train” to hear that audio, or “play song” to play our favorite train song (Always a Train in My Dreams by Steve Gillette). Jacob typed that in and sat still for the entire 3 minutes listening to it.

I had to hook up an Ethernet cable to his machine to do all this, and he was very interested that I was hooking his computer up to mine in some way. He thought all the stuff about cables in the walls was quite exciting.

The last thing I did was install flite, a speech synthesis program. I wrote a small shell script called “talk” which reads a line at a time from stdin and invokes flite for each one (to give more instant feedback rather than not starting playback until after having read a large block from stdin). He had some fun hearing it say his name and other favorite words, but predictably the most fun was when he typed gibberish at it, and heard it try to pronounce or spell nonsense words.

In all, he was so excited about this new world of computer sound opened up to him. I’m sure there will be lots of happy experimentation and discovery going on.

Update Feb 10, 2012: I have posted the shell scripts behind this.

Jacob and the Amazing Technicolor Adding Machine

Jacob has been eagerly awaiting this day for at least, well, 2 days now. This morning he started asking questions. All day long he has been wondering how long until the big event. And that event is the arrival of the UPS truck carrying a special $8 package for him.

And in that $8 package is not a DVD, or a book, or a toy, but rather 12 rolls of adding machine tape (totaling 1/3 of a mile). Oh yes, our four-year-old can hardly contain his excitement over office supplies. Let me back up a bit to explain.

I am always on the lookout for a certain kind of toy. The sort of thing that you don’t find in the toy section of a store. The sort of thing that is interesting and engages the curiosity of our boys, that most people would consider would toss, and that usually costs less than $5. Along those lines, Jacob has an old manual typewriter he can use, he and I built a switchbox full of switches and light bulbs that the boys love to play with, we built him a command-line-only PC out of spare parts, the boys have some radios they can use, and one day I salvaged a decades-old adding machine that was going to be thrown out.

Jacob liked it — he enjoys number and letter games — and had some fun, but didn’t zealously engage with it until just a few days ago.

He sat down at his table and started making “cards”. He will print out a bunch of numbers, making a strip a couple of feet long, and then say, “Dad, I made another card for you!” We will then happily accept the card and he will continue making more. Here he is, holding up one of his cards:

Jacob had a ton of fun making them, and Oliver wanted in on the action too. Oliver was somewhat interested in the adding machine, but not as much as Jacob, and Jacob didn’t want to share. So somehow they decided that Oliver would run and get cards from Jacob and then take them to whatever parent Jacob said. Today Jacob said, “Dad, the Oliver delivery service will bring you a card!”

Saturday morning we had some time to hang around and play, so we played some adding machine tape games. I tucked some long “cards” under my waistband, and the boys happily chased me all over the house trying to get them back. We also decorated:

And here is what the room looked like — after some cleanup:

That orange bucket on the desk is my “card bucket” where I can put all the cards he gives me. He even helpfully empties it out into the recycle bin when there are too many “old cards” in it!

But then tragedy struck — it was out of paper! I ordered a 12-roll pack off Amazon, and boy was it a long couple of days until it arrived. Today before the UPS truck got here, I showed him how we could feed old paper through and print on the back side — an incredible innovation, it seemed!

Terah had a conversation with him earlier that went like this:

Terah: “Jacob, we need to clean up the house.”

Jacob: “Why?”

Terah: “Because some people are coming over.”

Jacob: “Who is… OH YES! The UPS delivery man! Yes, let’s clean!”

Terah: “Ah, well yes he will be here too, but your great uncle and aunt are coming.”

Jacob: “Oh yay! And the UPS man!”

It is hard to describe Jacob’s excitement when the package arrived. I quickly opened it up, and at his great uncle’s prompting, he counted to see if he really did get 12 rolls of paper. “IT IS TWELVE ROLLS! YAY!” And then we quickly installed it in the machine and off he went. At his great uncle’s prompting, he started writing a J on each “card”. This meant “Jacob”, or maybe he’d put two J’s, meaning “To John From Jacob”, or perhaps the two J’s meant “To Terah From Jacob” – he’d always have to clue us in.

Anyhow, for an $8 investment in paper this has brought hours of joy to our boys. Even though Jacob isn’t yet really using it to perform arithmetic, it is setting him up to enjoy that sort of thing — and encouraging his curiosity. Both good things.

Too Strange for Jon Stewart

I would have probably dismissed as not realistic enough for even The Daily Show this kind of story, had someone suggested it a few months ago:

Rupert Murdoch’s corporation (owner of FOX News, Wall Street Journal, News of the World, etc) would have been found to have illegally accessed other people’s voicemails.

These included voicemails from a cellphone belonging to a recently-murdered girl, which interfered with the police.

And they had also bribed Scotland Yard officers for information, and actively covered it up.

The story would close one of Britain’s biggest newspapers, and force the resignation of various government and Scotland Yard officials.

That it would lead to the first high-profile investigation under the Foreign Corrupt Practices Act of an American corporation bribing British officials.

That one of the central figures in the scandal would suddenly die at a young age.

That there was a question of how the former editor of Murdoch’s newspaper — whom he steadfastly defended until one day he didn’t — would be taken from jail to testify before Parliament.

That CNN would live stream a hearing of a British Parliamentary subcommittee instead of the news conference given by the President of the United States.

And that during this committee hearing, some guy would attack Rupert Murdoch — who, until then, looked like he had a few drinks too many the night before — with a shaving cream pie.

And that Rupert Murdoch’s newspapers and TV channels would portray News Corp. as a victim of the liberal press in all this, and that they should just be left alone.

So maybe the last one was believable, but my goodness. Just when it couldn’t get any stranger, a SHAVING CREAM PIE?!

Pooh, Books, and Dads

If I think back to fond memories of being with my dad during my childhood, there’s one thing that always comes back first. It’s those late summer evenings outside. Dad often had outdoor projects going on of some sort. I’d go out there hanging around, maybe chatting, maybe playing with cats, or maybe doing something of my own.

Dad often had an old AM radio sitting around and would be listening to a baseball game while working. As it got darker, lights would come on, and the bugs would start flying near them. Sometimes dad would be working just inside the barn, and the bugs would start flying in there, while some light poured out the big front door. There’s something about that scratchy AM signal, the evening slowly getting darker, the slow pace of the baseball game, and just being around dad and a peripheral part of whatever he was doing that stirs a wonderfully fond recollection in me.

I don’t remember the specifics of any one of those times, nor do I really remember how often it happened, but it does stick with me.

We’ve had a routine in our house, starting early enough that neither of our boys know anything different, where right before bed, I read a book and sing a song to each of them individually.

Last November, I was looking for some books to challenge Jacob a little more than what we had been reading. I found The Complete Winnie the Pooh used for $4 on Amazon. This contains the original A. A. Milne stories, not the Disney series. It had a few line drawings, but there were many pages without any. It’s 352 pages and written in a rather dated form of British English. So for all these reasons, I wasn’t sure if Jacob would like it. But it was $4 so I bought it.

And Jacob was hooked. Each evening, we start bedtime with looking at the “map” of the 100-acre forest, just inside the cover. He gets to pick out 4 things for me to describe, and then we turn to our story. We usually read somewhere between 2 and 5 pages at bedtime, depending on how well he got ready without wasting time. And then we sing.

A. A. Milne has his Pooh character make up songs throughout the book. They are printed with words only, no tune, so I make up a tune for them as we go. Jacob has taken to requesting these songs for his bedtime song as well.

Jacob always gets to choose his bedtime story, and sometimes he chooses a different one — but about 75% of the time, it’s been Pooh.

A few weeks ago, he started noticing that we were almost to the end. He got very concerned, asking what we’d do next. I suggested a different book, which he didn’t like. Then I pointed out that we could restart the Pooh stories from the beginning, which was exciting for him.

Last night, we finished the book. The very last story was an interesting one, suggesting Christopher Robin growing up and no longer having imaginary adventures with the animals, but making Pooh promise to always be there for him. I don’t think Jacob caught onto that meaning, though. When we finished it, we had this conversation:

Jacob: “Dad, is that the end?”

Me: “Yes.”

Jacob, getting a big smile: “Yay! So can we start back at the beginning tomorrow?”

Me: “Sure!”

Jacob then gave a clap, shouted “Yay!” again, and was a very happy boy.

Sometimes I wonder what our boys will remember in 25 years of their fun times with me. I don’t know if Jacob will remember all the days reading about the animals in the 100-acre wood when he was 4, or maybe he’ll remember watching train and combine videos, or playing radio hide-and-seek, or maybe something entirely different.

But I have no doubt that I will remember sitting on the couch in his room, holding him on my lap, and reading a 350-page book to a loving 4-year-old. As Pooh aptly put it, “Sometimes, the smallest things take up the most room in your heart.”

First Look at Google Plus

Seems like everybody’s writing Google+ reviews these days, but most of the ones I’ve found seem to be fluff pieces. I haven’t used it long, but have some initial impressions to share.

First, an analogy. Facebook reminds me of the sleazy guy selling stuff from his car down the street. They do things like change privacy defaults when they think it’s good for Facebook, rather than good for you.

Google+ reminds me of an Apple product. It’s beautiful, easy to learn, but locks everything down and is lacking some critical features. So here goes with the details.

The good

I think that this can be best summed up by: it’s not Facebook. Facebook has, perhaps, set an incredibly low bar but still, this holds. Facebook is the only website I can ever remember using that changes things so much, so often, and so completely that I keep having this feeling of not knowing how to do things. Try maintaining a Facebook page or two and you’ll especially feel my pain then. But even the basics: how many times have I accidentally posted a partial comment because I pressed Enter to start a new paragraph (that has only been the button used for that for, hmm, let’s see now, decades), and instead it posted the comment. Principle of least surprise, anyone?

Google+ has a simple and, on the surface anyway, intuitive interface. However, it does get muddy; more on that below.

I’m going to spend a lot more space on “the bad” below, but don’t let that diminish my excitement about having a viable alternative to Facebook. I am keen to get rid of that monster.

The Bad

I’ll start of this section with the fact that Google+ is a tightly-controlled walled garden. There is no way to take a copy of your status updates, comments, etc. and back them up with your own devices. If your Google account goes away, so do all your updates about your kids’ first words. Facebook does have this feature these days. It has broken half the time, but it exists, works, and I use it. Twitter doesn’t have the feature built in, but its API makes it pretty easy; you could easily use my twidge program to do this, for instance.

But whatever you put in G+ stays in G+. There is no autoposting it to twitter or Facebook, no backups, nothing. I’m disappointed in that, given Google’s prior attitude about openness to individual data ownership. (Update 7/12/2011: There is a way to get a backup, which I hadn’t noticed; see comments below.)

Almost as bad, there’s also no way to get data in. So I now have identi.ca, twitter, Facebook, and now also G+ accounts. When I post an item in identi.ca, it autoposts to twitter, and then it autoposts from twitter to Facebook. Handy – one place to notify people of my public activities. My uploads to Flickr and blog posts also auto-post to Facebook, so people I’m friends with there get a picture of what I’m doing outside of Facebook without me manually having to link it in.

Not so with G+. There is no way to even add an RSS feed for my blog to auto-post to G+ as there is with Facebook. If you use G+, the only way to get stuff into it is with a keyboard.

Poor integration with other Google apps is also an issue. G+ is nowhere near Google’s first social app. They also have Blogger, Google Reader, Buzz, Gmail, etc. So here’s the rub. These aren’t integrated well, and when they have tried to integrate them, they’ve done an exceedingly poor job of it.

As an example: Buzz is a twitter-like service for posting updates. Very similar to what G+ does, right? Well, the best you can do is link your Buzz account to a separate tab on your profile. You can’t even have your Buzz updates flow straight into G+, from what I can see. You have a separate list of followers in Buzz from G+. Reader is even worse; it has a sharing feature, but it’s not G+ aware, so it goes to a reader inbox.

But what takes the cake is the integration with Gmail Contacts. Sounds easy? Not entirely. When you add someone to G+, apparently it sometimes links the record with their entry in Contacts. And the help gives you the handy warning that when you remove them from G+, you have the option of removing them from Contacts, which could impact what you see on a mobile device. It is unclear what happens when it doesn’t link the record, or how it decides which record to link (some people have more than one person in a family sharing phone numbers and email addresses, for instance.)

One very nice feature of G+ is you can add email addresses, even if they aren’t G+ members. Then when you post updates to the circle you’ve added them to, G+ offers to send them an email with an update. Very handy.

Except the undocumented part is that if you select “Your circles” (meaning all your circles), rather than individually ticking the box by each circle, they don’t get the email. And they also don’t get it if you set it Public. You have to select their specific circle, which is a significant difference from how people with G+ accounts are treated.

And that’s just an example. There are a ton of things that work one way 95% of the time, but have non-obvious exceptions. Some of these exceptions are documented in the help, and some aren’t.

I’m still confused about the integration with Picasa. G+ help says that you can upload unlimited numbers of photos for free (though they will be downscaled at a certain point). Picasa has definite storage limits. But G+ uploads are showing up in Picasa. Do I really get free storage by uploading to the same place via a different tool? Very odd.

And finally, a gripe about web standards. I’ve been using Firefox/Iceweasel 3.5, which came out in Debian squeeze and is still supported there. It is also pretty darn new by corporate IT standards. And Google Plus refuses to let me log in with it, saying it’s “incompatible.” Perhaps it can’t do some fancy animation, but then again I don’t really care. Seems Google has forgotten the old RFC adage: be liberal in what you accept and conservative in what you generate. If you can detect that my browser won’t animate something right, then you could give me a stripped-down version of the page rather than an error message.

Geeks, Hobbies, and Free/Open Source: Feedback Wanted

I’ve been thinking lately about ways to improve ways in which I interact with Free Software projects, and ways in which they interact with me. Before I proceed to take steps or make suggestions, I’d like to see if others share my traits and observations.

Here are some questions I have been thinking of. If you’d like to help give me anecdotal evidence, please post a comment below this post. Identify the question numbers you are answering. It helps me if you can give specific examples, but if you don’t have the time or memory for that, no problem.

I will post my own answers in a day or two, but the point of this post is listening, not talking, so I’ll not post them immediately.

Hobbies (General – any geeks)

  • H1: To what degree do you like your hobbies to be challenging vs. easy? If something isn’t challenging, does that make it a good, bad, or indifferent candidate for a hobby
  • H2: To what degree do you like your hobbies to be educational or enlightening?
  • H3: How do you pick up new hobbies? Do you go looking for them? Do you stumble upon them? What excites you to commit time and/or money to them at the beginning?
  • H4: How does your interest wane? What causes you to lose interest in hobbies?
  • H5: For how long do you tend to maintain hobbies? Sub-hobbies?
  • H6: Are your hobbies or sub-hobbies cyclical? In other words, do you lose interest in a hobby for a time, then regain interest for a time, then lose it again? What is the length of time of these cycles, if any?
  • H7: Do you prefer social hobbies or solitary hobbies? (Note that many hobbies, including programming, video gaming, reading, knitting, etc. could be either social or solitary, depending on the inclination of individuals.)
  • H8: Have you ever felt guilt about wanting to stop a hobby or sub-hobby? (For instance, from stopping supporting users of your software project, readers of your e-zine, etc) Did the guilt keep you going? Was that a good thing?

Examples: video games might be a challenging hobby (depending on the person) but in most cases aren’t educational.

A hobby might be “video game playing” or “being a Debian developer.” A sub-hobby might be “playing GTA IV”, “playing RPGs”, or “maintaining mutt”.

Free/Open Source Hobbies

  • F1: Considering your answers above, do your FLOSS activities follow the same general pattern as your other hobbies/interests, or are there differences? If there are differences, what are they?
  • F2: Has concern for being expected to support software longer than you will have an interest in it ever been a factor in a decision whether to release source code publicly, or how public to make a release?
  • F3: Has concern over the long-term interest of a submitter in maintaining their patch/contribution ever caused you to consider rejecting it? (Or caused you to avoid using software over the same concern about its author)
  • F4: In general, do you find requirements FLOSS projects place on first-time contributors to be too stringent, not stringent enough, or about right?
  • F5: Have you ever continued contributing to a project past the point where your interest would otherwise motivate you to do so? If so, what caused you to do this? Do you believe that cause is a general positive or negative force for members of the FLOSS community?
  • F6: Have there ever been factors that caused you to stop contributing to a project even though you still had an active interest in doing so? What were they?
  • F7: Have you ever wanted to be able to take a break as a contributor or maintainer of a project, and be able to return to contributing to it later? If so, have you found it easy to do so?
  • F8: What is your typical length of engagement with FLOSS projects (such as Debian) and sub-projects (such as maintaining a particular package)?
  • F9: Does a change in social group ever encourage or discourage you from changing hobbies or sub-hobbies?
  • F10: Have you ever wanted to stop working on a project/sub-project because the problems involved were no longer challenging or educational to you?
  • F11: Have you ever wanted to stop working on a project/sub-project because of issues with the people involved?

Examples on F9: If, say, you are a long-time Perl user and have gone to Perl conferences, but now you are interested in Ruby, would your involvement with the Perl community cause you to avoid taking up the Ruby programming hobby? Or would it cause you to cut your ties with Perl less quickly than your changing interest might dictate? (This is a completely arbitrary example and isn’t meant to start a $LANGUAGE thread.)

Changes over time

  • C1: Do you believe that your answers to any of the above questions have changed over time? If yes, then:
  • C2: What kinds of changes have happened?
  • C3: What caused the change?
  • C4: Do you believe the changes produced positive results for you? For the community?

APRS: World’s Best Social Mapping and Wide-Area Ad-Hoc Wireless Mesh Network

That was quite a headline, and I’m going to try to back it up below.

APRS is the Automatic Packet Reporting System. It’s a system for exchanging brief packets of information. It is most frequently used for mapping applications, but it really does a lot more than that. It has its biggest home in the amateur radio world, but isn’t limited to that, either.

The most common way to use APRS is to have some device hooked up to a GPS transmit packets with the GPS information in them. These packets can then be plotted on a map in real-time or with history. That in itself isn’t particularly newsworthy these days.

An interesting thing about APRS is that it’s not just positioning. Let’s say that there was a search-and-rescue operation. A person could draw a rectangle on the map indicating the search area, and within about 3 seconds everyone else’s map also shows that rectangle. People have even been known to play chess by sharing and moving objects on APRS!

The next piece that makes this interesting is that APRS is an ad-hoc mesh network. In its traditional implementation, VHF amateur radio, a radio emits a packet with a geolocation in it (a “beacon”) and any other radio within direct range of that can receive it. Radios can display basic information (such as distance to the other radio, heading, etc.) or hooked up to a laptop or mapping device for a better display. So if everyone is within a few miles, APRS works without any pre-existing infrastructure at all. This makes it wonderful for use in disaster areas, and was put to heavy use in Joplin after the tornado there.

But what about radios that are too far away? Any APRS station could also be a digipeater. When a packet is transmitted, it has a maximum hop count. A digipeater hears the packet, decrements the maximum hop count, and re-transmits it. With this mechanism, packets can travel hundreds of miles. It creates a highly resilient network, one that can route around trouble without even having to have an explicit backup route. I could bring in a digipeater in my car — it can be small enough to hold in my hand — and instantly improve APRS reception in an area.

One interesting aspect is that packets can be digipeated more than the maximum hop count. For instance, if a packet leaves my radio and is picked up by a digipeater to my west and one to my east, it can keep on traveling in both directions. This is part of what leads to resiliency.

APRS also functions over the Internet. There is a large network of interconnected Internet servers that exchange all global APRS traffic amongst themselves. Gateways between the radio (RF) and Internet (APRS-IS) services exist, and are called iGates. They are not generally required, but make useful websites like aprs.fi and email gateways possible. As long as an iGate is within a reasonable number of hops from you, you’re effectively linked. And again, if one iGate drops off, another iGate is probably monitoring your traffic too and you never notice. It’s an ad-hoc mesh network that is actually reliable – how about that?

On the PC side, there are many programs for using APRS. The most common one for Windows is called UI-View, but I don’t use Windows so I can’t comment. On Linux, there are programs (such as aprx) for running your digipeater, but the best-known program is Xastir. Xastir lets you download map files to your local disk, and can interface with the APRS-IS Internet service, radios, weather stations, or simply other arbitrary machines to exchange information. Xastir is a very nice program and is well worth the install, despite its somewhat dated-looking interface.

APRS clients, such as APRSDroid, exist for Android and iOS platforms as well.

So let’s say you’re doing something like helping handle food/water stations for a long bike ride. Even if you don’t have anybody with an amateur radio license, you can use APRS to great effect. At your headquarters, you can run Xastir and turn on its “server mode”. This puts everyone on a map. Then you can have everyone turn on APRS on their phone, and have it report to your custom server instead of APRS-IS. Now you have instant visibility into your entire team’s location and status. If you have transport people driving supplies between locations, that’s especially helpful.

In an amateur radio scenario, you would instead have people with radios at each location, and one laptop hooked up to a radio at HQ. This provides an added bonus of not relying on third-party infrastructure such as cellphone towers.

APRS also has a messaging system, similar in concept to text messaging. It works the same as other things. If I want to send a message to Jane, my radio simply emits a packet that lists the message and Jane as a recipient. It’s digipeated up to its maximum hop count. If Jane is within RF range of one of those digipeaters, she gets the message and her radio ACKs it. Otherwise, it’s delivered into the APRS-IS network — probably several times, which isn’t a problem — and the APRS-IS network delivers it to the iGate closest to her, and from there it gets digipeated the rest of the way to her.

Here’s an example of something created with APRS. While I was on a bus choir tour last weekend, I had a radio with me that was beaconing all the while. Now it was a small handheld radio inside a large metal bus, so it didn’t always have a digipeater in range. But still, you can go see a detailed map with the trail and even see exactly what path each packet took before it hit the Internet.

If you want to try out Xastir, please grab at least version 2.0 – the version in squeeze has some bugs.

Back from Joplin

I’m just back from spending a few days volunteering with the tornado recovery effort in Joplin, MO.

The biggest image that remains in my mind is of the first time I saw a person picking through a large pile of rubble. The person was standing on top of what used to be a house. Now it was a pile of wood, glass, carpet, siding, and roofing material. I’m sure there was hope for finding some treasure or other — maybe a photo album or videos of children. In any case, it made me feel so lucky, even unfairly lucky, to have not had to go through that.

This scene was repeated several times, but mostly the houses that devastated appeared abandoned by the time we were there, now two weeks after the event.

But I heard stories, and lots of them. The victims of the storm, who were perhaps trying to rebuild that part of their house that got smashed by a tree or a pickup, or trying to get their intact belongings out before abandoning the house, or whatever, were mostly surprisingly upbeat. They were working out in 95-degree heat, many without electricity, running water, or sewer service. Almost every person I met that suffered a loss from the tornado wanted to tell their story. Many also told of their plans for the future, which were full of hope and even upbeat. These were people doing a hard job in terrible conditions and still showing hope.

Another testament to the disaster was the most unusual set of vehicles you’ve ever seen parked at any hotel you can care to think of, for at least an hour-and-a-half radius in the direction I came from. Besides the usual cars and minivans, there might be FEMA vehicles, electric company trucks, Red Cross vans, construction trucks of every kind, police and law enforcement from all over, etc. There was quite obviously an influx of people helping out in Joplin.

My primary task there was to provide communications support for the effort as an amateur radio operator. Amateurs (or “hams”) are something of a volunteer first responder of sorts during times of crisis; most of us own and are very familiar with operating equipment that can communicate over very long distances without the need for any on-site infrastructure. Amateur radio was the only method of communication for some Joplin hospitals in the immediate aftermath.

The communications emergency is over, but the response isn’t. I was assigned to work with the Salvation Army. They were doing a lot of things in Joplin, and had hundreds of volunteers working with them. I don’t think I even know what many of them were doing – I do know they had set up several warehouses across the city working with donating clothing, food, etc.

The part I was involved with was primarily the canteen operation. The SA sent in food service trucks from several parts of the country. These trucks would roam up and down the streets in the damaged area, trying to get past every single street several times a day. Anybody that we could see would be offered food and water. No strings attached, no questions asked. This included homeowners, electric line workers, construction crews, sanitation workers, and quite a few nonprofit groups that sent well-meaning and useful volunteers into the area but didn’t think to provide them with a large supply of water due to sending them into an area without any. Oops. In any case, with extreme heat and no running water, conditions were dangerous. The canteens also knew of certain at-risk families that were living in homes that were mostly intact in the disaster areas, and made a special point to check in on them. They also generally looked to make sure that people looked like they were healthy. Each canteen also had a counselor on board that would visit with people while we quickly prepared their meal — they all seemed to welcome that.

Amateur Radio’s Role

The operation of this size had quite a logistics challenge. I’d hear of things like an unexpected need of 70 lunches, or a semi showing up with donations before there was space, or an unexpected but very welcome donation of a large quantity of ice cream without a place to store it (so the canteen trucks, which have freezers, needed to pick it up quickly). That’s where us hams came in. Each canteen had an amateur radio operator on board. Each major location also had a ham stationed there, and the head of operations also often had a “shadow” — a ham that would follow him around wherever he went to relay messages back and forth. We also had hams with pickups (with radios in them, of course) that could transport things around the city to places that needed them, hams at headquarters managing all the communication and generally investigating questions that didn’t have immediately obvious answers, etc.

Radios were used instead of cellphones for a few reasons. One big one is that everybody on the operation can hear what everyone else’s needs are, since it’s a group communications situation rather than one-to-one. It’s easy to give a general alert to everyone (“come get your ice cream now please!”) and people that have suggestions can chime in. This came in extremely handy more than once. Also, it frees the people doing other jobs from having to spend time chasing someone’s voicemail, finding phone numbers, etc; that gets delegated to us in some cases. I heard from the head of canteen operations, for whom this was the first disaster he’d worked that had amateur radio support, how wonderful it was to have this going on. I also heard a secondhand report that some police officers that were also amateurs had listened to our operation and reported that “we sound more professional than 911 dispatch and do a better job.”

On Sunday I was assigned to a canteen. This meant I didn’t have a lot of radio traffic to pass, so although I had it in my ear all day, I wasn’t actively talking on the radio very much. So I rode in back, helping hand out water, carry meals to people, and so forth.

On Saturday, I was the shadow for the head of operations. That was a difficult task, because he barely ever moved at a pace slower than a run, sometimes would abruptly zip out somewhere, etc. But it was also enlightening and vital. He was a real “get it done” sort of guy, and was the key to quite a few things. Having someone available to relay questions to and from him was a good thing.

And today I worked as a transport person and at headquarters. Due to not having a pickup there, I didn’t actually get called on much to transport things, but in general between jobs the whole time I’d act as a runner if needed, or simply try to figure out the details of how things were run for next time. I wound up taking “net control” (being the control operator at headquarters, and generally managing communications so that people don’t talk over each other and such) for about an hour. So I got to do a little of just about every amateur radio task.

Thoughts

I am thankful for the opportunity to go, and the good feeling of helping people in need — the first I’ve ever had the chance to do that in a disaster. It’s a good feeling to have a skill that is useful and appreciated. Sometimes it felt like handing out food and water is something pretty small in the scheme of things. But on the other hand, it gives people a chance to have contact with someone that cares, an opportunity to have people that can notice problems drive by a few times a day, and an opportunity to help meet people’s basic needs. And sometimes in a fluid situation, there might be more volunteers than are needed, so I did spend some time sitting waiting for the next task.

But overall, I’m convinced that the work I helped facilitate was a good thing and provided a good and needed service in Joplin. This has been quite the experience and I’m sure it’s changed me too, though I don’t yet know how.