All posts by John Goerzen

Debconf10

Debconf10 ended a week ago, and I’m only now finding some time to write about it. Funny how it works that way sometimes.

Anyhow, the summary of Debconf has to be: this is one amazing conference. Despite being involved with Debian for years, this was my first Debconf. I often go to one conference a year that my employer sends me to. In the past, it’s often been OSCon, which was very good, but Debconf was much better than that even. For those of you considering Debconf11 next year, perhaps this post will help you make your decision.

First of all, as might be expected from a technical conference, Debconf was of course informative. I particularly appreciated the enterprise track, which was very relevant to me. Unlike many other conferences, Debconf has some rooms specifically set aside for BoFs. With a day or two warning, you can get your event in one of those rooms on the official schedule. That exact thing happened with a virtualization BoF — I thought the topic was interesting, given the recent shifts in various virtualization options. So I emailed the conference mailing list, and we got an event on the schedule a short while later — and had a fairly large group turn out to discuss it.

The “hallway track” — conversations struck up with others in hallways or hacklabs — also was better at Debconf than other conferences. Partly that may be because, although there were fewer people at Debconf, they very much tended to be technical people whose interests aligned with my own. Partly it’s probably also because the keysigning party, which went throughout the conference, encouraged meeting random people. That was a great success, by the way.

So Debconf succeeded at informing, which is perhaps why many people go to these things. But it also inspired, especially Eben Moglen’s lecture. Who would have thought I’d come away from a conference enthused about the very real potential we have to alter the dynamics of some of the largest companies in the world today by using Free Software to it’s greatest potential?

And, of course, I had fun at Debconf. Meeting new people — or, more commonly, finally meeting in person people I’d known for years — was great. I got a real sense of the tremendously positive aspect of Debian’s community, which I must admit I have sometimes overlooked during certain mailing list discussions. This was a community of people, not just a bunch of folks attending a random conference for a week, and that point underlined a lot of things that happened.

Of course, it wasn’t 100% perfect, and it won’t ever be. But still, my thanks to everyone that organized, volunteered, and attended Debconf. I’m now wishing I’d been to more of them, and hope to attend next year’s.

Really Dark Blue

As we were walking home tonight, Jacob started singing, over and over:

Really dark blue,
really dark blue,
really dark blue…

The tune changed a bit, but the words didn’t. Terah and I wondered what was really dark blue, until finally we heard:

Really dark blue,
really dark blue,
really dark blue sky.

Really dark blue…

Then a little while later, we heard:

Really dark blue,
really dark blue,
really dark blue with morning stars.

It was such a cute moment that it’s hard to convey it in words.

I even got an audio recording of it on my phone, which I’ll perhaps post someday.

Update 21:05: For Jacob’s usual bedtime song tonight, I offered to sing the “really dark blue” song for him. When I sang “really dark blue with morning stars,” he said, “no, that’s not it. It’s MOONLIT stars.” So I guess my 3-year-old just corrected my blog post.

I see a career in copy editing in his future…

Once, We Were Makers

I saw an article on Wired today: The Lost Tribes of RadioShack. It is well worth the read even if you’re not into electronics. A key quote:

[H]is shop is a lone outpost; in a single generation, the American who built, repaired, and tinkered with technology has evolved into an entirely new species: the American who prefers to slip that technology out of his pocket and show off its killer apps. Once, we were makers. Now most of us are users.

I remember as a kid eagerly awaiting each year’s new RadioShack catalog. I’d read them pretty much cover to cover for fun. And who wouldn’t? The catalogs had fun things like radios, telephone gadgets, calculators, tape recorders, electronic “lab kits”, books, components, LEDs… I loved the catalogs and loved the store.

My parents bought me a electronic kit (if memory serves 20 years later, it’s the “deluxe 160-project electronic kit” from page 156 of the 1988 catalog, though it may have been purchased a different year). I had endless fun with that thing. It had resistors, diode, capacitors, oscillator, speaker, LED, relay, etc — plenty to make a bunch of kid-friendly projects.

Just looking at the catalog makes me excited even today. On the next page from the kit I had is a $5 crystal radio kit which needs no power source — “Solderless. With earphone, instructions, theory.” On page 28 there was a revolving red light, and some microcassette recorders on p. 36 (I had one of those for awhile).

I had enthusiasm for building and figuring out things for a long time. My dad let me take apart an old lawn mower for fun once — I’m sure he knew ahead of time it would never be back together. One of his friends from work built homemade contraptions out of things like an old vacuum cleaner (attach a cardboard tube to the exhaust and you get a great tennis ball shooter). And there was always all sorts of fun junk to discover up in the barn.

I eventually shifted to a different sort of “making things”: programming. It has kept me busy for quite a number of years.

But the Wired article has a point. RadioShack is struggling. Many people have no interest in making or fixing things anymore. The best-selling smartphone in the world comes sealed in a metal case where not even the battery can be replaced, the software is dictated by a company in California, and good luck trying to program for it without signing your life away first. A far cry from the first computer I used, a TRS-80 Color Computer II, bought, yes, at RadioShack. Turn it on, and in a few seconds you get a BASIC prompt. Can’t really use it without programming. Being able to read its manual was an early motivation for me to work at learning to read.

It is sad that so many devices can’t be worked on anymore, and that so many people don’t care. It is difficult for me to give Jacob (and later, Oliver) the sort of experience I had as a child. Companies would love to sell us $50 DVD sets, $300 “educational” game systems, $40 educational games, and any number of $30 plastic toys (some of which we have and the boys enjoy).

I’d rather give him a $10 bag of resistors, capacitors, wire, battery holders, LEDs, and a book, and see what he can come up with (when he’s a bit older, of course). And, in fact, he and I built his first computer together. We installed the ultimate in operating systems for tinkering: Linux.

This all brings me back to RadioShack. I’ve been working on ham radio lately, with an eye to that being a project for Jacob (age 3.5), Oliver (just turned 1), and me to enjoy in the future. I needed some cable, and had been told by many people to visit the RadioShack in Derby, KS. It’s like the one mentioned in the Wired article: huge, selling everything from washing machines to bulk cable, except this one specializes in amateur radio.

I asked Jacob if he would like to come with me to a radio store. “Dad, I would LOVE that!” He brought his little semi-broken walkie-talkies with him to use during the hour drive there. At one point, he was concerned that a radio store is like a library and he might have to leave them on a shelf. I assured him he could keep them.

We got to the RadioShack and he loved it. He couldn’t even really contain his excitement. He ran back and forth along the bright green stripe running down the middle of the carpet. He excitedly watched them measure out 60ft of RG-8 coax for me. He pushed buttons on the demo clothes dryer, looked at all the antennas, and just had a great time.

And he’s been interested in my radio, too. When I was talking to somebody on it the other day, he said, “I think he is at the radio store. He is having fun there.” Right now, everybody I talk to on the radio is at the radio store to him. Jacob loves the fact that the backlight on my FT-857D can change colors, and often comes into the office just so I can put it into setup mode and let him spin the big wheel to change the colors. He enjoys opening boxes of components, and came out to help (and run around) while I suspended a dipole from some trees last Friday.

I had told Jacob when we got to the store that “This radio store is called RadioShack.” He obviously took that to heart, because now if he hears me talking about “a radio store”, he will say, “Dad, actually it is radio SHACK.”

So I say thank you to the Derby RadioShack for keeping the magic of making things with your dad alive for another generation.

KD0MJT

Wow — tonight was thrilling. It’s hard to explain why, but it’s pretty exciting to have a radio setup that is all wrong in so many ways work well enough for me to sit in my kitchen in Kansas and talk to someone in Indianapolis using only two-way HF radios.

I recently passed my technician and general amateur radio exams. I’ve been talking to some very nice people locally on the 2m band, which permits local (say, 100-200mi radius) communication. It’s been fun, but Kansas is sparsely populated enough that sometimes there just isn’t any activity. At all.

Earlier this week, my Yaesu FT-857D and two antennas arrived. I tried it first on VHF, and had a nice chat with Kent (KB0RWI) a few miles away. But tonight was the big experiment.

I bought a 20m dipole antenna. This is basically a 30-foot-long wire, connected to a balun and a coax feed line in the middle. You’re supposed to put it at least 30 feet off the ground, and away from trees, houses, etc. You’re supposed to have a nice RF ground for your transmitter, power supply, antenna tuner, and all that stuff. You’re not supposed to just run the coax under that (until today, annoying) small hole in the seal under the kitchen storm door. You’re supposed to have to have the correct connectors on your coax, instead of soldering an RG-8 PL-259 onto some RG-8X because you’re new at this and didn’t realize that you need to buy an adapter.

And, I’m really pretty sure that you’re not supposed to have an aggressive outdoor cat — complete with a full set of claws and teeth — attack the coax RG-8X cable as it’s being pulled through the grass.

Fail to do any of these things, and the thing might not work well, or might not work at all, or for people that use old equipment, might burn out your radio or something.

So anyway I got out the ladder today, and I got the antenna maybe 10-15 feet in the air. I have three trees in a row with the perfect separation to hang each end and the center balun from. So while Jacob went around playing with water and trying out the ladder on occasion (with my help), I used some string to hang the antenna. In the trees, not far from them. Near the house. Not 30ft off the ground.

I strung the feed line into the house, set up all my equipment on our kitchen table, flipped the switch. And — nothing. Just the occasional familiar whine while tuning. I tried the 20m band, then the 40m, then even 15, 12, and 10. No activity anywhere. So what was wrong?

I improvised some grounding — extracted the ground conductor from an old strip of AC house wiring, shoved it into the ground, and grounded the tuner and transmitter. No difference.

I unplugged the coax, and tested it with my multimeter. It tested out OK.

I plugged it back in and wiggled the connector. Turns out the connector isn’t in great shape, but it had been working.

I tried transmitting. The tuner made a whole bunch of alarming-sounding clicking noises (sounded like a symphony of relays), indicated SWR over 3, and the ammeter on my power supply went a bit nuts. Later I realized that I just wasn’t giving the tuner enough time to tune up; with a few more seconds, it tuned up just fine on every frequency. (So yes, it was supposed to do that.)

And, it turns out, that all I needed to do was wait a little while longer to hear some signals. Pretty soon I was finding stuff all over the 40m band. I heard a discussion from Chicago, another from Oklahoma City, some apparent broadcasters from Africa.

I decided I would try and transmit. I was hearing one side of a discussion very clearly and decided I would wait for an opportunity to try to contact that person. I heard his callsign, K9RM. I looked it up, and realized he was near Indianapolis, where I had lived for awhile.

Eventually he invited a station trying to get in to participate. And:

“KD0MJT” (I announced my callsign, as a request to join the conversation)

He said he only made out the 0, but eventually we were talking quite well. It was a brief conversation, but interesting; the person he was talking to was in Portland, and couldn’t hear me (and I could barely hear him, but not loud enough to make out).

That with no phone lines, no Internet provider needed, etc. And with a rig that is far from being at peak efficiency. I had no idea what to expect tonight — and was surprised that just tossing an antenna up in a tree let me talk to someone in Indiana. That’s 650 miles away. I wonder what I’ll be able to do once I get things done the right way.

This hobby is going to be fun. Many thanks to Mike_W for equipment suggestions, Kent and Dan from Newton ARC for encouragement and coming out to the house to test things, Kent for being my first ham radio contact ever (on 2m while I was using an old 1981 radio), Chuck (K9RM) for taking a few minutes to be my first HF contact, and my dad for helping plan out exterior wall penetration methods that will eliminate this coax under the kitchen door and lack of grounding business.

Jacob, by the way, still loves his radios and is starting to take an interest in mine. It wouldn’t shock me at all of he’s one of these kids that gets his technician license in the 2nd grade or something. I think he and I can do this together for a long time.

Update 11/1/2010: My callsign has changed to KR0L.

Radios

Those of you that follow me on twitter or identi.ca know that I’ve been working on my amateur radio license. This started a few weeks ago when Jacob got excited about radios, and must have infected me too.

I’ve been studying and learning a bit. I had called a local ham (amateur radio operator) I know from church. He gave me one of his apparently newer radios, a 1981 2m Icom IC-22U 10W unit. That was great and got me all the more interested. Then last Friday, a couple of local hams came over to check out that radio and see what repeaters I could hit with it. They discovered a handheld 5W unit could hit at least one local repeater, and this 10W unit could too. One of them also had an HF rig in his pickup, and it was fun to stand out in the driveway and listen to conversations in Michigan and Utah. That evening erased any doubt in my mind about whether or not I would become a ham — and it’s a bit hard to believe it was only a week ago.

I had been studying for the Technician-class amateur radio license, the lowest of three levels of licensing. One of the guys that came over Friday gave me a book to study for the General license, the intermediate level. It warned me to allow a month to prepare, and here I was planning to take the exams Tuesday. I picked it up Sunday, so really got 2 days of studying in.

Tuesday I drove to Independence, KS, about 2.5 hours away for the exams. I went so far primarily because the Wichita exams weren’t going to be offered until mid-August and I didn’t want to wait that long. I found a fun group of people in Independence. I hadn’t expected to have fun taking exams, but really, I did. We visited before the exams, and they wanted to know where I was from, of course.

When it was time to take the exams, I guess I sort of surprised them by already having my FRN (FCC registration number) and photo copies of my IDs with me. One of them said, “You’re going to have no trouble with this, are you?” I took the Technician exam, checked my work carefully, and turned it in to be graded. They checked it twice and had two people looking over it before they announced I passed with all 35 questions correct.

I should note at this point that I was the only person taking the exams that night.

Anyhow, on to the General exam. Same drill. It was harder, of course, and I turned it in to be graded. One of them looked at the test, looked at me, put on a grave face and said, “Uh oh, not one right.” I knew he was joking… and they announced I passed THAT one with 100% correct as well. I hadn’t expected that, and neither had they. That was what I planned to do, but they said that nobody had ever walked in, taken two tests, and had a score like that — and pretty much insisted I try taking the Amateur Extra exam as well. I said I haven’t studied for it at all and really doubt I could pass, but eventually went ahead and took that one too. I didn’t pass, but I don’t think they’d have wanted to let me leave without trying.

After the paperwork was done, they invited me to hang around and chat with their group that was meeting next door for a bit. I did, and drove home.

Then was the frustrating part of the week: waiting for my license. I can’t transmit until the FCC issues my license, even though I had passed the exam. My handheld radio arrived later in the week, and of course I still couldn’t do much with it. Finally the FCC posted my license late yesterday so I was able to talk to people. It’s been fun and I look forward to doing more. I was able to talk to people 55 miles away while driving, and with suitable equipment at home should be able to do much more than that.

Several of the people I talked to were offering me tips. I’ve never seen a group of people so eager to help out someone new. It’s an amazing community and I think Jacob and Oliver will enjoy it one day too.

Hardware/Machine Reporting Tools

We have a tool at work, Kaseya, for our Windows machines. It handles updates, but also can report back information gathered from them: OS version, patches installed, time since last checkin, last user logged in, user most frequently logged in, plus details about hardware: RAM, disk size, serial number, etc. I’m looking for a tool that can do this on Linux as well.

Of course, we could roll our own; all the above is readily cleaned from standard commands plus examining /proc and /sys. But before we roll our own, we want to be sure there’s nothing else out there worth using.

Down the road, we might also like it to grow in another direction: centralized configuration, storing links between machines and people in a database, and generating DNS, DHCP, etc. configurations out of it. Whether that would be the same tool as this is another question.

There are, of course, expensive and overkilling well-known commercial packages to do this. We’re after something simple that gets the job done.

Any ideas?

Bicycling in Rain and Mud

I recently posted here about bicycling in the mud and rain, and got some good suggestions (and also on the icebike mailing list). I eventually decided to replace my current bike (Trek 7.3FX) with a Specialized Tricross Sport Triple. As I mentioned in the bike store, “it seems odd to spend this kind of money on a bike only to ride it through mud and sand.” Another customer overheard and said, “It sure does — but don’t worry, it’ll be fine!”

But on the other hand, I figure that it is probably realistic for me to ride it around 3600 miles (5793 km) per year. At that rate, it will pay for itself in reduced car costs in about a year.

I picked it up last Friday, and on Saturday moved my accessories (headlight mount, tail light, water bottle cage, etc.) to it. The Bontrager Back Rack I from the 7.3FX did not fit well, so I ordered the Specialized Tricross Rack Set, which did fit well (I’m not using the front rack though).

This has been a wet week. I rode Thursday when it had stopped raining about 20 minutes before I left in the morning, and we got more rain in the afternoon. Although both the Tricross and the 7.3FX have 700x32C tires, even the factory tires on the Tricross performed far better in mud than the 7.3FX ever did — and I can still go much more wide if I feel it necessary. Actually, somewhat to my surprise, I didn’t really have a problem with kicking up mud; my enemy turned out to be kicking up sand. It didn’t really damage anything, and I had to try not to cringe as I saw the sand hitting the chain, etc. I rinse it off when I get to my destination, and clean/lubricate the chain frequently in these conditions.

I haven’t yet been on the bike during an active rain, but from what I’ve done so far, I think it will be fine. So at this point, there’s very little that will prevent me from riding.

Time to learn a new language

I have something of an informal goal of learning a new programming language every few years. It’s not so much a goal as it is something of a discomfort. There are so many programming languages out there, with so many niches and approaches to problems, that I get uncomfortable with my lack of knowledge of some of them after awhile. This tends to happen every few years.

The last major language I learned was Haskell, which I started working with in 2004. I still enjoy Haskell and don’t see anything displacing it as my primary day-to-day workhorse.

Yet there are some languages that I’d like to learn. I have an interest in cross-platform languages; one of my few annoyances with Haskell is that it can’t (at least with production quality) be compiled into something like Java bytecode or something else that isn’t architecture-dependent. I have long had a soft spot for functional languages. I haven’t had such a soft spot for static type checking, but Haskell’s type inference changed that for me. Also I have an interest in writing Android apps, which means some sort of Java tie-in would be needed.

Here are my current candidates:

  • JavaScript. I have never learned the language but dislike it intensely based on everything I have learned about it (especially the diverging standards of implementation). Nevertheless, there are certain obvious reasons to try it — the fact that most computers and mobile phones can run it out of the box is an important one.
  • Scheme. Of somewhat less interest since I learned Common Lisp quite awhile back. I’m probably pretty rusty at it, but I’m not sure Scheme would offer me anything novel that I can’t find in Haskell — except for the ability to compile to JVM bytecode.
  • Lua — it sounds interesting, but I’m not sure if it’s general-purpose enough to merit long-term interest.
  • Scala sounds interesting — a OOP and FP language that compiles to JVM bytecode.
  • Smalltalk. Seems sad I’ve never learned this one.
  • There are some amazing webapps written using Cappuccino. The Github issue interface is where I hear about this one.
  • Eclipse. I guess it’s mostly not a programming language but an IDE, but then there’s some libraries (RCP?) or something with it — so to be honest, I don’t know what it is. Some people seem very excited about it. I tried it once, couldn’t figure out how to just open a file and start editing already. Made me feel like I was working for Initech and wouldn’t get to actually compile something until my TPS coversheets were in order. Dunno, maybe it’s not that bad, but I never really understood the appeal of something other than emacs/vi+make.
  • A Haskell web infrastructure such as HSP or hApps. Not a new language, but might as well be…

Of some particular interest to me is that Haskell has interpreters for Scheme, Lua, and JavaScript as well as code generators for some of these languages (though not generic Haskell-to-foo compilers).

Languages not in the running because I already know them include: OCaml, POSIX shell, Python, Perl, Java, C, C++, Pascal, BASIC, Common Lisp, Prolog, SQL. Languages I have no interest in learning right now include Ruby (not different enough from what I already know plus bad experiences with it), any assembly, anything steeped in the Microsoft monoculture (C#, VB, etc.), or anything that is hard to work with outside of an Emacs or vim environment. (If your language requires or strongly encourages me to use your IDE or proprietary compiler, I’m not interested — that means you, flash.)

Brief Reivews of Languages I Have Used

To give you a bit of an idea of where I’m coming from:

  • C: Not much to say there. I think its pros and cons are well-known. I consider it to be too unwieldy for general-purpose use these days, though find myself writing code in it every few years for some reason or other.
  • Perl: The first major interpreted language I learned. Stopped using it entirely after learning Python (didn’t see any advantage of Perl over Python, and plenty of disadvantages.)
  • Python: Used to really like it. Both the language and I have changed. It is no longer the “clean” language it was in the 1.5 days. Too many lists-that-aren’t-lists, __underscorethings__, etc. Still cleaner than Perl. It didn’t scale up to large projects well, and the interpreted dynamic nature left me not all that happy to use it for some tasks. Haven’t looked at Python 3, but also it probably isn’t ready for prime time yet anyhow.
  • Java: Better than C++ for me. Cross-platform bytecode features. That’s about all that I have to say about it that’s kind. The world’s biggest source of carpal tunnel referrals in my book. Mysteriously manages to have web apps that require 2GB of RAM just to load. Dunno where that came from; Apache with PHP and mod_python takes less than 100M.
  • Haskell: A pretty stellar mix of a lot of nice features, type inference being one of the very nice ones in my book. My language of choice for almost all tasks. Laziness can be hard for even experienced Haskellers to understand at times, and the libraries are sometimes in a bit of flux (which should calm down soon). Still a very interesting language and, in fact, a decent candidate for my time as there is some about it I’ve never picked up, including some modules and web toolkits.
  • OCaml: Tried it, eventually discarded it. An I/O library that makes you go through all sorts of contortions to be able to open a file read/write isn’t cool in my book.

Bicycling Update

I’ve been bicycling to work for awhile now. It’s become pretty much routine for dry days. I can reliably ride the 10 miles to work in less than an hour, even with heavy winds.

My biggest enemy right now: rain. My first few miles are on gravel and sand roads, which aren’t maintained to the highest of standards. When it rains, there will be mud. I ride a Trek 7.3FX, which I bought with the idea of just riding when it’s dry. It works quite well for that. But its slick tires don’t work so well in mud. Plus our mud is sticky, and the tires pick it up, then deposit it on the frame that goes around the wheel and the brake arm. So I have a mess to clean up.

My current dilemma is: do I buy a second bike for use when it’s wet, or there’s a chance of rain? My 7.3FX can’t use tires that are very wide, and a different bike of course could. There would be expense involved, obviously, but I would really like to be able to ride more often than I can now. Winter was pretty damp here and I didn’t get to ride much at all over the winter months. Or, would different tires plus fenders do the trick on the 7.3FX? (I’m thinking not.)

If I do get a different bike, then the question would be whether to sell the 7.3FX. I really like that bike, and imagine it would be faster on the 7 miles or so of paved roads that I ride every day. Perhaps I’d keep it as a fair weather or long-distance bike.

I plan to visit the bike shop tonight and see what my options are.

Some More Gopher Data

Yesterday, I invited you to download a piece of Internet history. Today I have unearthed a bit more data to add to it.

There is a new torrent with 1.5GB more data (3GB uncompressed). This includes the FTP site from boombox.micro.umn.edu/pub/gopher, which was a large collection of Gopher client and server software. Also included was ftp.unicom.com/pub/gn-tools, the old GN server, and wiretap.area.com. This last site was mirrorable via FTP, and included the UMN Gopherd .cap and .Links files, so it can be served up via PyGopherd. The full contents are available in my post to the Gopher mailing list.

Incidentally, thank you to everyone that has helped seed, download, store, host, and otherwise preserve the 2007 archive. It is much appreciated. I have contacted several institutions recommended to me in comments or emails to try to arrange a stable long-term home for the data.

Enjoy.

Update: This torrent is now available elsewhere; see this post for the most current location.