Pleasantly surpised we made it into the great LWN
For the last few weeks my spare cycles have been mostly spent on the Guacamayo Project; this is something that myself and Ross have been toying with for a while, and it’s probably time to say a bit about it.
In a gist Guacamayo is a specialised Linux distribution for networked multimedia devices; I say specialised, because the aim is not to produce yet another rehashed desktop distro with a bit of multimedia functionality on the side, but a system built from ground up for a pure multimedia experience.
The clearly defined focus allows us to do one thing in particular: we can ditch the traditional Linux desktop! The Guacamayo aim is to provide an intuitive gateway into a multi media world; the traditional desktop metaphor made up of workspaces, applications, documents and no end of toolbars and menus does nothing but stand in the way. Considering most of us have to put up with that sort of mess during working hours, I think we deserve better when it’s time to chill out.
Ditching the traditional Linux desktop has some other inherent benefits; we can forget about legacy technologies, not least the venerable X11 windowing system, and instead choose what makes best sense for creating that sort of user experience we are after.
So what are we doing:
- Distro based on Yocto; this was an obvious choice. Guacamayo targets multiple hardware architectures, so a proven cross-compilation environment is a must, plus Yocto makes crafting a carefully defined distro from scratch if not an easy, then a practical possibility,
- UPnP integration provided by rygel,
- PulseAudio for the sound,
- GStreamer as the core medial framework,
- Shell based on OpenGL, provided by MediaExplorer, aka MEX. Like Yocto, this has been an obvious choice, since MEX provides a really cool, modern, intuitive interface.
Supported HW? We are not focusing on any HW in particular. Our aim is to create a distro that could be used on a broad variety of suitable HW. The current development is done using the Zotac zbox (Intel Atom) and the Beagleboard (Arm Cortex A8), and we fully intend to support Raspberry PI (eagerly awaiting HW).
We did our first release code named ‘See No Evil, Hear All You Want!’, aka 0.2, last week. As the name suggests, this is a limited functionality audio-only release, to get folk interested to come along and start testing and contributing. The next stable release is planed to include MEX running under X11, as a stepping stone toward a pure OpenGL system beyond that.
If you are interested, the source is here, you can drop by #guacamayo on Freenode, or follow @MetaGuacamayo on Twitter.
So finally Intel admits what anyone with anything more than superficial knowledge of the platform knew for a long time — MeeGo is dead. I am not surprised at all, I have always expected that MeeGo would not live to see its second birthday, but the waste of human effort is dispiriting.
I am not holding my breath for Tizen either, there is a definitive leitmotif here that yet another change of name cannot but accentuate (HTML5 is all good and well, but there is heck lot more to creating a usable platform for a single device category, never mind multiple categories at once, and MeeGo did not get even near). I suspect the success of Tizen will largely come down to what Intel’s partners can bring to the table, but the very fact none of them want to give it a go alone leaves me feeling skeptical — I would not be at all surprised if we get Episode 4, or, more likely, the final curtain, within 18 months.
Yesterday was my last working day at Intel, I am moving on.
It all started with Moblin, a great project with big aspirations, radical vision and huge potential to redefine the computing experience for the current decade. Though our aspirations were not to come to fruition, I take great pride in being part of that seminal effort, and, by extension, I take pride in the technologies our work inspired (notably the Gnome Shell). When Intel abandoned Moblin for MeeGo, it was only a question of time when Me Go too, for from the very start MeeGo failed to inspire me, to capture my imagination and to feed my dreams.
What it comes down to: my idealistic A-type soul values adventure over status quo, challenge over safe harbour, freedom over process. As my fellow travellers will know, there comes a point when one can no longer ignore the soul.
What’s next? A good question, but one I am in no great hurry to answer. More than anything at this point I need time to think free of corporate constraints and the expressive limits of a slide deck presentation, I need a space to start dreaming again of something other than dreaming again.
Adventure is never without a price; mine means leaving behind some truly great folk I have grown to know, trust and respect immensely over the last five and half years. My one consolation is that FOSS being what it is, I am not really going anywhere, and neither are they; it’s just an email address that became defunct.
P.S. I have tried to make sure that the defunct email will not disrupt the world-changing mailing list out there, but if I have forgotten about some low traffic list where nothing ever happens … I guess no real harm done
I was doing some benchmarking of Mutter in the last couple of days, and I am delighted to say that Mutter now beats Compiz in that most important of all compositor benchmarks, glxgears, by about 3%! Perhaps more importantly, it manages to sustain 60fps refresh rate when madly moving windows around, which is a more relevant real world test. Arguably, Mutter has now become the best compositing WM out there — kudos to the GnomeShell and Clutter guys who made it happen.
(Makes the Ubuntu decision to switch Unity to Compiz somewhat amusing, I think … o’ yea of little faith.)
I spend far too much time inside window managers than can be good for anybody’s mental health; among those I blame for my ticks is the myriad of application developers who create non-transient (i.e., parentless) dialogues. This usually involves passing NULL into APIs like gtk_dialog_new_with_buttons() (pure laziness) or not calling gtk_window_set_transient_for() when creating dialogues with gtk_dialog_new() (carelessness bordering on disregard for human life). My advice on this matter to anybody concerned would be:
- If you are ever considering creating a parentless dialogue, go and ask someone to slap you hard in the face; then review your decision,
- If you still feel like creating a parentless dialogue, go back and ask the person to stop pulling their punches (they either have a crush on you, or would benefit from a subscription to a gym),
- If you still feel like creating a parentless dialogue, consider working on the kernel, device drivers, or some such (that too can be a valid contribution to humanity, you know).
Non-transient dialogue means that the semantic scope of your dialogue is the whole system, rather than your application; this is virtually never appropriate!
Add modality into the mix, and it becomes positively volatile; by marking a dialogue modal, you are saying to the window manager that the user is not allowed to interact with anything in the semantic scope the dialogue belongs to until that dialogue goes away. So, there is only one application developer in the whole world who has a legitimate reason to create a dialogue that is both non-transient and modal; that guy is working on the POTUS nuclear missile launch app. Therefore, the next time you are considering creating a system-modal dialogue, ask yourself this question: AM I THE GUY? (BTW, if the answer is yes, please, please, make sure that the ‘Yes’ button does not have the default focus! Not even the window manager can save us on this one.)
Actually, I blame Gtk+ for my neurosis. gtk_dialog_new() should take a parent parameter, and, together with its mutations, should abort if that parameter is NULL (just after instigating a hate mail campaign against the author — I KNOW WHO YOU ARE! I know all about
For the one legitimate case above, there should be a special API:
gtk_dialog_new_without_parent_RSI_is_the_least_of_your_worries_my_friend__if_you_see this_function_in_the_wild_without_a_convincing_comment_why_it_is_used_act_NOW the_future_of_the_human_race_depends_on_you().
Here, after all the years of bottling this up, I finally said it. And I did not hit anyone. Or break anything. My therapist will be SOO pleased this week.
For my friends who never tire of inviting me to join up, this is why I keep giving you the cold shoulder.
We are running an election to see which of the following characters are most important to you on Maemo: $ % & ( ) < = > _ | ~ £ €
This is a difficult question indeed; I must admit I have certain partiality for the £ but these days I should perhaps prefer the €, even if € < £ (€ > £ , banish the thought, $ = £ God help us all). I could _ not _ possibly live without %, since I have to borrow at least some of the $, £ & €. My day job relies on the |, and no day job ~ no £. But you can have the \, I could not care less about that one,