Tuesday, 30 September 2008

X being unstable in F9?

Dear lazy web, I just hit a strange bug again that I know not at all how to handle. My screen just went all "broken" - some sort of black/purple/I-don't-remember-the-other-colours pattern was displayed there - meaning the X was dead. I knew that something's wrong because it hasn't happened for the first time and in the past I was more patient and tried to do something with that state. If I wait, X restarts but goes wrong again and this repeats several times until it stays in the broken state. The only thing I can do is to turn the computer off by hitting the power button which inhibits correct turn off of the computer - meaning the kernel is still accepting messages and working but the broken X block every keyboard input. If I recall correctly, I can still see and move the mouse pointer.

This happens really scarce, so scarce I don't remember what I was doing when it happened last time, but this time it happened when I tried to switch tabs in firefox and I have a feeling it happened in a similar situation before, but I don't remember. So in case this happens again, next time I can check with this post if the situation is same...

And until then, can someone directs me what to do? I tried looking in XOrg.log and /var/log/messages but there does not seem to be anything indicating the problem. I don't know what's causing it, where the bug is, how to triage it. Does anyone have similar experience or even better already know about a bug that's causing this? Or know where else can I look to for more info? I'd appreciate any input.

I have an intel video card and appart from having metacity 2.23.21 pulled from rawhide with compositing turned on I have pretty much ordinary, up-to-date F9 environment...

UPDATE: As per mcepl's suggestion, I've filled a bug against xserver. Hope it helps. If you suffer similar issue, leave your comments and logs there.

Monday, 29 September 2008

I've fell in love...

...with Ruby.

Yeah, I am neither proffesional nor studied programmer, but I like coding from time to time. I've learnt Pascal (Turbo Pascal implementation) and Delphi during my basic and high school studies and FreePascal and basics of C in my first year on University (we had a Programming for Physics classes). Then I switched to C completely as I started working on gtk-nodoka-engine and I love it, and even though I have basics in C++, I like C more. But lately a rather unexpected competitor came into my view - Ruby. Up until recently it was a hit-and-miss and frantical searching in documentation to get things done (I decided to make the echo-artist scripts in Ruby, since the code I based it off was already in Ruby), but now I decided to learn it properly and the more I read, the more I like it.

It's really a great programming language and truly Object Oriented one (unlike various "object oriented" hacks/workarounds/whatever of C, like Objective C or C++). You know it's great that everything is an object so you can easily do things like
100.times {puts 'I like Ruby!'} (prints "I like Ruby!" hundred times),
['Peter', 'Martin', 'Nicu'].each {|name| puts "Hi #{name}!"} (welcomes Peter, Martin and Nicu) or
1.upto(200) {|num| printf "Try #%05d\n", num} (if you know C you'll get what this does).
And I am just at the begining still...

And one usual rant at the end. Again I updated xulrunner and again epiphany started eating CPU... So I am again temporarily using WebKit backend in ephy... I hope WebKit-gtk gets the still missing functionality I need implemented soon so that I could get rid of gecko in my browser for good... (Yes, I've already gave up on gecko, but for WebKit I try my best with filling bugs I notice and RFEs). And of course, this post was also written from ephy with webkit backend.

Monday, 15 September 2008

Batch of new mail-* Echo icon

There is a lot icons we need to create for Fedora 10. So we started to make them.

Today I've finished creating all the mail-* icons (both for Actions and Status context). Some of there were previously missing others had inconsistent various size variants and many missing size variants. So I reworked them all in one batch. It's been a lot of work, since it's a lot of icons and not all of them are perfect, but they can be improved later, when/if needed.

It's total of eleven Action icons and six Status icons, so I created two animated GIFs for preview purposes.

Since there is a lot of work to do still, we're constantly looking for new contributors. The only requirements are some basic skill in inkscape and willingness to invest your spare time into making Echo icons. If you are interested, drop us a mail in the fedora-art-list.

There is not much you need to know to get started. These are the most important things you need to have in mind when creating an echo icon ("sorted" as they came up to my mind):

  • We have our own colour palette which you should use in inkscape

  • We use darker contrastive borders compared to lighter fills. This helps defining the icon shape

  • We use three different projections (incorrectly called perspectives in the Guidelines). On the Table for 32x32 and bigger Action icons, Isometric (actually some kind of axonometric) for other contexts for 22x22 and bigger sizes and Flat (plain 2D) for the rest (you can see all the mentioned perspectives in the above icons). Look into Perspective Guidelines for definitions.

  • Brightest spots of fills are on top of objects and little to the right

  • We use simple shadows for all sizes sans 16x16

  • We prefer gradients to highlights/reflections

Sunday, 14 September 2008

Allowing Anonymous Comments

I was asked on #fedora-art to allow anonymous comments on my blog. Previously I allowed only google accounts and openid so it's understandable that some people who'd like to comment could not because they have neither. I am a little bit afraid that allowing anonymous comments will result in spam hitting my blog, but I don't want to moderate eihter (since I can moderate only all posts or none).

After a brief thinking I decided I'll put anonymous comments on probe and enabled them. If it works well, I'll leave it at that, if not I'll disable them again.

What are your experiences with anonymous comments? Do you allow them?

Friday, 12 September 2008

GStreamer is the future?

Hi, with today's news I though I'd share some sentiments I have about the future (and partly present) of multimedia (meaning only video and audio in this post) in linux.

First take a look of what we have now. We have two major libraries written to do the job and another two players doing the same, but with their own libraries integrated. I am talking about gstreamer, xine-lib, mplayer and vlc.

Let me state I was originally a huge fan of xine-lib but during some of the recent Fedoras (namely Werewolf and Sulphur) I slowly dissolved from it for various reasons I explain later. During the same time I became a frequent user of gstreaer and mplayer. I haven't ever been a fan of vlc and I don't like it's ui, but that's not what I'd like to talk about in this post.

So, with linux expanding to desktop machines we need to have also some good way of playing various multimedia ranging from youtube videos through full HD mpeg4-AVC/h264 to our favourite songs in mp3. Or we'd like to share our screencasts in theora, back-up favourite recordings saved in FLAC or burn an audio CD out of our vorbis encoded music collection. And to add to this lot something more - there are zillions of various containers from aging AVI, through "home-made" OGG or playstation 3 compatible MP4 to modern "I can do anything" matroska.

To be able to keep up with the world we need a solid framework that has good enough code, and is easilly expandable to contain new codecs. That's where mplayer or vlc fail - you cannot build up a serious app using their libraries (since they are shipped together with the player), you can just wrap up the player into nicer gui. Also the pace of adoption of new codecs is rather slow (as I'll explain later on some examples).

This is where gstreamer and xine-lib comes. Xine-lib is pretty interesting library, since it has similar capabilities to mplayer it's one of the "great three" of linux video players - mplayer, vlc and xine (which is official frontend to xine-lib). It has great amount of configurability, which makes it more geek-friendly, but everything has it's buts. The design of the library is not that great, as can be proved how much time it took before it could be reasonably split to free and nonfree (patented stuff) version, also it seems not be able to "keep pace" with the age (it took far too long before they get good enough pulseaudio audio output working), it seems to be more susceptible to crashes than gstreamer or mplayer and does not seem to be good on hardware (seem to need more power to play videos).

That, and the continual (and rather fast) improvement of gstreamer drove me away from xine-lib based applications (though I still keep gxine around, partly because I maintain gxine package for fedora). And why gstreamer? You *could* say it's rubbish, but cannot anymore. Yes, back in Fedora 6 it was the half-working default (implemented in totem). That it wasn't "good enough" was proved by most of users switching totem to xine-lib backend, installing xine, gxine or kaffeine, or going the mplayer/vlc way. Not anymore. Over the past few releases it wastly improved no only thanks to it's plugins system.

In gstreamer (as my understanding of the basics is) you have the basic framework and a lots of separately installable plugins (though batched together in logical packs) which can make it rock. Most likely you'll have installed only the base and good plugins which covers almost everything in the FLOSS codecs, containers, ... world. In addition to that, to be able to play more widely used content, you need to install bad and ugly plugins, or perhaps the ffmpeg plugin (ffmpeg is library for decoding/encoding using of the MPEG codecs and more). That makes the framework more robust, more configurable and also easiest to implement new codecs to.

One of the examples where you can find only a limited number of players being able to play it THEORA video in Matroska container. It's perfectly correct usage, adhers to both THEORA and Matroska specifications, but behold - xine-lib based players cannot play it, vlc cannot play it. And "rare combination" excuse does not stand a chance. It's working flawlessly with mplayer, it's working flawlessly with gstreamer - that's two working implementations already. GStreamer can even both encode theora video to matroska container and read it afterwards, mplayer (resp. mencoder) wasn't capable of muxing matroska last time I checked.

Now another example is adopting of brand new and partly "scientific research" codecs like Dirac or Schroedinger. Did you know that the only way how to encode video using schroedinger codec with fedora is using gstreamer? Did you know that the only way how to play Dirac/Schroedinger videos, be it either in OGG or Matroska, is to use gstreamer? Yes, there are patches for mplayer, xine-lib, ... but they're not in. Why? Because it's a patch and that means modifying source code and it needs to be accepted by the developers of xine-lib, resp. mplayer, first. In gstreamer though, the only thing you need to do is write a plugin - that means you do not need to wait till your code is accepted, it does not need to be, because it's standalone. It can be published and installed separately. And that is a great advantage.

And to add more fuel to the gstreamer camp, it seems there will be a way, thanks to gstreamer being plugin-ready, RPM being able to know what plugin handles what, PackageKit being able to install and depsolve all the needed plugins and plugin (yet-to-be-written) being able to tell PackageKit that gstreamer needs plugin to handle this or that, and given you have all necessary repositories installed (in Fedora case it's most likely livna, or rpmfusion in the future); the installation of codecs will be completely automatic. GStreamer sends a request to PackageKit to install missing plugin (more exactly to install something that provides the necessary functionality), PackageKit hopefully finds it in the repos (thanks to RPM being able to provide information about what content the plugin handles), resolve all the needed dependencies and tada - you can play the video.

I just can't wait to see this in actions!

The only thing that still keeps mplayer on my machine is its support for SSA/ASS styled subs. Not only it can parse it, but it can also render the advanced styling correctly. I wonder if there is a RFE for this in gstreamer bugzilla already, or whether I should move my butt and file one :-D

PS: I am too lazy to add references this time (partly due to me being ill), so use google to find what you'd like to read more about, e.g. googling for "dirac video" gives you on the first hit the homepage of the Dirac and Schroedinger codecs.

Echo - New package releases, first echo-add-icon script bug

Luya just hit first echo-add-icon script bug - it adds incorrect file references in the build scripts if the folder is empty (sans Makefile.am) before the commit (in this case it added system-root-password.svg.png to 256x256/status Makefile.am). I fixed the commit as well as the bug in echo-artist script.

New releases

echo-icon-theme-0.3.3 (built for F-8 and F-9)
latest git snapshot built for Rawhide
echo-artist-0.1.1 (built for F-8, F-9 and Rawhide)

Please update the echo-artist package as soon possible (even though the
chances of hitting the aforementioned bug are rather small).

Also, for the F-8/F-9 packages - please test them and post your results to Bodhi (the fedora update system, it's referenced above for the releases).

Thursday, 11 September 2008

Fedora 10 Artwork

OK, it's around Beta Freeze and as usual we need some feedback for the artwork that's gonna be in Fedora 10. I'll start with Echo icons and follow to the traditional release-dependent things (wallpapers, etc).

Echo Icon Theme

As some of you already knows, echo-icon-theme has been approved as Fedora 10 Feature under the condition that we achieve good enough coverage. First we need to know *what* exactly is good-enough coverage, especially given that the current default has lot of gaps too... The consensus seem to be that we need to cover about the same icons as the current default on the Desktop Live Spin. So, I booted F9 Live and examined which icons are needed. I came up with this list [1]. Based on this list, I counted that the current coverage of what we need to have done for F10 is about 89 %.

Prior to that we focused our efforts at filling the Gnome Menu Bar. We have pretty good coverage of the first level menus and just ending with coverage of second level menus in the System menu. The improvement in System->Administration is vast, since there were about three or four different icon sets used and many of the icons were blurry...

Join Us!

We still need to create about 35 new icons for Fedora 10 and many more after then, also there are lots of icons that might profit from refinement/rework and icons that have missing various sizes. But there are only 2 people actively working on Echo currently which basicaly means we are overwhelmed by work. Therefore it would be great if more people joined the efforts. Creating an icon isn't that much hard. To get started you just need basic skills with inkscape, we'll help you with the rest.

If you are interested to join, pick up some icon to create/modify, tell us (one the fedora-art-list) that you are interested in it and start working on it following the guidelines [2] and first step of the Adding New Icon Set how-to [3]. After you are done send us a notice on the art-list and work with us on further improvements (if we have some suggestions). Once we accept the icon, we'll tell you what to do next :)

F10 Themes

Yesterday I've created, imported and built the themes that made it to Round 3. Install them by
yum --enablerepo=rawhide install gears-backgrounds invinxble-backgrounds neon-backgrounds solar-backgrounds, select them in your wallpaper preferences and give us some feedback on the art list. We still haven't decided which one will be in F10 final, so your opinion might help us decide :)

The candidates are:

Gears [4]

InvinXble [5]

Neon [6]

Solar [7]


[1] https://fedorahosted.org/echo-icon-theme/wiki/ToDo/BaseSet
[2] https://fedorahosted.org/echo-icon-theme/wiki/Guidelines
[3] https://fedorahosted.org/echo-icon-theme/wiki/AddingNewIconSet
[4] https://fedoraproject.org/wiki/Artwork/F10Themes/Gears
[5] https://fedoraproject.org/wiki/Artwork/F10Themes/InvinXble
[6] https://fedoraproject.org/wiki/Artwork/F10Themes/Neon
[7] https://fedoraproject.org/wiki/Artwork/F10Themes/Solar

Wednesday, 10 September 2008

Primary selection/clipboard support landed in WebKit-gtk

You know the cool feature in linux that you can just select text to add it to clipboard and the middle-click somewhere to paste it? Well, the first part (select to add to clipboard) just landed in webkit. Cool, after proper font fall-back (though only for freetype backend) this is another thing I was itching to have working :-D Kudos to Alp Toker who seems to do most of the work on GTK port of WebKit I benefit from (i.e. he's fixing bugs I care most about) :-) For those interested, here's the bug report which will be closed only after also paste on middle click is in:


I'll be sure to build new WebKit package with this fix as soon as possible.

Fast Package Review for F10 Themes needed


As per request from Mo I've packaged Round 3 themes for Fedora. The most finished one is Solar, so it has the traditional 4:3 and 16:9 wallpaper with daylight changes, Gears have two different wide-screen wallpapers, InvinXble has one wide-screen wallpaper and Neon has one 4:3 wallpaper. In order to get it to F10 beta, we need to have it in repos as soon as possible, thus request for fast review:


Update 1: Spot has just reviewed the packages (my thanks goes to him), so now I'm waiting for the CVS Admin procedure to be done.

Update 2: Warren and Tibbs have just done the CVS admin procedure (my thanks goes to them), and the packages are already built.


Tuesday, 9 September 2008

Some WebKit news

Ok, with the recent talks about brand new browser by Google, I think I can post some "status-update" on the state of WebKit-gtk. Why? Because google chrome uses WebKit as its rendering engine - and that's very good news. With Google being directly interested in WebKit development we could say that bright future awaits. Google uses it, QT4.4 has it in, now we only need to implement it in gnome.

Among various speed and stability improvements there is one big news for me (at least) in the WebKit bugzilla. Patch [1] for correct font fallback (so far only for freetype backend) for the gtk port of WebKit [2]. I've built a RPM package [3] with this patch included and the result is great - I can finally read Japanese with WebKit.

One of the worse news is that it seems Epiphany 2.24 will still use gecko, well, what can I say... Take your time and do it right and I'll be happy to wait (and test and report bugs) :-p

[1] https://bugs.webkit.org/attachment.cgi?id=23155&action=view
[2] https://bugs.webkit.org/show_bug.cgi?id=16792
[3] http://mso.fedorapeople.org/packages/RPMS/i386/WebKit-gtk-1.0.2-0.15.svn35913.fc9.i386.rpm

Sunday, 7 September 2008

Making High Quality Screencasts

Ok, I think I have finally figured a good way how to make high quality screencasts. So I'll write here about it here, both so that I have a place to look to when I forgot and for my readers ;-)

Needed Software (Package Names)

subtitleeditor (or any other subtitle editor)

All the software is available in Fedora.

Recording the screencast

First, it's good to prepare what you are going to show so that you can record the screencast in one go. When you have decided what are you gonna show and how, open Applications -> Sound & Video -> gtk-recordMyDesktop. In the opened window you see a preview of your desktop in which you can select the area of the desktop you are going to record. If you are going to record just one application it might be useful to let it select the are for you by selecting a window you are going to record.

Set Video Quality to 100 (you want to record the screencast in highest possible quality, don't you) and if you don't want to record sound (which I do not) uncheck the check box to the left of Sound Quality. By clicking Save As you can select which the filename (and directory) to which the screencast will be saved.

Now, when you set everything, hide the window either by clicking ctrl+H or right-clicking on "record" icon in your notify are and selecting hide. Then you can start recording by left-clicking the record icon in your notify are. The icon will change to "stop". When recording, when you right-click on it the recording will pause (and the icon will change to "pause"), when you right-click on it once more it will resume. When you'll left-click on it the recording will stop and encoding (unless you encode on the fly, which can be set in settings) will start.

Once the encoding is finished you can close the gtk-recordMyDesktop and extract usefull data from it (since the .ogv file generated by it contains some skeleton track it renders it almost impossible to work with). We'll do that using oggSplit. Just open terminal, navigate to the directory you have the .ogv file in and run oggSplit <filename>.ogv. It will extract the video (and audio) track(s) into usable files. The file with video track will be named theora_*.ogg. Rename it to your liking.

Creating Subtitle Commentary

Now it's time to create subtitle commentary. You can do it with your favourite subtitle editor, the one I chose is subtitleeditor. I'll not delve into how can you create subtitles because it's pretty straightforward. Just bear in mind that you need the subtitles kept on the screen long enough so that the readers will be able to read them and they should better explain what is happening in the screencast.

Creating the subtitle commentary is good practice mostly because:

  • Deaf people can read it

  • It's easier to translate than spoken word

  • Text does not have "strange whatever accent"

Combining Things Together

Now the most important thing is to put things together in one file. Open Applications -> Sound & Video -> mkvmerge GUI. You'll probably need only the Input tabs but if you are creating some more sophisticated/long screencast the other tabs might come handy too. First add all source files (the ogg file with video, the file(s) with subtitle(s), file with audio, ...) - just click on Add and add anything you want.

In General Track Options you can set for each track various settings. For audio and subtitle tracks it is good practice to select a language it is in. It is also not a bad idea to add Track name to each track.

Finaly set output filename (ending with .mkv) and hit Start muxing and you are done.

Adding Translation

The very same way you put the things together in the previous step, you can also add other tracks to already finished Matroska file. But, in case you'd like to add new subtitle translation you'll probably need one of the subtitle file in the screencast first so that you won't have to do it all from the start.

First open Applications -> Sound & Video -> mkvinfo. In it open the screencast Matroska file you'd like to translate and look for tracks. If the Matroska file has subtitle track, then sooner or later you'll find a track which will have Track type: subtitles at ... See whats Track number of that track. Suppose it's 2. Now open terminal and run mkvextract tracks <filename>.mkv 2:<subtitle-filename>. It might look like this:

$ mkvextract tracks echo-add-new-icon.mkv 2:echo-add-new-icon.ass
Extracting track 2 with the CodecID 'S_TEXT/ASS' to the file 'echo-add-new-icon.ass'. Container format: SSA/ASS text subtitles
progress: 100%

Now translate the subtitles using your favourite subtitle editor save them into some file and add it to the original screencast using mkvmerge GUI tool.

Some Screencasts Created This Way

Originally I researched how to do high quality screencasts because I needed to create screencasts accompanying various Echo tutorials.

Here are some:


recordMyDesktop Homepage
oggvideotools Homepage
mkvtoolnix Homepage
Matroska Homepage
Theora Homepage
New high-quality totaly open (as in freedom) video compression format Dirac and its Schrodinger implementation (available in Fedora repositories)
Wikipedia article about Matroska container, OGG container, Theora video, Free Lossless Audio Codec (FLAC), Vorbis audio, Dirac/Schrodinger video.

Friday, 5 September 2008

I'm going to FUDCon

Tomorrow (at Saturday) I am going to FUDCon in Brno. I just found my connection to there and it seems I'll be able to be there around 9:30 CEST (UTC+2), supposing that train won't be delayed with is nearly impossible with Czech Railways... Since the connection isn't best, I'll need to skip the social event (or join for only a little while) since last train that can get me home leaves at 20:23 CEST :-(

Anyway, we'll probably keep a session with Nicu about Fedora Art (F10 Themes, Echo, Nodoka, ...) so if you are interested, come to talk with us :-)

Monday, 1 September 2008

Echo Monthly News - Issue 1

The echo-icon-theme development team just officially released its first
Echo Monthly News Issue. In this release we cover these sections:

  1. New Icons
  2. "Huge" icons - 256x256
  3. One Canvas Work-Flow
  4. Automating the secondary jobs
  5. Echo for Fedora 10?
  6. Future plans
  7. Request for feedback

Since it's our first release it is not perfect and therefore we will
appreciate any feedback, suggestions for improvement, etc. at the
fedora-art-list and #fedora-art at irc.freenode.net :-)

Or you can add comments here, in my blog ;-)