Older blog entries for federico (starting at number 184)

20 Jan 2010 (updated 20 Jan 2010 at 22:08 UTC) »

Wed 2010/Jan/20

  • "A Pattern Language", by Christopher Alexander et al, is the book that I have been preaching around with patterns for architecture and urbanism. See the full online version.

    (That online version is a bit weird; you have to click on the leftmost vertical frame to access the page for each pattern. Other than that, it seems to work mostly fine.)

  • If you are into that sort of thing, the Emergent Urbanism blog is excellent. It takes Alexander's ideas and tries to mathematize them, while exposing a plethora of examples and insightful results.

    You may want to read an introduction to that blog in its introductory essay.

  • And by the way, a lesson on usability based on these principles.

  • The New York City Department of Transportation has a very enlightened administration these days. See their new Street Design Manual for some great information about how to improve streets with gradual changes: geometry, materials, safety, bicycles, trees, pedestrians, etc.

Syndicated 2010-01-20 14:13:00 (Updated 2010-01-20 22:08:33) from Federico Mena-Quintero - Activity Log

Mon 2009/Dec/21

  • A note about hackfests

    If you are a proprietary software company and you don't employ all the world's experts in a certain domain, well, you are essentially screwed.

    But if you are a free software project, you can gather most of the domain experts at a hackfest, and be totally awesome.

Syndicated 2009-12-21 12:22:00 from Federico Mena-Quintero - Activity Log

Fri 2009/Dec/18

  • Dear lazyweb,

    I just started using Emacs 23 in openSUSE 11.2. Running this:

    emacs -fn "Inconsolata Bold 12"

    actually gives me Inconsolata, but definitely not Bold. Why? How do I make it Bold?

    (Inconsolata is a truly beautiful font for programmers, by our GNOME Emeritus Hacker Raph Levien.)

Syndicated 2009-12-18 12:54:00 from Federico Mena-Quintero - Activity Log

Thu 2009/Dec/17

  • This dialog greeted me when I updated my GNOME version:

    Volume FAIL

    "You won't have it. You won't have it. You won't have it. Just kidding, here you go."

Syndicated 2009-12-17 15:15:00 from Federico Mena-Quintero - Activity Log

Tue 2009/Dec/08

Syndicated 2009-12-08 14:11:00 from Federico Mena-Quintero - Activity Log

Mon 2009/Nov/30

  • I got a netbook, a cute little HP Mini, so that I can hack Moblin on it. The netbook comes with Windows 7. My first impression:

    Windows is a flicker/blingfest. Everything prelights and fades in and out. Everything has a tooltip that is unreadable because it disappears as soon as you move the mouse into the tooltip. Progress bars have a periodic swoosh-thing that makes me glance at them and wonder whether I missed something important.

    Everything has a right-click menu. Scrollbars have a right-click menu with useful options like "scroll up" and "scroll down".

    The Start menu has default entries that are ellipsized and you can't see all their text, unless you wait for the unreadable tooltips. Submenus and subpanes and everything seems to flicker in and out all the time.

    Norton this, Norton that. It makes you feel like you will be ass-raped as soon as you fail to satiate Mr. Norton's insatiable appetite for... mouse clicks or something.

    IE8 came with four or five toolbars. The stock one, the Norton whatever, the My AOL Search (!?), the favorites bar, and an extra helping of buttons that just seem to add clutter for no good reason. Mr. Norton got in the way of installing Firefox, and then asked for my email address so he could ass-rape my inbox, but I succeeded in fooling him.

    Maybe we should change free software's slogan to "we are not a constant pain in the ass, and we don't consider you a criminal".

Syndicated 2009-11-30 12:43:00 from Federico Mena-Quintero - Activity Log

Wed 2009/Nov/25

Syndicated 2009-11-25 15:02:00 from Federico Mena-Quintero - Activity Log

Mon 2009/Nov/09

  • Zeitgeist Hackfest, Monday

    The Zeitgeist team and yours truly are in an energetic hackfest in Bolzano, Italy. We are busy cooking the future awesome.

    Busy cooks

    Next door to our hacking room in the school, the Sugar people are having their own hackfest. Sugar has a Journal similar to Zeitgeist's, so we need to share ideas and if possible an implementation of the journal-of-your-stuff.

    We have three sub-teams within the hackfest: the Zeitgeist engine, the Tracker metadata storage, and the end-user GUI tools.

    Zeitgeist engine

    The core of Zeitgeist is a daemon that logs events that get produced as you work on your computer. When you open a file, that makes an event. When you view a web page, that's an event. Having an IM conversation, looking at a video, and playing music are all events.

    Zeitgeist logs these events and provides an API to query those events for useful purposes. The Journal, of course, shows you a stream of your most recent events. More sophisticated clients can ask the engine questions like, "what applications have I launched within the past week?", "what files have I used for the longest periods of time within the last month?", "which web pages did I visit while editing my-research-paper.odt?".

    Seif Lotfy, Ivan Frade, Mikkel Kamstrup, Alex Gabriel, Markus Korn, and Siegfried Gevatter are working on the engine. They are upgrading the format for the engine's database so that it can support more efficient queries, redoing the external API that clients can use through D-Bus to make queries on the engine, integrating support for Tracker as a metadata storage, and improving the contextual relevancy engine. This last bit is the magic that can tell you, "these are the documents/web sites/etc. that you used together while working on a certain project".

    Tracker as a metadata storage

    Zeitgeist would like to show you various useful things: the tags that you have assigned to a file (School, Work, Pr0n, Travel), the sources for email attachments or for files that you downloaded from web sites, etc. All of that is just metadata that needs to be stored somewhere, and in some well-defined format.

    Zeitgeist used to have a home-grown metadata repository, but it will be using Tracker from now on. Tracker is a metadata storage for RDF triplets. An RDF triplet is a subject/verb/object chunk that looks like "my-thesis.odt/has-tag/School", or "lolcat.jpg/was-an-attachment-from/$email_id". Those are just examples; the actual form of those triplets is formalized in the Nepomuk ontology.

    Gnome Activity Journal

    The Gnome Activity Journal is a prototype implementation of the journal idea that I presented during GUADEC last year.

    And they are closing the school right now, and we have to leave, so I'll tell you more about all of this tomorrow. Ta ta!

Syndicated 2009-11-09 12:02:00 from Federico Mena-Quintero - Activity Log

Wed 2009/Nov/04

  • Zeitgeist tries, among other things, to compute this for your data.

Syndicated 2009-11-04 14:39:00 from Federico Mena-Quintero - Activity Log

Thu 2009/Oct/08

  • The vision behind Zeitgeist, part 1

    Jon McCann recently asked me to clarify the vision behind Zeitgeist.

    Zeitgeist started when Seif Lotfy implemented the Journal idea that I presented during GUADEC 2008. With apologies to people who already saw this presentation, I'd like to review some of its ideas here.

    Let us start with a few well-known problems with computers and the traditional desktop paradigm.

    "Where was I?" Resuming your work

    This is a picture of my (non-computer) desk as I found it this morning:

    My desk this morning

    There's a book on woodworking, opened on the page that talks about workbenches. There's a torn-out page with little diagrams of the various things I want in my workbench. There's a drawing pad with another diagram of the workbench I'm about to build. Finally, there is my mechanical pencil and eraser.

    Why is all of that stuff on the desk like that? Simply, because that drawing is precisely what I was doing last night. I can resume work by simply sitting down and taking a brief look at what I've done so far.

    By contrast, this is a picture of my computer's desktop as I turned it on today, and as I logged in:

    My GNOME desktop this morning

    There is my panel full of the usual trinkets, some folders and files that I left there ages ago, and some random crap from the system. Nothing there is related to what I was doing the last time I used my computer. There is no way to resume my work except by remembering what I was doing and then by laboriously opening everything that I had open.

    Before you yell, "session management!", let me tell you a story.

    Starting a journal

    Some years ago, after I stopped working on Evolution, I worked for a brief period in the Ximian edition of OpenOffice.org. Before that, I had never worked on such a complex code base. The source tree was huge. Finding your way around it was real hard work. Things didn't make sense to me at first; there were toplevel directories called things like "sc" and "sw", which didn't make sense at all (later I learned that "sc" was the spreadsheet, StarCalc, and "sw" was the word processor, StarWriter).

    The actual source files were buried 5 or 6 levels deep inside the hierarchy. The source for large C++ classes was split into multiple files, called something like shrtnm1.cpp, shrtnm2.cpp for the class ShortName — for someone who had not been working with that part of the code for a while, it just didn't make sense.

    Back then I was doing simple changes to OO.o, where I only needed to tweak a couple of files at a time. Simply finding the right file to tweak was hard, and after that, I had a lot of trouble remembering where those files actually were — buried 6-down in the weirdly-named directory hierarchy. After a few days of hunting and re-hunting down the same files, I decided to look for a solution. I could never get desktop-save-mode in Emacs to work, so I started a text file to write down the full pathnames of the files I had been modifying. This way, the next day I wouldn't have to hunt for the files again. Eventually I wrote a chunk of Elisp to do that for me, but that's an implementation detail — if you google for "emacs recently used", you'll see that many people have implemented pretty much the same thing.

    This made things much better. I could resume work quickly; to open the last file I had been working on, I simply looked for its filename at the top of the journal, as well as related files which I had opened around the same time as that one.

    Before you yell, "dude, get a real IDE!", let me continue the story.

    The journal evolves

    Some time after that, I started annotating the journal of filenames-in-a-text-file, and turned it into a journal of my work. I've been keeping that journal for almost 4 years. This is a sample from yesterday:

    2009/Oct/07
    10:42 - About to read "In pursuit of desktop evolution" by Ravasio et al - ~/Downloads/10.1.1.96.398.pdf 
    12:56 - Finished reading and taking notes in ~/Documents/Gnome/design/articles.txt
    13:05 - Paid phone bill, $XXXX, transaction 9404.
    14:20 - Worked on http://en.opensuse.org/Documentation_cleanup
    15:31 - bgo#597101 - gnome-panel does not start anymore (RANDR) - vuntz fixed it
    16:39 - @natfriedman: Recommended sites to find rental apartments:
            homeaway.com, roomorama.com, airbnb.com, seamlesstransition.com.
    + check why my subscription to opensuse-wiki didn't work
    + Add autotools to gnome-activity-journal
    + See if you can help with bnc#329959 - build service doesn't validate project names
    + Read http://wiki.zeitgeist-project.com/Teamgeist and send comments
    + Read Finding and Reminding - http://old.sigchi.org/bulletin/1995.3/barreau.html
    

    Every day I type stuff like that: interesting files that I use, wiki pages that I modify, interesting web pages that don't merit a bookmark but to which I want to keep a reference, random notes, snippets from IM/IRC/Twitter, and a few items from my to-do list (the ones marked with a +).

    I find this journal to be extremely useful. Interactive search in Emacs (C-s) lets me find stuff instantly: if I was taking notes on something, I hit C-s notes, then maybe C-s a few more times, and I'll end up finding that part where I wrote "taking notes in ~/Documents/...". I put "(RANDR)" next to anything related to multiple monitors, so it is easy to find.

    The journal serves me as a reminder of what I've done, as a repository of links to stuff I've seen, as a note-taking device, as a cut&paste repository of interesting bits of conversations, as a very short-term to-do list, and in general as a chronological dumpster of potentially useful information.

    But I'm not an obsessive-compulsive note-taker like you

    Uh, maybe. Still, it takes really very little time to annotate stuff there, and it doesn't feel like a burden. I can't live without the info in that journal now.

    (That journal is also really useful when I have to fill the stupid timesheets that Novell makes us fill every so often — I can see how many hours I devoted to each thing.)

    However, this journal is rather pedestrian, especially when it comes to noting down filenames and URLs. The computer could perfectly well do that for me, and still let me add hand-written notes to the items it logs.

    Later, more problems with the desktop metaphor and the vision behind Zeitgeist.

Syndicated 2009-10-08 18:23:00 from Federico Mena-Quintero - Activity Log

175 older entries...

New Advogato Features

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!