Ubuntu One Beta
Ubuntu One is now in a limited public beta. Check it out. There will be lots more awesome stuff on it in the future too.
After a short discussion, Danilo and I have agreed that moving intltool to Launchpad would be better for the project, and us, as its maintainers. The project is not specific to GNOME, and we would like to encourage non-GNOME projects to adopt it for use by their translators. All future development will take place in the LP project, with Danilo and myself as its continuing maintainers. Please report any new bugs or requests in the bug tracker on Launchpad. I will be sending a mail shortly to the appropriate GNOME lists, with some more details soon. If you have any questions about how this will affect you, feel free to e-mail me or ping me on IRC.
The Mantra of Done
Over the years I've been developing software. I've seen all sorts of things that attempt to manage what you are doing, and how to improve that workflow. There are lots of apps for both GTK+ and Qt, as well as Windows and Mac OS, to try and help with this. There are lots of interesting web services too. I've even used a couple, particularly landing on SlimTimer for contract work I was doing in the past, as it has some particularly nice reporting features, and a simple REST API for connecting to it. However, even then, I felt there were several things which I would improve on.
A couple weeks ago, I was in Orlando, sprinting with some of the other members of my team at Canonical. One day, Elliot pointed out a particularly interesting blog entry, titled The Cult of Done Manifesto. The great thing about it, is that it all makes sense, and is yet rather simple. It's also not a finite set, and doesn't necessarily apply to all fields of practice. I would say that for example, item #9 in the list, doesn't really fit well into the politial arena.
Back to all the apps though. I was thinking about the Cult of Done again, and the very simplified task manager app I'd started writing, that was to just be a client for SlimTimer, after being asked for comments on a couple of icons for Getting Things Gnome, a GTK+ task manager based on Getting Things Done. Looking at its screenshots, I was amazed at just how complex it really was. Even all the miriad of OS X apps for GTD seem to be too complex, and don't really integrate well with the rest of the system. Most importantly, all these apps seem to targetting a specific workflow, and concentrating on what needs to be done, rather than the actual point of them being done.
So back to Stopwatch. Last night I set up a project on Launchpad for it, and will be moving the code I do have for it already, over to bzr. But it will no longer only be a SlimTimer client. Rather instead, it will be a very simple, yet extensible, task manager, which integrates better with the rest of the system. The most interesting thing to do with it, I have in my mind right now, is a backend to handle trackable and taskable items on Launchpad. It will be so nice to have all my assigned bugs right in front of me, with an easy way to mark them as done, or reprioritize them, based on MY workflow, and not that of the bug tracker.
Less Irssi Noise
I finally got fed up with having excessive activity notifications in irssi today, and decided to write a script to solve my complaints. I have about nine channel windows, and sometimes there's a lot of join/part activity, and not much else, especially during nights and holidays, when IRC is left unattended, or if there are some hiccups in connectivity around the globe. Though, by default, irssi likes to show an activity notification for anything, which can be rather annoying and fill up the right end of the status bar very quickly, when nothing is actually going on. So this morning, I wrote a wonderfully quick and easy perl script for irssi to not show these levels of status in the activity area on the status bar. You can find it here. Just stick it in your ~/.irssi/scripts directory, as lessact.pl, and do /run lessact. Any future messages for a window, which aren't above a certain level now just get wiped clean. If you have any issues with it, or have a suggestion to improve it, feel free to let me know. Enjoy.
Well, it's that boring, lonely time of the year.
In other news, I moved DeskScribe over to Launchapd from GNOME SVN. I would like to start getting some more features into the project, and clean up the code a bit. One feature in particular that I would like to implement, is to have support for recording video of the desktop during the test session, as well as the ability to record from cameras (internal, usb, or otherwise), so that facial expressions, and hand movements, may be recorded as they would be in live usability tests. It would also be nice to record audio, for verbal expression of difficulties, thoughts, and suggestions can be recorded.
Some of you may remember the usability testing, and publishing of those tests on BetterDesktop, which we were doing a few years ago. It would be nice to do some video mixing as well, so that we can get similar video output as you would find in the videos on BetterDesktop. I'm pretty sure all this can be done with gstreamer, but I don't have a concrete idea of how to use the API, or necessarily time to figure out how to do it all, right now. It would be great if I could get some help in this area. Then we could have a really awesome suite of tools for doing usability testing for all the great open source software out there.
Soundrack for Life
Neverwinter Nights Linux
Pretty much ever since I've been playing the Linux port of Neverwinter Nights, I've been using a shell script, to symlink all the data files, and hard link the directories, so that I could store the saved games in my $HOME somehwere, reather than making the data directory just be writable, and having my saved games stored in the global directory. Just recently, I've done a little work to fix up that script, and put it in a state that is suitable for release to others. I also made up a desktop file, and the great Hylke Bons is working on an awesome icon to use. Today, I wrote a hack using LD_PRELOAD to override the fopen() method, so that the various "Talk Tables" for different translations, can all be installed simultaneously, and the correct one will be loaded for the user's language.
Unfortunately, it is not clear whether or not these files are distributable, or if creating additonal translations would break the EULA. There's also no clear license specified for the "Community Expansion Pack" which is available on the Bioware NWN site, and contains a collection of community-created content. Another little nit with the talk table translations, is that they seem to use the latin-1 character set, limiting translations to those locales. If there is some way to use UTF-8 here instead, that would be awesome, but I am not sure it is possible, and information on-line is somewhat scarce. If anyone from Bioware or Atari sees this, please contact me, as I would love to be able to re-distribute at least some of the pieces of the Linux port of Neverwinter Nights, to integrate the game better into the Linux desktop, and provide easy-to-install updates, via distribution packages. I don't guess there will be any new official patch versions to update to though.
As for translating the content, I have been pondering adding support for the talk table files to intltool. It would make translating the content very easy, and would be a fun little experiment. Mostly I am doing this for my own enjoyment, and to play around with bzr a little more. The integration bits I have been working on can be found on Launchpad.
None of Your Data Exists
So, content doesn't exist? How very existential. Next time a client tells me how important their data is, I will simply remind them that it doesn't exist. And if it doesn't exist, what the hell do we even need computers for anyway? Let's look at this in a more logical light.
Content Does Exist
The 20GB of music I have on my hard disk is most certainly occupying lots of little magnetic strip space on that disk. The more I add, the less room I have to add more. Certainly seems to exist to me. Archimedes would agree. The displacement of disk space is occuring. The games and add-ons I've downloaded to my Xbox 360 are certainly there. I can play those extra maps in Halo. My game progress is saved. All the pictures I took are strewn about my drive, like the cheap amateur photographer that I am. The code I'm working on is right here. This blog entry is stored and replicated across the internet. So, Content must certainly exist, since it is everywhere. Saying content doesn't exist, is just trivializing the problem to support your own ideas, rather than altering your ideas when the problems change. Not all content is music, photos, videos, or random bits of text. And not all animals are sloths.
The Desktop is Dead
It will probably take several years for everyone to realize this, but it is true, none the less. The Desktop as a metaphor for using a computer is useless for the majority of people. It's really only useful for programmers and data entry. There are much more interesting ways to interact with a computer, than a keyboard and mouse. For some things, those two devices make sense, like programming, and data entry. For others, not so much. The problem is that we are all now so interested in Web 2.0, but it's still fit into the Desktp metaphor. It's all mostly designed around interacting through the same class web browser, stuck in some window on your desktop. And because of it, browsing the web on for example, my phone, is completely painful. The rest of the world is moving beyond the desktop. We need to jump ahead, instead of just perpetually following behind MS/Apple by trying to make the desktop shinier or whatever. A shiny desktop is still just a desktop.
Get Like Users
...is not your desktop. It is mobile devices. It is tablets. It is holographic displays and interfaces. It is flexible transparent screens. It is your television, your appliances, your home, your car. It is all the things we haven't even scratched the surface of, for sensible user interface design. It is networked storage, with your content being accessible wherever you are, be it in your living room, kitchen, hotel 5000 miles away, or a boat in the middle of the ocean. If we want to move into the future, and not get left behind, we need to start thinking about this, not what new shiny method of accessing a 50 year old 2D desktop is best. None of them are best.
The surest way to corrupt a youth is to instruct him to hold in higher regard those who think alike than those who think differently. -- Friedrich Nietzsche
In an effort to get better acquainted with bazaar, since I will be using it a lot now, and since people have been asking how they can help, I have gone ahead and imported my calendar widget code into launchpad. You can find it under the Rhetorical project. I hope to be able to get some more done on the code soon.
Ubuntu and FOSSCamp
As some of you may have already discovered in the past couple of days, I have taken up an offer for a position at Canonical, working on Ubuntu. Starting monday, I will be working with the rest of a great team, to make the GNOME desktop, and Ubuntu, more integrated and friendly for everyone. I'm very excited about the role, and the possibilites it provides for both myself and the Linux desktop.I also was invited to FOSSCamp in December, out in Mountain View at the Google Death Star. I hope to be able to discuss some ideas about the future of icon themes on the desktop, with members of other desktops and distributions who will also be there. We've had some discussion recently about what we want to do with the Tango and GNOME icon themes, and where we want to take them in the future, and I think it's the perfect time to get the rest of the world collaborating together on icons, so that everyone wins.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!