Book Review: Learning Javascript

Learning Javascript, by Shelley Powers, O’Reilly, 2006.

This is not a book for beginners. Let me repeat: this is not a book for beginners. Although the Preface states, “Readers of this book should be familiar with web page technology, including CSS and HTML/XHTML … [p]revious programming experience isn’t required, though some sections may require extra review if you have no previous exposure to programming,” there is a strong assumption from the start that the reader at least (a) has some experience with current programming concepts and practices, (b) has some experience with web page coding and practices, or (c) has a lot of time to learn (a) and (b) while working through the book. That said, however, this really is an excellent resource.

I fall into categories (a) and (b) above, but I’m rusty when it comes to javascript, and wanted something of a refresher. Instead, the book had the effect of dropping me into a working laboratory where everything, though nicely explained, remained confusing for quite a way into the book. But by the time the author got to the complex stuff, it all made sense and fell together perfectly, rather like finally understanding how all the tools in that laboratory make everything work so smoothly.

The book seems fast paced, and often left me wishing there were more detailed explanations of some of the examples. But the concepts and examples are interwoven, so just working through the book brought some understanding. The end of each chapter has review questions, with the answers at the end of the book, for those who find that helpful. But what impressed me was that the errata sheet is already available at O’Reilly. There are a few errata, and they’ll be handy to know if you’re trying the examples given in the book. Additional resources are also sprinkled throughout the book which all appear to still be working.

The author’s practical bias comes through very strongly in the book. In the introduction, and throughout the book, there are frequent “best practices.” Paramount to her philosophy of best practices is the admonition, “whatever JavaScript functionality you create, it must not come between your site and your site’s visitors.” Consequently, she often recommends solutions other than javascript to ensure accessibility by all types of browsers and users. There are also good discussions of the issues surrounding using javascript, especially the cross platform issues and what is on the horizon. Because of the browser compatibility issues, the author covers work-arounds each step of the way, with different options and a discussion of what works best and why.

If book titles are supposed to be descriptive of the content, I’m not so sure “Learning Javascript” is the best title for this book, although it fits well if one thinks of it as learning another programming language. You’ll find this book a lot more helpful if your familiarity with web technology includes using CSS and XHTML, or if you have some experience with another programming language.

Book Review: Moving to Ubuntu Linux

Moving to Ubuntu Linux, by Marcel Gagné. Addison-Wesley, 2006. Available from Amazon.

This book is really well done. Of the Ubuntu books I’ve seen so far, this is the one I gave to my dad for the Ubuntu we helped him install at the InstallFest. The screenshots are well done (that is, relevant and readable), the writing style is friendly and informal, and there is good depth given to the topics covered. The author states in the beginning: “anyone who is familiar with a computer can learn to use Linux,” and from that perspective, he does a very good job making Ubuntu familiar.

He begins with a detailed screen by screen install, including directions on resizing a windows partition and defragging a hard drive. The rest of the first half of the book then introduces the reader/user to customizing the desktop, navigating files, making an Internet connection, setting up printers, updating, and installing new software. The section on wireless networking was particularly helpful. Although the book uses the default Gnome desktop interface, it includes instructions on downloading and installing the KDE desktop and packages as well.

The second half of the book is devoted to some of the programs available. The coverage seems rather quick, but is substantial enough to get one started. I was particularly impressed with the coverage of the OpenOffice.org suite, which included creating a database and using it in OpenOffice.org Write to create address labels. There was quite a bit of discussion in the Music chapter, and a plethora of games were briefly introduced.

One of the nicest features are the “Shell Out” notes throughout the book, which give text commands to use in the shell (terminal). There’s a complete chapter at the back of the book which teaches all the basics of using the terminal, but the “Shell Out” notes are a nice way to get new Linux users comfortable using the shell. Keyboard shortcuts are also frequent. In fact, sometimes more frequent than instructions on where to find the actual command in the menus.

The book is not without a few problems, however. I ran across a few typos, and was left hanging in the OpenOffice.org Base chapter where the author promised to come back to the option of creating a form but never did. Also, although there is a live DVD included with the book, the computer I’m using does not have a DVD drive. Fortunately, I had a few CD’s left over from the InstallFest. Despite these minor issues, I’d recommend the book. It’s one of the best I’ve seen so far.

Book Review: The Official Ubuntu Book

The Official Ubuntu Book, by Benjamin Mako Hill and Jono Bacon, Corey Burger, Jonathan Jesse, Ivan Krstic. Prentice Hall, 2006.  Available from Safari/O’Reilly and Amazon.

This is a deceptive book. It looks “official” (with Ubuntu colors and people on the cover), Chapter One sounds “official” (reads almost like a catechism), and it’s got an “official” stamp of approval (the foreward) from Mark Shuttleworth, the man behind the Ubuntu project. Don’t be fooled, however. The meat of this book is anything but dry, official-sounding, stuff.

If you do start at the beginning of the book (as I did), you will be pleasantly surprised when you get to Chapter Two. The writing style changes abruptly to a very readable, conversant style, sprinkled with a dry wit (“Although you don’t really need to know what these folders do … for your pleasure, we present the Linux folder hit list …”). The intended audience seems to be primarily computer users who are unfamiliar with Linux, or at least unfamiliar with Ubuntu. It is not the book I’d hand to a new computer user, but the authors do a good job speaking to computer users of varying levels who are reluctant to venture into the “unknown” world of Linux.

There are brief introductions to some of the common applications (Firefox browser, OpenOffice.org Writer, Evolution E-mail and Calendar, the GIMP, Gaim, and Ekiga VOIP), and brief mentions of many other applications, like IRC, games, and CD software. I especially like their example using the GIMP (short and quick, but really sweet). The Advanced Usage and Managing Ubuntu section gets a little confusing in places. For example, some of the screenshots don’t seem to match the text, and it leaves the reader hanging in the Add/Remove programs section. Also, while it has very good details on printing setup, there is not much on network printing.

Surprisingly, there is a separate chapter for Server installation. People like me probably shouldn’t read stuff like that. Their words, “Let the mischief begin!” was prefaced with:

The aim of this chapter is … not to teach you how to be a system administrator — we could easily fill a dozen books attempting to do that — but to give you a quick crash course.

So I delved in, and found it … mostly helpful, at least not harmful. Probably useful for newbie system administrators; the rest of us could safely skip the chapter and go straight to the “Support and Typical Problems,” which is much more useful. The issues range from the simple and obvious (“How do I restore something I deleted in the file manager?”) to the esoteric (“How do I make Ubuntu bread?”). Finally, there is a separate section on installing and using Kubuntu.

There is an assumption that you will install Ubuntu using the DVD included, which has several variations to choose from, including one for Apple Macintosh. Of course, if you don’t have a DVD drive, or if you are looking for some of the Ubuntu alternatives, like Xubuntu or Edubuntu, you’ll have to visit the Ubuntu site. Nevertheless, this book stands solidly as an excellent resource for learning and using Ubuntu. There’s even the bonus background stuff in Chapter 1!

Book Review: Ubuntu Linux for Non-Geeks

Ubuntu Linux for Non-Geeks: A Pain-Free, Project-Based, Get-Things-Done Guidebook, by Rickford Grant. No Starch Press, 2006. Also available from O’Reilly and Amazon.

Rickford Grant is not new to books for novice Linux users (see Linux Made Easy and Linux For Non-Geeks). This is the first one I’ve read, however. My motive here is to find Linux distros that are truly for Linux novices, and that also have books available for them. There is also the hope (perhaps vain) that there is a book and distro for the novice computer user. This book is not for the novice computer user. As Grant states in the introduction:

If you are familiar with computers, but unfamiliar with Linux, or somewhat familiar with Linux but not with Ubuntu, you are essentially the readere for whom I have written this book.

To that end, Grant achieves his goal. Some may take issue with the non-geek part of the title, however.

As the title states, this is a project-based guide. The book’s structure is to identify and explain features (or software) and move on to a hands-on exercise (project) using those features. Most of the projects are both helpful and practical (for example, the first project is addiing a force quit button to the panel). The writing style is informal and chatty, rather like a tutor sitting beside you. He promises to make it fun, and does a pretty good job, especially with sections like the one on Easter Eggs.

The coverage is definitely not for non-geeks. He spends quite a bit of time on games, iPods, music, downloads and customization, while barely mentioning GnuCash, Scribus and the OpenOffice.org suite of tools. But he did say he would make it fun, and the geeky things are a lot more fun than the productivity things. However, he also has sections on Linux security (“Basically, if it makes you feel safer to install some protection, go ahead”), printers and scanners, fonts, and multi-lingual features.

Grant, as all Linux guidebook writers seem to be, is upfront and honest about Linux and its shortcomings, but is upbeat and optimistic. He also gives workarounds with frank assessments of their likely effectiveness or ease of use. To that end, most of his projects involve downloading and installing a program that is not included in the Ubuntu install disk. In fact, if you follow the projects, you’ll get a lot of practice finding and installing packages, both from the gui and command line, which is not necessarily a bad thing. He also progresses from fairly simple steps at the beginning of the book, to an assumption the reader has more than a basic knowledge of Linux. This is definitely not a book to jump around in unless you’re one of those already familiar with Linux.

While I think this is a good book that achieves its stated goals, I do have some beefs. One of the biggest issues in computing access today is wireless. But the section on networking, including wireless, is weak. First, although he uses a lot of screenshots throughout the book (albeit too small to be of much use), there is a dearth of useful screenshots in the wireless section. Second, he mentions the outdated WEP security, but says nothing about WPA, which is not new technology any more. Third, there is the assumption that a wireless card will just be recognized, without a problem. Then there are times (thankfully infrequent) the information he’s giving is downright wrong. For instance, in the section on network browsing, he states, “In case you’re wondering, the smb at the head of that path means Samba…” Finally, although it may be early in the game here, the link listed for updates to links and software given in the book is blank.

A good book? Yes, especially for geek wannabes. But not the book for a total newbie, and not really the book for non-geeks. And the experienced Linux users probably already know it’s not the book for them. Despite my beefs, I did enjoy the book, and found it useful, despite it’s weaknesses.

Book Review: Test Driving Linux

Test Driving Linux: From Windows to Linux in 60 Seconds, by David Brickner. O’Reilly Media, Inc., 2005. Available from Amazon and O’Reilly.

This is definitely the book to start with if you are new to Linux. It comes with a live CD: Move, a version of Mandrake Linux that runs entirely from the CD, with no installation required. It is written in a personable, informal style which makes it not only interesting but often fun to read.

The intended audience is “Windows users who have heard of Linux and want to find out what all the fuss is about without committing a lot of time or hard-drive space,” and assumes no prior knowledge of Linux. But not wanting to exclude people like me, the book also claims it “can turn existing linux users into more effective Linux users.” But it really is for people who are currently using Windows, at whatever level. There are many references to Windows features and layouts for comparison. There are also many references to Windows problems as a reason to switch to Linux. The author is an unabashed Linux apologist.

I really like the organization of the book. It starts with the obligatory introduction to Linux, but in this case the beginning introduction is brief. Introduction is what the whole book is about, so “introductory” explanations and comments are throughout the book. The first chapter goes through starting up the CD, using the KDE desktop, and a “typical” application (KWrite). Chapter Two goes into web surfing, and Chapter Three covers file management. While there is a chapter at the back with “Solutions to Common Problems,” a lot of what you’ll encounter is included in the main material. For example, after the CD loaded, my screen went blank. Sure enough, there in the last paragraph of the booting section, I found, “One minor problem I have found on a few computers is that the screen will go blank and won’t come back up. If this happens, just press any key on the keyboard and the screen should come back up.” Yep, that worked. Oddly enough, the section on “Customizing the Desktop,” with all the great configuration details and tips, is stuck in between the chapters on applications. I suppose it fits there if one thinks of the chapters progressing along the virtual path most would take in trying out a new operating system.

Brickner is honest, but optimistic, about shortcomings in Linux, such as games and video. An obvious gamer himself, he devotes a lot of space to discussing the games that are available, and resources for finding them. He spends a lot less time on video, which is very briefly covered in the audio section. He also does not ignore other common programs and features available with Linux that are not on the CD, and even offers frank assessments of Linux distros to install after trying out the Move CD.

The application programs covered are the KDE suite of e-mail, organizer and Instant Messaging, Open Office Write and Calc, the GIMP, and GnuCash. Although very little time is spent on the GIMP, the necessary basics are covered: scaling, resizing, and cropping. It’s just enough to get one started. He includes a detailed explanation of how to remove red-eye, but only succeeds in making it look harder than it needs to be. A lot more space is given to the other programs, especially GnuCash. Brickner gives a great explanation of how double-entry accounting works by way of explaining how to use GnuCash.

There are plenty of screenshots. Some of the screenshot images produced text that was too small to be of much use, but I found that much of the text generally didn’t need the screenshots anyway. The only problem I had was trying to get an internet connection on one of the computers I tried it out on. I couldn’t figure out how to get a working connection over the local netwok, and the book gave no clues.

Despite the shortcomings, which are minor, this is an excellent book. It is the book to give (or recommend) to the skeptic or clueless person who asks what Linux is. It presents Linux as a friendly, usable alternative, with a manual that is anything but dry. We need more books like this.

Book Review: Mandrakelinux Discovery 10.1

Mandrakelinux Discovery 10.1 (Starter Guide: Mandrakelinux 10.1), by MandrakeSoft, Inc, 2004, ISBN 284798085-7.

Another “dated” book, but the only one I could find for Mandrake, which is now Mandriva. The book, which comes with an install CD, does promise a free update to the next version, however. I was anxious to see just how easy or difficult the install would be. Like many Linux users, I’ve had a few nightmare installs, but Mandrake has a reputation for being one of the easiest installs. Like Yellow Dog Linux, it also happens to be one of the distributions that is “sold.” The price of the book, with CD, roughly corresponds to the cost of purchasing Mandrake (or Mandriva) with one month of support (I suppose that’s considered enough to get you up and running).

So, book in hand, I popped the CD into an available PC. Since the hard disk had been wiped, there were no dicey issues related to preserving Windows during partitioning. Chapter One in the book is one page long, titled, Installation Warning, with the almost required caveats about defragging Windows and backing up data. Chapter Two is Before Installation, and Chapter Three gives the step by step details of going through an install. I was amazed. I had never seen Install instructions so perfectly matched to what I was seeing on the screen, with really good explanations of the options for each screen. It was a breeze.

In fact, it was deceptively easy. From there, the book proceeds to sections on “Migrating to Linux from Windows and Mac OS X,” and “Linux for Beginners.” It starts out with good use of images and screenshots. But beyond these introductory sections, the book begins showing some holes.

The first clue is that there is no author, other than the corporate author, Mandrakesoft, who apparently outsourced the bookwriting to Neodoc (www.neodoc.biz). The book reads like a compilation of several contributors, with minimal editing. Consequently, occasional grammar and typographic errors pop up, which, thankfully, are little more than distractions. However, when it comes to the illustrations, the helpful balloon labeling was abandoned after the first sections, so labels are difficult to distinguish from the image itself. Definitely a drawback for novices. A few of the explanations will leave novices scratching their heads as well (for example, in explaining “Bcc” in e-mail messages it states simply, “No recipient will have access to the mail addresses to which this message was sent.” Huh??).

The second half of the book presumes a greater comfort level using Linux than the first half. The section on applications (Mozilla browser and email client, OpenOffice (writer and spreadsheet), Konqueror File Manager, XXMS for audio, Xine and MPlayer for video, and CD burning) is generally easy to follow. Most directions and explanations are detailed enough, especially with the screenshots and images, to be useful. There are some, however, which seem to have been inserted almost as an afterthought (the editing problem again?).

After the applications sections, however, the required level of expertise is extremely variable. I also wondered about the placement of some of the chapters. Lightly thrown in between hardware setup and setting up networks is “Parameterizing your Mount Points,” which goes into detail about partitioning, then talks about SMB Directories and, very briefly, NSF. The chapter is in stark contrast to the Hardware Setup and Network Setup sections. It looks more like Appendix material to me.

Also rather puzzling is the chapter on “Personalizing your System,” which is near the end of the book, even after the chapter on “Securing your Linux Box” (which runs through the steps with no explanation). Like the Hardware and Network setup sections, it is written well, and has meaty stuff like automating backups and configuring startup services. So why is it hidden at the back?

The cover states, “Your First Linux Desktop,” implying it is for those new to Linux, but not necessarily new to computers. With the beginner level aspects, such as installing, configuring, and applications, it does a fairly good job of introducing this version of Linux to computer users. Despite the shortcomings noted above, it is worth having if you’re thinking of trying out Mandrake/Mandriva. Better to have a manual in hand when you need one than have to rely on online forums for basic stuff. As to whether to choose Mandrake/Mandriva over some of the other distros, well, that’s a post for another day.

Network printing

Somewhat off-topic, but one of the issues going on here.

I have 3 Epson printers here. I’ve spent about $100 on ink for them, and none of them will work. I’ve since found out that Epson printers are so bad there’s a class action lawsuit. Meanwhile, we needed something more than the Canon photo printer that’s left. So I figured I’d get (1) a laser printer and (2) a wireless print server so we can all use the same printer. Staples had a great deal on a Samsung laser printer, and a Netgear wireless print server on sale as well. Together they cost about what I’d spend on Epson ink in a year.

We’ve got a Linksys wireless network, with an iMac connected by ethernet (doesn’t have a wireless card in it) and a Windows machine connected wirelessly. There’s also an Apple Powerbook and an Apple G3 without wireless cards. Both have OS X and Linux on them, but only the laptop, being portable, can be connected to the router, via ethernet.

The print server has extra ethernet ports so computers like the Apple G3 can get a wireless connection through the print server. Seemed like a good idea to me: set up the printer and print server where the Apple G3 is and get networked printing with a bonus wireless connection for one of the Apples. The Samsung has drivers for Windows, OS X, and Linux. The Netgear print server only has a Windows setup option. Of course, once it’s set up, it doesn’t matter where it’s connected.

I almost succeeded in getting the Netgear print server set up on my own. I ended up spending about 4 hours on the phone with tech support before we figured out what the problem was: the MAC address listed on the back of the box is for the ethernet connection. The wireless MAC address is different, and can only be found by accessing the print server after it’s set up. Once that was cleared up, the networks talked nicely to each other (I have restrictions on the wireless network by MAC address, as well as WPA).

Next was getting the Apple G3 connected. No problem there, except that, even though the computer had a wired connection to the print server, and had the Samsung drivers installed, it couldn’t find the printer. I found instructions at Netgear for connecting on Apple OSX version 10.4 (Tiger), and got the iMac printing, but the other two Apples are running OSX version 10.3, and the printer setup is different. I booted the notebook into Linux, popped in the Samsung CD, and started the “Autorun” I found on it. It installed all the drivers and asked if I wanted to set up a printer. So I went through its setup wizard, which was easier than the Mac setup, and printed a test page! (Cheers for Samsung!)

I’ll get the printer set up in Linux on the other Apple. I’m not sure I want to take the time any more to get it working on the older Apple OS. Samsung made it so easy on Linux, but Netgear can barely accommodate one Mac OS version, much less Linux. So kudos for Samsung, and black marks for Netgear! If you’re looking for a print server for a mixed network like mine, you should probably investigate other brands, even if Netgear does have a better price. And if you’re looking for a basic laser printer, you should definitely look at Samsung.

Update (Sept.9, 2007):

After almost a year with the setup, the biggest problem has been the Netgear device arbitrarily deciding when to accept connections. It seems almost random. Print jobs will fail to go through (and sit in a queue on the computer). I try connecting directly to the Netgear device, but when it’s “down” it doesn’t respond to anything, even from the computer that is connected via an ethernet cable. But then a new print job will go through successfully and everything works fine (including printing the backed up print jobs), for a few days, anyway. Then it’s back to trying to figure out a way to wake up the printserver.

DeLi Linux!

Awright! Got it up and running ! (The DeLi homepage is here)

The install was pretty straightforward, text based. There is a nice installation instruction page on the DeLi wiki. It pretty much recognized everything (at least as far as I can see right now). At the bottom of the Instruction page, it says,

  • After the packages are installed remove the CD-ROM (the disk, not the drive itself) and press CRTL+ALT+DEL to boot into your new DeLi Linux system
  • Log in as root with the password you chose before. Now you can run delisetup to configure your system.

Uh huh, delisetup. Well, that’s where xconfig resides, which is what you need to get a graphical user interface. So I took a deep breath, and tried to gingerly step into the xconfig section of delisetup. It actually wasn’t that bad, even though I had very little information about the monitor and video card (other than the fact that it is not a separate card, and the system is circa 1997). I went back and forth a couple times, trying to make sure I got it right, held my breath again and finished the setup. It took me back to the command prompt.

I stared at it for awhile trying to remember the command to start Xwindows. Checked my cheatsheet card, looked for my pocket Linux book (which, now that I recall, my son borrowed, so it’s probably buried under a pile of God knows what), gave up and decided to go back to book reviews. As I was scanning the Mandrakelinux Discovery 10.1 book I was working on, I happened to spot an entry about entering a command if the graphical version was not displaying: “startx.” Good grief. How could I not remember that? Bingo, we’ve got graphics now!

I poked around a bit, but couldn’t find a utility to set up users, so I’m in there as “root” (normally not a good thing) until I change the settings via the command line interface.

Bottom line: Hey, it works on a 1997 Compaq with 32MB of memory: I don’t think I was really testing its limits! During the install process it asked about using the free space on the disk (which has Windows98 on it, and had over 1GB of free space). On reboot, it actually booted into Win98 because I wasn’t there to choose Linux from the bootloader at startup. Overall,

  • Ease of install = medium
  • Knowledge required = some knowledge, or a Linux reference, will be really helpful
  • Features = limited, but acceptable (this is for low memory machines, after all!)

More Dinosaur Linux options!

As I started unpacking the downloads to try one out, I went back to the sites from the last post to get install instructions, and came across some links for more distros:

  • BasicLinux: There is a DOS version that boots from DOS and requires only 3MB of RAM, and a floppy disk version (requires 2 disks) that requires 12 MB of RAM.
  • Giotto: This is no longer “supported”, but is available from its ftp download site. Development stopped in 2004, and moved to a newer distro, Ariane, which works on newer machines. Giotto, however, requires only a 486 processor and 16 MB of RAM. It looks like it requires some knowledge or experience, so I’d recommend checking out the Introduction and Installation files on the site (also available in the Docs2 folder).
  • AlfaLinux: A slackware version that runs on 486 machines with 8 MB of RAM (12 MB recommended. The basic caveat here is that Slackware is not for novices!

Linux Distros for dinosaurs

The Palm Beach County Linux User Group ran an InstallFest on Software Freedom Day, which was September 26 this year. The most successful marketing effort was to other computer user groups in the county, and several people from the Boca Raton Computer Society, in the south part of the county, and the PCRams, in the north part of the county, showed up. But a few of them brought some really old laptop computers which, amazingly, still worked! Unfortunately, I didn’t have any distros we could put on machines that old. The lowest memory one that I had on hand was XUbuntu, which requires at least 36MB of RAM. I think one of the laptops had 8MB of RAM, and another didn’t even have 1MB.

The dust has settled now, and I’ve been looking for something that will make an older machine more than just a print server. (I also happen to have an old Compaq which has only 32MB of RAM, so the search is somewhat self-serving). I came up with 5 possibilities (from combing through a search of minimalist distros on Linux.org):

  • DeLi Linux (from the website): a Linux Distribution for old computers, from 486 to Pentium MMX 166 or so. It’s focused on desktop usage. It includes email clients, graphical web browser, an office package with word processor and spreadsheet, and so on. A full install, including XOrg and development tools, needs not more than 350 MB of harddisk space.
  • University Linux (from the website): easily installed on almost any PC having 8 MBytes of free drive space and at least 8 MBytes of RAM. No hard disk partitioning is needed: University Linux can be placed on any DOS, Windows 3.1, Win98/95 or Windows ME machine without modification. With University Linux you can quickly create a dedicated TCP/IP server for your entire PC network.
  • SmoothWall Express (from the website): intended for use by anyone from a home user to a systems administrator. It can run on almost any PC from a 486 upwards, which becomes a dedicated firewall appliance (the SmoothWall box).
  • Freesco (from the website): Minimum install requires a 386sx 16 with 8mb of ram. 16+mb of ram is recommended for enabling servers. Basically turns an old machine into a fancy router.

Over the next few weeks I’ll be trying them out on my Compaq. I don’t have anything older to test them out on, but I may be able to hook up with another guinea pig! 🙂