news aggregator
November 22, 2008
Yesterday I received my Indian VISA, just in time to be able to fly to Bangalore for foss.in 2008 .
In Bangalore I will give a talk on Telepathy in general, but there will be also two more specific Telepathy-related talks: Olivier (also from Collabora) will give a talk on video-conferencing using Farsight 2, while Sandeep Sundaram (from Nokia) will give a talk on playing games with IM contacts using Telepathy Tubes.
Today I tried Virtaal, the off-line translation tool from Zuza Software Foundation, the same one behind Pootle and translate-toolkit. Virtaal’s user interface is best optimized for keyboard usage than any translation tool I ever used, except maybe for advanced text editors. Thanks to translate-toolkit, Virtaal can edit many translation file formats, not only Gettext message catalogs. The application depends on GTK+ but not on GNOME, and it can be used in UNIX-like operational systems, Windows and Mac OS X.
Virtaal’s user interface is very unobtrusive, but some of its command are not very intuitive. That’s why I suggest reading this introduction before you actually translate something.
The application has some very useful features already. The automatic completion, in example, should avoid typos and increase productivity, and I hope other tools (poEdit, Gtranslator etc.) implement it as well. Spell checking and syntax highlight are there too, even if the syntax support is not as complete as some other implementations. The search is one of my favorite Virtaal features already: it uses a search bar instead of a search dialog, and you can search for a regular expression.
Virtaal lacks many small and large features, so for now it’s just a promising application. I’ll leave it installed, but I don’t have any plans to stop using Gedit + gedit-pomode for free software translation.
Update: I just packaged Virtaal for Arch Linux and translated it to Brazilian Portuguese.
About this version
Minor bug fixes.
About this version
Linux Release of RetroMessenger
November 21, 2008
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};Now let's create an object a, and a two objects b and c based on a.
var a = { name: "a" };
var b = Object.create(a);
var c = Object.create(a);
c.name = "c";
At this point both a and b have name "a", and c has a customized name "c". Now lets change a:a.name = "foo";Objects a and b now have name "foo", and c still gets to keep name "c" (a good language design decision methinks). Since a is just a mutable object we wield this sort of godly power to change or inject DNA. Every time I come back to it, it tickles me.
Still a bunch more TODOs on the list, but work on the front-end for enrollment should start soon.
Wow, in an hour or so I'll be heading to The Mill, where the unique Chimo Bayo will be performing live. HUA!
I was driving up to work today and thinking about productivity and how I utterly fail when having to switch contexts between say, web programming to desktop programming to filling out status reports (which I avoid for this same reason) to working on finances for the board. The problem isn’t that I can’t switch contexts fast and effectively. When there are tools around, say a fairly nice IDE, I can easily jump from hacking on Python TurboGears controllers, to ToscaWidgets to plain old HTML, CSS and JavaScript. If items are organized properly jumping from task to task, even in the middle of an ongoing task, is pretty much a non-issue.
The Promise of the Desktop
Computers in general were created to simplify our lives but the Desktop was created to simplify the lives of office workers by taking the papers on a desk metaphor and adapting it to a digital world. What we ended up with was the same (metaphoric) clutter that happens on any physical desktop, requiring us to manually reorganize our Desktop every once in awhile. In this scenario we start out very productive but then that productivity starts to decline as the clutter builds up from every day use.
Good applications however have a way of focusing us on the task at hand. To clean up in an application one can simply start from scratch. After one task is done a fresh new slate awaits the next task. Applications for the most part are fairly targeted at doing a specific task well, and if well designed presents the tools you will use for that task in a well organized fashion. Mind you there are a lot of bad applications out there and the good ones could get much better but we can agree that they are in much better shape in terms of organization and focus then the Desktop.
Traditionally Desktops are places for launchers, various bits of information and a place to stick your most used data for easy access. This is all well and good, and a tool for organizing oneself but the problem is the Desktop is global so that each task has to deal with the cruft from the last task. There is no clean slate aside from clearing all of your tasks and with the more tasks a user has to deal with, productivity starts to decelerate at an exponential rate.
If the desktop wants to be smarter it will have to think and present itself as an application which organizes a user based on tasks. Pagers take a first stab at this by allowing the user to organize open applications per workspace. Whenever I have a different task - say communications (e-mail, irc, blogging) - I open the applications up on one workspace and then switch to another workspace for say development. I still however get the same launcher and same files on the desktop, 99% of which I don’t use for this particular task.
I was pretty excited about the GNOME 3.0 mockup for workspaces in which the user had to specifically add a workspace by clicking a button. By making workspace creation explicit instead of implicit it meant people who don’t need this feature don’t get confused when all of their windows disappeared, but also that the user has a chance at discovering why multiple workspaces are convenient. The problem is the scope of the workspace changes were targeted at fixing the issue of confusion and not at making the user more organized. It is a step in the right direction but in my opinion does not go far enough.
If the Desktop was an application to organize the tasks I needed to complete, a created workspace would allow me to first name it for easy reference, un-stick itself from modifying the global Desktop state and let me customize it for the task at hand. I could then switch between tasks and have only the data I care about and the launcher for applications which would be used for the task at hand, present. The Desktop would then allow me to delete a workspace when I will no longer be performing the task it was setup for and even save the workspace so it is no longer in my rotation of tasks but still available for recall in the future when I have a similar task come up (e.g. taxes require organization to do effectively but only consume at most a month of my thought each year).
But, but, but, you can do this with fast user switching today. Well, yes and no. Completely separate sessions would archive what I am looking for if it were fast and actually worked. There is a laundry list of other features needed which fast user switching can’t provide:
- Users would have to be able to be setup and removed on the fly with little fanfare (e.g. the add workspace button in the GNOME 3.0 mockups)
- I still would want the ability to share a home directory and copy and paste data from one task to another
- Switching to a “subuser” would need to be as easy and fast as ctrl-alt-arrowkeys are which means a spacial layout and no password dialog every time I switch
With the ability to setup a desktop focused on a task and tear it down or start from a clean slate without effecting other tasks, switching between the many hats one needs to wear in a typical day becomes much less cumbersome. It also slows down the effects of productivity sapping cruft which will always build up over time. True there is some overhead in setting up and managing each desktop but I tend to see this happen constantly. As people switch their task priorities their desktop changes with it.
We use so many external and non-integrated tools to organize ourselves already, wouldn’t it be nice if task organization was built into the desktop and applications such as a todo list could key off the current task without any extra configuration? Perhaps there is no good UI for this sessions in a session idea and it would in fact make life a lot harder for people. Think about it anyway - if a Desktop is supposed to make the user more productive by giving them tools to organize their work, why not have that built in? Why not make the Desktop and applications one big integrated application (not one big process mind you) for getting work done?
[read this post in: ar de es fr it ja ko pt ru zh-CN ]After watching @darrenf (a) tell an awful lot of people to behave on Twitter and (b) have to manually type it in every time, thus providing wear and tear on his hands which mean that he can’t fix bugs instead of me, I present: behave.user.js, a Greasemonkey script to tell people to behave on Twitter. Just hover over a name and click the ! to tell that person to behave. Winner.
Thinking must never submit itself, neither to a dogma, nor to a party, nor to a passion, nor to an interest, nor to a preconceived idea, nor to whatever it may be, if not to facts themselves, because, for it, to submit would be to cease to be.
La pensée ne doit jamais se soumettre, ni à un dogme, ni à un parti, ni à une passion, ni à un intérêt, ni à une idée préconçue, ni à quoi que ce soit, si ce n’est aux faits eux-mêmes, parce que, pour elle, se soumettre, ce serait cesser d’être.
– Henri Poincaré, Nov 1909 Brussels
Ars Technica just posted a review of rBuilder, check it out.
I only start believing I'm visiting some new place when I've finally spent way too many hours looking at flight websites in an attempt to find a flight that is slightly cheaper than the only option everyone else is offering you, and after a few days prices have gone up enough so you give up and end up buying.
And, two weeks ago, I finally did. Barcelona-Istanbul means the third chapter of the unplanned saga “Chistmas in Islam”. Two years ago I started 2007 visiting Tunisia, and last year we enjoyed a 10 day trip around the South of Morocco, which was absolutely fantastic (and I've still haven't blogged about).
This year I'll be discovering Istanbul, Cappadocia and other parts of Turkey with Maria. The idea is to try to avoid visiting too many places in a rush, and follow the good advice of our Moroccan friends, “La prisa mata, amigo”. We have plenty of days to explore Turkey's secrets, but I want to be able to enjoy them, and avoid being in a constant hurry.
As always, I'll be glad to get suggestions on “must not miss” places or things, and advice on how to move around, where to stay, what to do or what not to do is extremely welcome. I'm totally looking forward to this, after I missed this years's GUADEC!
After months of waiting, the file transfer support in Telepathy is finally there!
The spec was merged as a draft last week and the Salut and Empathy branches followed this afternoon. This means that this long-awaited feature will be available in the next releases of Empathy and Salut.
Lot of persons have been involved and worked very hard to make this happen. File Transfer was first started by Marco Barisione as a SOC in 2007. Unfortunately his work wasn't merged directly because we were not completely happy with the specification and wanted to use the not-ready-yet Requests API. This summer, Jonny Lamb resurrected Marco's work, ported it to the new FileTransfer API and polished the Salut and Empathy implementation. I finally gave the last shot these last days by finalizing the spec, porting implementations to use the Requestotron and fixing last bugs. Xavier polished a bit the Empathy implementation and made it ready for merging.
Releases should be out shortly. So, with the future Empathy 0.25.1 and telepathy-salut 0.3.6 you'll be able to send and receive files on your local network using Link-Local XMPP. Our implementation is fully compatible with Apple's iChat but not yet with Pidgin as libpurple doesn't implement the OOB protocol.
Next step will be to implement the File Transfer API in telepathy-gabble in order to be able to send and receive files over Jabber. If people are interested to contribute to Telepathy, implementing FileTransfer in telepathy-butterfly (MSN) or telepathy-idle (IRC) would very valuable contributions. We are also working on the resurrection of the nautilus-sendto plugin too, so we'll be able to easily send files directly from Nautilus!
Thanks to Collabora and Google to have sponsored this work.
File sending in Empathy
I'm pleased to announce the release of Learning Rails, and its companion web site, Excursions on Rails.
Co-authored by Simon St.Laurent and myself, Learning Rails is written especially for web developers, and starts out from web design, heading inwards to the heart of a Rails app.
Where most Rails books jump right in with data structures, we take a web application's interface as our starting point. If you know HTML, CSS and fancy heading deeper, this is the book for you.
You can buy Learning Rails from:
- O'Reilly (US or UK)
- Powell's Books (US)
- Amazon (US)
- Amazon (UK)
- Barnes & Noble (US)
- Borders (US)
About this version
What's New
* SF Bug #2314490: Segfault while scanning roms. Reported and tested by Daniel Rammelt.
* Set the GVA_DEBUG environment variable to "io" for more detailed debugging messages during runtime.


