Sunday, August 31, 2008

The "Appliancising" of Free Software

Ever since I watched the fledgling Free Software movement take hold a few years ago in Thailand, I've thought that the current trend of what I'll call "appliancising" was the natural end game for Free Software (and really all OSes in general).

There's an interesting article up at Computerworld about how Red Hat and Suse got cut out of a huge deal in Germany. Essentially, a German company ran into some problems with Suse that soured the deal, so decided to move to another platform. While the obvious competitor was Red Hat, the company didn't need a full Red Hat contract, so they decided to go with CentOS, an untrademarked version of Red Hat ES.

HP, the company's hardware vendor, officially supports Red Hat, so HP is also supporting CentOS with extra management applications for the Munich-based company.

I find the whole story quite interesting and maybe telling about where we'll be in a few years.

The eeePC from Asus uses Xandros, but not a stock Xandros. Asus contracted Xandros to create a special (maybe we'll call it "branded") version specially for the eeePC. Asus is using this as a selling point. Asus easily could have developed their own version, but they didn't. Why is that? Asus' Splashtop, now available on virtually every motherboard, is making waves the way Dell's meager Ubuntu offering never could, but Asus, a Taiwanese company got that technology from DeviceVM in Silicon Valley.

So, before I go into some more examples and a prediction or two, I want to take a step back in time, to when the grass was greener and life was simpler ... my childhood. Back then (the 70's and early 80's), computers were pretty simple. There was no talk of an operating system choice because there really was no choice. Unix vendors sold the hardware and the software as a unit. They were intimately tied to each other. The home systems were the same. I'm not sure I can call the built-in BASIC interpreter for my Model I and "operating system," but that's really what it was, and there was no way around it for a long time. Apples didn't have choice, either. Things haven't changed on that side.

Back to the present, when Mac OS X is the gold standard in the press. The hardware is theirs. The OS is theirs. Most of the apps are theirs, and they have nice little tie-ins like the iPhone and the iPod and the iTunes store. Whew. That's a lot of "i"s. People who like Macs love them. Asus runs the eeePC the same way, and would be smart to have an eeePC store or at least a line of peripherals and add-on software just like Apple. Your NAS (QNAP NAS pictured above) now comes with a customized Linux or maybe FreeNAS if the manufacturer is pushing to market fast. It works. There are no hassles. It's not really upgradable, anyway, so why should the average user need to think of it as anything but an appliance?

Square One (pictured right) is a home internet server allowing a user to (from the website):
  • Create a local area network of up to four PCs (more if you add an external switch or wireless access point)
  • Share one Internet connection for the whole network
  • Back up files to and share them from Square One’s networked hard drive
  • Connect a USB printer to Square One and print from any PC
  • Run a full-featured web site, web forum, or blog without paying expensive hosting or colocation fees
This is a pretty attractive set of features, and the operating system appears to be a custom Linux distribution. Does the purchaser care? No. Does the web site even mention Linux? No.

How about the Zonbu (left)? It's a desktop appliance which does automatic upgrades and backups to the Zonbu server. Its selling point is "hassle-free computing." With everything Zonbu does, it's trying to remove headaches from desktop computing. The user just needs to turn the thing on and use it. It's a real appliance. Zonbu uses a tweaked Gentoo installation (is there any other kind?). The system gets great reviews and is compared to a Mac though costing only US$99 US$299. So far, though, uptake is really slow. I'd buy one if I lived in the U.S. Note: As pointed out below, Zonbu appears to have changed their pricing model and strategy. They now sell the computers, support, and OS separately. This move makes them much less interesting.

Then there are the phones. Just the way the iPhone is a cut-down version of OS X, the Android (prototype is pictured to the right) and OpenMoko phones are Linux. Who really cares, though, except gear heads? The average guy just thinks that the phone looks good and has cool functions for a reasonable price. Phones always have been appliances, though, right.? There's no real movement happening except to multi-touch displays and desktop-like functionality. Wait. I guess that is pretty important. You desktop in your hand. Yeah. A desktop appliance.

I promised a prediction or two. First, this looks bleak for Red Hat and Suse, right? I mean, when this Munich-based company decided to standardize on a new version of a Linux operating system, they chose CentOS, which means Red Hat did the development and didn't get any of the money. You know ... one of those situations that brings up the question "How do you make any money?"

I don't think it's so bad, though. Look at Asus. They are paying Xandros and DeviceVM, even though they could have logically done something in house. It only took Canonical a couple of months to push out the Ubuntu netbook remix, you know. Asus is a hardware company, though, and I'm pretty sure they don't want to get into software beyond developing drivers and tweaking a BIOS (which they purchase, too). If fact, I'd be willing to bet they don't really want to do drivers or the BIOS, either.

Five years from now, we'll have "the end of the desktop," which has been predicted for years now. It won't really be dead, but phones, netbooks, and Zonbu-like appliances will take a good share of it. I doubt Zonbu will be on your desk, because the first to market rarely is the one to make a big splash. Linux vendors will continue to make ends meet (but not become uber-wealthy) by supplying the expertise to "appliancise" their distributions for these hardware manufacturers, just as BIOS makers continue to make money. The support number for your Ubuntu netbook will probably actually be routed to a Canonical help desk where they'll be sure to answer the phone with your supplier's name instead of their own. Users will purchase online updates and add-ons, probably caring little about the Free nature of the software. Even hardware houses which try to do their own thing in-house will contribute back upstream just to keep future costs down.

Techies, of course, will continue to tear the appliances apart, mod them, and generally use them in ways they weren't designed for.

Saturday, August 30, 2008

Idiotic Move of the Year Award

... goes to me!

A couple of days ago, I got tired of manually inserting the vboxdrv the first time I wanted to test something after a reboot (which happens about five times a week due to an intel driver bug in Lenny) so I typed
# echo vboxdrv > /etc/inittab
That's right, folks, not double GTs! I didn't realize that I had mistyped, though (it was a typo) and went along my merry way until the next reboot when, you guessed it! I got stuck at a prompt I've never actually been at in almost eleven years. Reading the error, there seemed to be a problem with inittab ... something about a limit of four characters. Odd, that.

Oh, well, I decided that the problem with /etc/init wasn't something I wanted to try to fix inside the system, so I broke out a live CD. The one I had handy was Ubuntu 8.04.1, so I booted and opened /etc/inittab on the proper partition.
stared at me, and I immediately realized what I had done. Wow, I felt stupid. Not really a problem, though, because I could just copy over the inittab from the live CD and everything should be workable (though there might be some differences) and I could fix from there. Except, ummm ... Ubuntu doesn't appear to have inittab. I'm going to have to look into that one and write about how they get around it. I didn't realize that Ubuntu was actually using Upstart for anything yet.

Luckily, I just had to boot an old laptop with Lenny, copy the file to a USB key, and move it over to the machine.

Still, it's easily the stupidest thing I've done to a system in a year, maybe in three to four.

Thursday, August 28, 2008

My "Internet friend" asked this question, though not of me

"Hello Alex, thanks for the reply. I wonder with Ubuntu if you could walk into Harvey Norman and choose whatever printer and scanner you like then take them home and get them to work within 15 mins? I wonder if you could find PC games for Linux such as Crysis, F.E.A.R., Half-Life 2, etc? I wonder if you could run every piece of 3rd party software you have now? I wonder with Linux whether you have the massive library of 3rd party software to choose from for your business or personal needs? I wonder if your PS3 can communicate with your Linux PC's MP3 library as a media server? If you answered 'yes' to all those questions, then wow, Ubuntu is better than I thought and I apologise for being mistaken."

Your answers are:
1) No, not any printer or scanner, but if they are supported they will work in about 5 seconds, not 15 minutes. If you run a Linux-based OS, you learn to check your hardware purchases, just the way you check the system requirements on the back of a software box.
2) You can find many great games for Linux, but certainly most games are made for ... consoles and handhelds. Haha. Got you! Windows PCs come in second, but a lot of the FPSes and MMORPGs are there. Linux is MUCH sparser, but there's always Nethack! ;)
3) Yes, I can run all my 3rd-party software I have now. I wonder if I can run every piece of third-party software I have now on Windows. The answer is probably not. It just depends on what you own, I guess. Mac users are in the same boat. They don't seem too unhappy.
4) Linux has HUGE stores of software, including stuff from Unix 30 years ago on forward to this year. Vista can't run stuff thats ten years old and it has had its share of complaints about compatibility. There are, though, lots of niche markets that aren't covered by Linux or any Unix. They may never be covered. It depends on how the market goes.
5) I don't have a PS3, but my PS2 can play MP3s AND movies streamed from my Linux box. Bet you didn't know that the PS2 could operate as a media center, did you? The PS3 can run Linux, so I'm sure it could be a Linux client. The XBox certainly can. LinuxMCE is a cool media solution for your entire house. It does things that Windows really WANTS to do, and that MS shows off, but that never make the release. Watch the video: If you don't want the technical detail and just want the flash, skip forward about ten minutes.

Note: Apparently, you use a uPnP application like MediaTomb to stream to the PS3. How easy is that?

Oh, I know that all those questions were rhetorical and that you didn't really want answers to them. I gave you the straight dope, anyway. Some was positive and some wasn't. Computers are that way.

In reality, my machine's operating system can inter-operate with Macs with no trouble. WinXP, too. It can read any major file system from MS or Apple or Sun or IBM. It can use Mono, ELF, and NeXT applications natively. It can serve as a web and/or file server from a machine with a 200MHz CPU and 64MB RAM (really quite a bit less). It can run on a netbook or a phone. It can run on Itanium or MIPS or Arm. It can boot from the Intranet using only PXE and give me the same experience I have with a regular desktop without even having any disks or Flash ROM. It can boot from a live CD. It can run a supercomputer or a render farm. It can do as much or as little as I please with it, using the resources to match the task. I can install it as many times in as many places as I care to, and it never accuses me of copyright infringement. Can WinVista do those things?

If you answered 'yes' to that question, then wow, Vista is better than I thought and I apologize for being mistaken. :P

You're happy with your Windows machine. Stay on it. I'm not asking you to switch. On the other hand, don't belittle people who donate hundreds of thousands of hours to make an amazing operating system by putting it down for not running Windows applications or using Windows drivers or integrating with your WindowsMCE perfectly. Some people spend all the time they have trying to make it happen. Microsoft puts virtually no time into trying to inter-operate with anyone else. Show some basic respect.

Wednesday, August 27, 2008

Is This a Debian or a Gnome Blog? Vacation's over.

I talk about Gnome a lot when I talk about Debian. Why is that? Is my blog really about Debian or is it really a Gnome blog in disguise?

There's one answer, and it's short. Gnome is the default desktop for Debian. It's not all you can use. In fact, Debian is so large and varied that talking about any environment more than 10% of the time would be unfair. I like to stick to the defaults when I give advice, though, because it fits the largest number of people.

I'd like to spend more time exploring other DEs like Openbox (which I do use sometimes), FVWM-Crystal, or even KDE, but I have a lot of work to do and I don't like to spend too much time futzing around. I'll do what I can to get some reviews of the DEs/WMs in Debian up over the next few weeks. Don't expect anything in-depth, though, because I don't use them enough to make those kinds of remarks.

Speaking of getting work done, my week and a half of vacation is over tomorrow, and I'll be a lot quiter than I have been. The time's been good, though. I got Games That Work off the ground with almost 60 games, I finished the pre-seeds and did the site/documentation for it, and I got the first iteration of D2D out the door. I need to improve my scripting and packaging skills. Now that's a place to spend that spare time I don't have.

The Debian2Debian Server-Client 0.05 Packages Have Arrived!

I had to figure out how to make a meta-package for this one, but it's here and done. Install the d2dserver.deb to enable easy file sharing, a DAAP music server, and a cache for apt installation.

The d2dclient installs software which makes the client aware of the server and allows easy communication with other clients.
  • gnome, 
  • empathy and telepathy-salut, 
  • giver, 
  • conduit, 
  • gnome-user-share, 
  • gnome-office, 
  • ttf-liberation, 
  • gnome-office, 
  • service-discovery-applet
It also sets the apt process to use the cache on the server.

Read the project page and don't ignore the warnings, please.

Tuesday, August 26, 2008

HOWTO: Create a debian metapackage

What's a metapackage?

A metapackage is a package which doesn't have any files to install, but depends on other files to make sure they are installed. A good example of a metapackage would be the gnome package in the Debian repos.

Why would you want to make one?

In my case, I need to make an easy way to get my Debian2Debian server/client setup. I need to install certain packages and scrit some stuff afterwards. Maybe you want to make one so that setting up a copy of your desktop on another computer will be easy. MAybe you just want to help a friend install some packages.

The process

This is really easy. Create a directory to hold your files and name it after the package.
mkdir mypackage
Fill the directory with the proper structure
mkdir mypackage/DEBIAN
touch mypackage/DEBIAN/control

Edit the control file so that it looks like this:
Package: mypackage
Version: 0.10
Section: main
Priority: optional
Architecture: all
Maintainer: Daeng Bo
Description: A metapackage for Daeng
 Detailed description (optional, and notice the leading space)

Create the package by running
dpkg --build mypackage
from outside the directory.

Congratulations! You're finished. Install your .deb or send it to a friend.

Monday, August 25, 2008

HOWTO: Easy music sharing (or anything else you want)

This is a quick HOWTO describing an easy setup for sharing files in a home network with no security and no headaches.

There's a popular Ubuntu Howto which uses anonymous FTP and some other stuff, with lots of downloaded scripts. I'll make everything a lot simpler for you than following that one.

Objective: To have music files served through DAAP from a server that everyone can access to add new albums to. There's no configuration on the client and very little on the server. There's no security. Anyone can change or delete files.

Create the directory you want to share music from.
# mkdir /home/Music

You need to install Apache 2 and ZeroConf support for it.
# tasksel install web-server
# aptitude install libapache2-mod-dnssd

Next, you need to enable the DNSSD module
# a2enmod mod-dnssd

Edit your /etc/apache2/sites-enabled/000-default file and add the following two lines to the beginning of the file:
DNSSDEnable On
DNSSDAutoRegisterVHosts On

Add this to the bottom of the file:
<Directory /home/Music>

    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

Alias /Music "/home/Music"
<Location /Music>
    DAV On
    DNSSDServiceName "Shared Music"
    DNSSDServiceTypes _webdav._tcp

You can change the name or the directory path if you like. You can even add five or six of these definitions if you want to.
Change the shared directory to be owned by the web server so that there are no permission problems.
# chown www-data:www-data -R /home/Music

Restart the web server. Be careful. Read the output and make sure that it starts correctly.
# /etc/init.d/apache2 restart

Go to Places > Network and find your share there at the top level. You can right-click to mount it ("Connect to this server").

You're finished. No scripts to download. No hacks. Just WebDAV and Avahi.

If you want to server the Music the ZeroConf way to a client, install Tangerine (which comes with Mono and GTK ... What a waste!). I prefer mt-daapd, but it's not available in the repositories anymore.

It uses a graphical configuration client. If you don't want that (I don't), you can create a .tangerine file.

name = Shared Music
password_file = /home/Music/.tangerine-passwd
debug = False
max_users = 0
log_file = /home/Music/.tangerine-log
port = 0
publish = True
plugins = file,session
directories = /home/Music

and then start tangerine.
$ tangerine /path/to/.tangerine

Open up your Rhythmbox and look over the music. It may take a few moments to come up.

Happy sharing!

Sunday, August 24, 2008

Easy File Sharing

Let's talk about setting up file sharing on Debian/Ubuntu, shall we?

Since I finished the pre-seeds I was working on, and I'm still on vacation for a few more days, I decided to really get to work on my Debian2Debian project I've been mulling over for a while. It needs simple file sharing.

The concept of the project is that there should be a simple Debian server which works really well with Debian clients, particularly in a home setting. At the center of this is easy file sharing .... Well, not exactly. The server setup is going to be static, so that can be complicated, but the clients need to recognize the shares automatically. So I've had a dilemma for a while.
  • Samba is easily the most elaborate system, and it offers automatic discovery, but scanning the "Windows Network" in Nautilus takes a long time, and I wanted to use something faster and simpler.
  • NFS is has the best pedigree on *nix, but it needs setup on the client (as far as I can tell ... I've been searching on this for a month on-and-off). If I can avoid setup on the clients, that would be best.
  • FTP is scary for me. Sorry. It has an awful history.
  • WebDAV using Apache seems doable, but I'm still looking into it, which is what this post is really about.
Right now, I'm looking at the gnome-user-share and gshare utilities on Gnome for some inspiration. The first seems to fit my bill, and spawns Apache WebDAV on a random port, then updates Avahi with notification. It also has stuff like Bluetooth that I'm not at all interested in, so I'm just going to script something at the server's startup.

The following folders will be shared by the server:
  • Documents
  • Music
  • Pictures
  • Videos
  • Backups
Sounds remarkably like the XDG Folders? Hmm. Could be. I'll look into localization of the sharing later. I may be able to use xdg-user-dirs-update to help me with that.

I need to get DAAP and DAPP on these folders after that. Rhythmbox will then just see and play the Music share. The new F-Spot should identify the Pictures share. How do I seamlessly share the videos? I'm working on that one.

If you want to easily share files with someone else on Debian, Ubuntu, or OS X, install gnome-user-share and configure it at System > Preferences > Personal File Sharing. It's so dead simple that I'm not even going to tell you what to do, I'm just going to give you the screenshot.
When you're finished, put the files you want to share in ~/Public. Your friend/S.O. can see them in Places > Network.

Sid Pre-seeds available

You can now get the same desktops (Gnome, KDE, XFCE, and LXDE) with Sid instead of Lenny.
Download the Sid pre-seed .iso

Saturday, August 23, 2008

The Demo Video of the KDE Pre-seed Desktop

This video shows the following:
  • Iceweasel with Flash and Java plugins.
  • Playing an MP3 file with Noatun
  • Organizing music with Juk
  • Playing an MP4 using Kaffeine
  • Kopete IM

Demo Video of the Gnome Pre-seed

This is a demo video of the Gnome pre-seed desktop. It shows the following:
  • Epiphany browser with Flash and Java plugins.
  • Double-clicking an MP3 file and playing in Totem
  • Playing an MP3 file using Rhythmbox
  • Playing a WMV in Totem with full screen
  • Abiword
  • Some menus
Click the post title or the image to view.

Friday, August 22, 2008

Demo Video of the XFCE Pre-seed

The video shows the following:
  • The Iceweasel brwser with Flash and Java plugins.
  • The Thunar file manager with XDG directories.
  • Double-clicking an audio file to play it in MPlayer.
  • Using Quod Libet to manage music.
  • Double-clicking a WMV file to play it in MPlayer (the slowness is due to the VM).
  • Pidgin.
  • Gimp.
  • Other stuff.
Click the video or the blog title (really, this time!) to see the demo.

Thursday, August 21, 2008

Video overview of the LXDE desktop with the pre-seed .iso

This is a video showing the LXDE desktop in action. Click the image to view.
  1. Kazehakase shows Flash and Java plugins in use
  2. The file manager is shown with all the XDG folders (Music, Videos, Documents, etc.) in place
  3. Audacious plays an MP3 file
  4. MPlayer plays a WMV file
  5. Pidginis shown
  6. GPicView is shown
  7. Various themes are shown
The size of the install is 922MB, including Iceweasel in addition to Kazehakase.

What's Next After Preseed 0.1?

I'm going to create another, virtually identical set for Sid. That should take less than an hour.

Next, I'm going to work on the Debian2Debian project, which creates an easy home network of Debian clients with a Debian server. The initial goals are:
  • File sharing with the server with no setup
  • Music sharing from the server using DAAP and Zeroconf
  • Video sharing, possibly using uPnP, but maybe DAAP.
  • Apt-zeroconf to limit update bandwidth
Later work should include
  • Pooled backups
  • Networked /home
  • LDAP
  • E-mail, Jabber, etc.
The setup will use the mini.iso as a base and install from the network.

Wednesday, August 20, 2008

The Debian Pre-Seed Project Release 0.1

  Summary: This is the initlal announce ment for the Debian Leeny Pre-seed Project which sets up desktops for Gnome, KDE, XFCE, and LXDE complete with extra repositories, codecs, and plugins.

What is a Pre-seed File?

A pre-seed file is simply a file which gives answers to the questions offered by the Debian installer. It also offers the ability to add additional repositories, install additional packages, and run post-install commands.

That means we can use a pre-seed file and a net install iso to create the perfect Debian desktop.

Because the .iso is only 7MB and does a network install, you will need a broadband connection which is unmetered. The system has been tested on a couple of pieces of hardware and in a VM, but I could use a lot more help testing and making recommendations about missing functionality.

The install is completely destructive, using the entire disk with LVM and a separate /home partition. Beware!!!

Edit: There were some errors created when I cleaned up the pre-seed files. After a couple of tests, I think I've got them all.

Gnome Desktop

The Gnome desktop installs a standard Debian Gnome desktop, including:
  • Evolution (PIM)
  • Epiphany (browser)
  • Totem (Movie player)
  • Rhythmbox (Music manager)
  • GThumb (Photo manager)
  • Serpentine (CD ripper)
  • Synaptic (Package manager)
  • Tomboy (Notes)
  • Deskbar (Search applet)
  • Liferea (Feed reader)
  • Ekiga (SIP client)
  • Cheese (Webcam viewer)
  • Games
  • Gnome Office
  • Too much other stuff to list.
To this, I've added the Debian Multimedia repository and installed the following:
  • Really Bad codecs
  • Flash
  • Sun Java
  • w32codecs
  • Non-free archive formats
  • Iceweasel
Test it and see if it works for you. If you have any suggestion, please let me know.

KDE Desktop

The KDE desktop installs a normal Debian KDE 3.5 desktop, including:
  • Networking
  • Graphics
  • PIM
  • Games
  • Educational
  • Toys
  • Web development stuff
  • and much more
To this base, I've added, Flash, Java, codecs, and more. I don't use KDE, so let me know if it's missing something important.


The XFCE desktop installs a normal Debian XFCE4.4 desktop, including:
  • Orage (Calendar)
  • Thunar (File manager)
  • Panel
  • Themes
  • and more.
To this, I've added
  • XFMedia, (Movie player)
  • Quod Libet and plugins (Music player)
  • Codecs
  • Flash
  • Java
  • Kazehakase (Light browser)
  • Iceweasel (Full browser)
  • Non-free archives
I don't use XFCE much, so let me know if there's a problem.


LXDE is a new light-weight desktop based on the  Openbox WM and PCManFM file manager. LXDE desktop installs the lxde package, which includes these plus Leafpad, GPicview, and XArchiver.
In addition, I've installed:
  • Kazehakase (Light browser)
  • Iceweasel (Full browser)
  • MPlayer (Movie player)
  • Audacious and plugins (Music player)
  • Pidgin (IM)
  • Flash
  • Java
  • Codecs
  • Non-free archives
Let me know about missing fuctionality, but remember that this is a light-weight desktop.

Download and Try It Now!

Dowload the preseed.iso file.

Fanboys, Haters, FUD, and The Truth (TM)

Summary: This post is about the recent popularity of some "hater" and "sux" sites, the proliferation of "Linux myths" articles, real common misconceptions, and the truth about usability in Linux.

The Background

Before I get into this, I want to lay out my computing history so that everyone knows where I stand. I got my first computer in 1979. I grew up in an era where you programmed almost everything yourself, and working directly in machine code for the Z80 wasn't uncommon.

I used WFW, Win95, and WinNT when I was with the government, and I got my NT certification at that time.

I started using Linux at the end of 1997 because Windows 95 was giving me such a headache and some people online said "Linux is just as good as Windows and can replace it completely." I've used Red Hat (or localized derivatives), Debian, and Ubuntu for the last eleven years or so. I've also played with every other Linux distribution and Free/Net/OpenBSD.

That is to say, I think I've got a good view of what's usable (and what's not) in Linux because I've been on it exclusively for a decade now. I'm enough of a geek to understand some of the deeper problems. I'm also not a Windows hater (Microsft is another matter): I don't think people who make informed decisions and choose Windows have their heads screwed on wrong.

The Fanboys

As I mentioned in The Background, my first experience with Linux was being told "It can completely replace Windows." That was 1997. Windows 95 was difficult to configure. It broke all the time. It didn't actually have that much functionality. The Internet wasn't huge yet. Netscape was still soluble. At that time, I thik that Linux could replace Windows just because there was so little Windows could actually do.

Still, they were exaggerating. No, Wine couldn't run anything I threw at it. Linux was stable, but only until I tried to edit a configuration file and screwed it up, only to leave the system unable to boot. There were very few applications, and the only real desktop the first year was KDE1.

This type of fanboyism continues to this day, and I try to balance it out when I see it. Ubuntu cannot and -- more importantly -- should not replace every OS on the planet. No OS should be in that situation. The monoculture we've had for twenty years has really hurt computing.

I'm a fan of Free software and go to great pains to limit my use of non-free stuff, but it's unrealistic to ask the average computer user to take up the Free software cross. They just don't care. They don't even know the difference between RAM and a hard disk, or an office suite and an OS.

Don't even get me started on the subject of the Ubuntu Forum. What a whitewashed mess that is!

Fanboys create expectations which can't reasonably be met by anyone. They hurt Linux adoption. If you are one of them, tone it down, step back, and get some perspective.  Don't be a door-to-door Linux missionary.


Every major news source is quoting Linsux and LinuxHater these days. The Gnome and Ubuntu bloggers commonly say "we need to listen to them because they have something important to say." It's bullshit.

Linsux and LinuxHater are filled with useless flames and disinformation. Maybe 1% of the comments are constructive. LinuxHater especially is held up as being knowledgable about Linux and a great source of criticism, but he mostly just trolls for page views. I'm not talking about me disagreeing with his opinions. I mean that he just gets his facts wrong at least half the time. I'm pretty sure it's intentional, having seen semi-professional trolls on Slashdot for ten years.

There is plenty of room for constructive criticism. Linux distributions need it. The critic doesn't even need to be tech-savvy. Someone saying "I want to unmount my USB key, but I can't figure out how to do it and the directions on the help page don't work" tells developers something about something that need to be fixed. Of course, having someone give a proper backtrace and even a patch is more useful, but criticism is criticism.

As a counter-example, let's quote the most recent LinuxHater blog:
When will you lusers fucking learn? In case you haven't noticed, users want Flash. Say it again. Users want Flash. Anything you do to make Flash not work is your fucking fault. Not Flash's. Yours. At some point in time in the past, Flash worked on Linux. In some configuration. Otherwise Adobe wouldn't have released it. Whatever you did to deviate from that configuration is your responsibility. Not Adobe's. The fact there are a bazillion Linux configurations that Adobe couldn't possibly test: OSS sound, or Alsa sound, or alsa-oss sound, or pa-alsa emulation, or pa-alsa-oss-jack-esound-vagina emulation, or all of the above inside nspluginwrapper, or whatever the fuck... it's all your fault. Not Adobe's.
Flash is buggy. It always has been. Back when it was just Flash 7 for Linux, it sucked. Falsh 9 was actually better, but it's still buggy. The problem is that Flash has become the cornerstone of sites like YouTube, meaning the average user deals with Flash much more often. Whether the distribution uses OSS or ALSA  or Jack has little to do with it (libflashsupport is a POS, though). Flash was written to use straight ALSA, which has been the defacto audio system for as long as I can remember. It still sucks in that single configuration. Blaming the Linux community for poor software design by a vendor is just silly. Should I blame Windows because NOD is awful software?

Constructive criticism would be to promote the development of SWFDEC, which is usable for most things but still not quite there. Since Adobe has liberated the Flash specs, though, and now allows those specs to be used to create viewers, SWFDEC has a good chance of catching up. Instead of saying "You fucking losers break Flash," say "What's a good solution?"

Haters bring nothing to the table, and we shouldn't delude ourselves into thinking that they do just to appear to be neutral.


Fear, uncertainty, and doubt are use by the haters and the fanboys to try to gain mindshare. Just look at BoycottNovell or Get the Facts as examples. There's not much you can do about other people's actions, so you can't really stop FUD.

The problem with FUD is that it's similar to political talking points. You repeat something enough times, and  your opponent addresses the counter-point enough times, and people begin to accept it as truth. The opponent is in a no-win situation.

What the opponent shouldn't do, though, is respond with counter-FUD. Giving responses which the observer knows to be false only entrenches the FUDer's position. Respond with real facts that quickly and obviously prove the FUD incorrect.

The Truth

Here it is, guys -- The Truth (TM) about Linux.
  • Which is best?: There is no "better" operating system or Linux distribution, because "better" is an opinion based on personal taste.
  • Which is more secure?: While the may actually be a more secure OS, knowing which one by looking at numbers of vulnerabilities or viruses is not possible. The system is too complicated to boil down to a single number.
  • Which supports more hardware?: If you want to use Linux on a piece of hardware that isn't (well) supported and you don't know how to write device drivers, you'd better not even start.
    • Linux does support more hardware than Windows, but many of the common consumer devices aren't in the list.
    • Linux supports general chipsets so often doesn't have the same number of features as Windows drivers. The upside is that these drivers are almost always more stable than the specific ones.
    • Unless your all-in-one printer is from HP, you're probably out of luck.
    • You'd better check the compatibility of that portable music player before you buy or you may have to swith OSes to use it.
  • Installation: Linux installation is difficult. Any installation is difficult. The average person shouldn't be installing an operating system. Getting several to work together on the same system can be frustrating if anything goes wrong. On supported hardware (i.e. drivers on the OS disk) without worrying about multi-boot, Windows and Linux are probably about equal for the OS itself. If you include the time to install extra applications, Linux probably wins.
  • The terminal: You will eventually need to know the terminal or have a friend who knows it in order to use Linux. Your Windows-using friend will eventually have to have someone clean out the registry or reinstall for him. Operating systems are complicated. Still, once the installation is complete, for day-to-day activities, you don't don't need to use the terminal, ever, if you don't want to. I still prefer the terminal for many things, though.
  • Installing applications: There is no "one-click" installation in any operating system which has security. Suse has something called "One Click." Windows users have a double click. Ubuntu users can double-click a .deb or single click on an apturl link. These all require authentication.

    If you have an Internet connection and your application is in a repository, installing an application on Linux is almost certainly quicker than installing the same application on Windows. Linux is and always has been a networking operating system. If you don't have Internet, installing anything will be difficult.

    If your application is not available for your distribution, you're in for some pain, but this situation is no different than if your progam doesn't have a Windows installer. Just about every program has a Windows installer, though.
  • How many applications?: 20,000? How many are stable and work well? Half? HUBackup has been broken and unusable at all sice Ubuntu 6.06LTS. It's still in the repositories. The aplications on Linux are often smaller and less featureful than Windows versions. This is Unixy. The average user doesn't like that. The good news is that is helping to create specification which help Unixy applications work together better. We're seeing real strides in desktop usability right now.
  • Codec problems: Codecs are available for just about everything. They may not be in your repository. You may need to purchase them from, say, DRMed media, however, is another matter. If you were naive enough to buy crippled media, you'll need to continue using that platforms the vendor supports until they stop supporting you at all. Oh, and if you wanted to watch the Olympics in Linux, good luck with that.
  • Linux is ugly: The terminal is ugly. OK. More seriously, UIs for Linux don't get the love of some other major OSes. Many of the Gnome themes are very plain. I find KDE1-3 butt ugly. KDE4 looks good but isn't really usable yet. XFCE is GTK, just like Gnome. So's LXDE. GnuStep is an eyesore. Hmmm. Wait a minute .... These are all my opinions. Yours may vary. Beauty is in the eye of the beholder. Why else would my original Debian theme for this blog have been pink?
  • No games: There are plenty of games on Linux. Most are half-finished. A lot of them use engines released from closed-course houses like Id. Still, there are a lot of really good games for Linux. When SDL was conceived, it made games like Wesnoth possible. SDL has become the DirectX for Linux. Oh, and since SDL works on Windows, too, the games are cross-platform.

    Still, Linux has fewer games than Windows does. I have a console that I turn on once a month, so I don't really care, but this is an important issue for some people. If you are a hard-core PC gamer, do yourself a favor and don't get deluded into thinking you'll be happy in a 100% Linux environment.

    Help me find great games for Linux! 
  • Support: MS offers support for a fee. OEMs offers supprt depending on the contract. Apple offers expensive support (J/K). Major Linux distributions offer support in one-time or contract bases. All of them have communities for supprt where whether you get an answer or not will depend on the whim of the people on the board. They could even call you names like "newbie" or tell you to go back to your mom's basement. Welcome to the Internet. If you want guaranteed support, buy it. I'm pretty sure you'll get better answers with a Linux vendor who knows the product backwards and forwards, though.

    I don't want to address support for small to large companies on this point, as the argument become long and complicated, depending on too many factors.
  • Office: is a full-featured office suite, but it's big and generally slow. It's also not MS Offfice. Gnome has Abiword, which is great and the plugin architecture for 2.6 makes it very featureful, but it's still not MS Office. KDE has KWord, which has always been under-staffed, but it's still great, and it's still not MS OFfice. IBM even recently released Symphony for Linux. News flash: it's not MS OFfice, either.

    My point? If you're a casual user, any of these will probably work for you. I'd recommend Abiword if you use Gnome or XFCE and KWord if you use KDE, but is great, too, and will probably be more familiar if you're coming from MS Office. On the other hand, if you've spent the last ten years learning the ins and outs of MS OFffice so that you can use all the features, you'll never be happy starting over. Stay on Windows, use Crossover Office, or get a VM going.
Linux is not a panacaea. It's not perfect. Using it requires some concessions, the same way using Windows does. The difference is that you may never have thought about the concessions you make to Windows.

For me, though, I am an idealist who is addicted to freedom. I can never move to Win or Mac.

Tuesday, August 19, 2008

Organizing Your Movie Collection

Summary: This post is about several ways to organize a movie collection using Debian or Ubuntu and Gnome, in response to a question by Jack Hynes.

In response to my call for requests, Jack Hynes said...
I was trying to sort out a Mysql database with php front-end to sort out a list of films (so I could organise alphabetically or my year). Is there a way to do this easily using a Gnome program with GUI?
My problem with Jack's question is that I really don't know which direction he's coming from. I figure there could be four possibilities:
  1. Jack needs to organize his movies and was thinking about writing a web app to do it, but decided to ask if Gnome has something already. In other words, Jack doesn't have a database already filled with information.
  2. Jack has a database filled with information and wants a front end to it instead of coding something in PHP.
  3. Jack wants to develop a PHP app which works well in Gnome.
  4. Jack loves PHP and wants an IDE for Gnome to develop his PHP application easily and intuitively.

1. Organize your movies using Griffith.

I put them in the order of probability. Let's look at all four.

Griffith is a GTK+ application which organizes your music library. It supports back-ends using SQLite, MySQL, Postgres, and MS SQL. Given the movie name, you can get the details from one of thirty online services, including IMDB, of course. The application supports sorting by any of the columns and has user-defined views and searches.

It also keeps track of minutae like codecs, physical media type, and region coding. If you want to loan out part of your library, Griffith will even e-mail you a reminder to get it back from the deadbeat.

Griffith is really sharp and I recommend it if you use Gnome, Xubuntu, or LXDE. Another application which is native to Gnome is GnomeCatalog.

2. Getting to your existing MySQL (movie) database.

If you already have a database and just need access to it, you can either continue to use the database or you can export it and use it within a new application.

If Jack just wants to get at the information in the database, he can export it to a CSV file and import that file into Griffith. Griffith can then look up any missing information on the Internet.

If Jack wants to continue using the database and wants to look it over while in Gnome, there are many ways to do that. One of the easier ones is to connect using the "Data sources" wizard in Once he has connected, he can manipulate and sort the data just as if it were in a spreadsheet, using Writer to create custom reports.

If he doesn't want to use OO.o, he might take a look at Mergeant, a database admin tool for Gnome.

3. Develop GTK+ applications using PHP

GKT-PHP is a great GTK+ binding for PHP. The latest release was just in May, so the project is still going strong. Jack can continue to use the PHP he knows and loves while making an application that works well in Gnome. Learning the binding will take a little work, but the tutorials and other documentation look really good.

4. PHP development environments for Gnome

The only thing that Free software has more of than "Hello World" programs are programming tools. There are several IDEs developed just for Gnome or GTK which can help Jack out.

The first and simplest way to go is GEdit (I realize it's not an IDE). GEdit gets a bad rap because it's small, but the plugin architecture makes it great for programming. In fact, I'm getting ready to write about the Latex plugin which has finally solved my Latex/Lyx/Texmacs dilemma.

When I did (really minor) web development stuff for my old school several years ago, Screem was already a mature and full-featured IDE for HTML and PHP. These days, it has many more features and handles CSS well, too.

GPHPEdit is another IDE specifically for PHP. I've never used it, though, so I'm not going to make an ass out of myself by pretending to have an opinion.

The final IDE JAck might want to take a look at is Geany. I used it for a little while before settling on Screem a few years ago. It didn't fit my style back then, but it has matured and Jack may have a different style to me.

Well, Jack, I hope that's answered your question. If it hasn't, and I've completely missed the point, be sure to tell me. You don't even need to be polite about it. ;)

Sunday, August 17, 2008

Taking Requests

If you have something you'd like to see explained in detail or a question you think many folks have, let me know. I'll queue it up.

Google should just take the Gnome online desktop and run with it

First plot line: gOS

There's a lot of buzz about gOS 3.0 out there. gOS is one of those distros that just rocketed to fame in its first five minutes, and since it's released about every four months, it stays in the news. Back in November, 2007 when it was first let onto the scene, I tried it out and wrote about it. It had too many usability bugs at that point.

The "g" in the first couple of weeks was speculated to mean Google, which of course it didn't (trademark issues and all). The developer came out after some contemplation and said it stood for "good." Fine. It was still the Google desktop and nothing could change that. It wasn't, however, particularly integrated or, more importantly, "good."

Second plot line: Gnome Online Desktop

Fedora has a project with Gnome to create an online desktop. Gnome has its online profile page. I looked at it back in May and though it was cool, but again needed more integration. I think I came off as whiny and as the kind of guy who orders around developers. It wasn't intended to be that way.

Anyway, the basic idea of the online desktop is that you sign into Gnome using your online profile and your connection details are loaded, connecting you to your IM and e-mail contacts. Everything gets aggregated into a nice side bar (affectionately called the "bigboard"). You could conceivably log into any computer which had teh online desktop functionality and just get to work. Think of SunRays or romaing profiles for the Internet age.

Third plot line (or "how compllicated is this story, anyway?"): The Zonbu

Last year, the Zonbu came out and got pretty good reviews from the people who understood what it was supposed to do. What was it supposed to do? Be an appliance with no maintenance. It was a completely hosted desktop experience.The hosting service cost about US$10 per month, and uptake has been slow. That's too bad because I think it's a great idea.

The Climax: Where does Google fit in?

The climax here is kind of a let-down because I've already given you too much information. Yes, Google should take the Gnome online desktop and web-centered OS concepts and package them into a Google appliance.

There is a problem with this idea: people have been calling for Google to make a Linux distro since maybe 2004. They haven't done it yet. Why would they put one out now? The answer is that their online application profile is pretty much complete at this point. Google has the following services now integrated with your Google login:
  1. GMail e-mail
  2. GTalk IM/voice
  3. Calendar
  4. Docs and Spreadsheets (and presentations...)
  5. Picassa photos
  6. Blogger
  7. Orkut social networking
  8. Youtube videos
  9. Sites wiki
They now have the possibility of supplying virtually every online need for the average user. Sure, they've had most of these services for a while, but they weren't all consolidated until just recently because most were purchased and had to be integrated over time.

So what's the proposed "product?" First, a beta of a Linux distro which uses your Google ID as a login credential. Once you're signed into the desktop, your contacts, e-mail, documents, calendar, and photos are all waiting for you. There need be no further configuration. Most of the functionality can be accessed through Google gadgets, Picassa, and Prism (a Mozilla webapp platform). Of course, since Google does no evil, they should allow users to add outside services such as Flickr and Facebook. The login credentials for these services will need to be stored on the Google server. I'd love for this distro to be based on Debian, but Google is pretty good at putting together their own flavors. They definitely have the expertise to do this and do it well.

Once the kinks are sufficiently worked out by the early adopter crowd, Google can begin selling a Zonbu-like setup with the Google Online Desktop preinstalled. Google already sells appliances. It should be no big change in philosophy for the online corporation. Unlike Zonbu, though, Google doesn't need to charge a monthly fee. That should encourage sales. The unit will probably be quite small with a tiny amount of flash ROM, enough RAM to keep it snappy, and a low-power CPU like MIPS, ARM, Nano or Atom. Heck, even a Geode would work.

The Solution: How would they make money?

The obvious answer to this question is ad impressions. This implementation encourages more people to use more Google services, driving up impressions and generating more revenue. Sure, people can still use Yahoo! mail or Flickr if they want to, but lazy folk are going to be putting their photos up on Picassa and checking their e-mail through GMail. We saw how defaults worked out for Internet Explorer.

Google could try to make money on the hardware, but why would they do that? They are primarily a web company. They could sell the appliances for little more than cost and still succeed. Keeping the cost as low as possible would further drive sales. As long as the unit is an appliance with no CD, users are much less likely to try to insall incompatible software.

Long-term, Google can follow their current business model by pushing client-server appliances into the enterprise. They have search appliances. They are almost certainly coming out with Docs and Sreadsheets appliances soon. Google could create an easy single-signon solution for medium-sized businesses. Small businesses could host the info at Google until they grow.


I'm not supporting everyone giving over their life to Google. I use some of their services a lot, like GMail and Blogger. Some I use less, like Youtube, Calendar, and Docs. Some I don't use at all, like Picassa and Orkut. Despite this, I think Google's goal is to get as many people using as many of the services as possible, and creating their own online appliance is in line with that goal.

My questions is: would you buy one for yourself? How about for a family member or friend? Is there a real market for a web appliance from a company with a large web presence?

Saturday, August 16, 2008

Time to get your driver's license

Happy 15th birthday Debian. Did you get your leaarner's permit yet?

No, seriously. Debian is a gift from the great void.

Friday, August 15, 2008

Games on Linux Blog

I'm not a game player, but my minor attempts at using the Wine AppDB have been fruitless and frustrating. I wanted a list of easily-installable games that just work, either natively or with Wine. Since my gal spends an hour a day with little, fun games, mostly using Wine, I decided to recruit her as a tester and put up a blog about the games that work OOTB.
The format of each entry is the same:
  1. The title of the game with a link to the download page
  2. A screenshot
  3. The publisher's description of the game
  4. The system requirements from the publisher
  5. A gameplay video
  6. Installation instructions
Click on the title, above to see the thirty games I've got so far. Contact me if you want to help with the project.

Wednesday, August 13, 2008

Monday, August 11, 2008

Ubuntu devs are considering using empathy as default for Intrepid

As a follow-up to my recent post about Empathy being accepted into Gnome, it appears that the Ubuntu devs are looking for testing in anticipation of replacing Pidgin as the default IM client.

There is certainly no consensus on the matter right now, but the feeling is that
  1. Intrepid is the proper place to make such a replacement since the LTS was just released and there is enough time to work any kinks out.
  2. Empathy will probably be integrated at some point and Ubuntu should be on the leading edge of this (A.K.A. "It's a selling point).
  3. Empathy offers a much better path forward than Pidgin.
  4. Empathy offers voice/video right now, while Pidgin's has been promised for some time and is on an uncertain timeline.
See the original e-mail announcement for more (much more!) information.

Why GnomeBaker and Brasero Aren't Standard on Gnome

When the Ubuntu devs decided to ship Brasero with 8.04LTS, the users thundered with applause. Everyone, it seems, wants a Nero-style application for the desktop. Why is that? More pointedly, why does Gnome choose not to ship a CD-burning application as part of the desktop? The answer to that question says a lot about how Gnome is designed to be used.

Let's look at some of the standard uses of Brasero and see how we accomplish the sale task without it in Gnome.

Easy Task: Write a prepared .iso file to a CD or DVD.

In Brasero

  1. Open Brasero
  2. Choose "Burn Image"
  3. Click on "Path"
  4. Navigate to and choose .iso file
  5. Click "Burn"

In Gnome

  1. Open a file browser window
  2. Navigate to file
  3. Right-click the file and choose "Write to Disk"
  4. Click "Write"

While these two procedures don't seem very different from each other, you often start at step three of the Gnome way because you are already looking at the file you want to burn. You'll look at the file and say to yourself "I want to make a copy of this." If you know that double-click means "open" in Gnome and right-click means "do something else to a file," this method is the intuitive one.

Medium Task: Create a data CD

In Brasero

  1. Open Brasero
  2. Click "Data Project"
  3. Drag and drop files or use the chooser.
  4. Click Project > Burn
  5. Click "Burn"

In Gnome

  1. Insert a blank disk or choose Places > CD/DVD creator
  2. Drag and drop files
  3. Click "Write to disk"
  4. Click "Write"

Again, these don't look very different on the surface until you realize that you get #1 for free by inserting the CD (which you need to do in any case). The work flow is intuitive: Insert a blank CD and choose what to put on it.

Difficult Task: Create an audio CD from OGG or MP3 files.

In Brasero

  1. Open Brasero
  2. Choose "Audio project"
  3. Navigate to the audio files
  4. Drag and drop the files
  5. Click "Burn"
  6. Click "Burn" again

In Gnome

  1. Open Rhythmbox
  2. Create a new playlist
  3. Filter the files you want
  4. Drag and drop the files
  5. Right click the playlist and choose "Create audio CD"
  6. Click "Create"

This is arguably a draw, but I'm going to argue that RB, being a jukebox application, is probably more efficient at finding your music than a multi-pane browser is. It's probably up to taste.

Bonus Task #1: Copy a disk

In Brasero

  1. Open Brasero
  2. Choose "Disk copy"
  3. Choose "Copy"

In Gnome

  1. Go to Places > Computer
  2. Right-click on the CD and choose "Copy disk"
  3. Click "Write"

This is probably the least intuitive Gnome method so far, but it was still exactly where I expected it to be (note: I've never attempted this task before and I doubt many average users would ever do it). I do wish that there were a menu option under "File" when the CD directory opens (automatically in Gnome) to copy the disk. Given the lack of a drive-centric view in *nix, though, I think that the method used is the most consistent ideologically.

Bonus Task #2: Create a new .iso image

The steps for both methods are exactly the same as creating a data CD (above), except that the user needs to choose "File image" instead of the drive in the "Write disk to" field.


Brasero has four options for creating CD/DVD projects. It contains nothing that standard Gnome can't do in the same number or fewer steps or much more easily.

Why do so many users want Brasero, then? Nero-itis. That's the rational answer. Tell me if you have another reason or if there's something that Brasero (or even the vaunted K3B) does better than Gnome apps do.

Sunday, August 10, 2008

Gnome has Empathy for You

Well, the Gnome 2.24 freeze is on, and something happened that I never imagined.

Just after 2.22 was released, I took a look at the upcoming Gnome release, and I said, for probably the fifth time, that I wish Empathy and Telepathy would make it into Gnome, but that it wasn't going to happen because
  1. The licensing was wrong (libempathy is GPLed because it is forked from Gossip), and
  2. The was no API documentation
The Gnome developers have apparently gotten tired of waiting for these problems to be fixed and just went ahead and made Empathy and the associated libs part of Gnome (edit: only as external dependencies). I'm assuming that this move will put more pressure on the main developer to come into line and will make the project higher profile, giving him more manpower to work with.

Although I've said it before, this next part bears repeating. The inclusion of Empathy (and Telepathy) into Gnome is huge. Why? Well, just look at the history of GStreamer.

GStreamer came into Gnome as an immature and underpowered framework for audio and video. It took a few releases to mature, but it does pretty well these days (We all know it can be improved) and the next release will see more advanced features like DVD menus. Totem uses GStreamer. Rhythmbox uses it. Banshee uses it. Elisa uses it. Pretty much every application that wants to add audio or video is now using GStreamer ... even some KDE apps.

Telepathy is likely to work the same way for messaging. Right now, telepathy has real backends for text, voice, and video. It handles quite a few protocols through its own plugins and virtually everything else though libpurple (from Pidgin). In a couple of Gnome releases, we should be seeing Evolution, Ekiga, and Empathy in a giant symbiotic relationship. Suddenly, you will see that the person you're emailing is online and accepting IM/voice (but no video), and you will be able to click to start the conversation. This isn't too much different than the way GMail works now (and is a killer feature), but the desktop integration will be complete, meaning an easier time communicating for the Gnome user. I'm really looking forward to this eventuality. Oh, and can we get Soylent while we're at it? ;)

If you use Ubuntu, consider voting for Empathy.

ALERT: Ubuntu is considering replacing Pidgin with Empathy for Intrepid.

Also included in the final cut was another next-to-impossible-to-approve application called Conduit, which I use daily and which I'll be writing about soon. What was keeping Conduit from being considered was
  1. The total lack of keyboard utility, and
  2. An impossible accessibility situation
The solution to problem #2 is being worked on, but I don't think the Gnome devs are that interested because they are focused on making Conduit a back-end instead of a main application. Eventually the individual applications will call Conduit to do backups and syncs for them. Sadly, Conduit the application has been called a case study in why you shouldn't use custom widgets, and it will probably never be 100% accessible.

While I'm talking about new applications in Gnome, I should mention Hamster, a time-tracking applet which has some interesting features. We should be seeing good keyboard shortcuts and maybe even a connection to virtual desktops in order to track time.

Sunday, August 3, 2008

Don't Like Mono? Try Vala.

My recent post about Mono was sincere, and Boycott Novell has the story about Debian wrong, but Gnome actually is pushing an alternative. Before I introduce you to the programming language Vala, let me give you some background on programming for Gnome as I understand it (note that I am not a programmer and haven't done anything real since the mid-80s).

Gnome is based on C, which makes it much more difficult to write for than, say, KDE, which is an object-oriented, C++ language. Gnome tries to put some OO structures on top of C, but developers often claim that they don't help a lot. As a result, Gnome developers (especially new ones) like to use bindings for other languages like Python, Ruby, or C#. These have drawbacks that the languages and bindings have to be installed, raising the install size (see Debian's complaint about Mono bringing in 50MB just for Tomboy). Mono's JIT executables are almost as fast as binary executables, but not quite. Scripting languages, though, are notoriously slow. None of the languages are a perfect fit for the GObject system, either.

Enter Vala, which is a new language developed by Gnome specifically for developing Gnome apps. It has a syntax very similar to Java or C# (closer to C# from what I've read) and a precompiler which maps the Vala to C source and header files, which can be compiled into an executable. The code is probably not as efficient as that written by hand, but Gnome claims very similar performance. Of course the use of a high-level language means that programmers shooting themselves in the foot with C is more difficult. The downside is that Vala programs aren't cross-platform like the other high-level options, but cross-compiling for three or four platforms shouldn't be too difficult.

Vala should reach 1.0 at the end of September, but only supports GLib and GTK+ right now. The entire Gnome platform is expected to be supported Real Soon Now (TM). There's already language support for it in GEdit and bindings for Monodevelop.

I've been playing with the example code, and it seems straightforward and simple to make GUI apps (eggclock is to the left). The language is really new, so there aren't a lot of applications writeen using it, but a fork of Cheese is trying to rewrite the application using Vala. There are also various multimedia, benchmarking, and text editing apps.

Mono and C# have a lot of really cool applications right now: Tomboy, F-Spot, and Banshee. If these were forked and rewritten in the C#-like Vala, we could see greater performance and silence the anti-Mono crowd. Sounds like heaven, eh? OK, I can dream, can't I?

Oddly, I don't really get an NIH feeling about Vala at all. I wonder why that is.

Solognu has translated this post into Spanish. ¿No te gusta Mono? Prueba Vala

Friday, August 1, 2008

Is Debian Really Afraid of Mono? No!

Not only is Roy Schestowitz a little on the paranoid side,he apparently likes to troll, as well. In a recent article he claims that
The necessary harmonisation between GNOME metapackages and tasksel turned out to be in favour of removing tomboy from metapackages instead of adding it to tasksel, because Mono is widely seen as “controversial” (see above).
and quotes the developers:
 * tomboy: very nice app, but controversial since it brings the
full Mono stack, so we don’t make it part of
The only problem is that, if you actually read the link, you find that he's taken everything out of context. I couldn't let that go, so I posted the following response
I know you like to live in your own reality, but the thread explains itself nicely if you read it.

Josselin Mouette is the package maintainer for gnome-desktop-environment, which he/she describes in the message as ‘Currently, the “gnome-desktop” task consists of the “gnome-desktop-environment” metapackage (official GNOME release) plus a number of extras. However we already provide the “gnome” metapackage which consists of g-d-e plus a number of extras to make a full-fledged desktop. ‘ He/she suggests INCLUDING Tomboy, but says the quote you use in your summary to show a possible downside.

Joey Hess (who apparently has privilege to immediately edit the gnome-desktop task) gives the REAL reason for not including Tomboy when he responds “There’s a fundamental difference between the gnome package and the gnome-desktop task. The former is the complere (sic) gnome desktop environment with all extras, as shipped by gnome, while the latter attempts to be the best gnome-based desktop that Debian can put together and ship on a CD/DVD.” Later, “I doubt that the size of [Tomboy’s] dep chain (~50 mb) makes it worthwhile to add it to our task.”
Josselin answers “Yeah, that’s what I feared. I hope someone rewrites it in Vala some day…” He/she understands that there’s not enough space.

Tomboy (and by proxy, Mono) were reduced to “a recommends,” meaning that tasksel won’t install Tomboy, but aptitude (the recommended method to add software) WILL.

Mono is just too big a dependency to put on CD1 for one application.

If you install a Debian standard system, then “aptitude install gnome,” you’ll STILL get Tomboy.

There is no controversy. Quit stirring up stuff that’s not there.
Considering the quality of the hysteria on that site, I doubt he'll listen.

Other I' Been to Ubuntu Stories

Related Posts with Thumbnails