Wednesday, December 7, 2011

Evolution of shells in Linux

A brief article on the IBM developerWorks site about the history of Unix shell programs and their Linux implementations:

Evolution of shells in Linux:

'via Blog this'

Friday, December 2, 2011

The Strange Birth and Long Life of Unix - IEEE Spectrum

For those of you interested in where the basic concepts and design (but not code!) in Linux comes from, here is a great article in IEEE Spectrum on the development and history of Unix.

The Strange Birth and Long Life of Unix - IEEE Spectrum:

'via Blog this'

Wednesday, November 16, 2011


I just emailed Congress to urge them to oppose the Internet Blacklist Legislation, known as the PROTECT-IP Act in the Senate and the Stop Online Piracy Act (SOPA) in the House. This legislation seeks to give the executive branch power to conduct slash-and-burn campaigns against websites that allegedly host – or even link to – content that infringes on intellectual property rights. That would “disappear” whole domain names, fundamentally undermining Internet security, and/or choke off their financial support. The Internet Blacklist Legislation puts more sites than ever at risk, effectively upending the DMCA safe harbors that have been crucial to the growth of Internet innovation and creativity.

Sadly, these short-sighted and dangerous bills won’t do much to stop online infringement – but they will jeopardize our ability to speak and read online with the kind of freedom we cherish in the offline world. Deep-pocketed Hollywood lobbyists are aggressively pushing to control and censor the open Internet, willing to sacrifice free speech and our Internet culture in hopes of controlling how people view their movies and products.

We need to stop this bill before it goes any further. Will you contact your representatives in Congress and urge them to oppose the Internet Blacklist Legislation? Visit:

Wednesday, November 2, 2011

Two decades of productivity: Vim's 20th anniversary

Two decades of productivity: Vim's 20th anniversary:

The Vim text editor was first released to the public on November 2, 1991—exactly 20 years ago today. Although it was originally designed as a vi clone for the Amiga, it was soon ported to other platforms and eventually grew to become the most popular vi-compatible text editor. It is still actively developed and widely used across several operating systems.
In this article, we will take a brief look back at the history of vi and its descendants, leading up to the creation of Vim. We will also explore some of the compelling technical features that continue to make Vim relevant today.
Read the rest of this article...

Saturday, August 13, 2011

Installing Linux on a 386 Laptop

I saw an interesting article today.  A DIY project installing Linux (albeit old Linux) on a really old 386SX laptop.  It can't do very much, but it's one of those projects you tackle "because it's there."

You can check out the story here.

Monday, August 1, 2011

Ask Ars: how do I use the find command in a pipeline?

Ask Ars: how do I use the find command in a pipeline?:

In 1998, Ask Ars was an early feature of the newly launched Ars Technica. Now, as then, it's all about your questions and our community's answers. Each week, we'll dig into our question bag, provide our own take, then tap the wisdom of our readers. To submit your own question, see our helpful tips page.

Q: I know I can use the find command at the command line to locate files, but how do I use it with other commands to perform a real-world task? What's the difference between the -exec parameter and piping into xargs?

The find command is a standard utility on UNIX and Linux systems. It will recurse through directory structures and look for files that conform with the user's specified parameters. There are a number of different search operators that can be used together to achieve fine-grained file matching.

In this tutorial, I'll explain how to use the find command with several common search operators and then I'll show you some examples of how to use the find command in a pipeline.

Read the rest of this article...

Wednesday, July 27, 2011

Google Chromebooks: Some Helpful Tips

When I was considering the purchase of a Chromebook, I was looking for a device that could fulfill several different usage cases.  I had in mind the ability to take the device on vacation and perform the ordinary tasks I usually perform when I’m not at my desk.  These include:

  • Document production, primarily blog post composition and editing.
  • Photo management.  As I take a lot of pictures when I travel, I need to view and upload my photos to my SmugMug account where my photography site is hosted.
  • Media viewing.  Like my editor and her iPad, I sometimes want to view some video and listen to a little music.
  • System administration.  After all, this is, so I have to be able to log into a remote system now and them and get some real work done.
Due to where I live and the places I hang out, I am almost always bathed in the soft, warm glow of Wi-Fi, so lack of Internet connectivity is rarely an issue for me.  This makes a Chromebook a good fit for what I had in mind.

This post will cover some of the interesting things I discovered when I starting using my Chromebook and attempted my usage cases.  There is a nearly secret little switch next to the SIM slot that is used to put the system into “developer mode” which affords the user nearly complete control of the machine including installing a replacement OS, however, everything I will discuss here can be accomplished in regular user mode.

Getting Help

Out of the box, the Samsung Chromebook comes with almost no documentation aside from a very concise quick-start guide.  It relies instead on web-based help.  The Chromebook on-line help can be accessed by typing Ctrl-/.  Chromebooks also have an extensive set of keyboard shortcuts.  A list of key assignments can be displayed by pressing Ctrl-Alt-/.

File Management

Many of my usage cases involve manipulating files in some way or another.  The Chromebook concept of cloud computing does not encourage local storage and this is reflected in the limited number of file operations available to the user.  A rudimentary file manager is invoked by typing Ctrl-m.  There are two directories that may be accessed.  These are the “File Shelf” (the default downloads directory for the browser) and the “External Storage” directory containing the mount points for an SD card or USB mass storage devices.  Chrome OS supports a variety of file system types including FAT, VFAT, NTFS, ISO9660, and Ext3/4 making the system quite Linux-friendly.

Since a Chromebook does not provide local application programs that process files,  a Chromebook supports uploading and downloading files and little else.  The file manager, in its present incarnation is limited to deleting and renaming files.  Copying and moving files between directories and devices is not yet supported.

Fortunately, the web browser does support the file: URI scheme allowing access to the File Shelf and External Devices directories.  No other directories are accessible unless the system is operating in developer mode.  The URLs for the accessible directories are listed below:

File Shelffile:///home/chronos/user/Downloads/
External Storagefile:///media/

To copy a file from one directory or device to another, use the URL listed above to locate the target file, then right click on the file and select “Save link as...” to copy the file to a new location.

Media Viewing

The file manager allows a few file types to be viewed.  It can display JPEGs, and play both MPEG-4, and MP3 files.  As a bonus for Linux users, both Ogg Vorbis and Ogg Theora files are also supported.  Strangely, while the web browser incorporates a PDF viewer, the file manager cannot launch it.  The file manager can launch a media player for video playback.  It is limited to either thumbnail size or full screen, however full screen performance is quite poor.  Using the URLs above to have the web browser directly play the file yields a much better result,  I found that m4v files transcoded for playback on an iPad played fine in the browser.

Chromebooks do not, as of yet, have a full featured media player.  I understand that having one might “pollute” the cloud-only idea behind the Chrome OS, but mobile device owners expect this functionality in portables.

Photo Uploading

Uploading photos from an SD card is very easy.  Modern HTML5 uploaders such as the ones at SmugMug and Google+ work great.

The Terminal

One of the really unexpected features on a Chromebook is the terminal.  Typing Ctrl-Alt-t opens a new full screen window (as opposed to a tab) containing the Chrome OS shell, called “crosh.”  The shell is very limited.  It supports just a few commands, mostly network diagnostics, but it also supports an SSH client so you can open a terminal, launch SSH and get access to remote systems.  Since it is possible to open multiple terminal windows you can perform some useful work.  Chrome OS uses the X window system for its underlying graphics, and the usual middle click (3 finger click on the touch pad) will paste text on the terminal.  Even though the SSH client is present, there are no scp or sftp commands available in crosh.  In fact, no file system access is possible from the shell.

One problem I have with the terminal is the small font size.  I think its probably fine for many people, but old folks like me will find it difficult.  Unfortunately, the text size is not adjustable.

**UPDATE** August 13, 2011
Version 13 of Chrome OS was pushed out a few days ago (Google touts that they will update the OS about every 6 weeks) and among its improvements are speedups for video playback in the file manager. The bookmarks suggested above are still useful but now you can realistically watch a video in the file manager, unlike before.

Further Reading

Sunday, July 17, 2011

Google Chromebook: The Computer You Can't Screw Up

I’ve had my Samsung Chromebook for a couple of weeks now.  

A lot has been written about the Chromebook concept, so I won’t go into it in detail here, but in a nutshell, a Chromebook is a specialized small form-factor computing device that is designed to act as an Internet terminal which can rapidly connect the user to network-based services.  It provides a software platform for web-based “apps”  which can be as simple as links to web sites, or as complex as browser extensions using the scripting facilities provided by the Chrome web browser.

My editor has an iPad and I admire its mobility and, more importantly, feeling of immediacy.  A touch or two and you are ready to go.  I have a netbook (actually two) and a netbook is certainly mobile, but it’s still a full-blown computer and that is not always an advantage.

While I understand some of the appeal of the iPad (especially as a media consumption device), the one thing that I can’t understand is how people tolerate its miserable web browser.  Slow and incapable of multitasking, the iPad has the bulk of a computer while unable to perform any better than a smartphone.  To my mind, a Chromebook has many of the desirable attributes of iPad (mobility, immediacy, long battery life) without its limitations.

The tech pundits have weighted in on the Chromebook and I have been quite surprised by the number of negative opinions that this product has spawned.  I guess that I shouldn’t have been surprised given how many negative things were said about the iPad at its introduction.

They Are Missing The Point

Let’s look at the main criticisms being leveled at the Chromebook:

1. “They are too limited.”  The problem many people have is that Chromebooks look like laptops but they don’t do  as much.  Yes, they look like laptops, but they are not laptops.  It is better to look at them as iPads with an actual keyboard, a real web browser, and USB ports.  True, you can’t run Photoshop on a Chromebook, but you can’t run it on your phone either.

2. “They don’t have enough local storage.”  While 16 GB may not sound like a lot, I have noticed that on my netbooks (both of which have 16 GB SSD drives), I don’t store anything close to that much data locally.  I’m always transferring it to other larger machines (Hint: Ubuntu One is your friend).  Besides, unlike an iPad, you can attach USB mass storage devices to a Chromebook.  So, if you want to download that massive video collection, just whip out your 3 TB external drive and go for it.

3. “They are useless without an Internet connection.”  As far as I’m concerned, in this day and age all computers are useless without an Internet connection.  Don’t believe me?  Disconnect your network for a while and see how much you can really get done.  Check your email?  No.  Update your Facebook status or send a tweet?  Nope.  Post to your blog?  Nah.  Conduct research?  Go shopping?  Read the news?  Manage a remote server?  Forget it.

4. “They cost too much.”  For the same money you can get a “real” laptop or netbook,  but name a $430 laptop that will boot in 8 seconds and has 8 hours of battery life.  You also have to consider your definition of “cost.”  Sure, you could buy a lovely Windows 7 netbook for about the same price as a Chromebook, but then you would be confronted with what I call the “money pit of maintenance.”  How much time and money will you spend keeping that machine secured and maintained?  For businesses, the cost of support far exceeds that of the machine itself.  Google uses the slogan “Nothing But The Web,” but they should have called the Chromebook “The Computer You Can’t Screw Up.”   I consider this to be the killer feature of Chromebooks.  There is almost nothing to manage.  Imagine what a business spends maintaining its fleet of PCs each with its own copies of programs and local storage.  With Chromebooks (as with any kind of “thin client” computing model) administration becomes centralized and vastly simplified.  Yes, you may be vulnerable to a possible single-point-of-failure scenario, but I think that many businesses would find this to be an acceptable trade-off.  Oh, and did I mention that a Chromebook is at least $100 less expensive than an iPad.

5. “The Cloud is insecure/unreliable.”  I guess you haven’t suffered a hard drive failure lately, or  had your laptop stolen.  I don’t trust the cloud, but I don’t trust hard disks either.  That’s why I keep backups.

The Philosophical Issue

RIchard Stallman, as you may know, has come out strongly against cloud computing, the model that the Chrome OS so vigorously promotes.  He calls it “stupid” and “careless.”  I think that if you are careless and stupid with anything, you will likely get what you deserve, but I don’t see the cloud as intrinsically evil the way Mr. Stallman does.  I would point out that most free and open source software is developed in the cloud.  Likewise, I don’t see Chrome OS as particularly evil, any more than I see the firmware built into a terminal as particularly restrictive to my freedom.

Where freedom is endangered is with the software that the cloud sometimes provides.  Just like many kinds of proprietary software, cloud-based services have the potential for abuse, particularly by locking your data into a particular vendor’s service.  Also, many of the services provided by cloud vendors are closed-source violating the fundamental tenet of software freedom.

However the concept of cloud computing creates an opportunity for free software and personal liberty.  While the Chromebook demonstrates a certain bias towards Google services, it is not bound to them  You are free to use any cloud service of you want, including your own.

Chromebooks Seem Fine To Me

I, for one, am enjoying my Chromebook.  It fills my need for rapid, lightweight web access without having to support another computer in my “fleet.”