This will be my seventh GUADEC, and my first as an Igalian. I'm very much looking forward to seeing old friends, as well as to meeting new folks.
I'm especially looking forward to soaking in the energy of GNOME 3. GNOME 3 is the best user-facing project that Free Software has going right now -- it's a dynamic group of creative, talented people, making users' experiences with computers beautiful and natural.
The only other Free Software project that is focused on users in the same way is Android, and it is its own corporate kettle of fish. I hope that it's GNOME that ultimately wins, against the hoarders of the software world, from the workstation down to the phone, because GNOME brings with it our participatory culture of software as a means for human emancipation: that we can work together to make a better world. We've been working on this Free Software thing for some 30 years now; we're not a fad, or a hype: we are people working together, making our world. We can win, and humanity deserves it.
This year GNOME is again sharing a conference with KDE, another "desktop environment", to use the outdated term. I have pleasant memories of hanging out with KDE folk at the last joint conference we had, but I don't think it's healthy. Last time we were together because it was convenient for Nokia. Now that Nokia sold us both out, it doesn't make sense.
I do wish we could collaborate in meaningful ways -- and we do, in lower levels in the stack, and partly at the window manager level -- but we're working in the same space with two different cultures, and colocation ultimately dilutes the impact these conferences can have among the members of these two projects. So my KDE friends, let's have one last fling this weekend in Berlin, and thereafter see each other in Brussels, at FOSDEM :)
My seven GUADECs marks me as some kind of old fart now, I suppose, and it's true that my own work with GNOME is mostly in the past. I used to work on GStreamer, but don't anymore; Guile is mostly where I'm at, free-software-wise now. I wrote some bindings for the GNOME libraries back in the 2.x days but have not had the time to update them to the modern 3.x world. I fear that I'll just have to pass that project on, though there does not appear to be much hacker interest in maintaining API compatibility.
See you in Berlin!
Good evening, internets!
I am not doing a very good job at existing both online and off. Indeed this summer word-drought correlates with real-world motion, to Paris and England and the Netherlands, and back and back and back. Tonight I'm looking out at a working week here, then a flight to LA for a wedding and work, out to Montreal for the Scheme Workshop, to North Carolina to see the folks, back to LA, then Paris and home.
pon'drous & heavy: planetary rotations
With orbits like these, it's hard to keep centered, which is where I hack and write best. Still some things have managed to come off well -- Guile progresses towards a 2.0 release, though with a couple more milestone releases than predicted. I'll write about 1.9.12 when it goes out in a few days.
The recent GNU Hackers Meeting in the Hague turned out well. There were 40 or 45 people there. The talks were good, and the side-channel conversations were also good. Videos should be up shortly
I feel like we're in a kind of renaissance of GNU as a community of hackers -- that as our virtual community coalesces into real affinity networks, GNU hackers gain a sense of the possible, and of the will to get there. We're in a fortunate position I think -- we have the means to effect a large hack, so discovering our own possibilities is that much more exciting, and empowering.
Also on the GHM note, I should say something about the Revelation Space, which hosted the meeting. Well, it would have been nice already if it had only had our needs covered, which it did, but to us the revspace was made excellent by being so low-key, trusting and comfortable that we really felt at home. This feeling had a directly positive impact on the quality of our meeting. So thanks again, revspacers, and happy hacking!
Anyway, this is just to break the ice a bit, and see if I can get back in the rhythm of writing. Happy hack to all, and to all a good hack!
Does anyone have the address of the Mr and Mrs Vengaboy? I have a patch for them.
--- /tmp/were-going-to-ibiza.txt 2009-07-02 11:41:09.000000000 +0200 +++ /tmp/were-going-to-gran-canaria.txt 2009-07-02 11:40:53.000000000 +0200 @@ -1,8 +1,8 @@ Whoa! -We're going to Ibiza! +We're going to Gran Canaria! Whoa! Back to the island! Whoa! We're going to have a party! Whoa! -In the Mediterranean Sea! +In the Atlantic Sea!
Anyone? Perhaps they have a Bugzilla somewhere.
I wrote to Federico earlier to let him know I was down for hippietime, saying I'd be at GUADEC from Saturday evening to Thursday at midday. He was surprised I was leaving early, which made me realize: why was I being so miserly with my time?
I think my thought was that somehow I couldn't afford to be away for so long, that maybe I should make it back and work the Friday. Ridiculous. I changed my flights so I'm leaving on Sunday instead. See you there, GNOME kin!
My camera broke; I have only words.
the golden horn
Istanbul is a town full of wonder. And wander: around the cobbled streets of the old town, in the morning, in the evening, alive at all hours.
Last night I shared a water-pipe under the bridge, looking back on the night silhouette of the old town, smoke rings dissipating over the water. As we were walking back to the hostel some hours later, Dimitris noted the waft of baking bread, the start of a new day.
I stepped out on Sunday morning to the GStreamer mini-summit, but was waylaid by the Blue Mosque. Outside it is grey, hard stone and spired; inside it is lush and tactile, the carpet creeping up between your toes. I believe that space can have rhythm. In that place there was a rich visual soundscape, tiled motifs repeating on the macro level, fractally recursing into micro-vegetation, a symphony of space and lines. I stumbled out into the blue sky.
The GStreamer summit was pretty good. We decided to switch to git (from CVS), once some issues are ironed out regarding history and our "common" submodule. We also decided that at some point we should do a new development cycle, but that we needed reasons for doing so; the idea would be to develop a number of features that cannot be done with 0.10 in experimental branches, and once there are enough branches, we pull them together in a quick 0.11 and from there to 0.12 or 1.0. This would be a process that could take a year or two.
In that regard, some interesting points were brought up regarding GLib and GTK+'s plan to break ABI for version 3. The problem is that any library that depends on GLib will break ABI as well, and that includes GStreamer. So given that we will need to break ABI to depend on GLib 3, that gives us a good timetable for a next development series, corresponding to GLib 3's release in about 16 months. I suspect that many projects will want to do the same.
Quand les gens s’aperçoivent qu’ils s’ennuient, ils cessent de s’ennuyer.
Regarding my last post, Benjamin said to me that "the biggest omission was a solution to the problem". Well, I don't have a solution, not really anyway. But while the topic is fresh, and it seems to have resonated with a few people, I do have some thoughts on the topic.
I seem to recall Christian complaining about the new GDM animations on login, that they feel slow. Well that's because we have a static conception of interface, that things are static by default, and that motion is the abnormal case. This is a mindset that distorts how we make programs (static with sprinkled animation), and one that does not reflect the way that hardware works these days.
Three years on, Jon Smirl's breakdown of the Free graphics stack is still relevant. Go read it! But instead of his conclusion ("make free applications faster through a new X server"), I would draw the line differently: let us make our applications with GL. Then the applications that we make will be new, 100 times a second.
This hertzian rebirth liberates the computer to react to us, and to anticipate our desires.
For example, as the user starts to focus on an actionable surface, that surface might become more prominent at the same time as other, related actions present themselves. To take a most basic example, if you are typing in a word processor, the mouse cursor goes away. (Or can be made to do so.) If you then grab the mouse again, probably you want to click somethingorother; yet the clickable surfaces are present even when typing, unnecessarily, and are equally small once you do grab the mouse.
Or to take a more familiar example, the "expanding icon" behaviour of the Mac OS dock contextually expands the icon that you are focusing on, and anticipates focus of adjacent choices; and it's something that we still do not have, years later.
It is for these reasons that I think that a GL-based canvas like Clutter is an excellent option for GTK+. The library provides nouns and verbs that compose to make a dynamic, pleasing interface; and if you are programming in a fast language, you can implement your own nouns and verbs, which then form part of the GL rebirth/draw loop.
Another thing to think about is that the mouse is simply a way of indicating focus and a limited form of selection. Our verbs are point, click, and drag. New input methods are here, or coming soon: things like multitouch, head tracking, and gestural recognition. These input methods do not map exactly to the mouse. In fact, once you have such capabilities, other, more "normal" parts of standard interfaces start to look restricting. Menu bars are made for mice and framebuffers; the panel starts to look superfluous; etc.
Obviously this strategy has problems when it comes to power consumption; I do not know the solution. I assume the OpenGL ES people have thought about this somehow.
Whether or not you think these ideas are good or bad, you can rest assured that they will not come to pass in GNOME as it is now.
The problem, to my mind, is that we have painted ourselves into a corner of serving a fictional clientele that is not ourselves. As Havoc says:
Is GNOME for UNIX and shell users? Is it for Linus Torvalds? Is it for ourselves? Is it for American college students? 35-year-old corporate office workers with an IT staff? And are we willing to tell whoever it's not for to jump in a lake?
...There is a default audience if a project doesn't find a way to choose one deliberately, and it's what I've called "by and for developers." If there's no way to stay out of that gravity, it's better to embrace it wholeheartedly IMO...
I think we should have a project for hackers. A GNOME skunkworks, if you will; a place in which hackers can create something new for ourselves, in which innovation and even failed experimentation is possible and encouraged. If something developed there is useful to a wider public, as we would hope would be the case, then by all means folks can pull it out, and start to put it somewhere more stable.
Note that "for hackers" does not necessarily entail complexity; it entails only that complexity which is necessary. Physics does not strive to make ugly theories, string theory aside; we as hackers, though oft maligned, neither want such things. Working together, with the best spirit of peer review, we could come out with something with power, and simplicity, and diversity.
Such a project would question everything: what is our interface metaphor? Is it a desktop? Is it a space, like Neuromancer? Is it a set of overlapping planes, like in Minority Report? Is it something else? What is it populated with? How do we compose separate parts into one graphical whole? How do we choose parts of the whole to focus on, to interact with? What is the nature of a part of the whole? How do focus and applications interact? Does the phrase "switching applications" make sense, and if so, how do we do so, or start new applications? Do applications exist in windows? How do multiple users interact with one live system, when we run GNOME on our TV and on our laptop on the arm of the sofa, and using the wiimote as an input device?
I think we can learn a couple of things from the Pyro experiment. In case you don't recall, Pyro was an attempt to bring web developers out of the confines of the browser window, to let them manipulate the whole "desktop". It was a really neat hack. It seems to have failed, also; I don't hear much about its uptake, a year later. At the risk of poking Alex's old wounds, we should probably wonder why.
If I were to guess, I would say that Pyro failed for cultural reasons. Its target "audience" was web developers, and also those parts of GNOME that would be comfortable changing desktop development into web development. But web developers like to work for an audience of users, and of these there were not many.
But more than that, and reasonable people may disagree, I think that Pyro failed because it wasn't exciting to the developers that we do have, to our culture. I don't think this situation was particularly gratifying to Alex, who (I would imagine, I do not know) found more fulfillment in other parts of his life. Ah well. "One must bear a chaos inside to give birth to a dancing star."
Regardless of your judgment on Pyro, I think that there's still loads of interesting work to do on "the client side", not least experiments with the GPU and self-renewing interfaces. So we should embrace the hackers that we do have, and see where that takes us.
Let's take a number of cases of existing applications, and see what they might look like, coming out of the skunkworks.
Marvin is browsing planet gnome. The web page fills up the entire screen. He finds some link of interest, and selects it. The Planet GNOME page seems to recede in distance as the new page fades in to replace the full screen.
He reads for a while, somehow scrolling the page, then realizes he wanted to go back to some other link. He bangs the mouse against the edge of the screen, or gives a certain hand gesture, and the web page shrinks down from fullscreen to just one page in a series of pages fading off into the distance, representing his browsing history. As he runs his mouse over that series, the pages pop up under the cursor, with contents if available. The effect is similar to that of flipping pages in a phone book. or passing the mouse over the Mac OS dock.
Marvin middle-clicks on a link to open it in a new "window". The existing train of web pages slides left, off the screen, leaving space for the new page to fade in. Marvin reads for a while, then decides he wants to get some hacking done. He holds up his hand, pushes back the space, pans his applications around until he is on Emacs, and lets his fingers fall into a fist. Emacs comes close to him and fills him and the screen with its radiant light.
Alternately, Marvin could pan via moving the mouse while holding down the shift key, or pressing some appropriate key combination that does not conflict with his carefully-crafted emacs keybindings.
Erinn, having just finished hacking the good hack, wants to enjoy her photos on the TV in the living room. She sits down on the couch, and grabs the wiimote. She presses a button to open a media navigator, showing her all of the media shares on the home LAN, neuromancer-style. She pilots into the living room machine, selects the photos, and begins browsing. The photos are arranged on a timeline rolling into the distance; she focuses in on the set from last year's GUADEC, and begins flipping through them.
OK, so you see where I want to go with this. Try it yourself, perhaps taking "video chat" as an example. How are calls received? How are they made? How does video chat interact with your photo app, with the rest of your applications?
My point is that although we have reached a kind of local equilibrium with the "desktop" metaphor, the existence of the GPU gives us all kinds of possibilities, unique capabilities of the box connected to the monitor. My ideas (and these are not all mine, I stole most of them from folk at work) are those that I see from here, which is not very far. We can do better than this.
I recognize that these are words from a marginal player in GNOME, and a Schemer at that. But I think that somehow, a skunkworks is how GNOME will "revision up", whether it comes from the free community, or whether it is dropped on us from some corporate lab.
The concrete step that interested hackers should take is to learn GL, to play around with it. Use the texture_from_pixmap extensions to pull in a WebKit window or two, toss them around. Use Clutter, if that's what you feel like. Build a video chat application (the Telepathy people swear it's possible), build a new window manager (with tight Ruby bindings), make a mockup. Then if your mockup is inspiring, and organic enough to live in, we can start a GNOME skunkworks to play around in.
But above all, make it for you. Pay no attention to mental questions of how your mother would see this, those questions will fix themselves in time. A focus on beauty and simplicity and power cannot fail to make something interesting. Code against boredom!
It is with some trepidation that I go to buy my ticket to this year's european GNOME conference, GUADEC.
Decadence \De*ca"dence\, Decadency \De*ca"den*cy\, n.
[LL. decadentia; L. de- + cadere to fall: cf. F. décadence. See Decay.]
A falling away; decay; deterioration; declension. "The old castle, where the family lived in their decadence." --Sir W. Scott.
Take a look at the list of slated talks. What is your general impression?
Mine is of a large project in a state of marginal returns, in which a larger and larger part of the effort goes to maintenance. On the one hand you have the large deployments, the integration with other software projects. On the other hand the new developments that we have are very careful not to bite off too much: a printing dialog;
another revision of ekiga; a new image library. Ed: Ekiga was probably not a good example of this.
The problem, as I see it, is that GNOME is in a state of decadence -- we largely achieved what we set out to achieve, insofar as it was possible. Now our hands are full with dealing with entropic decay. Take, for example, Evolution's random walk to improvement. In most releases it's better, in a few it's worse, but basically it still works fine, and has been that way since about 3 or 4 years ago.
It's like, welcome back to 1984's Macintosh plus interweb. We did it!
Seriously though, it does not seem to me that GNOME is on a healthy evolutionary track. By that I mean to say that there is no way there from here, if "there" is universal use of free software, and "here" is our existing GNOME software stack. The evolutionary thing to do would be to do something web-like, because that's where all of the programmers are these days. But that's not part of our culture. Until recently, with WebKit/GTK, it wasn't part of our software stack either -- all of the new web platform bits were dribbled to us over the wall from Mozilla, or embedded within GNOME as Firefox.
The other side of that is that while the web will be a core part of the computing future, it's not clear that swallowing it wholesale is the best strategy for client development. There are too many things that local computing offers: other software paradigms (emacs, unix, independence), unmediated input (sound, video, alternate input devices), direct access to powerful output devices (control part or the entirety of a screen, access the underused GPU).
But even if we eschew "going with the flow"-style evolution, it's not like GNOME is on a revolutionary track which will win in the end with its compelling UI or programming-linguistic metaphors. The screen is still constructed as a static landing strip on which the mouse pointer might alight, an array of possibilities necessarily constricted by decontextualized space. The metaphors are the same: file, folder, desktop, even as these things cease to exist for many people. And techologically, we don't even have a way of considering how the visual elements of space might be anything other than static, much less have any way of interacting with those elements other than the impoverished point and click. What we're left with is the GUI equivalent of chartjunk.
There are exceptions to this story. There's Clutter, which I expect will be the "way out" both for GTK+ and for GNOME. (I know there are technological differences with other canvas models, but at least they have the hackers and the maintenance resources.) There's Moonlight, which is interesting and hacked by very smart folk, but whose fortunes are too bound to Microsoft. There are heroic retrofix efforts like MPX, not really a part of GNOME. But other than that, we have the decay of slavish adherence to the HIG, the logout dialog, the wallpaper chooser, the last-percent efforts of refining an increasingly irrelevant stack of software.
The GTK+ maintainers are well aware of the decadent state of GTK+, and are moving as much as possible to plug the leaks. But it is no longer a nimble codebase, and will take at least 6 and possibly 12 months before a 3.0 release can come out. And that's just stopping retrograde motion; actual construction must take place outside of the "core" until the core is ready for it.
This disenchantment is personal as well: among other things, I've spent thousands of hours on bindings to GNOME libraries, and just now when I am ready to make an API and ABI stable release, I just don't feel like packing another button into another hbox.
Anyway, I'm buying my ticket, but mostly for the hallway track -- GNOME folks are smart and kind, and I want to see what's going on, what people are really thinking about. Istanbul ho!
Tomorrow I fly to Birmingham for GUADEC. I'm very much looking forward to catching up with old people, meeting new ones, and poking various ideas. Also, I am looking forward to a GUADEC without responsibilities -- no video archives to haunt me into the fall.
I upgraded to development GNOME a month or so ago; perhaps the most notable difference to me is gnome-power-manager dimming my display more or less intelligently, and its very nifty power consumption graphs. Richard Hughes does great work and should drink for free this GUADEC!
Hackers loving Emacs must read the wonderful org-mode tutorial.
Hey world, the raw 2006 GUADEC archives are now available. Follow that link for more details. guadec.org would also be a fine place to post comments on the videos, as it has a more capable comment system than my humble web log.
Last weekend I went with some friends up to Núria, on the border with France, straight north from Barcelona. We hiked what we're pretty sure was Puigmal. It's rather amusing that we're not exactly sure, though -- it was just a question of up-until-you-can-go-no-further.
camp vs. conference
Source events are skill-share events, with some similarity to free-form radio: The audience has a lot of input and influence on the radio, but that does not mean there is no programming.
Recently got a mail from Marek Tuszynski of Tactical Tech, a Dutch non-profit working to get NGOs to use free software. They've done a number of events in Africa, Asia, and Eastern Europe, trying to introduce local free software people to local NGOs. It's an interesting approach to development work, one that they do via intensive retreat-atmosphered "camp events".
"Camp events?" you say? The open-source meme has infected them to the degree that they wrote up a large-ish web site on replicating "source camp" events locally. There is a lot of practical event-management knowledge there; anyone who wants to create an immersive event would be well-advised to check it out.
Allow me to make a few free-association observations:
A disclaimer: I went to their Africa Source conference in Nambia, in 2004.
Meta: the hierarchy of their web site is good for navigation, but less good for reading. So for those of you interested in what they write about, you have to click-suffer a bit. It's probably worth it though. Still, a book would be better.
Holy shit! That's a lot of stock material. Yow.
Is it relevant to GUADEC, GNOME's largest conference: yes and no. Yes because successful conference organization is a black art of sensitivity, preparation, chance, and architecture. They have a lot of experience in this regard.
No because GNOME has an identity already. Although it is true that the organization is people more than a reductionist "big idea", there are current memes as to what GNOME is; the organizers' responsibility to create this idea is less.
Although e.g. Quim's "be a part of GNOME 3.0" slogan was an example of an "outside" organizer seeing and mobilizing possibilities. The people sensitive enough to arrange such an experience are very rarely those that actually hack the software.
One exception in the Africa Source case was the fellow that was the head facilitator of the conference, Allen Gunn of Aspiration. You wouldn't know he was an ex-Java hacker. Truly an amazing person, with a rare understanding of people. A number of sections of the Replication site speak about him.
I can't actually recall him giving an opinion on something relevant to the conference, which was astonishingly generous: normally someone who commands that much respect is expected to opine. Instead he created a space in which people could think and come to their own understandings.
Even with all this, I'm not a big fan of the whole NGO scene. Good people mostly, but misguided I think.
I suppose I have some issues I'm still dealing with: all the times that I and the rest of the country were literally trudging through the sand in Namibia, as the 4x4 Land Cruiser emblazoned with an NGO-logo tore by, fast on their way to somewhere important, only occupied by the driver and NGO agent. Those interactions, while very subjective, are indicative of the way that most organizations "help people". Good apples exist but the system does not select for them.
meanwhile, we fatten our calves
Luis records his law school perceptions, which I find very interesting. (Since I first wrote this he's written a bit more; exercise for the reader.) The fellow has a lot of human perspective.
However, a message from Persons With A Persnickety Appreciation of Language: Luis, please never mention the word blawger ever again. Thanks! Love PWAPAL ok.
And then who gets to review it for the Wall Street Journal, certainly not Mahmoud Omidsalar, but yet another neocon artist Azar Nafisi wannabe named Roya Hakakian who believes Dick Davis’ translation is not good enough. Dick Davis sneezes and there is more poetry and scholarship in it than in Roya Hakakian and seven generation of her parentage put together—and who died and made Roya Hakakian an authority either on Shahnameh or on its English translation?
Hamid Dabashi expounds adjectively in Lolita and beyond on ZNet. Enjoyable read if you're into that kind of thing.
Oh, the ongoing saga of Friday. I suppose if you're reading this, hoping to pick up some tips about video recording and streaming, my first advice would be to forget about streaming. I look at what the free electrons folks are doing, and am quiite jealous of their output.
The reason their output is better than what I have for guadec is threefold:
They capture to raw DV video, which is very easy to edit. The tradeoff is that it takes a lot of space, but that isn't so much of a problem these days.
They don't stream the video live, which decreases the combinatoric coordination clusterfuck that is live conference streaming.
They don't encode or process in realtime, which avoids the heavy and variable cost of theora encoding. Also the way that overlays are implemented in Flumotion right now is expensive.
So if you're looking to record video for something, record to DV, potentially even on a tape, and process it later. Very easy. Few things that can go wrong (sound, basically).
but guadec archives?
As a person who prides himself on the quality of his work, editing the GUADEC videos is depressing to the point of inaction-inducing. After a bit of diversionary LADSPA hacking this Friday I synced up with the videos that Jamie had been cutting, about four or five talks. Jeff Waugh gives his opening guadec presentation, walks off the stage and cleans up, and two minutes later he's still talking on the audio track as Maciej Katafiasz wanders in front of the camera in an empty room. Terrible! Doubly so, because I had a hand in the software that made those archives.
At first I thought I could just get away with synchronizing the beginnings of the talks, but some videos show worse disconts than that. So, in the end I ended up modifying my lossless ogg theora cutter to produce a stream resynchronizer:
Now it relies on an unreleased version of gst-plugins-base, but in time things will be fine. Anyway, now that I have a decent process, hopefully I can rope my coworkers into cutting with me one day, and we just knock out all of the videos. Then I can write once more about all of this to say it's finished and proceed to some other, any other phase of my life.
In the oft-listen department, may I mention Deee-lite and Oumou Sangare. Thank you.