Readers sound off.


Eliminate Blank Lines

Regarding Dave Taylor's Work the Shell column in the March 2009 issue of LJ: as you have been using UNIX nearly as long as I have, you probably already know this. The early UNIX spell program used a pipeline very similar to the one you develop in your column. Its purpose was to get a list of unique words from the document, sorted and single case. The rest of it used comm(1) to compare the document word list to a small system dictionary, /usr/lib/dict/words. I say small, as it had only about 25,000 entries.

One significant difference between the spell pipeline and yours was the handling of the tr(1) commands. Like your pipe, one tr did upper → lower translation. But, the second tr used options you did not mention in the article: -c and -s (complement and squeeze). Using today's syntax, that it would look like this:

tr -cs [:lower:] '\n'

By complementing the lowercase class, this style ensures that no punctuation, white space, digits, control chars and so on are missed. All are translated into newlines, and where multiple sequential newlines result (that is, blank lines), they are squeezed out by the -s option.

I notice from your uniq -c output that blank lines are the second-most frequent “word”.


Dave Taylor replies: Thanks for your note, Jon. You're right, using a bit more advanced call to tr would eliminate the blank lines, punctuation and so on. Thanks for the tip!

Beware On-the-Fly Certs

Regarding Mick Bauer's “Secure Squid Proxy, Part I” in the April 2009 issue: great article, Mick! However, I just wanted to draw some attention to the information in the “Just How Intelligent Is a Web Proxy” sidebar. It isn't necessarily true that “contents of HTTPS sessions are, in practical terms, completely opaque to the Web proxy”. Some proxy software now has the ability to initiate a man-in-the-middle attack, issuing fake SSL certificates on the fly to enable the proxy to impersonate the remote server. This enables the proxy to inspect the traffic going between the client and server. Most browsers will detect this on-the-fly cert (generating a warning to the user), as it usually doesn't come from a valid Certificate Authority, but some companies are using tools, such as Group Policy, to push down custom CA settings within their organizations to configure the browsers to accept the on-the-fly certs as genuine (without throwing a warning).


Mick Bauer replies: Sure enough, you caught me oversimplifying. Thanks for the clarification, Ray!

Linux on the Desktop?

As I continue to search the forums for the issues I am having with a Linux desktop install, it seems that the Linux desktop (for me) still ranks as a hobby; Linux lacks a desktop that I can use in business. Linux has the applications—that's not the issue, desktop stability is. I think Linux on the desktop is up and coming, but there are still unresolved issues—look at the forums and the number of issues that go unresolved. I am not a Windows zealot by any means and run a lot of Linux in the server environment (where it rocks!), but I have yet to have a Linux desktop install that just works out of the box. When you install Windows, you know what you're getting, warts and all, but it does work. It seems Linux lacks a level of stability and requires a level of experience that I don't have time for. Windows does not seem to have these issues and is why I continue to say that Windows wins the desktop war. Some will ask “what distro are you running, or what hardware platform are you installing on?” Or, they will say there is something I am doing wrong, and there probably is, but all I am looking for is usability so I can make a living. I will continue to search the forums and continue hoping that a stable Linux desktop OS emerges.


I sound like a broken record when I keep saying this, but again, one of the weaknesses Linux has as a desktop operating system is the diversity we have. Linux can (and does) mean so many different things. Are you using a popular desktop distribution? By that, I mean one tailored for desktop use as opposed to server and/or corporate use? Distributions like Ubuntu, Linux Mint, OpenSUSE and a few others have a better track record for desktop stability and usefulness. Since you mention that applications aren't the problem, it makes me scratch my head, because stability is usually where Linux ROCKS. Feel free to drop me an e-mail with more specifics, and I'll see what I can do to help (shawn@linuxjournal.com).—Ed.


Regarding James Gray's response to Jim Leuba in the April 2009 Letters: you may want to omit the political “Climate Change” nonsense. While I'm sure you eat it up with the spoon Al Gore sold you in exchange for carbon credits, the rest of us out here in the ether don't want to hear it. Stick to geek-speak and keep your audience.

Seth Miller

James Gray replies: While the decisions regarding how to respond to climate change—or not to respond to it—are political, the fact that climate change is occurring is not. The Theory of Global Climate Change is one supported by huge amounts of empirical data and enjoys near unanimous consensus among climatologists. You can read more about it in documents published by the Intergovernmental Panel on Climate Change (IPCC), which summarizes the findings of climatologists around the world (www.ipcc.ch).

Your reference to Al Gore suggests that I am a person who does not analyze evidence before making a decision. This I do not appreciate. Because you don't know me, you have no idea how I make my decisions. However, the scientific literature I have read on climate change, and not bombastic rhetoric from blowhard opinionators, is the basis for my writings on the topic.

Regarding your advice to “stick to the geek-speak”, I would argue that I am doing so. In most of the “green” pieces I write, I discuss solutions to the challenge of reducing energy consumption in the data center. Discussions of climate change is simply part of the rationale that I offer for taking on such challenges.


I usually enjoy Shawn Powers' articles, but I feel that his editorial was a bit misleading [“Free to a Good Home: Junk”, in the UpFront section of the May 2009 issue]. The idea of recycling old computers into the hands of those who need them is great: “Don't worry about running out of hardware, the local school district likely has parts piled in closets in would love for you to 'recycle'.” I work for my local school district and had the same thought. I quickly received a lot of flack from the people at the top and discovered it is easier for them to trash computers than to give them away. As a result, I started a 501(c)(3) at reglue.org (Recycled Electronics and Gnu/Linux Used for Education). A lot of things did and didn't happen. I quickly had a lot of CRTs; I didn't have nearly as many working mainboards with RAM to couple them with. I also quickly discovered that sometimes it's hard to give stuff away.

On a lighter note, I know someone who has been a lot more successful with refurbishing and giving away computers than I—Helios from the Helios Project (www.heliosinitiative.org/news.php). He's also the author of the blog about the teacher and the Knoppix CD.

He and others are working to create a nation-wide (originally, just in Austin) Linux Against Poverty drive and installfest on August 1, 2009 (geekaustin.org/2009/02/01/linux-against-poverty). Maybe you'll consider coordinating your own Linux Against Poverty installfest.

As a side note: no one is really interested in having a computer without Internet access. Community-based mesh networks are a great idea. I think those distributing computers might want to help others access the Internet—the greatest cleft in the Digital Divide (wiki.freifunk.net/Kategorie:English and freifunk-texas.net).

D Davis

Unfortunately, it is easier to throw stuff away. That doesn't mean the school wouldn't love to give stuff away, just that it's difficult. Unless we break some ground and push for some new policies, those computers will continue to be thrown away instead of put to better use. If I misled you into thinking it would be easy, I do apologize. Also, as a big coincidence, I'm actually writing this response on Earth Day. It seems all the more important that we do make the effort, however difficult, to get the piles of usable computers into the hands of those who can use them. I'm speaking to myself as much as anyone, because in my school district, it's much easier to dispose of hardware than to give it away. That just has to change. Thanks for your comments. Hopefully, with people like us willing to do the grunt work, some real change can take place.—Ed.

Cool Projects Issue

I just wanted to send a quick note of thanks for the May 2009 issue. The hardware articles were thoroughly enjoyable and just the right technical level. I enjoyed the articles on the amateur rocket and underwater vehicle in particular, and am eagerly awaiting the land-based RC Linux mobile to complete the Earth/Air/Sea trilogy.

Kwan Lowe

Me too! I'd go one further and anticipate the interstellar Linux probe, but that might be a while yet. Thanks for the kind comments. It's nice to hear we're bringing you material that is enjoyable and useful.—Ed.

When Disaster Strikes, Don't Forget the Freezer!

Kyle Rankin had a great article in the March 2009 issue: “When Disaster Strikes: Hard Drive Crashes”. Good stuff there, and “Linux Hacks” has saved my backside more than once.

It has been my observation that most of my drive failures, particularly in laptops, involve heat. By cooling the drive, it is sometimes possible to pull an image—often an error-free image—before the unit fails entirely. If a drive won't run long enough to pull an image, sometimes it is possible to extract important files quickly.

I wrap them in anti-stat plastic and freeze them for a couple hours. Once out of the freezer, I leave them wrapped to avoid condensation, sandwich with gel-pacs, connect directly to a host machine, or via USB to SATA/PATA adapter, and pull an image as quickly as possible. Rinse and repeat as necessary. I'm about 70% with this technique. Your mileage may vary. Great article and great magazine. Keep it up.


Kyle Rankin replies: Ah, the famous freezer trick! I admit I have used that one myself a few times, although I've always wondered how much of it was science and how much was voodoo. Either way, when one's data is at stake, I think most people are willing to try anything that works (just look out for condensation on the drives if you live in a humid environment).

iRobot Correction

Regarding Zach Banks' “Fun with the iRobot Create” in the May 2009 issue: the schematic in Figure 2 on page 59 appears to be less than entirely correct. It certainly doesn't match the diagram in Figure 3 on page 60. The power supply and ground nets appear to be somewhat scrambled in the schematic.

Robert Riches

Zach Banks replies: Thanks for pointing out the inaccuracy. Please refer to the breadboard diagram for correct wiring connections.

Samba Correction

Regarding Mick Bauer's “Samba Security, Part III” in the January 2009 issue: I believe “group-execute bit” should read “owner-execute bit” in the following paragraph. “The default value 0744, shown in Figure 2, translates to 'owner read+write+execute, group read, other read'. However, because this share is going to contain text files, there's no reason for the group-execute bit to be set; 0644 (owner read+write, group read, other read) is a better choice.”

Steven Connor

Mick Bauer replies: Excellent catch, Steven—thanks!

AJAX History Lesson

I enjoy your magazine, though the increased attention given to JavaScript and browser-based technologies seems somewhat off-topic for a magazine about an operation system. My preference is for more system-related content. Still, I understand that “Web anything” is a hot topic, and often the JavaScript articles are informative.

However, if you are going to cover AJAX, please get the facts straight. In whatever number of articles you have published about AJAX, I don't think you've ever correctly explained where it came from. The May 2009 Point/Counterpoint column was especially glaring. Bill Childers says, “AJAX is a newish Web technology (Google Maps came out with it in 2005...)”. Mr Childers, and Linux Journal, should do a bit of research. Although the magazine makes no secret of its distaste for all things Microsoft, you really need to give credit where it's due. As painful as you may find this, AJAX is a Microsoft creation.

The XMLHTTP object (later named XMLHttpRequest) was first available in IE5 in the late 1990s. It was created by the developers of an Outlook Web client. It was later copied by the Mozilla team and other browser developers. The increased availability of high-speed Net access, plus the adoption of XMLHttpRequest by multiple browser vendors, opened the door for developers at companies such as Google to start using it in more mainstream Web applications. And, of course, it really hit the big time when Jesse James Garrett coined the AJAX acronym.

Rampant Microsoft bashing makes Linux Journal look a little silly, but inaccurate technical details makes you look plain bad. Whatever justification there may be to dislike Microsoft the company, please do not short-change the many good Microsoft developers who have done interesting and valuable work.

James Britt

Bill Childers replies: Thank you very much for the clarification on the origins of AJAX. You are absolutely correct about the history of the XMLHTTP object and how it became the XMLHttpRequest object. It was finally mostly “standardized” in 2006 when the W3C released the first draft spec for the object.

Although all that is historical fact, the practical matter is that Point/Counterpoint is meant to be a view into the differing opinions of two techies. It's not meant to be a heavy technical piece. The comment that Google Maps utilized AJAX in 2005 was meant to be taken as that's when AJAX “hit the big time”. It certainly wasn't the first use of it, but it was the one of the first places that used it in a new and unique way. Millions of people saw and ogled over the fact that the map could be dragged about with the mouse, and with that, Google Maps set a new standard for Web apps, in my opinion.

Please note that there was only one mention of Microsoft in the column, and it was with respect to feature creep. It wasn't “rampant Microsoft bashing”, nor was it targeted at its engineers. I'm sure the coders who work for Microsoft are hard-working, respectable folks who put their pants on one leg at a time, just like us Linux folks do. It sounds like you may have a cross to bear toward some past anti-Microsoft writings. May I suggest you withhold your rancor for a Point/Counterpoint where Kyle and I do bash Microsoft? I'm sure that will be on our list at some point, as Kyle and I have no sacred cows.

At any rate, I thank you for bringing some history on AJAX to our readers.

Bad Guys

Whoever wrote the May 2009 “They Said It” column in UpFront saw fit to include quotes by Marx and Lenin. Why go half-baked? Allow me to submit a few more choice quotes for the next issue, in chronological order:

“Western intellectuals that profess admiration for Communism are suspect....They are objective traitors to their class and to their interests, and must be treated as such....After their final victory in Western Europe and America, revolutionary forces will eliminate all bourgeois traitors.”—Lenin

“Death solves all problems—no man, no problem.”—Joseph Stalin

“The only good bourgeois is a dead bourgeois.”—Pol Pot

I could go on, but I think you are starting to see my point.

Marx and Lenin are responsible for some of the most horrible dictatorships in history. And those are the people you chose to quote. Kudos. What elegance, what taste! Truly, you outdid yourself.

I am extremely disappointed in you and your journal. I have been reading LJ since 2000, and in all these years, this is the first time you display such an utter contempt for decency and history.

I expect you to apologize in the next issue, and I'd very much like not be subjected to repeat offenses.

Francis Kohl

Mitch Frazier replies: Francis, I'm responsible for those quotes. Sorry to have offended you, but I have to disagree with your apparent arguments that a bad guy can never have said anything useful and that all bad guys should just be erased from history.

Video Request

I was watching the video on LinuxJournal.com about the various programs for screencasting, but I didn't see a reference to Wink. It is fairly decent.

I also was wondering if you could do a video tutorial on how to get the sound from both the microphone and Rhythmbox to be recorded with some of the other screencast programs? I enjoy your mag; keep it up.

Josh McClanahan

Ha! I thought Wink was Windows only. Either it added Linux support since I last looked at it, or (more likely) I just never realized it. Thanks for the tip! As far as diverting audio, I can look into the process, but I generally use an external hardware mixer, so I'd be guessing and poking too.—Ed.

Photo of the Month

Have a photo you'd like to share with LJ readers? Send your submission to publisher@linuxjournal.com. If we run yours in the magazine, we'll send you a free T-shirt.

Peter Wilson reading up on open-source code. Submitted by Tiffany Wilson.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

It's easy to tar "Bad Guys" with False Quotes.

clayclai's picture

In a letter which appeared in the July issue, Francis Kohl objected to your using quotes from Marx and Lenin and then provided a few quotes from some well known communists to prove they were "Bad Guys" that LJ should not quote under any circumstance. The only problem is that these quotes almost certainly were never said by the people they were attributed to and probably were made up by anti-communists for precisely the reason they were submitted to LJ, namely to provide false testimony.

Thanks to the Open Source community, we now have Google, which makes it fairly easy to check things like facts and quotes, so let's try to authenicate the three quotes:

“Western intellectuals that profess admiration for Communism are suspect....They are objective traitors to their class and to their interests, and must be treated as such....After their final victory in Western Europe and America, revolutionary forces will eliminate all bourgeois traitors.”—Lenin

A Google search for the first sentence above returned this:
No results found for "Western intellectuals that profess admiration for Communism are suspect." and using another part of the above quote.
Your search - "They are objective traitors to their class and to their interests" - did not match any documents.
To paraphase the line above, I would say that any "quotes" by famous people that cannot be found by Google are suspect. This is certainly true since the entire 45 volume Lenin Collected Works can be found online [http://www.marxists.org/archive/lenin/works/cw/index.htm] You would think with 45 volumes of his writings available that Francis could find something that he actually said or wrote to trash him with. With regards to the quote by Joseph Stalin, Google provides a more definitive answer, namely that Stalin had nothing to do with it.

"Death solves all problems — no man, no problem." - Joseph Stalin

According to wikiquote.org this is misattributed to Stalin. This actually comes from the novel Children of the Arbat (1987) by Anatoly Rybakov. In his later book The Novel of Memories (In Russian) Rybakov has admitted that he made the quotation up.

“The only good bourgeois is a dead bourgeois.”—Pol Pot

Now this quote can be found thousands of times by Google. However none of them give the source or date and none give a larger context like the sentence before or after. It is just repeated endlessly without attribution or context mostly by anti-communists and anti-atheists, but you won't find it in WikiQuotes collect of quotes by Pol Pot, so it too is suspect.

The one person Francis failed to quote in this critique of Marxist was Marx himself. So I would like to add a few things that he actually said:

"Religious suffering is, at one and the same time, the expression of real suffering and a protest against real suffering. Religion is the sigh of the oppressed creature, the heart of a heartless world, and the soul of soulless conditions. It is the opium of the people."
-Marx, Critique of Hegel’s Philosophy of Right. Introduction (1843)

We don't have to agree with everything they said to learn something from them. Infact, Obama would do well to consider what Engles had to say about Afghanistan more tah 150 years ago:

"The Afghans are divided into clans[41], over which the various chiefs exercise a sort of feudal supremacy. Their indomitable hatred of rule, and their love of individual independence, alone prevents their becoming a powerful nation; but this very irregularity and uncertainty of action makes them dangerous neighbours, liable to be blown about by the wind of caprice, or to be stirred up by political intriguers, who artfully excite their passions." - Engels, On Afghanistan (1857)

And finally:

"If we have chosen the position in life in which we can most of all work for mankind, no burdens can bow us down, because they are sacrifices for the benefit of all; then we shall experience no petty, limited, selfish joy, but our happiness will belong to millions, our deeds will live on quietly but perpetually at work, and over our ashes will be shed the hot tears of noble people."
- Marx, Letter to His Father (1837)

Clay Claiborne