Wednesday, April 30, 2008

Stop hating Microsoft?

The post above asks some of us to stop hating MS, saying that "What really pisses me off are hardcore Linux maniacs who keep attacking Microsoft software! It's really a turn-off to see someone attacking software that has been serving people for a solid decade...."

I don't often rail on MS here, because I think it's counter-productive, but I'm going to put in my 20 Korean won here.

There are rabid MS haters and there are people like me who just distrust them.

Let me guess. You are young. You grew up in an MS environment.

Those of us who are old enough to remember computing before MS had a lock on everything are the people who most want to see MS drop in market share -- 60% would be enough to make everything even.

We watched MS kill off great software. We watched them promise new features to keep people from moving to other software, then never delivering those features. We watched them lie in the press and on the stand. Many of the "haters" on the internet were developers for companies that MS knifed, often using unethical means. Sure, MS has paid out numerous times, but the dead are dead and can't be revived.

But most of all, we saw a diverse computing ecosystem become a sick, limping monoculture which moved forward at a fraction of the pace it would have with real competition.

MS has been so bad to some of us for so long that getting into our good graces is not likely to happen soon, and certainly not with their historical behavior continuing the way is still is.

Ask me to stop distrusting MS? You might as well ask Tibetans to just forgive China and knuckle under like good little serfs. It's not going to happen.

Monday, April 28, 2008

You'll Get Bitten Eventually ...

I've installed Linux for a few people over the years. I used to be pretty gung-ho about it, but these days I'm more reserved. My gal tend to talk it up more than I do. I just use Linux and answer friends' computer questions with "I don't know a lot about Windows, but I'll try to help."

The ones who do switch over, I'm pretty open with. Generally, they're excited about what they see, and especially that it's free and in English (getting an English copy of Windows is pretty difficult). I say that I'll do everything I can to help them, and I'm generally on call 24/7, even if I don't want to be. In fact, I started this blog simply as support for one of my friends.

During their excitement phase, I caution them that something will come along to bite them eventually. There's nothing for free. The lack of viruses for Linux is in part based on the fragility of the ELF executable and the strong separation between user and administrator, but it's also partly due to the low market share. That low market share has its side-effects.

I've been using Linux for so long now that many things people want to do with their computers don't even occur to me. Scanners? Good luck. Webcams? I couldn't use them for my first five years. Sync your phone? What? Install a printer? Better check the hardware first. Some web page doesn't work? Screw the website, then.

The truth is that most of that stuff works these days. I've been shocked several times lately. The all-in-one printers are still hit and miss. Scanners are much better, but not near 100%.

Some problems my friends have had in the last year:
  • The laptop won't hibernate (surprise!)
  • My friend can't play his WMAs. I suspect that they're encrypted.
  • Another friend has a special website he loves which uses Java. Shouldn't be a problem, except that the site claims java isn't installed when it is and it works with other sites. I'm not going through the javascript line by line, but I assume the site is doing a check for java in a Windowsy kind of way.
  • TV-out on an old Radeon card didn't work well, then it didn't support widescreen.
  • An MTP portable player didn't used to be easy to use at all.
Anyway, these are real issues for my friends, and I do everything I can to help them. Some issues just aren't solvable by me, though, I'm never going to write a driver. I'm probably never going to add any real functionality to any program. I haven't written a program since 1988, and I don't know anything about current stuff except php and some ruby.

The point I'm taking the long way around in order to get to is that I've recently tried to do some out-of-my-little-box stuff and have been pleasantly surprised.
  • Suspend AND Hibernate both work on my laptop.
  • My Xorg.conf file is no longer there and everything happens with XRandR through the System > Preferences > Screen Resolution dialog.
  • Wine plays over half the Windows games my gal downloads and tries, though there is some issue with X and the keyboard not responding.
  • I can exchange MS Word files with people and do stuff like add notes and track changes.
A lot of things work that didn't used to work. I thank Canonical, Debian, and Red Hat for most of the work putting all this together.

Sync'ing my Samsung cell phones, though? Get real. It'll never happen.

Friday, April 25, 2008

My apologies to Abiword

A couple of month ago, I called Abiword "stagnant, with the last major release in 2005." They released version 2.6 in March of this year, putting to rest my major complaints about the word processor. I tried it out with some ODTs I had hanging about, and Abiword did fairly well, though it choked on a couple of 200+ page books I was writing. In fairness to Abiword, though, also started having trouble at about that point, which was why I switched to Lyx.

Abiword has a few really neat features, including real-time collaboration over XMMP (Jabber), meaning you can use your GTalk account (or any other Jabber account) to collaborate with a friend. This is really powerful. It also includes basic OOXML support. Abiword doesn't handle complex styles well, so a lot of advanced style information was lost, but the basic format of the documents survived nicely.

A screenshot:

The release notes:
  • Greatly-improved support for languages like Thai and Arabic using a new Pango based renderer (Unix platforms)
  • We've included a new GNOME Office plugin that allows embedding Gnumeric charts into your documents (Unix platforms)
  • Ability to open files on remote shares, ie. samba, ftp or ssh shares (Unix platforms)
  • A new experimental collaboration plugin, allowing users to collaboratively work on the same document in real-time. There are currently 3 communication backends supported: an XMPP based one (only available on Unix systems, and it could use some love), a pure TCP/IP based one and one that integrates with the interface. Please note that we consider this collaboration feature experimental, as it hasn't seen a lot of testing outside the One Laptop Per Child deployments. Also, we are not sure yet that we won't need to make slight protocol changes to accommodate some new features. This means that the current version of the plugin might not be able to communicate with future versions of the plugin. Finally, this feature is not yet available on Windows. It will be available in v2.6.1 for that platform.
  • A massive amount of work on all of our popular import and export filters, most notably the OpenDocument filter
  • The addition of a new experimental Office Open XML import filter
  • Support for native Windows Vista menus
  • Various drag & drop and clipboard handling improvements
  • Allow dragging and dropping images in and out of AbiWord (Unix platforms)
  • Fast image previews in the Image dialog, even for huge images (Unix platforms)
  • Various toolbar improvements, most notably the improvements to make them work better on small screens (Unix platforms)
  • Lots of updates to our translations
  • Lots of small fixes in our GTK+ frontend, such as fixing those pesky tooltips that just wouldn't go away (Unix platforms)
  • Automatic font substitution using fontconfig when a specific font is not available (Unix platforms)
  • Improved support for running AbiWord in non-UI mode (sometimes also referred to as "server" mode, as offered by the AbiCommand plugin); most notably AbiWord no longer requires an X server on Unix systems in non-UI mode.
  • Improved command line handling, allowing input from standard input, and output to be directed to standard output.
  • Improved printing from the command line, deprecating our previously used custom postscript driver
  • Improved modularisations for resource constrained devices, such as optional printing and spelling support
  • For application developers we've made available an experimental AbiWord GTK+ widget; accompanying Python bindings will follow soon.
  • For distributors we've improved the build system to be more standards conformant (for example, "make dist" and "make distcheck" now work)

Add the following to your software sources to get Abiword 2.6 and try it out.
deb hardy main
deb-src hardy main

Thursday, April 24, 2008

Where do we go from here now that Gnome has grown up?

My recent post about old the beginnings of Gnome and my natural tendency to look at the Roadmap for the next version of Gnome and Ubuntu when an Ubuntu release comes out have led me to a conclusion: Gnome is pretty much finished.

Sure, there are some tweaks to be made. Epiphany's rollover to Webkit is almost finished, and GTK+ Webkit passed ACID3, but Gnome is still looking to unify the bookmark and history underpinnings. Telepathy is still on track to take over the communications layer the way GStreamer took the A/V part. On the whole, though, the roadmap for Gnome 2.24 is really tame.
  • Better GNOME Panel theming
  • Integration of Bookmarks and Browsing History for GNOME-wide access (SoC Project 2007, unfinished and suggested for SoC2008)
  • Exchange MAPI Connector (Can connect to MS Exchange 2007 servers)
  • Camel DB Summary (Drastically reduce Evolution memory)
  • Use libgames-support on Python games
  • User interface for choosing layouts not only per-country but also per-language
  • New library for the applets
  • Compatibility layer for old Bonobo applets and remove Bonobo usage in the Panel
  • New interaction model for managing applets: activate/deactivate an applet instead of adding/removing it, eg. Possibly, a mode for editing the panel contents
  • Managing of gnome-keyring certificates and keys.
  • Evolution encryption integration (e-d-s integration, auto-contact creation, photo ID synchronization)
  • Pidgin/Telepathy (Gossip, etc) encryption plugin
  • Digitally signed documents in Evince
  • Support for reverse connections
  • Support for connection logging

Some of the stuff in SoC2008 looks really interesting, but that's not often completed if we look at it historically. The stuff that stands out to me are the sweeping changes aimed at integrating low-level stuff. The Telepathy work looks great. The movement of Cheese effects into a library so that any Gnome application can ask for a video or a picture, or apply the effects to a picture the app already has. The inclusion of DPAP, which would do for F-Spot what DAAP did for Rhythmbox. I'm especially looking at Soylent on this one, though they need to change the name -- yes, I understand that it's made of people! The continuing move to link Gnome to online services is also a great move, and Liferea hooking up with Google reader would be one more step in that process, though I can't imagine actually using it.

On the developers side, the Anjuta work, long a great IDE in Gnome, is really important to the long-term development og Gnome. If Vala proves itself as great as it seems, things will be even better and Gnome can move away from Mono.

As I pointed out in the beginning of this post, though, few of the SoC projects are planned for Gnome 2.24, and not many appear on the "Later Versions" list, either. We'll see if Gnome has basically reached its zenith.

The full list of SoC2008 Gnome projects and descriptions is below.

by Ruben Vermeersch, mentored by Stephane Delcroix
NOTE: This proposal is an updated version of the F-Spot Gegl proposal
[1], retargeted towards visible usability work.

The F-Spot sidebar currently acts as a tag browser, with some minimal
image information. I would like to change the behavior of this to a more
versatile design, where the sidebar can perform multiple actions
depending on the context. This would allow integration of an image
information pane, editing commands, external sources, ... This is based
on jimmac's mockups [2].

One of the main problems I would like to address is the poor usability
of the editing toolbar near the bottom of the Edit Image view. Turning
this view into a sidebar pane, like Picasa would increase
discoverability of the editing commands.

As a side goal, it should become far easier to add new editing commands
through plugins. I will convert the editor commands to use F-Spot's
plugin architecture.

Ongoing work can be found in the form of a first-draft patch [3]. As
such, the first step would be to review and integrate this patch. This
will serve as a starting point towards improving the usability of
F-Spot. I will focus on the editors first, but I would also like to
improve the image information display.

by Arnold Joseph Noronha, mentored by Lars Lindner
Liferea is a fantastic Feed Reader written in Gtk+. Its lightweight, yet has lots of features. Its not officially part of the Gnome project, but is very related to Gnome -- probably the most well integrated reader for Gnome. I propose to integrate Liferea with Google Reader.

Use Case 1: Most people use their computer from multiple locations, and would like to synchronize their reading lists. Using Google reader to maintain the synchronized list, is a very ideal situation. Consider this: at home, you'd like the convenience of a well integrated, lightweight feed reader. At office, you might not be able to install new software, so a web based reader suits you pretty well.

Use Case 2: Apart from that, using Google Reader as a backend can save bandwidth, and minimize total update time: since now I need to act only if Google tells me a post is updated. In fact downloading a single stream from the Google Reader backend will tell me which are the feeds that have been updated, and what the changes are. Compare this to current readers, where if I have hundred blogs on my reading list, each one needs to be fetched, even if some of them are updated rarely. After my project, every update of all of these hundred feeds will make _exactly one download_ !

Use Case 3: Also, many people including myself, like the "Share a post" feature of Google reader. I would like to be told when a friend of mine shares a post, and would also like to share posts that I read.

Liferea currently has read-only support for Google reader. This means I can't update the "Read" status for a post.

My approach as to how to "integrate" Google Reader, is different and elegant, and I'm really hoping you will consider my project.

by Tobias Mueller, mentored by SrinivasaRagavan
This application proposes the rewrite of Evolutions Account Management.

Right now, it saves XML in GConf and doesn't such all it's features such as caching or notifying. Also, accounts for calender or addressbooks are not handled by the e-d-s yet.

I am going to rewrite this and try to provide a nice control applet for the accounts.

by John Ross Stowers, mentored by John Carr
Synchronization of data with mobile devices is a capability severely lacking in the current GNOME desktop. This project will implement synchronization of PIM data such as emails, contacts and calendar data, with mobile devices, predominately mobile phones.

The implementation will be atop Conduit [1], using the SyncML protocol (through libsyncml [2]). The project will have two primary tasks of work,
1. Binding the libsyncml library to allow it to be called from Python and implementing a SyncML server and client in Conduit using this binding.
2. Utilizing this new capability within Conduit to allow PIM (contact,calendar and email data) sync from Evolution to/from mobile phones.

All this shall be done in the current spirit of Conduit, which is to require minimal, or zero, user-intervention in setting up a sync.


by Arun Tejasvi Chaganty, mentored by Johannes Schmid
Anjuta is a very powerful development environment because of its tight
integration with other tools (like GDB, Valgrind, autotools). Vim is just as
powerful of an editor, however for the most part it remains isolated from the
rest of the development cycle, solely satisfying the role of an editor. I
propose to embed a gvim editor into Anjuta to get the best of both worlds.

Essentially, this means the implementation of the IAnjutaEditor interface,
however, because of the nature of gVim several other aspects have to be

1. The gVim editor has to grab all the keyboard events because of it's modal
interface. Support for switching in and out of the editor must be
2. Vim has a lot of complex commands for selection, movements, deletion etc.
This makes the implementation of the interface slightly more complicated.
3. Unlike other editors, where commands to navigate between open files,
creating/opening files, etc. are separable, in vim they are a part of the
editor. This means that there has to be a way for vim to tell Anjuta that
it's changing files, etc. This will be the most complex part of the project.

Also in the scope of the project is to create functions in vim so that it can
control some of Anjuta's features (build, start debugging, create to-do notes).

by Felix Kaser, mentored by Daniel Siegel
One of the things that the GNOME Desktop lacks to appear as an integrated and cohesive Desktop Environment, compared to e.g. Mac OSX, is the lack of a deep media integration across the Desktop.
Deep media integration means the user should be able to access his documents and media files from the GtkFileChooser without being forced to remember where he saved his files, and should be able to query for files not only by their paths/URIs, but also by their metadata (e.g. ID3 tags for music files, EXIF information for photos and so on) and by the last access it was done to the file (though this is possible, in a quite generic way, with the GtkRecentManager tools).

GtkMediaManager wants to solve this problem introducing an API to query, browse and tag files across the desktop, providing on one side, media listing in the GtkFileChooser with a queriable interface, and on the other side, a simple API for other applications to hook their files and relevant metadata inside the manager.
GtkMediaManager will be written in C and will use either use Xesam or plugins for application-specific database to query and store information and metadata about the media files. It will also be integrated with the GtkFileChooser, providing a set of widgets to easily query by attributes depending on the file type we want, and it finally will be integrated with GtkRecentManager, which will provide GtkMediaManager information about the files recently used by media applications.

by Johan Svedberg, mentored by Diego Escalante Urrelo
In todays Internet-centric computing with highspeed connections becoming
the standard everywhere, the task of downloading large files is more
common than ever. This is where a download manager comes in. It assists
the user by making this task an easy and efficient experience.
Unfortunately GNOME currently lacks the type of modern download manager
which can be found in other desktop environments. I think it would be
very nice if we could fill this hole during the summer of 2008! So in
this application I will describe how I would organize the project of
implementing a download manager for GNOME.

by James R. Liggett, mentored by Naba Kumar
Since its introduction in 2005, the Git revision control system has become increasingly popular, especially with large projects. However, it is also a very complex system with myriad options and controls; many developers often find themselves perplexed by Git's approach to managing source code. While there are several GUI tools designed help users overcome some of these challenges and simplify a Git user's workflow, most are stand-alone applications that only support the simplest tasks, such as browsing revision history. Also, there are only a few IDE's that provide Git integration.

The goal of this project is to provide a simple to use interface, usable to both new and experienced users alike. The finished plugin will provide the most commonly used git features for project contributors, all integrated into the same application that they write their code with. Such a close integration will allow the user to work on these tasks without any disruption to existing coding workflows with nothing more than a few clicks for most tasks.

by William Fagan, mentored by Johannes Schmid
Source control is a mandatory tool in the open source community allowing people from around the world to work together. One of the biggest problems with new developers starting a project is getting it set up to share with the world. If Anjuta could get rid of the barrier that all of the different VCS programs brought on by adding intuitive use for the new developers we could start to see many more projects come about that most users were too timid to start.

by Andrzej Wytyczak-Partyka, mentored by Gabriel Burt
The contribution of this project is a dpap-sharp library and and f-spot add-in for sharing photo albums over a network between instances of f-spot and Apple iPhoto (c) using the Digital Photo Access Protocol (DPAP).
The library is an equivalent of the daap-sharp library which is already used by Banshee & others. It is important that the produced library is not only intented for work with f-spot, but with any other desktop program.

by Sebastian Pölsterl, mentored by Zaheer Abbas Merali
Something that annoyed me for years is that there isn't a simple way to watch and record TV shows using GNOME. Since Totem 2.22 there's at least a way to watch TV when all the steps necessary to set it up have been completed. You have to tell Totem which DVB card to use (when you have multiple) and create a list of channels manually using dvb-utils from the command line and put the file in the right place. Even though it's possible to watch TV there's no way to easily browse and search EPG and record TV shows.

I want to simplify the process of setting up your DVB card and recording TV shows, and provide a way that other applications can easily make use of this features, too.

This would require a daemon that runs in the background and manages your DVB card(s) and their data. It detects your DVB cards, scans them for channels, stores the list of channels, provides access to EPG and is responsible for recording TV shows. When you want to record a TV show it should check if it conflicts with another scheduled recording and warn the user or solve the issue when an additional DVB card is available that is not already busy at this time. Of course, when the TV show starts it should tune to the correct channel, too.

In order to make this feature accessible by other applications, a D-Bus interface would be the interface to the outside world. Using D-Bus has the advantage that you can choose from a set of programming languages to write a client application in, because D-Bus libraries for the most common languages are available.

Beside the daemon I want to provide a GUI application that the user can actually use to setup his cards and schedule recordings. This could be a independent application or a plug-in for Totem. Using EPG you could show a list of channels and their corresponding schedules. Clicking on a show should show you detailed information about the show (from EPG) and provide a way to record this particular show (similar to [2]). In addition, a really nice feature would be that you can search EPG or let the daemon record all TV shows, whose EPG data contains a particular keyword.

An other application that can take advantage of the the daemon is the OnTV applet[1]. It would be a easy way to get informed what's up next, get a list of scheduled recordings and schedule recordings. Again, D-Bus should make it simple.

I think there are many more ways to improve your TV experience in this fields (e.g. automatically re-encode recordings to save disk space). Therefore, it may make sense to equip the daemon with a plug-in interface, as well.

Nevertheless, from a user's point of view it should be as easy and intuitive as possible to do the basic steps from setting up the DVB card(s) to recording shows. This would finally make my dream of a GNOME application that let's you watch and record TV come true.

Without doubt many people would profit from this project, because doing all this steps manually is really cumbersome and discourages most people. An easy, straightforward way would improve the GNOME experience a lot.

I'm aware that this project is very big, but I'm convinced that it's possible to get the daemon and a first UI application working until the final deadline. In addition, I'm willing to start working on the project before the coding phase officially begins.


by Stanislav Slušný, mentored by Federico Mena-Quintero
There have been several complaints about memory consumption and speed of Evolution Data (EDS) server recently. Some developers even attempted to completely rewrite it. The ultimate goal is to measure EDS performance, reduce its memory usage and make it faster. The focus will be given to its calendar part. This subtasks will lead to the goal:

* Implementation of interval trees. More effective data structure will improve both speed and memory usage. Now, when searching for events in some time range, all events are scanned. Even really old ones. The better data organization is needed.

* Implementation of logging facility, which allows evaluation of the performance and memory analysis. The data and logs from community will be gathered.

* Analysis of calendar queries and their lifetime.

* Design and implementation of typical scenarios, which will be used to measure both speed and memory usage.

* Performance and memory profiling. Even developers are using rather vague language like "EDS consumes too much memory" now. Careful statistics will be gathered.

* Performance measurement of EDS cache. Every EDS client uses the cache, even clock applet. There have been suggestions, that the cache should be removed. Performance evaluation and optimization will be carried out.

* The results will be processed and presented in a understandable way to the community. Patches, that will fix most serious findings will be prepared.

Electronic calendars are becoming more and more popular these days. As EDS was written during the early days of Evolution, it needs some optimization to make calendar experience as smooth as possible. Currently, EDS has a reputation of process, that consumes too much memory. Software has a rich history of people spending large chunks of their life optimizing things that don't matter. Therefore, before implementing any changes, the profiling process will be carried out.

by Corvalan Cornejo Gabriel, mentored by Olivier Crête
The Telepathy project is building a unified framework for many different kinds of real-time communications. It uses the D-Bus messaging system to provide a simple interface for client applications.

Empathy is working on creating a nice user interface based on the Telepathy backend. This project aims to provide to GNOME its own Instant Messenger featuring voice calls and video calls (VoIP).

I want to develop around the VoIP protocol used in Telepathy / Empathy. Especially, improving the video conference feature. To achieve that, some improvement must be done in the core of the stream process (using Libstream-engine and Gstreamer) and in the user interface (Empathy). The objective of this project is to have a fonctional interface for audio/video conference, maybe like the Ichat from Mac OSX)

by Pavel Kostyuchenko, mentored by Johannes Schmid
The ultimate goal of my project is to integrate Anjuta with Glade and some other technologies, add some new features related to those technologies, making a good RAD tool from Anjuta.
IMHO, the most important for RAD part of Anjuta is GUI designer i.e Glade. So, the main thing I'm going to do is to complete integration of Anjuta and Glade. The key points of integration are:
- create stubs with appropriate prototype for new signals;
- navigate to the implementation of the signal on signal selection or custom action and from the implementation to the corresponding object;
- allow user to choose an existent callback function with appropriate prototype for signal;
- manage additional files that user may add via Glade;
- track widgets names and rename callback functions and names in the get_object calls;
- make it all language-independent;
- module preview. It is similar to the preview in many GUI designers with one big difference: not only GUI is used to do preview but also code. It is more likely a programming technique than IDE feature but IDE could make thing simplier and faster;
- autocomplete in the editor using widgets names e.g. to insert "gtk_builder_get_object(, "widgetname")" into code;
- templates library of modules (GUI + code), including custom modules with ability to "inherit" the module.

by Alexandre Inacio Rosenfeld, mentored by John Carr
This proposal will implement full iPod support in the data synchronization application Conduit.

iPod today is one of the most popular portable media players. But until recently, the closed nature of the iPod operating system and it's internal database kept Linux users with no easy way to use their iPods with their own data.

iPod support in Linux has improved recently, but the experience is still much worst then it could be. The user's songs and videos must be transfered manually and many times media players have either no support for iPod or they implement their own, usually incomplete, iPod support.

Users in other operating systems are used to plug their iPods and their data are automatically synchronized. That is made simple by the Apple iTunes application. It provides both a media library and an automatic synchronization feature for iPods.

In Linux, there is a program that makes it simple to synchronize between many services, applications and devices, called Conduit. But todays iPod support for Conduit includes Notes, Photos and Calendars only. This proposal will implement the Audio and Video parts that are missing for a full iPod support in Conduit.

Connecting the entire user desktop and any online services supported through Conduit to the iPod, will bring the iPod support in Linux to a whole new level. Advanced users will be able to setup any application, online service or files to be directly uploaded to theirs iPod, and media applications will be able to use the Conduit DBus interface to add support for iPods in just a few lines of code. There is also a plan to create an interface very similar to the iTunes iPod support, allowing novice users to easily set their synchronization options from a list of supported applications.

by Soare Andrei, mentored by Federico Mena-Quintero
This project is about reducing the memory fragmentation in GNOME. Responsible for fragmentation are memory allocations (malloc / new) and deallocations (free / delete), which appear throughout the code in a random fashion, thus leaving many free spaces. Unfortunately, these are used very often by programmers. I will analyze the source code of the main applications that come bundled in GNOME, the ones that tend to use the most memory, find the places where the most allocations occur and find a way to reduce them, similar to the work that has been done to reduce memory usage in Firefox 3.

by Charlotte Curtis, mentored by Philip Van Hoof
SuperRandom is a predictive playback plugin that would select songs to play in Rhythmbox based on similarity to the current song or to a set of selected songs. The similarity parameters would be determined through a combination of signal analysis and feature extraction of the songs and the information contained in the id3 tags.

by Clemens Buss, mentored by Christian Kellner
The core problem, which gives rise to the wish for a feature like tags on a modern desktop, is that file systems, the Kernel VFS in particular, are incapable of gluing metadata to files.

The power of tags to bring some kind of order to a set of data in a convenient and intuitive way can be seen in a lot of web applications. The use of tags in GMail, for instance, constitutes an unprecedented break with the limitations of sorting files in folders. The usual way of sorting files in a folder-hierarchy (taxonomy) is time-consuming and still not satisfying, because it is often not clear which single folder e.g. a mail should be assigned to.

This leads to an unsatisfying lack of organization.

While it is obviously an asset to use tags to organize mails one could pose the question why one should not use the same principle to organize files. In fact, the use of tags could be a leap forward for the organization of files at least as big as for the organization of e.g. mails (or bookmarks, photos etc. like in other Web2.0 applications).

On the GNOME Desktop there already exists the concept of emblems. They are either user-defined symbols or live-metadata(read-only, link etc.) which are represented together with the icon of the file or folder in Nautilus.
It is unfortunate that at present the user-assigned emblems are not usable and retrievable by other programs.
It is equally unfortunate that conceptually there is no difference between a user-defined and a live-metadata emblem.

Adding the concept of tagging, which is pretty close to what emblems are today, one can end up in the following scenario:

Emblems will be the visual representation of tags as well as of live-metadata. As one neither wants to represent every tag nor all live-metadata as an emblem it should be kept flexible (perhaps user-defined) which of those actually lead to a graphical representation in the interface.

In this way the meaning of an emblem will not be ambiguous any more. Tags and live-metadata are not the same, whereas before both somehow constituted emblems. An emblem will become the sole representation of those on the UI side.

The storage of tags should be implemented using GIO/GVFS and the project would put its first focus on the implementation of tags on the GVFS side. Secondly, the concept described above, emblems being a visual representation of live-metadata and tags, would be implemented.

Then, depending on the time left, some of the ideas of how to handle tagging and emblems on the user interface side could be implemented. It would be interesting to look at how to design a dialog/tool for connecting tags with an emblem, the integration in the GTK+ File Chooser/Save dialog or the accessibility of tags to desktop retrieval tools.

by Filippo Argiolas, mentored by Daniel Siegel
Cheese has been one of the best innovations that made 2.22 a great
GNOME Release. It's amazing to use the webcam to take funny photos and
it's great how it integrates with the whole desktop.

Looking at the effects it provides though, it still lacks something to
realize its whole potential. Some cool hardware accelerated effect
(some distortion and artistic realtime image manipulation) would
greatly improve the variety of fancy and funny photos achievable and
would stimulate a bit more the hedonistic side that every user has.

So my purpose is to write a gstreamer plugin capable of trasforming
the webcam video data to GL textures that can be manipulated with hardware
accelerated techniques and resend them as video data to the gstreamer
pipeline. My plugin would take advantage of modern video adapters'
programmable pipeline supporting GLSL shaders.
This plugin will be easily integrated with Cheese that already uses
gstreamer based effects.

I'll also write some simple effect for the new plugin:

- some photobooth-like distortion effect (squeeze, mirror, dent,
bulge, fisheye, light-tunnel and probably more)

- some color manipulation effect (negative, sepia, black&white,
thermal signature, and probably something more complex like
convolution filters, chromakey, etc)

All this effects, being gstreamer based, won't be restricted to Cheese
use only but they could be, of course, used in other video editing
software (e.g. PiTiVi), or wherever gstreamer is used to manage
video data.

Later, if time would allow or even after GSOC program ends, I'd like
to add some UI improvements to Cheese, like switching to Clutter to
display video, improve the effect selector with live previews of
applied effects, and some Clutter based animation here and there.

by Zhang Shunchang, mentored by Philip Van Hoof
The goal of this project is explicit: use Seahorse( widgets for Evolution's ( encryption and key selection, which is a GNOME application for managing encryption keys. It has already integrated with nautilus, gedit and other places for encryption, decryption and other operations. So this project will make Evolution have a more consistent interface.
Seahorse provides some useful D-Bus interfaces, such as query information of user's keys, import/export keys, import keys from key-server. Then we can use it to modify the Evolution's key selection and encryption. We need to draw/modify the Evolution's UI of key selection, so we can use GTK+/GLib to do it.

by Gaëtan Podevijn, mentored by Xavier Claessens
Empathy use a home made system for themes. To be more user friendly, it would be nice that Empathy can offer a lot of themes.

To do that, Empathy should have a good theme engine. This engine could manage theme using HTML/CSS technology. Moreover, Empathy could use a lot of Adium's themes. However, Empathy should manage the theme that are presents for the moment.

This will be implement with a new API and with Webkit to be able to use HTML/CSS themes.

The Empathy web page is here:

by James Sharpe, mentored by Jens Granseuer
Many users will judge a desktop environment by the default configuration provided by the distribution. Gnome has long been missing the ability to select different backgrounds for each workspace. Other competing window managers have long had this ability and differently styled workspaces can help provide visual cues to the user as to which workspace they are currently working on. The recent adoption of compositing window managers further raises the expectations of the user from the desktop system. Addition of this feature will bring Gnome forward to compete at the forefront of the desktop windowing environments.
A intuitive, simple interface will be key to this functionality; for existing and new users to not be confused by an overly complex system, but at the same time providing a feature rich interface to enable power users to fully customize their desktop environment.

by Rui Tiago Cação Matos, mentored by Ghee Seng Teo
Printing on the Free Desktop is an "horror story". I'm not the one making that claim, Eric S. Raymond did it[1] around 4 years ago, but I agree with it. Meanwhile things have improved but not by much. In particular, the GNOME desktop, unfortunately, still lacks an integrated printer management tool that is easy to use, acronym free and actually works.

As proposed on the GNOME project's GSoC 2008 list of projects I intend to research the problem space thoroughly and finally implement a well integrated printing management tool that gets the job done and leaves the user free to actually print instead of fighting printing configuration.

Said tool shall work as best as possible with the current de-facto printing system on the Free Desktops, CUPS. It should also use modern hardware abstraction, policy definition and session management frameworks (HAL, PolicyKit and ConsoleKit) to make intelligent decisions about local and networked printer hardware on the dynamically connected computer systems we use today.


by Abderrahim Kitouni, mentored by Jürg Billeter
Vala is an upcoming programming language for the GObject system, it's a high level programming language like Java or C#, but does not need big runtime. Instead it just relies on the GNOME platform and compiles to C/GObject code.

I would be a big plus for the GNOME community to have an IDE for such a language. As the GNOME IDE, Anjuta is the best candidate for this. My project is to write a plugin for Anjuta to work with Vala.

by Cosimo Cecchi, mentored by Nicolas Trangez
One of the things that the GNOME Desktop lacks to appear as an integrated and cohesive Desktop Environment, compared to e.g. Mac OSX, is the lack of a deep media integration across the Desktop.
Deep media integration means the user should be able to access his documents and media files from the GtkFileChooser without being forced to remember where he saved his files, and should be able to query for files not only by their paths/URIs, but also by their metadata (e.g. ID3 tags for music files, EXIF information for photos and so on) and by the last access it was done to the file (though this is possible, in a quite generic way, with the GtkRecentManager tools).

GtkMediaManager wants to solve this problem introducing an API to query, browse and tag files across the desktop, providing on one side, media listing in the GtkFileChooser with a queriable interface, and on the other side, a simple API for other applications to hook their files and relevant metadata inside the manager.
GtkMediaManager will be written in C and will use either use Xesam or plugins for application-specific database to query and store information and metadata about the media files. It will also be integrated with the GtkFileChooser, providing a set of widgets to easily query by attributes depending on the file type we want, and it finally will be integrated with GtkRecentManager, which will provide GtkMediaManager information about the files recently used by media applications.
by Gabriel Geraldo França Marcondes, mentored by Nickolay Shmyrev
As technologies increase their capacities, people want more and more flexibility and facilities. As consequence, new softwares bring features for giving people what they want. Talking to computer is one of these wanted facilities.

Speech is the better way for people to communicate between themselves, and it would be very nice if computers could be totally controlled by this way. Not surprisingly, speech recognition is an increasing branch of computer science.

This project consists of bringing a new resource to this world. The idea is to implement speech notes on Tomboy. That would be an easier way to take notes, faster and more expressive than typing.

by Sunil Kumar Ghai, mentored by Trent Lloyd
Avahi is a Free Software implementation of Zeroconf stack. It implements Automatic IPv4LL address allocation, Multicast DNS (mDNS) and DNS based service discovery (DNS-SD) specifications for Zeroconf (aka Bonjour in Apple MacOS X) Networking.

This project aims to integrate Link-Local Multicast Name Resolution (LLMNR) protocol in Avahi, which would result in Avahi being able to take part in both Apple-style and Microsoft-style Zeroconf networking.

by Sven Pfaller, mentored by Travis Reitter
Communication is one of the most important parts of human life. In recent times computers and software made it not only easier to communicate, but helped to create new dimensions of interaction. Whether it's email, chatting, voice or video, social platforms or blogs, everyone communicates somehow. This is an exciting development. But it is also a challenge for existing desktop systems to better integrate these new technologies. This is where Soylent comes in.
The Soylent Project is an attempt to really make people a part of the Gnome Desktop. Therefore it will provide a library, called libsoylent, that can be used by Gnome applications to have easy access to people-centric functionality. This includes system-wide access to contacts and groups, aggregating and managing individuals' static information (e.g. name) and dynamic information (e.g. whether he / she is online) and much more.

by Vasiliy Kirilichev, mentored by Lawrence Ewing
The support of color profiles can considerably expand the base functionality of any graphic software. It is very important at a big quantity of an available multimedia of the equipment to try to ensure the functioning into a principle that I see, I receive. It is the important problem not only to professionals in the field of schedules and polygraphy, but also usual users. With arrival on the market mass, accessible to the broad audience of digital phototechnics the problem of a color rendition became very actual for them, because it is very unpleasant to receive at a press not wanted color. Usually pictures on the monitor screan looks bright and natural, but on the paper they looks not so brilliant. The decision of this problem was offered enough for a long time, now it is standard to use color structures. They correct the image in view of physical opportunities of devices of a conclusion. So it is is possible to facilitate a life of users and present them too more functionality with adding the support of color profiles in f-spot. And the program will not be so hard as, for example, gimp.

by William Christopher Farrington, mentored by Xavier Claessens
One of the key focuses of the GNOME desktop is to include a variety of applications which do one thing well, and only that one thing. As a result, the Empathy developers -- who are at the moment seeking inclusion in GNOME 2.24 -- have raised comments asking for the IRC-specific aspects of Empathy to be broken apart into a separate application, using libempathy(-gtk) and telepathy. The goal of this separate application would be to provide all the flexibility, feature coverage, and usability in XChat-GNOME, but using GNOME-specific technologies. This application would also feature a flexible plug-in system using Python.

Wednesday, April 23, 2008

Those of you who jumped onto the Ubuntu boat will not remember the early days of the Linux desktop. The site linked above goes back almost as far as I do. Gnome wasn't around when I started with Linux, though.

You might want to squint when you look at these. The desktop wasn't pretty!

Tuesday, April 22, 2008

Reinstalling Without an ISO Image

One of my laptops has been incrementally upgraded every version since Ubuntu 6.06LTS, and although there was no slowdown and Canonical is really good about doing upgrades well, I wanted to wipe and do a clean install. Since /home was on a separate partition, this was a lot easier than it might have been. I didn't need to do any backups outside of what was already scheduled.

I also wanted to use the most recent RC, which I didn't have a CD of. Not to worry. If you have grub and a /home partition, you don't need to waste any bandwidth or CDs and can install directly over the net. I'll show you how. It's not difficult. I started at 4:30pm, giving myself 30 minutes before I had to go home.

First, get the hd-media kernel from . HD-media allows you to use an iso directly from your hard disk without burning it. We won't be doing that, though.

Second, get the netboot initrd.gz from . We can't use the hd-media initrd.gz because it will look for installation media, which we don't have. We can't use the netboot kernel because it's designed to be placed on a server and transferred during PXE boot.

Because my school's network doesn't use a DHCP server, I needed to record my IP address, gateway, and DNS server. You may not have to do that, but it's always a good idea. I also needed to note where my home partition was. Mine was at /dev/sda3.

Next, to make things easier, I moved the kernel and initrd to /home. That's not necessary, but it saved me some typing later.

I rebooted and pressed ESC to get the Grub menu. Grub has a strong command line with help, so you can do a lot from there. Be careful to understand Grub's drive scheme. Drives use the designation (hd#,#), but the numbering starts at 0, so my /dev/sda3, being the third drive (2) on the first disk (hd0), becomes (hd0,2). I type in the following commands to set the kernel and initrd, then boot the system:

root (hd0,2)
kernel /vmlinuz vga=771
initrd /initrd.gz

I added the vga=771 parameter to the kernel args because I have a widescreen monitor.

The kernel and initrd load and configure your keyboard and language, then try to autoconfigure your network to get the rest of the installer. Since there's a rogue DHCP server on my network which doesn't give correct information, I had to pull the network cable and wait for DHCP to fail, then reinsert the cable and configure the network manually.

The rest of the installer will be familiar to anyone who has installed Debian, but it's not difficult even if you've only installed Ubuntu in graphical mode before. Tab and the arrow keys are your friends there.

The only part that might give you trouble is the partitioning. Just reuse your old partitions and make sure to avoid formatting the old /home. The other partitions can be resized or anything you want, but that's not necessary and is probably asking for more trouble, so I just reformat everything the way it is, leaving /home alone.

You even get to choose one or many of the Ubuntu distributions: Ubuntu, Kubuntu, Xubuntu, Edubuntu, or various server setups. The Audio and Video editinng suites didn't want to install when I tried, but that may be fixed soon.

I answered a couple of questions, added a default user (with the same username as before, to make things easy), and left the machine overnight. When I came back to work in the morning, I only had to answer a couple of questions about time servers and the like, and I was up and running.

It's actually easier to install this way once you get used to it. It took me less than thirty minutes, starting from the download. I even left work a little early that day.

Friday, April 18, 2008

Is Hardy Heron AMD64 a Second Class Citizen?

In the past three days, I've answered too many questions about installing Ubuntu Hardy on an AMD64 platform. Most of them were excited to move to 64 bit. Many of the others were being encouraged to use it. I felt like the lone voice crying "No! Don't do it!" Ubuntu 64 bit just has too many problems, and time is running out to fix them.

Flash is a disaster. It's not really great on x86, either, since there's no hash check before the package is installed and the file downloaded from Adobe doesn't match the hash, leaving the package half installed and broken, requiring manual intervention. On AMD64, however, you've got the added issue of nspluginwrapper (via nsviewer.bin) crashing about once an hour, meaning that the user has to close and reopen Firefox. I feel like I'm back on WindowsME and the Active Desktop.

There's more to the Flash problem, though, because Pulse Audio doesn't work with it, either. In a last attempt to fix the stability problems, libflashsupport was removed as a dependency and users were suggested to remove it from the system. It made Flash work with Pulse Audio, but it also caused instability. Removing it stops the crashes, but makes audio inconsistent when Flash locks ALSA down. Neither choice was good, but crashes are definitely worse.

Then there's F-Spot .... The dots here represent waiting for it to open. F-Spot was chosen as the default photo manager for Hardy, pushing out GThumb (which, by the way, was a decision I supported). The caveat by the development team was that they needed to make sure that F-Spot was a lot more stable than it had been to that point in time. About four weeks ago, an update to F-Spot or Mono caused the program to segfault on every AMD64 Hardy system that I have. The bug still hasn't been looked at.Shipping an LTS with a non-functioning photo manager is not a good choice.

There is a long list of other problems to be worked on in the next few days.

I would suggest that Canonical do what they did for the last LTS -- delay the release by two months -- but I doubt they'll do that this close to the release date. Whatever happened to "We'll release it when it's ready?"

Tuesday, April 15, 2008

A Video Overview of Ubuntu 8.04 LTS

Edit: Added videos for Office and Sound.

This was originally intended to be a single
video, but neither YouTube nor Google Videos would host something that large, so I chopped it up into sections.






Video transcript:

This video ”produced” by Daeng Bo for The voice-over is done by me, Chiraporn Srisutthakarn. I am not a native English speaker, so please excuse my slight accent. This video is licensed under the Creative Commons license, which means that you can reuse and re-edit it.


Let's start by talking about the desktop. If you have used Ubuntu before, the desktop will be very familiar. It has not changed much in the last few years. It does, however, have a few great new features in Ubuntu Hardy, so keep your ears and eyes open. Even if you haven't used Ubuntu before, you will notice some similarities to other operating systems. There are icons. There are panels. There are menus. There are also a few features which are not present on Microsoft Windows or Mac OS Ten. There are two panels on the desktop. This is configurable, and you can have one or several if you want to change the look of your desktop. I'll be describing the default setup in Ubuntu. The bottom panel has four elements: the "show desktop" icon, the taskbar, which shows all your windows on the present workspace, the workspace switcher, allowing you to organize your applications into work areas so that windows don't get cluttered, and the trash icon. To you, it may look similar to Microsoft Windows. These elements, along with just about everything else in Ubuntu, can be modified by clicking the right mouse button. The top panel contains the menus, quick-launchers, panel applets, the notification area, and the clock. The menus are divided into three categories. The applications menu gives you access to all the programs installed on your computer and has the ability to add more if you wish. These applications are divided into sensible categories and the applications are named for what they do. When you want to listen to music, you choose Sound and Video and open the Rhythmbox music player. When you want to do word processing, you go to Office and select the Open Office Word Processor. Finding and using your applications has never been easier. The places menu gives you quick access to the places you visit most often. Your user files, documents, videos, and other bookmarked areas are available at the top of the menu. If you need to delve into your computer's system files, access the CD or DVD drive, connect to a computer on the network, search for files, or find a recent file, those are all here, too. The system menu lets you change how your computer acts. The Preferences menu adjusts facets which only affect you as a single user, while Administration makes changes computer-wide for all users. You can also get information about your operating system or shut down the computer from here. Quick-launch icons give you super-fast access to your most-used programs. You can remove one by right-clicking on it. You can add another manually or by finding the menu item and either dragging it or right-clicking and choosing to Add this launcher to the panel. There are many small but handy applications which can run inside your panel. These are called applets. The fast user switching applet and the deskbar applet are included by default, but you can add more by right-clicking on the panel where you want them to appear. The notification area is similar to the system tray in Microsoft windows. Programs which send notifications will cause an icon to appear here. Typical notification icons include updates, error messages, the network manager, music players, chat clients, and the bittorrent client. In addition to the volume control and the quit button, you also have a clock and calendar. Clicking on this will give you a calendar for the current month and a list of your appointments. If you set a home locality, you will also see updated weather. Ubuntu also comes with fancy 3D effects for supported graphics cards. If you have a relatively modern desktop with NVidia, ATI Radeon, or Intel graphics, 3D effects should work with no configuration necessary. Pressing the Window or Command key along with E will show you all your workspaces. You can move windows around and change workspaces this way.Pressing Alt and Tab will rotate through your windows while showing a shot of each. No more guessing which of five similarly-named windows you want. If you enable extra effects in your preferences, you will even have the option of pressing Windows-Shift-S to get a fancier switching method. Extra effects also bring those wobbly windows you've probably seen on YouTube.

Overview of Ubuntu 8.04 LTS Applications

Daeng has opened many of the great applications that Ubuntu comes with by default. He has divided them into six different categories. The categories are: Internet Applications Games Office Applications Sound and Video Graphics Accessories


Let's begin with the internet applications. There are: Firefox 3. Firefox is a well-known browser, and version three has many new features and enhancements, including being as fast as hell. Pidgin is a text chat client Ekiga is a software phone. You can also install Skype if you need to talk to friends on their network. Transmission is a fast and light bittorrent manager. Ubuntu 8.04 LTS has Firefox 3.0. In a recent round-up of the upcoming new browsers, CNet found Firefox 3.0 to be the overall winner, citing its security, stability, and extensibility. ZDNet benchmarked Firefox against other browsers and found it to be the fastest. Safari and Firefox basically tied. ARS Technica reported on tests of memory usage when opening thirty tabs. Firefox 3 beat all comers, even Opera, often considered to be the light-weight browser of choice. Because Firefox's extensions are part of what makes it so great, Ubuntu makes it easy to install extensions system-wide for every user. While not all extensions are available this way, the most common are. Firefox has a brand-new bookmarking system which keeps track of the most recent, most visited, and newly tagged. Tags mean that you never need to think about which of several categories you want to file a bookmark in. Pidgin 2.4 is a chat client which can talk to the networks for AIM, GTalk, Jabber, MSN, Yahoo, Myspace, and many more. Because it concentrates on compatibility with many networks, not all the advanced features of every network are available. Pidgin doesn't support voice or video chat, for example. If you need this functionality, there are other clients which support it. Pidgin currently holds the top position on Lifehacker's list of top five IM clients. Ekiga is a software phone, much like Skype. It uses the open SIP protocol, making it able to talk to many other software phones. You can also purchase minutes to call out to cell phones and land lines around the world at very affordable rates, most often below those of Skype. Unfortunately, Skype's protocol is secret, and Ekiga is unable to cross the bridge to talk to Skype users. Skype DOES make a client for Ubuntu, though, so you can contact your Skype friends that way. This release of Ubuntu has a new bittorrent client called Transmission. Transmission is a light but full-featured client which supports multiple torrents, global and individual bandwidth usage, and creating torrents.


Ubuntu comes with many time-wasting games installed by default. While no one would call Ubuntu a gaming system, there are literally hundreds more to install from the repositories. Arcade, side-scrollers, strategy, simulation, and first-person shooters are all represented. There are no usable MMORPGs in the Ubuntu repositories, but several major games have Linux clients, and even more can run under the Windows compatibility layer. Let's watch Daeng lose at several easy games. (Ooh, the computer got him diagonally) Wow. He's really bad, isn't he?

Office Applications

Unlike other operating systems, Ubuntu 8.04 LTS comes with a full suite of office applications. You don't get a cut down version like Microsoft Works. You don't need to buy a new Mac to get it included, either. Evolution is a personal information manager which handles your e-mail, calendaring, address book, tasks, and memos. It can connect to POP mail systems like your company's e-mail or Hotmail, and it can use IMAP to read the mail while leaving it on the server. You can even read your GMail from Evolution. The calendar handles many formats, both local and on the network. New in Ubuntu is a connector for your Google Calendar. The address book integrates well with the file browser and the IM clients, allowing you to add chat buddies or send e-mail from the file browser. As mentioned before, tasks and appointments in Evolution show up on your desktop in the calendar. Double clicking on a date in the desktop calendar even brings up that date on teh Evolution calendar. How easy is that? is probably the second-most famous piece of Free software next to Firefox. It may need no introduction, but you'll get one, anyway. The word processor is the brand-new 2.4 version of, bringing better Microsoft Word compatibility, PDF editing, improved localization, including easier switching of spell-check languages, and more integration into the Ubuntu desktop. The spreadsheet has performance enhancements and something for those addicted to pivot tables. The presentation software has fancy new 3D slide transition effects. The database program gains compatibility with Access 2007 files. There is also a vector graphics program, but we'll be talking about that with the other graphics programs.

Sound and Video

Ubuntu comes with all the programs you'll need to play music and video on your computer. While Ubuntu doesn't play many types of files right out of the box, almost every kind of file is playable after you install the right codecs. Sadly, due to digital rights management (DRM) and the Digital Millenium Copyright Act, a few formats can't be played legally without purchasing the codecs. Vendors like Fluendo offer these codecs in easy-to-install packs for less than you would think. If you are in a country which has more progressive laws, you can install these codecs from within Ubuntu using the codec installer. Totem movie player is a simple movie player which supports playlists. It has many plugins for visualization and connectivity. It can search your user area for videos, search YouTube, or even connect to your MythTV server to play new recordings, meaning you don't need to have a dedicated front-end to MythTV anymore. Let's search for a video and see what we get. pressing "f" takes us into full-screen mode. Pressing it again takes us back out. Now let's take a look at what YouTube has to say about Ubuntu Hardy. Since it's small, we can zoom using the 0, 1, or 2 buttons. That was great. What about music? Ubuntu's default music player, Rhythmbox, takes a music management approach to playing music. It searches your music library and organizes the tracks by artist and album. You can add other factors like genre and year, if you want. There's no need to go to the file manager and look through your collection. In fact, if you do that and double click on a file, Ubuntu assumes that you want to play a single file and opens the file in the Movie player. You can change this behavior if you want to, of course. Practically everything in Ubuntu is configurable. The music player handles your portable music player, whether it be an iPod, an MTP player (you know ... those that need to use Windows Media Player to transfer files), or a simple USB Mass Storage device. You can add files to, delete files from, and play files directly from your portable. It can even transcode on the fly for you. If you have a DAAP server like iTunes or Firefly, Rhythmbox will identify it automatically and the songs will appear in the left panel. Rhythmbox shares files using DAAP, too, so you can share files with your Rhythmbox and iTunes-using family or roommates. Put in a CD and you will see that Rhythmbox can play it, looking up the track information automatically on the internet. Right-click on the CD to rip it to your collection. Ubuntu also has a dedicated CD burner for those who want more control over their rips. Although you can't use the iTunes store since it only works with iTunes, there are a couple of stores for independent artists that you can use from within Rhythmbox. You can also purchase your tracks DRM free from Amazon. Hey, Ubuntu developers, we're waiting for that Amazon store plugin! New to Ubuntu this time around is Brasero, a CD burning application. While virtually everything the average user needs to do with regard to burning can be done from the file browser, many people feel more comfortable with a Nero-style CD burner, and the Ubuntu developers were happy to fill that desire.


Unfortunately, a bug in the Hardy beta version of F-Spot is keeping me from finishing this portion of the video.

Of course Ubuntu comes with graphics programs. Just about everything a home user needs is installed by default. F-spot is a photo manager. Like Rhythmbox, it hides the file organization from you and uses tags to help you keep track of photos. Want only the photos from that trip to Indonesia with John in them? That's easy to do with tags. It also has touch-up capabilities, meaning that you don't need to use a photo editor for minor edits (although you can open one right from F-spot's interface). F-spot even has a version-control system, allowing you to save the original while touching up the photo. Ubuntu comes with the Gimp, a bitmap graphics editor. It's different from Photoshop, so it may take some getting used to, but web developers who use it claim that it can do just about everything that Photoshop can do.'s Draw program is a full-featured vector drawing program which is easier to use than ever!


Ubuntu has many little programs which make your life simpler. They include: A dictionary to look up words from the internet. It has multi-language capability and can recommend words which might be close to what you really wanted but couldn't remember. Watch Daeng misspell some easy words. The calculator looks simple, but it can be used for more advanced problems, scientifics equations, or your accounting needs, too. Tomboy notes is an easy way to organize your notes and your life. It uses a wiki-style format to link between notes, making remembering your murky past that much easier. Daeng uses it for all his research. The Disk Usage Analyzer will show you where all that disk space goes. Daeng's got way too much porn, I see. The Tracker indexed search will find files using a full-text search. You no longer need to worry if you lost a file and can't find it. Finally, the Deskbar applet pulls these all together. You now have one place to type your desires and then you can choose to search your files, your bookmarks, your history, your notes, the web, or for a definition. You can do much more than that, too. The Deskbar will become the first place you look for anything.


Thank you for watching!!! Many more applications are available from the repositories. You can install thousands of programs with little trouble, all free of charge and legal, too. Enjoy Ubuntu Linux 8.04 LTS!!! By the way, these thirty or so windows can be opened simultaneously on a three-year old old AMD Sempron laptop with 1GB of memory without any significant slowdown or instability.

Monday, April 14, 2008

Ubuntu on Shuttle's New US$199 Computer

Shuttle has put out a new, small form-factor computer for just $99 barebones and $199 complete. While computers like the Everex have been available at 199 for a while, getting a small one used to set you back a lot more. The complete review is available at Tom's, linked above and spanning nine pages. I'll try to condense the information into something less time consuming.

The hardware is not super-powerful, of course:

  • Intel® 945GC Express Chipset
  • Intel® Celeron® 430 CPU
  • Built-in Intel® GMA950 graphics
  • 800/533MHz FSB
  • Intel® Flex Memory Technology
  • Dual channel DDR2 533/400
  • Intel® HD Audio 5.1 channel
  • Four USB ports on rear I/O
  • 10/100 LAN using Intel® 82562G Ethernet Controller
  • One PCI slot
  • Two SATA at 3Gbps
  • One PATA for up to two devices
(Tom's Hardware)

Unlike the Everex computer, which is based on Via's chip, there are kernel and Xorg drivers for everything on the Shuttle, meaning that wiping the supplied (and new) Foresight off the drive and installing any flavor of Ubuntu should be easy. Making the bootable USB will be the most difficult part. For the record, I wouldn't even do that. Instead, I'd get a netboot image and the kernel/initrd, put them on the Foresight drive, and use the already installed Grub to do a net install. If anyone actually wants to do this, please ask me, and I'll write up a how-to for you.

The GMA950 is not going to run current games in Wine for you, but it will do all the fancy compiz effect with only minor tearing. A lot of the 3D games native to Linux work, too, but I can't get Savage2 to start up. That may be related to the graphics or it may be a 64-bit bug. I haven't tried to track it down yet.

The 80GB is, of course, 79GB more than you need for a basic install, so there's no problem with space, and the 512MB RAM is enough to run 2-3 apps at a time. Installing the Hardy beta release will give you Firefox 3.0, which uses close to half the memory of the previous version. Bumping the RAM up to 1-2GB will give you a machine that will never fall over one you (physically, the center of gravity is probably too low ;) ).

You can also order an external power supply for completely silent operation, USB wireless (though any RaLink rt73 USB from your local hardware storee will work fine, too), and a bluetooth adaptor.

Quite a deal for a small form-factor computer. You may not want it for your first computer, but it's pretty close to what I run as mine.

Saturday, April 12, 2008

A Demo of Cheese with a Webcam

Cheese is a new app that's installed by default on the upcoming Ubuntu 8.04LTS release.

A while back, I wrote about creating a distribution based on Gecko, including Firefox, Miro, Songbird, Flock, Thunderbird, and Sunlight. At that time, Isuggested basing the distribution on SymphonyOS, which uses FVWM and a desktop based on Gecko and XUL. The only problem was that SymphonyOS had not seen a release since 2006.

Well, that last weakness has been solved.

The new version of SymphonyOS, renamed SymphonyOne was released yesterday, based on Ubuntu 7.10 Gutsy Gibbon. There are no free downloads yet, but you can contribute $1 to the developer for a direct link. The downloads will be open to the public starting April 18th. If the developer gives me a review copy, I'll let you know about whether it lives up to its "newer, faster" hype.

Friday, April 11, 2008

Are Thin Clients Still Viable?

While I was reading the post linked above, and I started to reminisce. While I haven't talked about think clients on this blog, those who know my Slashdot persona of the same name will probably remember some of my posts and journals about them.

I started with thin clients in the pre-1.0 LTSP days. They worked well for what I wanted them to do. Thin clients might not be the best choice for those of you wanting fancy effects, but they make a great defense against 6th-12th graders who do everything they can to mess up your network every day.

At our school in Thailand a few years ago, I got a pallet of cast-off computers from Japan for a song. They had been stripped of all storage except floppies. The guy who got them was going to try to find used hard disks and CD drives, check them for failures, then resell them for about USD90 apiece. I pieced together a fairly powerful (for the time) consumer-level PC, maxed out the RAM, installed a Thai-enabled Linux distribution, and configured LTSP.

Back then, you had to do all that by hand. I learned about NFS, TFTP, and more advanced DHCP issues trying to get that network up and running. Lots of headaches back then, let me tell you. Now, though, LTSP, Edubuntu, and K12LTSP make all that stuff virtually plug-n-play.

I made boot floppies, shoved the drives back into the machine a little bit, covered the bay with plastic, and had nice little P133, 32MB thin clients that worked with virtually no issues. Children who screwed up their desktops got their files deleted and desktops reset, so they were careful not to mess around too much.

Printing was easy. Sound was doable. There was virtually no downtime unless the weather got too hot and the "server" went over.

I still keep up on LTSP, and am finding that a lot of apps (like especially FF) won't work on a thin client with 32MB anymore because, even though the app is running on the server, it stores images in the X server on the client. I understand that FF3 may solve this problem, but FF is not the only offending application.

The end result is that clients which used to be viable and which really do no more work have progressively become less appropriate as thin clients.

The developer world is making a lot of assumptions about the app running locally.

So ... I'm going to do something I rarely do -- ask for opinions. Are thin clients still viable? If my TC needs 256MB to run, why bother with remote X at all? What do you think?

Thursday, April 10, 2008

This is a great example of what can be done on Linux. I'm making a video this week highlighting the default apps on Hardy (stay tuned), and I can open every default application (about thirty) on my three year old laptop without any significant slowdown. Unfortunately, because the SIS900 chipset sucks so badly, any screencasts I do on that machine look like crap, so I'm actually making the video on my newer desktop.
Newer Posts Older Posts Home

Other I' Been to Ubuntu Stories