Showing posts with label ubuntu. Show all posts
Showing posts with label ubuntu. Show all posts

Monday, August 3, 2009

Idea Library: Spread Linux by revitalizing slow computers

I create lots of ideas. I'll think up a plan to accomplish a goal or start a business, ponder it for a couple of days, think of a problem with the idea, and move on to the next idea. However, I occasionally develop an idea that stands up to my scrutiny.

Until now, I've summarized these ideas in a Remember the Milk to-do list, planning to implement them myself "after this assignment" or "once I finish this project". However, I've now realized I simply don't have time to work on all of them, so I'm sharing them with you.

I'll publish the ideas here with the tag "idea library" so that you can easily find them. My idea posts won't have the same quality as the rest of my posts, and it's possible that my ideas will be full of glaring oversights or obvious flaws. Nonetheless, I think that some of my ideas have real potential, even if I don't have the time or resources to implement them.

That's why I chose the tag "idea library": I wanted to give other people the chance to use my ideas. If you'd like to implement one, please contact me at [redacted] so that we can discuss terms. Because I won't publish ideas I can execute myself, I will probably give you any published idea you ask for. I'm publishing these ideas not to entertain you but to give you a chance to use them.

My first idea addresses a problem for the open source community: Windows has a stranglehold on the OS market. Far too many people have no idea that they can leave Windows without buying a new computer, and most of the people who are aware of Linux don't have the skill or incentive to install it.

I propose that the Linux community should offer to speed up people's slow, obsolete, or damaged Windows computers by installing Ubuntu (or another desktop-focused Linux distro). People will agree to risk their computers if the computers aren't usable.

A flyer on a bulletin board could promise to redeem old computers by dramatically reducing start-up and loading times, allowing quick web browsing and email access, and eliminating malware of all types. The customer could pay $20 for installation plus $10 for the recovery CD and $40 for data preservation (through dual-booting). Many people would gladly pay $20 to give their old computer another chance at usefulness.

I would charge that little because I need the Linux experience and I'd like to encourage the adoption of Linux.I would also write a quick tutorial to show the new users how to use the essential functions. Ideally, I would convince a computer repair shop to refer customers with hopelessly obsolete computers to me. I don't think this could be a money-making project, but I would enjoy the experience.

Obviously, you don't have to contact me to use this idea, but I would still appreciate a comment if you decide to try it.

Sunday, May 10, 2009

Failed to build these modules: binascii zlib

It's very rare that I encounter a computer problem that I can't solve. I thrive on the challenge of rooting out the cause of an obscure error and finally getting my software to run properly. However, I thought I had been defeated by the error in the title of this post.

The trouble started when I tried to install Django on my Ubuntu Intrepid Ibex partition. I was unaware of the convenient apt-get method of installation, so I was going through Django's long list of dependencies, trying to find the initial critical library on which the entire list depended. I thought I had reached the end of the chain with Flup, a WSGI (Web Server Gateway Interface) library for Python. I tried to install it from its Python egg, but it threw several serious errors that indicated that I didn't have the necessary library to "hatch" the egg.

Of course, I found the required library and downloaded it, only to realize that it, too, was contained within a Python egg. The readme file clearly indicated that I could install the software by running a simple command: python [I forgot the name of the file].egg. Every time I tried, it would tell me that zlib wasn't installed and quit.

Of course, I looked up the "missing zlib" error and found some possible solutions. I tried to install the zlib python module from source and tried to download it from the repositories, but nothing would stop the fatal error.

I gave up.

Because my school work started to pick up, I didn't really have time to think about Ubuntu and my installation woes for about a month. The trouble started again as I was preparing for one of my Google Summer of Code proposals. When I attempted to install PGReloaded, an unstable development branch of the PyGame multimedia library, on my Intrepid Ibex partition, I encountered strange error after strange error, and I was completely unable to install the library. I thought that the problem might be related to my installation-from-source procedure, so I tried to install the standard Pygame library through apt-get and play a game that relied on it. The game couldn't find Pygame, even though I had just installed it.

I then remembered that installing Python 2.6 had given me an installation error: "Failed to build these modules: binascii zlib." I realized all my problems were caused by a faulty Python installation. First, I tried to verify the integrity of my Python installation. I checked md5 sums, ran tests, and reinstalled Python 2.6 from source. All the tests failed due to the absence of binascii and zlib. Looking for a fix, I started googling around, this time for Python installation message.

I found only one other instance of my problem in a post on a mailing list; unfortunately, the poster didn't get an answer. I thought that the gurus on the Python Help mailing list might be able to diagnose my problem and find a solution. Unfortunately, I hit a dead end there, too.

Now, the narrative flies off the tracks. If you want to read the whole convoluted tale and you have a taste for debugging narratives, you can take a look at Jaunty Jackalope released: Vista all over again. To summarize, I had to reinstall Intrepid Ibex and destroy all my files after an ill-advised "upgrade" to Jaunty Jackalope. I had to start from scratch.

Researching an entirely different problem, I stumbled across this Python 2.6 on Intrepid Ibex installation guide. Apparently, all my problems were caused by a conflict between the system default Python installation, 2.5, and the newer version, 2.6. I was thrilled to finally have my answer, but I wasn't looking forward to another lengthy, complex Python installation.

In the end, after a little advice from some python gurus, I decided to skip Python 2.6 entirely and stick with good ol' 2.5. This time, PGReloaded installed easily (for an unstable development library), and I don't expect any problems installing Django. I guess the moral of this story is "If a task becomes incredibly difficult, make sure that it's actually worth your time."

Sunday, May 3, 2009

Jaunty Jackalope released; Vista all over again

That's right, I put the release of Ubuntu's Jaunty Jackalope on the same level as Microsoft's launch of Windows Vista. Although Jaunty's release wasn't announced by a troupe of performance artists like Vista, its fanfare-filled launch ensnared many users who were unaware of its development-release instability and widespread incompatibility.

My awareness and rage toward this issue started with a single click. After my package manager had downloaded several updates, I noticed a button above the list of updates encouraging me to upgrade my system to the newest release of Linux. I obliged, just as any inexperienced user would when greeted by a safe, important-looking button.

The enticing Jaunty upgrade button

The installation took two or three hours, and it threw only a single minor error: the incompatible package libphoto (or something like that) wasn't installed. I shut down my system for the night, admiring the cool gradient loading bar before turning off the monitor.

When I booted up the next morning, I chose the newest kernel from the GRUB menu and expected a smooth startup. Instead, I was greeted by a total startup failure. My flashed between a black screen and a black screen with a red bar at the top several times before finally hanging on the glitchy red bar. Every time I tried to boot linux, I would get the same red bar of death followed by a permanent hang. Even if I attempted to fall back to an older version of the kernel, I would get the same result: total failure.

I decided to figure out what had happened and how to fix it, so I fired up Vista (GRUB still worked fine) and asked for help on the official Ubuntu forum. Instead of an explanation and instructions on how to fix my problem, I received this response from an experienced Ubuntu user:

Sorry to hear about your upgrade problems. 9.04 seems to be producing a lot more than its share of such problems (which is why we generally recommend against doing an upgrade).

As to reverting, sorry (again), there's no simple way to do that because an upgrade not only replaces packages it also removes them.

I was shocked. I had often heard tales of the stability of Linux relative to Windows, but now I realized those tales were just myths. I might expect to encounter this problem and response if I was installing Jaunty on an old, obscure, or esoteric system, but I never thought that my 64-bit Intel quad core PC wouldn't be supported by an Ubuntu distribution release.

I then began to notice all the encouragements for Ubuntu users to upgrade to Jaunty Jackalope: Jaunty has a plug on the Ubuntu forum index page, it is the default Ubuntu version for download on Ubuntu.com, and it also has that tantalizing upgrade button on the Package Manager. However, inexperienced users are supposed to ignore all that and instead ask the advice of an experienced Ubuntu user.

I find this incident startlingly similar to Microsoft's often-mocked Vista advertising blitz. Although Vista and Jaunty were unstable and had many incompatibilities, they were both released with much fanfare, enticing naive users to "upgrade" now. I understand that Ubuntu follows a strict six-month release schedule, but the trust of their users should be more important to them than an arbitrary schedule. On the other hand, Ubuntu could have officially released Jaunty but delayed the push for users to upgrade until after the OS was as stable as its predecessor.

I eventually had to destroy my Linux partition (along with all my data) and start again with Intrepid Ibex from my Live CD. After this incident, I might skip the Jaunty upgrade entirely and wait for the next long-term support release; I'm not anxious to "upgrade" Ubuntu again anytime soon.