Monthly Archives: July 2011

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?