Letters

Acer Aspire One and Linux

I noticed that someone said the background of the Acer Aspire One cannot be changed, so far as he or she knows—presumably when running a Linux-based OS. Well, the background can be changed easily. Just right-click anywhere on the desktop and select the tabbed option for background. Also, you can add more pictures from your own pictures folder if you want.

But, that won't work if you are using the Netbook version of, for example, Ubuntu. In that case, you need to go to your own pictures folder and click on a picture. Then, there is an option to access background preferences.

I purchased an Acer Aspire One, AOD260, which had Windows XP as its OS. I “upgraded” it myself to the full version of Windows 7 Premium as the primary OS and Linux Ubuntu (full) as the secondary. Both worked fine except for an irritating failure on Internet time updating. Since then, I have changed permanently to Linux Ubuntu (full version) and it is running beautifully.


Derek

Netflix and Linux

I have heard you mention the inability to stream Netflix content and share your angst with that fact. However, recently, we have been given that ability! Some people will shun me for admitting this, but I use Google Chrome as my browser (yes, despite its inherent memory leaks), but the latest stable update I received added Chrome WebApp functionality, and guess what? There is a Netflix app! I don't have a login anymore, because I canceled my subscription because I can't stand booting Windows every time I want to watch a movie. Let me know if it works. I am very curious. It started for me, but I wasn't able to test it.


Philip

Sadly, no. The problem with Netflix under Linux is that Netflix uses Silverlight for its streaming/playback/rendering solution. Although we do have Moonlight, a Linux native version of Silverlight, it doesn't support DRM, so the video will not start streaming.—Ed.

Boot Challenge

First, thank you for a wonderful magazine. I'm on my third annual subscription, and I really look forward to reading it every month.

I have a challenge that I would like to put forward, after reading the article on UNetbootin that I hope you may consider taking. [See Joey Bernard's “Linux on a Fingernail” in the Upfront section of the March 2011 issue.]

Recently, I bought a Zotac Zbox that I wish to run Linux on. I have one SD card and a USB stick. Both are recognized by the system. In the BIOS, I can set either as the first boot device, which will become /dev/hda for Linux. I want to make the SD card my “hard drive”.

I used UNetbootin to create the USB stick bootable with an installer ISO. The aim is to install Linux on the SD card and later boot from it. Booting goes okay, and I can install Linux (CentOS in my case) on the SD card. Later, I wanted to boot from the SD card, but as you might have guessed, CentOS installed on /dev/hdb, and hence, will not boot.

I have thought of different options, like attaching an external SATA DVD-ROM drive and booting from that, but that would be too simple, plus, I don't have such a drive. The other option (not tested) is to install Syslinux on the SD card, boot from it, and use GRUB to boot the USB stick with an installer ISO image that has been made with UNetbootin, and then install to /dev/hda. A third option (not tested either) would be PXE boot, but I don't have a PXE server at this time. The fourth option is to go back to my installed CentOS on the SD card and modify the mount options and the bootloader (not tested either). So, I hope you will take my challenge!


Simon Stavdal

I would recommend the fourth option, and possibly mounting with the UUID instead of the device name. (Ubuntu does this by default.) You'll likely still have to fiddle with GRUB as well, but it should work. I'll admit though, sorting out these sorts of problems can be very frustrating.—Ed.

Spaces in Filenames, Revisited

Regarding Dave Taylor's article “Dealing with Spaces in Filenames” in the February 2011 issue, I never put spaces in my filenames when I create file/folders. But I do get files from others that have spaces in them. I used to leave those files with the spaces in them, even though they are not good. Your article got me to change that, so I wrote a simple script that seems to work real well. Here it is:

for s is *\ *
do
   rename 's/ /_/g' "$s"
   sleep 1
   printf "Removing spaces from $s\n"
done

Thanks for your great article.


caseesac

Author Update on “Zotonic: the Erlang Content Management System”, LJ, April 2011

As it stands, the default Zotonic branch is under heavy development, and installation instructions have changed slightly. You can clone the 0.6 version instead using hg clone -r release-0.6.x https://zotonic.googlecode.com/hg/ zotonic. If you want to live on the edge, see the new instructions for the default branch: code.google.com/p/zotonic/source/browse/doc/INSTALL. You also can check out the very active Zotonic Google group if you need further help.


Michael Connors

Fedora Packagers Refuse to Fix Security Hazard in glibc Packages

A security hazard was introduced in glibc as of version glibc-2.12.90-4 and has been left uncorrected for nearly four months. Namely, glibc allows other programs to overwrite adjacent memory blocks.

The bug was narrowed down to an inappropriate use of memcpy instead of memmove in glibc on 08.11.2010—see comments 37 and 38 of https://bugzilla.redhat.com/show_bug.cgi?id=638477.

Unfortunately, this bug thread has disintegrated into a debate over the pros and cons of support for proprietary software, completely ignoring the main issue—a security hazard in glibc that needs to be fixed immediately. Despite critical comments from Linus Torvalds (see comments 199 and 222), nothing has changed.

The only other possible course of action is to advise Fedora 14 users to downgrade or roll back glibc until such time as this bug is fixed.


Simon Lewis

Thank you for the heads up. Instances like this are the reason I try not to be smug as a Linux user. Yes, our systems are designed well and are usually rock solid, but a coding error is a coding error. We are not impervious to bugs.—Ed.

Paul Barry's “Python for Android”, LJ, March 2011

I've been a loyal reader for some time, mostly because of articles like “Python for Android” by Paul Barry. Not only did things work exactly as described, but the descriptions themselves were perfect for a technical but not über-geek like myself.

Sadly, I did run into trouble when trying to follow the article using a physical Android phone. My phone has “security features” that prevent loading of applications that do not pass through the mobile carrier's “App Market” toll booth. I suspect that I'm not alone with this restriction. My troubles are complicated further by the fact that most postings about “side loading”—getting apps onto phones using various unofficial techniques—require and presume root access. Neither of these will frighten a thoroughbred developer (aka, “geek”), but fear of bricking one's smartphone remains daunting to most bank accounts.


Dan St. Andre

Paul Barry replies: Thanks for the kind words, Dan. Unfortunately, some vendors are intent on sealing tight what should be an open platform. This might make business sense to them, but it certainly makes life difficult for some of their users (especially us hacker types who want to control everything their smartphones can do). I've very little experience rooting Android devices, although there's plenty of help on the Net. You may wish to search answers.oreilly.com for articles by Brian Sawyer. Brian was the editor on my two Head First books and (as well as an editor) is a published Android author. He has tried most things on his smartphone and offers some good advice on getting root access. Search for “How to root your Android phone with one click”, and take things from there. But, be careful, as the possibility of bricking is an issue, so tread carefully.

Cool Application Package

I don't recall which monthly Linux magazine recently asked readers to submit their favorite applications that they can't live without.

I've been a longtime user of the XFCE, and one thing it has that I haven't found anywhere else is the ability to run the mouse off the edge of the screen onto the next screen and wrap around from the last screen to the first again.

Brightside does this for GNOME, and it works on Ubuntu Netbook Remix Unity as well. It also does vertical screen switching for screen layouts that are not side by side.


honkytonkwillie

I often set up my desk like this at work. I have three monitors and three operating systems. Using Synergy, I can move my mouse between them all and have them wrap from the last to the first as well. Doing the same on virtual desktops in a single screen might be interesting. Thanks for the tip.—Ed.

Thank You, Kyle

I read most issues of Linux Journal cover to cover; it's the only mag that grabs so much of my attention. For all the excellent contributors, one stands out perhaps even just a little more: Kyle Rankin.

Coming from a Mac background, learning Bash was a weakness for me initially, but Kyle's column has taught me enough to feel confident doing things I'd never considered before. I feel like I truly own my machine now, and a big part of that is Kyle's experience coupled with his excellent writing style.

In fact, I recently decided to install an experimental server in my office, so of course, my first choice was Kyle's Official Ubuntu Server book—every bit as good as his column here.

Many thanks to Kyle and the others there at Linux Journal who've helped turn me from a total noob into someone who's feeling confident and competent. You folks are the best!

PS: Thanks for your SCaLE 9x sponsorship. I loved the conference, and I really appreciate the role Linux Journal played in supporting it.


Richard Gaskin

Yeah, we like Kyle around these parts as well. As far as his book goes, I've been a Linux admin for more than 15 years, and I still refer to his Official Ubuntu Server Book rather often. Which reminds me, I still need to get my second edition signed.—Ed.

More on Paul Barry's “Python for Android”

I really enjoyed Paul Barry's “Python for Android” article. Working through it though, I thought about how Paul had the readers develop the program twice—once to run on a common computer for the proof of concept, then again to add the Android UI and remove the debugging print statement.

Once a programmer is more familiar with Python than with Android, I think it can help to have some test tools to deal with the whole program while it's being developed outside the simulator. I put this module, named android.py, in my development directory:

class Android (object):
   '''Emulate android API without android.'''

   def __getattr__ (self, name):
       '''Presume that unknown attribute requests are for methods.'''
       def log_method (*args, **kwargs):
           print 'Android.%s ::' % (name,), args, kwargs
       return log_method

   def dialogGetResponse (self, *args, **kwargs):
       class DGR (object):
           def __init__ (self, result='???'):
               self.result = result
       print 'Android.dialogGetResponse ::', args, kwargs
       return DGR ('OK')

This traces most API calls along with the given parameters. dialogGetResponse was cobbled together specially to keep LJapp.py from failing. Running LJapp.py with android.py in an ordinary non-Android shell session gives:

mwilson@tecumseth:~/sandbox/android-app$ python LJapp.py
Android.makeToast :: ('Hello from LJapp.',) {}
Android.dialogCreateSpinner :: ('LJapp', 
 ↪'Checking the price of coffee...')
{}
Android.dialogShow :: () {}
Android.dialogDismiss :: () {}
Android.vibrate :: () {}
Android.dialogCreateAlert :: ('The current 
 ↪price of coffee beans:',) {}
Android.dialogSetItems :: ([5.1900000000000004],) {}
Android.dialogSetPositiveButtonText :: ('OK',) {}
Android.dialogShow :: () {}
Android.dialogGetResponse :: () {}
Android.makeToast :: ('bye',) {}

Of course in Python, test frameworks and test-driven development are huge things; this is mere baby talk compared to what developers will be doing very soon. I think it's interesting anyway.


Mel Wilson

Paul Barry replies: Thanks for sending this. It's a pretty cool piece of code. Could I suggest that you sign up to the SL4A mailing list and share this script with the developers frequenting the list?