Guadec 2010
August 5th, 2010Took me a while to find some time to write up about this year’s GUADEC. I’ve done a bit of a pause and it’s been a bit different to what I recall. The first thing that stroke me is that I didn’t recognize a lot of the young crowd. Being one of the oldest in the conference is both great and a little depressing. But I choose to focus on the part that GNOME is a healthy project attracting young developers.
Design is in
I also sensed an increased interest in design. No more were we approached to provide some bling in the form of icons (hi Christian). We had a nice session with people from Epiphany project about page flow and tab organisation, “appification” of web pages and general role of Epiphany in GNOME. I made way too many promises, sadly.
The enthusiasm for involving design people gives me some hope the UX advocates project has a chance.
Shell Yes
Jon made a fairly convincing point that we lack a polished user experience, but also need to make a convincing experience for application developers. He also suggested a marketplace should be part of GNOME, and not let to fragment on the distro side, forming a viable application ecosystem. Learning from Android, Moblin/Meego or WebOS has been a thought that resonated with the audience.
Jon allowed me to demo some transitions from the new reskin we worked on recently. We may have freaked some shell developers a bit, but it really hasn’t been a dramatic redesign it may have appeared so at first. The greatest part was that Florian later showed us about 60% of the changes proposed implemented. Love when that happens. We had a good discussion about how to address some behaviour, mainly window to workspace and launcher related drag and drop. Expect some visualisations of that.

Iterating the indicator for running applications. Final design on the right.

The same “spotlight” effect can be used for active system indicators.
You can follow all the design work as it happens in the gnome-shell-design module.
Cluttersmith
As always Pippin blew us away with some nifty demos of a visual design / prototyping tool built on top of clutter, Cluttersmith. Sadly it will be some time before we can taste the sweetness of rapid prototyping.

WM theme
I even got stuff done! Based on the work we did during the UX hackfest in London, and the pixmap based prototype Hylke has worked on, I’ve actually found time to start implementing the window manager theme. It’s currently not using any pixmaps at all, but there are some obstacles still ahead of us.

A much larger and important piece of the theming puzzle will be the widget theme (these need to work together).
There is a ton I have missed that I regret, mainly the design pattern focused new HIG BOF, but I have enjoyed this year’s Guadec a lot. So that was another Guadec a mythical Lapo Calamandrei didn’t attend. Maybe the next one. Thanks to all and the GNOME Foundation in particular.

So This Is What I’m Up To
July 1st, 2010Today was my first day at Red Hat. I spent most of it behind the steering wheel though.
This isn’t the most radical job switch you can think of. Big corporation with strong focus on open source with red and grey dominating its visual identity. Most of the 3rd party rpms I download work just as well on Fedora 13 as they do on openSUSE 11.2
So why the switch?
The amount of upstream work I’ve been able to do has been in steady decline in the past few years and I am hoping to reverse that trend. As a graphics designer I’m hoping to give GNOME 3 the attention it deserves, so I’m planning to get back to hitting some afterburners maintaining the gnome-icon-theme and focus on visual design of gnome-shell.
Part of that is tying the loose ends of the symbolic style. Write some basic use guidelines and provide full naming spec coverage for gnome-icon-theme-symbolic.
Do the same for widget and WM themes what we did for icons — create a basic set of usable defaults that distributions can build on top of rather than reinvent the wheel. Asset reuse and building on top of other people’s work is what differs us from the proprietary world. Branding doesn’t have to throw that benefit away. Why run the whole marathon when you can just sprint the last mile?
I obviously do plan to join the Fedora design team to help shape the Fedora brand. But I am most interested in working on upstream GNOME projects, creating the building bricks both Fedora and other Linux distributions can benefit from.
I am a strong believer in competition. Free software has matured. We need projects/apps that have specific vision rather than try to do everything for everybody. It is necessary there are competing free software projects as there is no one right way to solve a particular problem. But there is a ton that can be shared. I personally like to focus on those bits that we can share and build cross-company, cross-distribution communities. I hope the geekos don’t feel like this is a farewell, even if I may now be seen wearing an eccentric hat.
Leaving Novell
June 4th, 2010Today is my last day working for Novell. They say we shouldn’t focus on the past, but I do have to look back a little.
Novell has allowed me to take part in some really awesome projects. Going back to Ximian, I was lucky to be part of the Linux desktop revolution (this year will totally be the year!). I helped to shape the aesthetics of Novell Linux Desktop, SUSE Linux Enterprise, openSUSE and most importantly SUSE Studio.
I won’t forget Novell for making many opensource projects such as Evolution, Mono, F-Spot, Banshee, Tango and many others possible.
Some really good stuff is about to happen with Studio, but for obvious reasons can’t spoil it by telling you. Soon SUSE Meego will bring what I think is the best netbook ui design to a wider audience and the last openSUSE I was involved in, 11.2, will come out in just a few days.
I will also miss the upcoming hackweek, which is something I recommend to any company. People will do awesome things for you if you let them do their little pet project. I would never be brave enough to dive into type design if it wasn’t for hackweek.
As for what I’m up to, stay tuned for an upcoming entry
openSUSE 11.3
May 14th, 2010get openSUSE!
Symbolic Moment
May 1st, 2010![]()
It was almost 9 years ago when the first ever scalable icon theme Gorilla came to be. One of the things I imagined to happen soon after was that the icon theme would inherit the colors from the widget theme to really feel integrated. That part never happened. Until now. But this time it’s not for the default theme and not because of visual integration. In fact, with 2.30 we seemingly stepped back from SVG and started using bitmaps when we introduced the high resolution icons.
While we work hard on filling the gaps in the highly detailed, colorful gnome-icon-theme, on behalf of the gnome-art team I have proposed a new module for inclusion in GNOME, gnome-icon-theme-symbolic.
International symbol of marriage.
Unlike the default theme, the icons don’t scream with color and don’t become Times Square when few of them stay persistent on your panel. The simple symbols are mostly monochrome but in some cases they may include some color to emphasize importance. Unlike the Tango style or high contrast theme, the icons don’t include stroke tricks to make them legible on any background. Instead, the icons’ contrast is achieved the same way as it is done for text. The icons are simply rendered with the foreground color in the context of the widget where they are drawn in. Bastien has summed up the details of the implementation in his recent post.

The icon set isn’t an actual theme, it just extends gnome-icon-theme. It relies on the index.theme of gnome-icon-theme (or will). The reason why the icons live in a separate module is that we use a slightly different way to manage and “build” them. The complete theme lives in a single SVG plate (icons are outside of the canvas, try Inkscape). We then crop the plate into individual icons that are saved as plain SVGs (right after bug #419266 gets fixed that is
. Sadly we do that using Inkscape’s verbs so the process is dead slow and pops up Inkscape windows while you’re trying be productive. But still the benefit of having the whole theme on one canvas is worth some pain.
Gtk+ then doesn’t actually load the icons directly, but they are wrapped in a gtk+ generated xml container that includes a CSS stylesheet that overrides the colors.
Of course for future the simple style still opens up room to apply fancy renditions. Just by rendering the icon twice, we can get a small shadow for increased contrast. Similar technique, but inverted can be used to render insensitive state of a widget, etc. Another big area where these may prove extremely useful is accessibility. All of this can be done at runtime, no need to deal with two or more icon sets.

We discussed these “dynamic” icons years ago and it’s a really big moment for me to finally see this implemented. And I believe no other system does this. FOSS innovation FTW!
Big thanks to goes to Matthias Clasen and Bastien Nocera for making it happen!
Update: I realised after a while that for some reason recaptcha was broken on my site. Comments are working now again, sorry to those who lost time writing to /dev/null
Perfect Vacation Camera
March 21st, 2010I’m not a camera geek. I don’t enjoy talking specs. I don’t follow the latest gear. But recently I got another camera that refreshed my interest in photography.
I was really excited when I got the Nikon D70 back in the day. When they say a camera doesn’t make a better photographer it’s usually true, but I felt a visible improvement after I moved from the digital pocket cameras to the amateur DSLR world. I invested considerable cash and I was willing to learn a bit what I’m doing (one disadvantage of Free software is that people don’t feel the need to invest any effort to get familiar with a package when they got it so cheap and effortlessly).
The best camera is the one you have with you, and with the GF1 you get almost all the good from an SLR without the weight and sweaty back from a camera backpack. The controls are great (especially with the latest firmware which adds a few useful hacks), the response quick and the f1.7 20mm pancake lens is surprisingly versatile.
Obviously nothing’s black and white (pun intended) and there are some drawbacks. There’s no landscape/portrait sensor or image stabilisation on the body. The 2x crop factor is not a friend to us wide angle lovers. Although some wide angle options are shaping up (but not cheap). And for a camera that has face detection and recognition (that actually works and is useful with an f1.7 lens) I would have dreamed for a GPS module.
A friend thought I spoke about a new girlfriend when I mentioned GF[1]. I think it is, just don’t tell my wife.
UX Hackfest in London
February 28th, 2010Didn’t manage to write anything during the London UX hackfest as it felt more appropriate to steal some family time for that. Revitalizing, that’s what it was.
I haven’t had much time to focus on GNOME work lately. The people who made that work fun either moved on to other projects or suffered from the same lack of time. During the past week it was great to see many GNOMErs share the same design principles and being motivated to push things forward. My interest in gnome-shell shot up 1000% after talking to Jon & Jeremy.
The ever-cheerful thos walked me through the release process so I’ll be taking care of releasing gnome-icon-theme more often than we used to. 2.29.0 is out so people will finally start seeing the fruits of our long lasting labor.
The UI design sessions were awesome but we also got some visual design work done. I’ve talked to everyone about how necessary the widget-theme-color-aware symbolic icon style is and the reactions were overly positive. We’ve started on the essentials with Hylke and illustrated how these might fall in place for network manager for example:

We’ve also brainstormed some ideas for the window decoration and widget themes. Arstechnica has more details.
Big thanks to everyone making it happen. Check out the London set for more photos.
Escape Attempt #2
January 27th, 2010I’m actually so confident I’ll be home on WebOS that I already sold my iphone this time.
How to get your clips on the web
January 25th, 2010H264 has it all. Buy-in from the big content providers, compression ratio superiority, mobile device support, and support in all major video editing tools and operating systems. Many people seem to criticize Mozilla for being idealistic and not providing its users what “they want”.
Chris Blizzard wrote a great summary of why Mozilla isn’t endorsing h264 and herding its users into the patent holder’s stall with historic examples of GIF and mp3.
Big players might have their reasons to go with h264, but individual small publishers (aka blog posters, you & me) can already publish in this safer format (Currently both Firefox 3.5+ and Chrome 4 support Ogg Theora playback and Opera will). An observant reader might realize there’s quite a hole in this free argument as most of the content you’ll shoot, you’ll probably shoot on an AVCHD camera and thus will need an h264 decoder to eventually get to the free format. But who knows, maybe we’ll see some cheap Theora cams once the MPEG LA starts collecting form hardware vendors. Instead of drowning in this catch-22 I’ll give you a few practical tips on how to produce Ogg Theora video.
The multiplatform way to encode to ogg theora I found was vlc. Ironically most Linux distributions cannot legally distribute it as it contains all the other proprietary codecs to be useful. On openSUSE, you can grab it from the Packman repository. Another tool with similar limitations is ffmpeg2theora. VLC has the benefit of having a GUI for the conversion. But it does allow you to do this on the commandline:
vlc foo.avi --sout-theora-quality=5 --sout-vorbis-quality=1 \
--sout="#transcode{vcodec=theo,vb=800,scale=1,deinterlace=0,\
acodec=vorb,ab=128,channels=2,samplerate=44100}:standard{access=file,\
mux=ogg,dst='foo.ogv'}"
I would be thankful if a good soul would use the comment area here to provide a gstreamer pipeline to encode a file into ogg theora (extra hugs for a series of still images and audio muxing).
Update! Apart from getting that pipeline, I was pointed to what appears to be a nice no-nonsense OggTheora converter (does Schroedinger and vorbis as well) – OggConvert. Thanks!
On the Mac, I haven’t had much luck with the official Xiph quicktime components in the past. What worked for me was the Perian bundle. After installing the components to /Library/Quicktime/Components/ apps like iMovie are able to export to Ogg Theora.
How about MS Windows? Xiph provides direct show plugins for Theora. This should provide a system wide decoding and encoding. I can’t give any recommendations on converters, but I bet you can use Handbrake, which is also sweet on Linux & OS X.
HTML Embedding
So should you rip you DVD collection into Theora? Probably inefficient and impractical. Should you publish your videos in ogg theora as a primary format? Most definitely! So how to do that?
The primary way to embed a video stream is using HTML5’s video tag. This gives you a chance to control the video from javascript and provide means to fall back to other codecs. But let’s start with the basic markup:
<video width="640" height="480"> <source type="video/ogg" src="foo.ogg"> <!-- and a fallback for h264 --> <source type="video/mp4" src="foo.mp4"> </video>
Notice we already have the HTML5 supporting browsers covered. Now all the rest we cover with a Flash fallback. My suggestion is to use Flowplayer. I believe you can use the h264 mp4 stream directly with it, but if you want to support older flash plugins, you need to re-encode your clip to FLV (yay!). You can use ffmpeg and flvtool (to fix the metadata and index and allow flawless seeking).
Browsers unaware of the <video> tag will render the markup inside it (which is ignore by the HTML5 browsers). As this is a fallback, I went for a non-standard <embed> markup that is supported by more browsers, but you may stick with <object> to be more kosher. Additionally, IE6 does things its own way, so the markup ends up looking slightly ugly with the comment conditionals:
<video width="640" height="480">
<source type="video/ogg" src="foo.ogg">
<!-- and a fallback for h264 -->
<source type="video/mp4" src="foo.mp4">
<!-- and a fallback for flash9+ -->
<!--[if !IE]> <-->
<object type="application/x-shockwave-flash" data="flowplayer.swf" width="640" height="480">
<param name="movie" value="flowplayer.swf"></param>
<param name="wmode" value="transparent"></param>
<param name="allowfullscreen" value="true"></param>
<param name="flashvars" value='config={"clip":{"url":"http://yoursite/foo.flv"},"plugins":{"controls":{"time":false,"volume":false}}}'></param>
<!--> <![endif]-->
<embed width="640" height="480" type="application/x-shockwave-flash" src="/flowplayer.swf"
flashvars='config={"clip":{"url":"http://youriste/foo.flv"},"plugins":{"controls":{"time":false,"volume":false}}}'>
<!--[if !IE]> <-->
<!-- and a fallback for direct download -->
<h3>Oops!</h3>
<p>Sadly we weren't able to detect any plugins that would allow us to stream
the video to you. You can <a href="foo.mp4">download
the file</a< to watch it locally.</p>
<!--> <![endif]-->
</embed>
<!--[if !IE]> <-->
</object>
<!--> <![endif]-->
</video>
I hope this is a useful introduction on how to put your videos on the web. Feel free to correct me in the comments or give some more tips for everyone!
Update – Added OggConvert to the encoding section.






