Ubuntu Review: One Year In

After a somewhat belated New Year’s resolution last year, I did manage to complete my goal much more easily than I previously thought possible. In the last 9 months, I can probably count on my two hands then number of times I’ve booted into Vista or XP. I’ve been using Ubuntu on a regular basis since at least February. Now you may ask why I made the switch to Linux. I intend to answer that by giving a summary, including the ups and downs, of my first year with Linux.

I had heard of Linux in the past, but it always seemed like something that was beyond my ability to comprehend. I had become a huge fan of WordPress and Firefox, and I love the ideals of free software. As I sat there and thought about it, I couldn’t believe that I was still using a proprietary system like Windows when a free operating system like Linux was out there. I did some research on Linux and found Ubuntu to be exactly what I was looking for. It’s self-proclaimed as “Linux for Human Beings.” It’s got the best support for hardware of any Linux distribution and a very welcoming community for newcomers. Since I was a new medical student, the last thing I wanted was something I had to pore over for hours and hours in the command line just to use it.

Ubuntu is everything a person could want being new to Linux. You can download it for free and burn it to CD to install it. It’s a LiveCD, so you can run the entire operating system from the CD to test it out without changing anything on your current system. Just restart your computer with the CD in your CD-ROM drive, and you will boot into Ubuntu. In order to install it, you just run through the installer on the LiveCD, which asks a few fairly easy questions, and after installing for about 45 minutes, you’ll be booting into Ubuntu. If you’re not ready to completely ditch your current system just yet, you can shrink your installation of Windows. If you’d rather not mess with Windows at all (just in case you don’t like Linux), you can install Ubuntu just like a program right inside of Windows using the wubi installer. Using the wubi installer is a great idea for someone who just wants to try Linux, since it is a little bit tougher to uninstall Linux after installing via the LiveCD, which changes the partitions on your computer.

My first few weeks with Ubuntu were great. I couldn’t believe how much this free operating system could do. Nearly any type of application you could think of was either built-in or easily installed right from inside Ubuntu. It came with Firefox, the OpenOffice.org office suite, Evolution Email, Pidgin (for multi-protocol instant messaging), and the GIMP Image editor. Plus the “eye candy” was easily enabled to check out Compiz-Fusion’s desktop effects and the Avant Window Navigator, a dock similar to that found in Mac OS X.

My friend Usama and my dad were both interested enough to try it out for themselves. They played with Ubuntu for a few weeks, but neither of them took to using it full-time. They’re both “power users” on Windows, and getting used to new applications and setting up a completely different type of system might have been too much trouble for them. I don’t think either of them have given up on it completely, but I think they probably needed a little bit of direction in setting things up effectively. I couldn’t see what the problem was since I had very little trouble with my hardware and I didn’t have any pressing software needs. One of the things that helped ease my transition to Ubuntu was that I forced myself to use the system every day and only boot into Windows if I couldn’t do something in Ubuntu that I absolutely needed to. I quickly realized that there was almost nothing that I couldn’t do in Ubuntu. My new webcam worked after an upgrade to Ubuntu 8.04 (the Hardy Heron) and Amazon MP3 released a Linux client so I could buy full DRM-free mp3 albums.

With the release of Ubuntu 8.04 (the Hardy Heron), GNU/Linux seemed better than ever to me. I began to wonder how there could be so few people using it. I mean, sure it’s not for everyone (notably computer gamers, since few computer games were released on Linux). Around this time, I heard about the Linux Hater’s blog, which was causing somewhat of a ruckus in the Linux community. This is mainly because his rants, though crude, were strikingly poignant. He obviously had an in-depth knowledge of the various Linux communities and software, and he loved to point out their flaws. After a few months, he threw in the towel, but not before opening my eyes to some of the shortcomings of GNU/Linux. I think reading this blog was important for me. Although it often depressed me, it helped me see where Linux is strong and where it needs improvement. I knew all the software wasn’t perfect, but I thought it was just a matter of time before this was fixed. The blog helped me see some of the discordance and problems in the communities themselves that are, in some instances, preventing their own success. Yet as I continue to read about the progress that’s being made in all of these areas, I am hopeful that this problems will solve themselves. There are a lot of developers doing great work who understand the problems, and with the rise of netbooks more companies are contributing resources and manpower to solve some of these issues.

With the release of Ubuntu 8.10 (the Intrepid Ibex), some of Ubuntu’s warts began to show. My webcam no longer worked. One of my favorite new productivity applications, Gnome-Do, started showing some significant bugs that make it unusable at times. My wireless card, which was already a little bit buggy, started causing some more issues. My desktop’s CD/DVD-ROM drives no longer functioned correctly. All-in-all the release brought some great new features, but broke some of my confidence in Ubuntu’s stability. Some of these issues have been resolved and some have not. Some of these issues are specific to Ubuntu and some are not. My problem was that these issues were known prior to release time. I know releases can’t be held up for just anything, but when all CD/DVD drives fail to function properly, it seems like a show-stopper. Unfortunately, Canonical seems to value their time-based release schedule a bit too highly over quality, which is really, really going to hurt them in getting people to try and stick with Linux. I would much rather have had them do what Automattic did with WordPress 2.7 and delay the release date for a month so that all the bugs could be ironed out.

Now, I don’t want you to get the idea that I’m growing weary of Linux. Despite some flaws, I’m confident that things will be resolved in future releases, and I have no intention of giving up on an operating system that I love using. It’s just that flaws like these (along with some usability issues and a lack of centralized documentation) make me understand why adopting Linux might be harder than I first envisioned. I do hope that some of the higher-ups understand these issues, since it’s a major barrier to adoption. Ubuntu tends to do a better job at handling these sorts of issues, but as they continue to push for more users, I hope they continually readdress how to keep their current users happy while still progressing their system.

One of the things I like best about using GNU/Linux is how much I learn while doing using it. I’ve learned a lot about security and operating systems in general, and I’ve done it all using free software. I’ve discovered a number of free software applications that I probably never would’ve even heard of. By using free software, I began paying attention to its development to find out about great ideas and features in upcoming versions. I’ve also been keen on helping to test new software and report bugs. I’ve installed both new versions of Ubuntu while they were still in beta to help with bug reporting.

Since one of the cornerstones of Linux is its variety of distributions, or “distros,” I’ve also started using VirtualBox to test some of them in virtual machines inside Ubuntu. One of the things about Linux that really interests me is its versatility to run on a wide variety of hardware and using a variety of software. It’s used to run super-computers at big companies and to resurrect ancient hardware that’s not capable of running any modern version of Windows. Linux can also be used as a “green” operating system both in its own right and through the LTSP. LTSP can be used to connect many low-power, lightweight computers to a single workhorse machine, so an entire computer lab can be run on minimal power. Linux can be used to power your home media center and your cell phone. The versatility of Linux allows it to underlie many great technologies of today and tomorrow.

So how would I summarize my first year with Ubuntu? I think it’s exactly what I needed. It has helped me plan for the future in medicine and my life and better understand some technology along the way. It’s definitely not for everyone, but I do think Ubuntu and Linux is a viable operating system for a majority of users who have never given it a chance. Besides addressing some of the underlying issues in development (as highlighted by The Linux Hater’s blog) and preventing regressions, the Ubuntu community could use a effort to implement or improve a centralized, up-to-date set of documentation for new users. Far too many problems and issues are only addressed in random blog posts or on online forums, both of which tend to be outdated or doing things in an overly complicated manner. Ubuntu would be greatly improved by including some significant “Getting Started” documentation for new adopters and finding a way to point directly toward an up-to-date official wiki with more complicated tasks. The Linux community is continuing to lower the barriers to adoption, and addressing some key usability issues might be just the thing they need to attract the swarms of users leaving Windows and even catch a fed-up Apple user or two. Great strides have been made already and more are planned for the coming months and years. I’m excited to keep participating and to see what’s in store in my free software world. If you’re interested, try out Ubuntu. It’s simple to burn and try. The risks are pretty minimal, and you’ve got a lot to gain. You’ll never have to pay for any computer software again, you’ll learn a lot, and you’ll be ensuring the future of your digital life. Just don’t forget that Linux is different and for the most part you should try to enjoy it.

(Also, this is my sort-of convoluted thoughts on Jono Bacon’s meme)

Windows 7 finally catching Ubuntu?

There’s been a lot of talk since Microsoft’s PDC about what to expect from Windows 7. It’s due out in late 2009 or 2010, but MS gave a taste of what’s to come at their PDC. Gina Trapani over at Lifehacker posted a good list of the new features they’re working on for Windows 7. Usama and I have talked a little bit about some of the new stuff since he’s very excited about the next product out of Redmond. I’m not trying to be cynical, but as I read through the list of their “latest and greatest” improvements for Windows, I kept thinking to myself, “Sounds like they’re playing catch-up with Ubuntu and Linux.”

10. Ding-dong, the Sidebar is dead.
Windows is losing Vista’s “sidebar” in favor of a desktop-wide “Gadgets“. Doesn’t this sound strikingly similar to Screenlets? I mean there’s no optional hidden “widget layer” in Aero, but at least they’re trying.

9. Calculator, WordPad, and Paint got overhauled.
They stripped out “useless” built-in programs like a photo gallery, movie maker, and calendar. I guess if you can’t make worthwhile programs, you should probably just quit trying. Oh, but they added “useful” features to the Calculator and added their famous “Ribbon” view to many of their built-in programs. Many people love this “Ribbon” view that debuted in Office 2007, which explains its further incorporation into Windows programs. I can’t say much about it because I haven’t used it. Maybe it’s great. I just don’t think many average users appreciate them trimming down their built-in software when adding interesting new features.

8. Windows 7 will run longer on your notebook’s battery power.
Improved battery life. Apparently Windows 7 is making it easier to control the power usage for your laptop. Hmm, I bet something like powertop would really help you pinpoint what’s eating your power. Of course, if Windows was fully customizable, I’d be able to do things like disable my dvd drive, bluetooth, USB ports, and PCMCIA port whenever I’m on battery like I do in Linux.

7. You can switch between Wi-Fi networks in one click from the system tray.
Clicking on the “wireless icon” brings up a list of available wireless networks. Wow, I can’t believe they didn’t already have something like this. This has been available in every version of Ubuntu I’ve used, and now with NetworkManager 0.7 they’ve even added things like Mobile Broadband and VPN connections to the “wireless icon.” Maybe Windows will get there some day. While we’re on the subject of networking, shouldn’t you have proper Zero-Configuration Networking for all types of devices like Linux has with Avahi and Apple has with Bonjour?

6. You can decide what you do and don’t want to see in the system tray.
This one cracks me up. When I first read it, I thought, “Well that’s not such a bad idea.” Of course, I’m able to customize panels in Gnome and tell it what stuff I want on there and where I want it. Yet, if I’ve got the “Notification Area” applet displayed on my Gnome Panel, I can’t pick and choose what programs I want it to display. I don’t ever normally have more than 3 or 4 things on there at once. Then I started wondering why I’d want to hide the 2 programs I currently have running that show up in the Notification Area. Isn’t that its whole purpose? That’s when I remembered the Windows system tray and all the crap-tastic applications that put icons in there that you can’t get rid of, and this all seemed much more reasonable. I guess I just got used to programs that actually gave me an option on whether I’d like an icon in my tray (like gnome-do) and an OS that let me easily customize what applications start when I boot into my system. Of course, there’s also no need to have 50 different icons telling me I have updates for my PDF viewer, printer, and antivirus. I just get the 1 icon from Update Manager telling me that all these things need to be upgraded. But the real kicker here is that Windows isn’t actually disabling these programs from running. It’s just hiding them. That sounds like a great way to fool people into clogging up system resources with a bunch of applications running in the background so they never see them.

5. You get more control of User Account Control.
Let’s admit the UAC was just a really bad implementation of sudo/gksudo that incessantly nagged people trying to do even some simple tasks. Well it looks like Windows 7 has “fixed” that issue. Of course, instead of implementing a proper sudo knock-off and opting to make users understand the importance security, they let you customize how much UAC nags you. Many people will say, “Don’t ever bug me” instead of giving proper credence to the warnings. It doesn’t matter how many security features you add if people just disable them all.

4. Libraries group similar content; Homegroups to make sharing libraries easier.
I see now that Windows has given some thought to networking. If I’m understanding “Libraries” correctly, they will be able to dynamically scan multiple folders for certain types of files (like music), which can then be shared on a network. I’m not able to tell whether this dynamic scanning would have to be manually set up (I would assume) or if it would automatically scan your entire User directory for music files. That’s actually a pretty good idea (assuming it’s manually configured). Of course, none of that does you any good if you can’t easily connect to other computers on your network, which is where Windows drop the ball. Instead of implementing a proper Zero Configuration Network utility, it looks like “Homegroups” replaces the useless “Workgroups” with “Zero Config Windows 7 only networking.” So that sucks if you have other devices, Mac or Linux systems, a network printer, or even an “old school” Vista computer on your network. Networking will still be a pain in the ass. I guess you’d better be ready to shell out some cash to upgrade everything you own to Windows 7 so your networking works better.

3. You can instantly snap your windows to size, and clear the desktop in one motion.
This one kind of leaves me at a loss. Clear the desktop by shaking a window? So does that mean that every time I start moving a Window around, Windows will think I’m “shaking” and minimize everything? Sounds great… Why not just implement something like Compiz’s ADD Helper, where I can press Win+p to activate it? That way I don’t have to worry that every time I move my window I’m going to minimize everything behind it. Then, there’s the “instantly snap your windows to size” feature. It’s actually not a bad idea if you’ve got a big enough screen where having multiple tiled windows open at the same time might be beneficial. I don’t think I’d use this feature much on my laptop, but if I ever get that 24″ HD monitor I’ve been after, maybe this would come in handy. I’d also worry that someone just meaning to drag a window would accidentally have it’s size and position changed without meaning too. Talk about something to confuse novice users. With more and more users on laptops whose screen sizes are shrinking, I wonder how much use it will get. I think a much better idea would be to implement multiple virtual workspaces, but I’ll touch on that more in a minute.

2. Windows 7 starts up faster.
Whoa, faster boot time? Sounds an awful lot like what I’m going to be getting in 6 months. “Let’s see if we can make booting or resuming Ubuntu blindingly quick.” And as a recent proof of concept demonstrates, I think Linux will be winning the “boot time” battle in a few months.

1. You can do MUCH more from the Windows 7 taskbar.
We finally come to the Windows 7 topic of the week: a reworked taskbar. This definitely has been the hottest topic in news about Windows 7. There are at least 2 big features under this heading. First, they’ve made the task bar much more “Dock-like” by combining the quicklaunch icons with a traditional window list. It’s obvious that Windows needs a feature to compete with the Mac OS X Dock, which is beautifully emulated in Avant Window Navigator for Linux. It’s also obvious that they want something of their own, not just a Dock for Windows. The new task bar shows “live previews” of windows, like can be achieved with Compiz and even using Aero with Vista. One nice feature is that you can close windows using the live preview. It’s also interesting that when having multiple windows open for the same application, they get condensed down into one icon that has multiple “live previews” when you hover over it. Both of those seem like worthwhile ideas.

The second big feature is called Peek. Basically whenever you hover the mouse over an application in the new task bar, all other windows will turn temporarily transparent. It’s meant to be non-interactive, just if you need to glance at another window. There is also a built-in Desktop button so that you can peek at the desktop with all your Gadgets on it. This also seems like an interesting feature. I’m not convinced it could replace the quickness of Alt+Tab for me, but for the point-and-click crowd, this could be a time-saver.

It looks like the new Windows 7 task bar is adding some interesting new features to the Windows desktop. My question is, “Is it enough for Windows to save face?” They’re working on making more efficient use of desktop space. Linux and Mac OS X are already doing an OK job of that with their Dock applications, but they’re also giving the option to have multiple virtual desktops for people who want to separate their applications. On my Ubuntu installation, I can have up to 32 virtual desktops. Of course, I normally have only have 4. This makes it easy for me to keep a word processor open on one desktop and my instant messaging client and web browser open on another.

If it makes the Windows fans happy, though, I’ll give them that the new taskbar design in Windows 7 has some potential to be a good new feature. The rest of its new features still make me feel like the folks at Microsoft are trying to catch up with some of the innovation taking place in Linux and Mac OS. With the rapid progression of Linux in the past 2 years, how will the comparison look when Window 7 is released (theoretically) in late 2009? By that point, Gnome should be well on its way to the transition to version 3.0. That will mean a significant change to the user experience by attempting to rework the idea of the desktop, including making the desktop more task-based and less application-specific. For example, imagine having desktop-wide “contacts” that you could email, instant message, chat via video, follow on RSS feeds, and more. With that information built into the desktop, it wouldn’t matter what application you used for a feed reader or email client. Plus, there are other ideas floating around, like Long Term Vision. With the amount of development and innovation going on with Linux, Gnome, and Ubuntu combined with an aggressive 6 month release schedule, I think it’s going to be hard for Windows to keep up!

Now an OpenID

I used a nice piece of PHP software called phpMyID to make encephalosponge.com an OpenID.

If you’re not sure what that means or if you never understood OpenID, you’re not alone. Up until recently, I didn’t either. I always saw the opportunities to use them, but I never had a full grasp of what they were. Basically, an OpenID is a way to make yourself a central “online identity” that can be used on other websites. This way, instead of insisting that you register for a blog or website in order to be able to leave a comment, their website can just request your OpenID. Then you don’t need to worry about keeping track of a username and password for every site under the sun. Seems like a logical solution, doesn’t it? The confusing part is actually that you would think that an OpenID is just an all-encompassing username and password. Yet, when a website asks for your OpenID, they’re really asking you for a URL. What they’re looking for is a website that will vouch for you and act as your “identity.” When you’re on a website and it asks for your OpenID, it’s saying, “Point me to a website that will tell me who you are.” That may still be a little confusing, so keep reading.

There are (at least) 3 ways you can get yourself an OpenID. You can sign up for a free OpenID account at any number of websites, like myopenid.com. This is less than ideal for most people who already have an “identity” established online. Even if you don’t, is a profile on a simple website really what you want to point people towards when they ask, “Who are you?” In fact, (as a second way) many of you probably already have an OpenID if you have an account at many popular web services like AOL, Blogger, Flickr, Yahoo!, or WordPress.com. To use them, you just need to know what URL to use when a site asks for your OpenID. For example, if you’ve got a blog on wordpress.com, you can use username.wordpress.com as your OpenID. If you’re on Flickr, you can use www.flickr.com/photos/username. This means that if you already have an account at one of these popular websites, you never have to make a username and password at any other website if they’ll let you use an OpenID. Plus, a Flickr photostream, a blog, or even a list of your favorite links on Technorati is probably a good representation of “who you are” online.

The third option for getting yourself an OpenID only applies if you have your own website. This is the method I’m using. It seems kind of redundant to sign up for “yet another free account” on myopenid.com to manage my identity when this website is already my identity online. I just had to “teach” my site how to properly identify me. “This is Jonathan, who runs encephalosponge.com.” Plus, what if I don’t feel like I can trust the myopenid.com service? Or what if they decide to close, and I “lose my identity”? I set up a nice PHP script called phpMyID, which is able to identify me to other sites.

Regardless of what service hosts your OpenID identity, if you have your own website, you can turn the URL into an OpenID. You just need to add 2 lines of HTML code to your site. Then, when you’re on a website and it asks for your OpenID, you can use something like encephalosponge.com instead of myusername.myopenid.com. You might ask, “What does it matter?” Well almost anywhere I use my OpenID, a link will be generated with my name, and that link is supposed to point to “me.” It matters because why should some plain, lackluster profile on a site like myopenid.com represent my “identity” on the web? This site is my “identity,” and when people click on my name somewhere in the blogosphere, I want them brought to my website, not to some profile on myopenid.com.

Since I’ve set up my site as an OpenID, it will be easier for me to leave comments on other people’s sites. In order to facilitate the use of OpenID on this site, I’ll be adding an OpenID plugin for WordPress so that anyone who wants to leave a comment can easily do so using their OpenID.

One of the real pitfalls of OpenID is that they’re not currently ubiquitous. That means that you probably will still have to register for an account at many places. The more sites that support it, however, the less you’ll have to worry about making a million new accounts any time you want to contribute a comment on a website. It will help promote participation in discussions, which is a hallmark of the Internet.

Android App Review Marathon

Google Android: Android App Review Marathon Liveblog. I’m very much looking forward to buying an Android-based phone in the next year. The apps are looking to be very well done so far. I haven’t decided whether I’ll be getting a G1 or if I’ll wait for AT&T to come out with one, which is unlikely. I don’t like going to T-Mobile’s network, but considering I’m in Chicago, I may still be ok. We’ll see how the year progresses. Whatever I get is going to double as my PDA for M3 and M4, so it’s gotta be good!

Learning to Love Linux?

I noticed an interesting article on ifacethoughts stating “Linux Education Is The Key To Popularity.” I agree to an extent, but there are some caveats. This started off as a comment on his blog, but I decided it was long enough to merit its own post here.

I agree that Linux should be sold on being different than Windows, but I disagree that it’s entirely an education problem. I think there are 2 large issues that make things difficult for new users, and they’re quasi-related. First is that 99.9% of user’s tasks (even complicated ones) need to be GUI-fied for a Windows migrant to feel comfortable. This is quickly gaining momentum (for example, xorg.conf is all but eliminated in Ubuntu Intrepid Ibex), but it’s still not quite there.

The second, and even more important, piece of the puzzle is the need for a central, well-maintained, well-written set of instructions for how to do anything and everything imaginable in Linux. I think one of the hardest things for new users is when they don’t know how to do something, they don’t know where to go next. They can do a quick Google search or a forum search, but these are often filled with outdated information and they can be hard to sift through, especially when you don’t know what you’re doing. Plus, when you don’t really know what you’re doing, you might just go with the first thing you read, which many times is not a good idea. I also think it’s important for the OS itself to be integrated with these instructions and “Help” should point directly toward them.

I say the 2 issues of GUI and documentation are quasi-related because many times there are GUI options available for something, but instructions are given by old-school experts who find terminal commands quicker and easier. While that may be, to most Windows and Mac users, it’s intimidating. A good example would be adding Medibuntu repositories in Ubuntu. The wiki guide is all command-line, despite the fact that things are basically just as easy in the GUI to complete the same task. Even better might be to just supply repository and GPG key links and then link to a fuller article about how to install external repositories and what their advantages and disadvantages are.

I also feel like proper documentation could help users learn a lot more while they’re doing this stuff. Interspersed with the instructions could be brief descriptions about some of the inner-workings and why things are the way they are. In the previous example, maybe mentioning GPG keys and why they’re used or a link to learn more about external repositories. Some of this has been done with Ubuntu, but it needs to be more comprehensive, clear, and up-to-date. It also needs to be written for lay people and not by developers unless they’re very effective communicators.

It’s one thing to say that people need to “learn Linux” if they’re going to use it. It’s another to expect them to do it without the proper tools and guidance, especially since many aspects are non-intuitive to non-native users.