Wget, Screen, Eseq

So, things are going pretty well with Wget. We just had our mid-term evaluations for the Google Summer of Code project. Our two GSoC students are right on-schedule with where they’d promised to be at this stage. Both of them had exams during the first portion, so the level of work they were supposed to get done was somewhat scaled down from what it would otherwise have been; still, it’s nice that there haven’t been any real difficulties, and things are coming along alright.

Also, the copyright assignment paperwork came through for a batch of changes that adds CSS support to Wget, so I’m excited about that. I haven’t gotten much done for my part, though. Been pretty busy.

I recently joined the GNU Screen project, as a co-maintainer, to help get things moving towards a next release. If you haven’t heard of Screen, I can’t really explain it in detail here: it’s sort of a special-interest thing. But, if you spend a lot of time using command-line/terminal programs, screen is a huge asset. Especially if you use them remotely.

Basically, what Screen does is act as a sort of reattachable, “pretend” terminal. I say “pretend” because, while it is a fairly full-featured vt100 terminal emulator, it’s missing a crucial component that most terminal emulators have: it doesn’t actually draw text to a screen. It interfaces with whatever “real” terminal emulator you’re running, and tells it what it should draw.

The nice thing about screen is that you can detach from it, and later reattach to it. If you lose your ssh connection, say, then you can simply log in again and attach to the same screen session you were running; none of your programs have to get killed due to a terminal hangup. Also, you can be attached to the same screen session from multiple terminals simultaneously. I do everything at work in screen; then when I come home, I can just ssh in and keep working on the same session. I can leave a build running, and then come home and check on its progress. You can even do more exotic things, like allow multiple users to use the same terminal session (mostly good for demonstrating how to do something).

My priority’s still with Wget, though, and I’ve made it clear to folks that while I’m happy to help out with organization and patch-integration, etc, I need to dedicate most of my free-time coding to Wget. I expect to be able to handle small patches and the like; but I have too much to do already with Wget. However, my work on Wget has ended up taking a sort of hiatus for a couple weeks, while I’ve been organizing some things (bug lists, mainly) at Screen; also, I’ve been spending most of that time coding a program I’ve always meant to write, but which has now become incredibly useful as a tool for debugging issues with Screen.

It’s a program that analyzes terminal escape sequences. These are special commands that are sent as part of the text stream to the terminal, to tell it to do something special. For instance, in Unix-like systems you could print a red-and-green “Merry Christmas” to the screen by issuing the command:

The “gibberish” in there are the special commands that tell the terminal how to color the output. Each bit of gibberish starts with \033, which is a numeric code representing the escape character. If you run the above command, you’ll get output like:

It’s not too bad to look at and analyze a string like the one I gave to printf above; but when you have a whole bunch of funky gobbledy-gook like that to sift through, it helps to break it down. The tool I’ve been working on lately would take that same string, and give this output:

It gives a breakdown of the text it sees, the escape sequences, what control function they represent, and what the actual effect they produce is. This makes it a lot handier to see what’s being sent to the terminal when not everything’s working as it should.

HeadOn

I keep on seeing those stoopid television commercials for HeadOn: “Apply directly to the forehead!” The commercials feature plenty of folks praising HeadOn for its effectiveness (“it really works!”). Great. But, works at what? I thought it was kind of strange that they went to the trouble that “it really works great”, without telling you what it actually does that it does so well. I had no idea. Do you?

I just saw the commercial again a few minutes ago, and finally worked up the curiosity to look it up on Wikipedia, and finally found out what it does: nothing. It doesn’t do anything. Its manufacturers want you to believe that it treats headaches, but they can’t actually claim that on TV, because there’s no evidence that it’s true.

Okay, Now I’m Pissed

I don’t watch a helluva lot of TV, I’m more of a DVD-watching kinda guy. ‘Swhy I’ve got my Netflix. But, I love to watch The Daily Show, The Colbert Report, and Pucca. My wife likes to watch King of Queens, and the kids like various cartoons and such.

A disturbing trend I’ve been noticing, is the increasing use of distracting and interruptive advertisement techniques, used during the show, usually to advertise other shows on the same network. The slim bar animations at the bottom of the screen are barely tolerable, but they often obscure parts of the show I want to see. Some of them get around this problem by squishing the whole show vertically while they do their business on the bar below, but as far as I’m concerned, that’s worse. Several notches below that, is when they add audible noises to the stupid animations. Explosions are the worst.

But now, now they’ve not only crossed the line, they’ve smashed it into tiny, tiny pieces. While I’m watching Family Guy on TBS, a Bill Engvall bar comes across the bottom of the screen. He grabs a remote, reaches behind him, and actually pauses Family Guy while he pimps his new show, then unpauses it so you can watch the final 10 seconds before the actual commercial break starts.

Un-friggin-believable. Now, we not only have to deal with commercials between slices of our favorite show, we have to freaking watch commercials during our favorite shows.

Travel and Laptops

Renowned computer security expert Bruce Schneier has an article up at the Guardian (thanks Slashdot) about the problems of taking your laptop with you through customs.

Last month a US court ruled that border agents can search your laptop, or any other electronic device, when you’re entering the country. They can take your computer and download its entire contents, or keep it for several days. Customs and Border Patrol has not published any rules regarding this practice, and I and others have written a letter to Congress urging it to investigate and regulate this practice.

But the US is not alone. British customs agents search laptops for pornography. And there are reports on the internet of this sort of thing happening at other borders, too. You might not like it, but it’s a fact. So how do you protect yourself?

I hadn’t heard about the pornography bit before, so I did a little Googling and it looks like this mainly means pedophilic materials. Though, since it’s much easier to automatically determine whether there’s pornography of any sort on a hard drive, than it is to distinguish between “regular” and “child-flavored” porn, I think it probably means that if they find substantial porn of any sort on your hard drive, you’ll be delayed and your laptop’s disk contents will be copied, or the laptop itself retained.

Anyway, the crux of the matter isn’t that I should be relieved that I will never have to worry about custom officials finding child pornography on a laptop as I travel abroad (since I don’t ever plan to possess any), but rather the fact that they do the scan at all, and even retain the “right” to keep my laptop or copy its contents.

The vast majority of my laptop contents are publicly available material. What’s not basic software packages downloadable from packages.ubuntu.com, is probably work-in-progress on things that I code on, like Wget. But I also have things like private encryption keys on there, some of which aren’t passphrase-protected. Someone with one of those would be able to get root access to my private servers on the Net. It’s not as if I host child porn there, either, but one common thread in government snooping is that they often use one pretext as an excuse for other purposes. If the government deemed me worth investigating (for whatever reasons), they wouldn’t hesitate to take advantage of the private keys on some old copy of my hard drive to do a lot more snooping, than they have a right to.

Schneier recommends destroying the browser cache and cookies, using secure deletion software to delete anything sensitive that you can, and using encrypted partitions or USB drives for the things you can’t do without (curiously, steganography wasn’t mentioned: I’d have thought this an ideal application).

It seems to me, though, far simpler to swap your normal laptop hard-drive with a “travel suitable” one, one that just has your necessities installed over a fresh new disk. Of course, this still doesn’t solve the problem of having sensitive-but-indespensible materials, for which you’d still want encrypted (and probably stealthed) partitions or USB drives.

While we’re on the subject of laptops and travel, note too that there are restrictions on packing lithium batteries and devices that contain them (in checked luggage: “there is generally no restriction on the number of spare batteries allowed in carry-on baggage“). (I saw this too on Slashdot first.)

More to Teach My Kids

There are a couple additional things I want my kids to know, and despite the fact that they’ve been going around in my mind for some time, they apparently were nowhere to be found when I actually set out to write a list.

Compassion. Should be top of the list, of course. Obviously, this is one of those things that they hopefully pick up from conversations with mum an’ dad, and day-to-day knowledge-passing at the home. Bolstering it with good stories and maxims, such as those from the Book of Virtues or the Bible (hey, just coz it’s been way over-hyped don’t mean it doesn’t have some good stuff in it).

But it needs to be more than that. The reason there’s a problem today with so many people with so little compassion, is that the most exposure a lot of people get to real, genuine need, is bedtime stories and news coverage. People get into the practice of hearing about and watching compassion, and then stand around looking stupid when the time comes compassion is required of them.

Compassion is an action, so if I expect my kids to learn compassion, I should ensure that they have regular opportunities to put it into practice. Local soup kitchens, and programs to address homelessness (rather than just shelter its victims in their status quo), such as EHC LifeBuilders, are a good place to start.

Healthy Decision-Making. Not talking about avoiding fast food restaurants (clearly, I’m not the one to teach them that, except by negative example). Talking mainly about sexual health, and substance abuse. Mistakes in these areas can have extreme consequences; I’m not willing to leave this up to “parent-and-child” chats. The best way to make healthy choices is to be exposed to the consequences of unhealthy choices. In a short while, information (as opposed to rhetoric) and powerful movie-stories are probably a good start; but when they’re older, there’s no substitute for seeing for themselves. What it’s like to see a life utterly destroyed by narcotics. How having a child in your teenage years brings an abrupt limit to a formerly wide array of choices and opportunities, and what it’s really like to come to terms with an acquired venereal disease.

Kids’ Book on Critical Thinking

OMG, this is so awesome! Atheist and skeptic blogger The Barefoot Bum points out a nice list of logical fallacies on ChristianLogic.com. No sooner do I visit the page than I see a notice mentioning that this list is actually taken from a book they’ve published, entitled The Fallacy Detective (amazon), which is a textbook on logic for children.

Lessons on logic and critical thinking aimed at educating children is exactly what I’ve been wanting to find for use with my own kids, for a while now. I didn’t actually have much hope of finding such a thing, so was planning on drumming up some lessons of my own (like I’d find time for that). This looks like just the sort of thing that I need.

The book uses straightforward explanations and comic strips (including Dilbert and Peanuts) to illustrate various logical fallacies in common use, and follows up with exercises in which the child must decide whether statements are fallacious, and if so, which fallacies are being used. Judging from the sample chapter, the book’s text is also set attractively, using Adobe’s Caslon Pro font, and using software that knows how to make good use of fonts (using appropriate “fi” ligatures and the like, so the hook of the f isn’t mashed together with the dot of the i). It’s not an example of great typography (for instance, paragraph indentation following a block quote or other figure isn’t really desirable), but at least it’s not a glaring example of bad typography, as the vast majority of modern printed books tend to be.

Of course, some concerns are raised by the fact that the book’s page explicitly states, We wrote this book to meet the needs of Christian parents who want a do-able text for introducing logic and critical thinking to their children. Especially considering that one of my primary motivations for wanting to teach critical thinking to my children is to avoid the various fallacies and pseudo-logic that tend to be used in defense of Evangelical Christian faith. According to one of the reviews on Amazon, the book does apparently put a fairly Christ-oriented spin on things, saying such things as, Logic is the science of thinking the way God thinks – the way Jesus taught us to think. Another review states, This book is loaded with Christian overtones, Bible verses, and other religious dogma. This being the basic foundation upon which the book is built, I suppose it’s also likely that it will misapply a few examples to support the authors’ preexisting biases.

Still, beggars can’t be choosers, and anyway the fact that we expose our children to such video material as Superbook, The Flying House, Veggie Tales and even Davey and Golliath proves that we don’t exactly go out of our way to prevent exposing our kids to religious dogma. And, while it presents something of a nuisance for me to have to possibly go in and “adjust” the way some of the material is presented, yet at the same time I welcome a book on spotting logical fallacies that’s aimed at the Christian homeschool community, a thing that is clearly in dire need, especially in the realms of Scientific Creationism and various Christian-culture political propoganda, such as is used to dismiss global warming concerns (seen “Jesus Camp”?).

Provided the core material itself is basically accurate and informative—and I see little reason to believe that it isn’t—it should be perfect for adapting for our own needs. Even if it turns out to be of little use, I’m dying of curiosity to see what’s in it, so either way, I’m running to drop it into my Amazon cart, for my next batch of purchases.