Monday 7 December 2009

Yum-presto + University internet connection isn't a very good combo

Well, yum-presto is all cool and awesome and all, but with the lzma compression in F12 it's rather slow with rebuilding the rpms... Which means that with internet connection that can be found on many universities (up to about 10~11 MB/s when downloading from fast mirror) it's slowing the package download considerably. Here're the data from today's update.
<delta rebuild> | 79 MB 04:02
Presto reduced the update size by 65% (from 79 M to 28 M).
Package(s) data still to download: 136 M
Total 4.5 MB/s | 136 MB 00:30


Now, I wonder whether I should keep it or remove it (as half of time I use slow connection and the other half fast connection)...

Monday 30 November 2009

YouTube and HTML5

So, I've noticed there's a html5 testing page on youtube. It won't work in gecko based browsers (it's not ogg theora) but it works on fully updated fedora 12 using a webkitgtk based browser (e.g. midori or epiphany; chromium builds still don't support video tag and I don't know anything about the webkit version in qt). The difference is great. Although not everything works as with Flash based youtube, some basic functions like pausing, seeking and such are already working smooth. And what's best is that the implementation is fully opensource (sans usage of patent encumbered codecs), does not crash as often (maybe does not crash at all, but I haven't done any rigorous testing) as adobe flash does and eats about half of the CPU compared to flash and nothing in paused state (while flash still eats CPU even when the youtube video is paused). I just hope the implementations will keep going forward an will make it's way away from just one testing video to full implementation.

The HTML5 enabled video (i.e. you don't need any browser plugins enabled, but you'll need some gstreamer stuff from rpmfusion [gst-ffmpeg] if you're using webkitgtk): http://www.youtube.com/html5

and the same video using flash: http://www.youtube.com/watch?v=uofWfXOzX-g

Very quick update: I've just noticed that when you hover over the video previews in the columns on the right side of the page, the hovered video will play in fast speed. Neat.

And another quick update: Right-click on the video and you can download it! I cannot wait for the day this will be the youtube.

Wednesday 28 October 2009

Answer to: Why is my design blurry?

Short answer – unlike paper, display is a discrete medium.

Long answer, bellow.

When you prepare designs that will be printed, or when you are painting on paper, you usually do not have to care about some "pixel" grid. Thanks to the small size of dots when printing or the small size of paint particles when painting, you don't have to worry about fitting them in a grid, either because there is no grid at all or because the particles are much smaller than an eye could discern. On the other hand, displays have rather big grids, with resolution usually about 100 dpi, which means there are 100 particles per inch. You can easily imagine that with such small resolution, people with good eyes easily notice when something is not aligned to this grid, or isn't smoothed (we call it antialiasing).

For inkscape, cairo and other similar libraries and applications we can visualize the pixel grid like this:

The black lines represent coordinates used by cairo, inscape, ... while the squares inbetween are the actual pixels. Now imagine you'd like to draw a blue rectangle on (1,1) with width = 6 and height = 4. If you pass these numbers as its coordinates it will look like this:

This is fine, as the rectangle nicely fits into the grid. Such a rectangle would look crisp if displayed in 1:1

Now, if you decide to draw it with 1px wide border at the same coordinates with the same dimensions, how it will look like? Will the border be drawn outside the original rectangle or inside it? Neither is correct:

As you can probably guess, this will look blurry as the border ended up in between the pixels and thus is misaligned. You can correct this by shifting the position by 0.5px and making the dimensions smaller by twice the value:

If you now compare the two cases in original size, I think anyone can see (at least with the help of magnifier) the difference:


This work very similar for other shapes as well. It's important to bear in mind that the imaginary line in terms of coordinates marks the boundary of fills but the center of borders and that the grid lines are inbetween the pixels. You have to position your drawings appropriately in order to look crisp.

But what about fonts? See my previous post to see the main problem with them. Sadly inkscape does not offer better smoothing than greyscale for fonts, so you have to either use gimp, or align each letter manually (tedious).

Monday 26 October 2009

Mark the difference (ugly fonts in Fedora?)

So, in my previous post there started appearing discussion about fonts antialiasing. So I though it would be better to spin off this discussion in a post of it's on, installed freetype-freeworld (which improved drastically fonts in chromium, but did nothing with gtk), fired up gimp and created this (click on the image to see it in its original size if it looks blurry):

The first line is no antialiasing, no hinting, the second one is antialiasing only, the third one is antialiasing+hinting and last one is antialiasing+hinting with forced autohinter. Looks like no hinting or autohinter is what can be achieved without installing the package from rpmfusion, while the third line needs the package with patented stuff in. Apparently, no antialiasing isn't a solution – we're not living in stone age, antialiasing without hinting is blurry and autohinter works good only for small sizes, on the other hand, the hinting without autohinter breaks on simple japanese… Make your own image about what's best.

And as a bonus: hinting without autohinter in chromium


autohinter in midori


Dunno how you, but I see the autohinter as best working for me.

Saturday 24 October 2009

Gnome-shell…

… or the Adventures of an Advanced User in a Wonderland. So, yesterday, more than 24 hours ago, I've turned on gnome-shell (in F12) with the intention to try work with it and prepared pencil and paper with the intention to scribe down what's good and what's bad on it. And now the paper (approx A5) is full of what's bad and only one note of which I'm unsure whether it's good or bad. That basically means that I either hope that this experiment will drastically improve before it will be made default in gnome, or will depart to the nether world.

To easier grasp how my usual workflow looks like here's the screenshot:

As I use my laptop for multiple purposes I have, after years of improving, ended up with tasks driven desktop sorting – one desktop for school/physics stuff, one desktop for graphics design, one desktop for programming, one desktop for web browsing, one desktop for various background things like mail client, music player, gajim, xchat and one desktop for the rest (e.g. for playing a movie). This very roughly correlates with the activities in gnome-shell so one would think I find this part of gnome-shell an improvement. Sadly the number of activities always reset to one on log-in and the desktops aren't sorted in the keyboard switcher (ctrl-alt-arrow) the same way as they look when zoomed out.

Plus, I don't have anywhere the small version of the desktop so unless I zoom out I have to remember in which desktop I am to be able to quickly switch between them. With this tightly connects missing task bar. You know I've already decided that I want these 3 applications/windows to represent one activity – that's why I have them all on one desktop. But to mouse-switch between them I still need to zoom out and oversee all the desktops. This becomes effectively very annoying when e.g. working with mail client and composing a mail while checking one of the other relevant mails, or checking an irc conversation relevant for the mail.

Another thing directly affected by that is practically impossible drag&dropping between applications (especially if the source app is maximized on desktop). But now back to switching between apps. You can object that I can use alt-tab. Yeah, that's good if I use keyboard, but when I'm browsing web or designing an icon, I'm more likely to hold mouse in my hand and rest the other hand away from keyboard. Plus, when I actually can effectively use alt-tab, the grouping of windows of one app (in my case usually terminals) makes the list on one hand shorter, on the other I have to use second hand (for arrows) to be able to select between that. Fail! I want to be able to switch between windows on one desktop with just alt-tab and don't want windows of the same kind but from different desktop mingle with that.

Another thing that I noticed is that rhythmbox cannot be minimized to systray and the systray icon actually thinks it is minimized all the time. It does work though with liferea and transmission. And it's rather annoying that partly thanks to the missing taskbar some actions like adding torrent from webbrowser to (already running) transmission does visually does nothing and I have to switch manually to the transmission window to finish the action. Similarly, opening an url from e.g. chat does not notify me, that a new browser tab has been added (in current gnome, midori task starts to bling in taskbar, whether it's one the current desktop or not and I can easily switch to it).

Let's move on now to another action (up until now, I've mostly talked about working with already opened applications) – starting new apps. The most annoying thing is that to start a new app I have to either zoom out first or use the alt-f2 app starter, which however does not suggest anything, so I have to type whole name. No one-click icons available somewhere in the panel. Oh, yes, there's a sidebar, which however looks odd, cannot be moved to the bottom and totally does not fit the rest of the theme. Plus it apparently have different favourite applications than the activities UI.

Next, when I want to open app on specific desktop, using mouse, I have to zoom out, select the desktop, zoom out, select the app and if it's already running, use right-click and hit open new window. Ugh. How is that effective compared to clicking on the destination desktop and then on the application launcher in panel? If I use keyboard, I have to search for the desired desktop first, which isn't exactly nice when all the desktops are lined up in one line then hit alt-f1, write (does not need to be whole) the app name (nope I cannot navigate through the favourites) and select the correct app to launch. I wonder how can I open new instance though... Furthermore, the 'APPLICATIONS | more' combo looks more like combo-box entry I have always urge to click on the 'applications' and write something there. What a surprise that's actually non-clickable!

And now the favourites – it took me some time to figure out that I need to right-click on the currently running app and select add to favourites. Does not seem I can reorder them to easier navigate through them :-( Plus I don't see a way to add an application that is not currently running to the favourites. Furthermore, gajim resists adding to favourites and instead disappears from the list completely if I try to add it (you can notice it on the screenshot too).

This should about summarize my findings about application/window management efficiency. So let's move on to the UI. I'll try to make this shorter. Date/Time applet is missing date (I have to click on it to find it), I don't seem to be able to navigate through the calendar using keyboard, there are locations missing, no weather. I miss various applets like CPU speed monitoring, network speed monitoring, trash (yup, I like to empty the trash by right-clicking on the panel applet if I'm currently not in nautilus) and lock-up (I use this so frequently that having to go through the user menu is suboptimal for me). I cannot recognize which of the things there are click-able... That's a totally broken design, usability-wise. I cannot move the "panel" to the bottom, which is where I prefer to have the systray. I don't see anywhere what keyboard layout I'm using. Do I have to actually write something to get to know whether I'm using US or CZE layout? Epic usability fail! The fonts does not seem to respect my settings for subpixel hinting and ignore it completely. The applets in systray are too far from each other, the black/white colour combo isn't too my liking, but I cannot change it. The odd blue mists/rectangles aren't exactly nice either… I'm not sure if it's because my intel graphics is suboptimal, but shadows, especially those of tooltips are badly misrendered and actually odd as well – why is window shadow smaller than window?

Oh and one last thing – I've quite a few times zoomed out by mistake by moving the mouse to top-left corner. Can I disable it somewhere?

Summarized, gnome-shell isn't for me as it both looks ugly to me and greatly decreases efficiency of my work. Sorry guys, but I would much rather appreciated if you fixed e.g. gtk2 limitations in theming (non-transparent backgrounds for entries, progress bars and tooltips to quote a few) in gtk3 than working on this rather dubious experiment.

Saturday 17 October 2009

Echo Icons - Lighting and Shadows

So, with sketches for hard-drive for Echo Perspective,

I've started to wonder how exactly we've used the top-face lighting in Echo and how it looks in real life. Looking at the current Echo guidelines (mostly done by me) it looks like this:

And when I sat down and thought about this, it actually looks a bit weird. So I've spent today with estimating (and in case of perspective projection also observating) lighting of cubes and balls and their dropped shadow. I imitated Echo lighting to be approximately caused by light positioned at (3,-3,5) + some amount of homogeneously dispersed light if the cube occupies [0,1]x[0,1]x[0,1] space. Of course, in Echo we don't use realistic lighting and shadows but something that makes the icons more usable. The result looks like this:

So, I wonder what do you folks reading the Fedora (Design) Planet think? It's still not too late to adjust the guidelines for Echo Perspective, albeit for "Old" Echo it would mean that out of blue many icons would violate such guideline…

Thursday 8 October 2009

Nodoka Rework Update II

Following on my previous post, I've finally got around to do some more updates to my nodoka rewrite and blog about it ;-) This time it's about the Entry widget. While last time I complained "only" about difficulties with exterior focus in Button widgets this time around it's many times worse even.

First of all, exterior focus behaves slightly different from how it behaves in Button widget, so I had to do another slightly different workaround for Entry. Well, it took me some time before I "reverse-engineered" the behaviour to work with all exterior-focus, focus-line-width and focus-padding settings as I'd like it to, but I seem to have figured it out. This is probably connected with the fact that focus for entry is drawn via the draw_focus functions only if its exterior, so I had to skip this one and render the focus along when drawing the actual widget to keep at least some consistency in the code.

To make engine coding for entries even harder, the state_type sent to the drawing functions is wrong when the widget is insensitive... That makes another, albeit simple hack :(

And because of the way entry is implemented in GTK, there are up to four GdkWindows (one main for the whole entry, one for the text, and up to two for side icons), which aren't transparent and furthermore filled not with what's behind them but with base colour, one has to: repaint the background to be hopefully the correct one (which of course breaks when the entry is on toolbar with gradient) and from the inside windows check their relative position to the main window and paint the entry once more (to allow nice smooth rounded corners and bigger paddings for inner focus). This means you either sacrifice design or speed, I sacrificed the speed, but am seriously playing with the thought of introducing an engine option to disable this hack for gtkrc designers that prefer speed and are willing to give up some of the design freedom.

Now this is all nice but there are (at least) two applications that are even worse -- evolution and epiphany has their location/search bar composed of actually two entries and some icons and "guessing" from the inner entry where the outer one is is beyond my willingness to implement... Luckily enough, evolution behaves pretty decent with wide range of settings and epiphany got fixed in 2.28.

And now some screenshots:





As you can see it's still miles from done, but I try to keep it fully functional (and as much bug free as I can). For those who actually would like to test it I recommend building from git but there's a chance I'll put my locally built testing rpms on fedorapeople if there would be enough requests ;-)




On a completely unrelated note, I've just discovered freely (and legally) downloadable new recording of Bach's Brandenburg Concertos in FLAC. Yay, kudos for the Czech Radio. Actually I've been listening to the Czech Radio D-Dur station live broadcast (ogg 256kbit) for quite a few days now and I am both more than happy with both the quality of the selected music as well as the quality of the broadcast (further more in OGG Vorbis!). But back to Brandenburg Concertos -- I'm about half done with the listening and I have to say that while the style seemed a bit unusual at first it won me over after a one or two movements and I consider it one of the better Brandenburg Concertos recordings I've heard.

Sunday 4 October 2009

Constantine Beta Wallpaper

We've prepared wallpapers for Constantine Beta, and we look for feedback, preferably on the Fedora Design Team List. You can comment on my blog too and I rely your opinions to the design team then. Installing it is as easy as
yum --enablerepo=rawhide install constantine-backgrounds for GNOME or
yum --enablerepo=rawhide install constantine-kde-theme for KDE. We also have prepared extras (only for GNOME now):
yum --enablerepo=rawhide install constantine-backgrounds-extras. The default wallpaper looks on my Rawhide as this:

the extras can be seen in the gnome-background-properties bellow (the universe slideshow is from gnome):

blogs.fp.o

So, I've discovered a Fedora Project run weblog site and I'm wondering what's the state of it. Since the url does not include publictest# I guess it's not a testing instance, so I've created a blog there :-D Does anyone know if it's ready for starting to use? And since it's supposed to be for fedora contributors I wonder about 15MB limit for media -- people would probably like to post screencasts and such things are big, so the 15MB limit might be used up quite fast and I'm not sure if fedorapeople space is a good place to store supporting media for their blogs on...

Monday 28 September 2009

Broken deps: libass.so.3

A short notice for all those who have Fedora 10 and are getting the broken deps message during update because of libass.so.3. Be assured that this is not intentional and that I've made a mistake by pushing the libass update to stable updates too soon, as there are some troubles over at rpmfusion preventing a successful vlc build. I apologize for the inconvenience. Please be patient, the needed vlc update will come ASAP, until then please skip the libass update.

UPDATE: I noticed vlc was successfully built, so as soon as the build is pushed to the repos, this problem will be gone :)

Sunday 27 September 2009

Kanji/Hanzi lookup problem [漢字検索の問題]

Dear lazy web, I've been having troubles finding a certain kanji (respectively its computer counterpart which is its byte representation in any charset, usually unicode) and since the Fedora Planet is read by an audience that includes native Japanese/Chinese I figured someone might have better means for finding the answer than I have. Here are two pictures of the said kanji with its reading in a compound word, the kanji I have problems to find is the left one and throughout the internet it's usually substituted with 聶, which however has on the top the ear radical (KanXi: 128) instead of the grass radical (KanXi: 140):

I've tried to find it (with zero luck) in various kanji/hanzi online dictionaries ranging from jisho to cojak .Thanks in advance for your suggestions.

Tuesday 22 September 2009

Math, anime and my (crazy) head

Being an undergraduate (I've recently completed my Bachelor's degree and am currently starting with Magister degree studies) in physics I tend to take interest in things where math is concerned, even when it is just a snapshot of a math test I notice during watching anime... A few moments ago I came across this:

The title roughly (my Japanese does not go much further beyond being able to look up kanji and some basic everyday-life phrases) translates to "First year, first semester, midterm exams, math I.", the first problem is something like "Collect similar terms and put them in order in the following expressions." and the fourth problem goes like "Factorize the following expressions." Well, from this I can guess that the math level on first year of 高等学校 (high school, students are around 15 years old) in Japan is roughly the same as in the first year of střední škola (high school, students are as well around 15 years old) in Czech, although I've never seen such answers to these types of math problems... Well, it's from anime and it's quite usual there to go a bit overboard, but nevertheless it gave me a good laugh.

On a similar note, over the past week from time to time I've been trying to find various derivations of Lorentz boosts in general direction in hope to come up with an elegant one. Today I've finally managed to find one that is purely mathematical and based on the assumptions that a) general Lorentz boosts does not contain space coordinate rotation and b) Lorentz boosts in a given direction form a one-dimensional sub-group of the Lorentz group (which is isomorphic to O(1,3)), whose another sub-group is the group of rotations O(3). Lorentz group is a group of (linear) transformations that preserve the Minkowski metric

Limiting only to transformations that do not contain time or space inversions (and thus in matrix representation they have determinant equal to 1 and the "time-time" component greater than 0) I get a continuous subgroup SO(1,3) and can further derive limitations imposed on the matrices forming it's Lie algebra (so(1,3)). It turned out, as expected, that the 4x4 matric has a 3x3 antisymmetric submatrix (the space rotations), has zero trace (because determinant of the group representing matrices is 1) and the remaining elements are symmetric – which also leads to (already known) fact that the dimension of this group is 6 (three space rotations and Lorentz boosts in three mutually orthogonal directions). Note: I use geometrized units in which c=1 and otherwise the remaining elements wouldn't be symmetric, but differed by a factor of c^2.

From there, finding the matrix describing the Lorentz boost in general direction is simply a matter of filling the symmetric elements of the matrix representing the so(1,3) algebra (and leave the other elements 0) and making an exponential out of it. Further one can replace the coefficients describing the direction of the boost and hyperbolic sines and cosines by the usual gamma factor and three-velocity components to get the usual from of the transformation.

I really like this derivation – even though it's rather long compared to other derivations I've found or came across during past week, it's purely mathematical in nature and does not require knowledge of the Lorentz transformation for frames in standard configuration.

Friday 14 August 2009

Nodoka Rewrite – initial code builds and works

So, don't expect much. Just that I've finally got to making first piece of the Nodoka rewrite work. I've spent the whole day today figuring the GTK internals of button focus drawing and finally managed to get a result that works as I want it to work with all the gtkrc settings I can think of.

First, it's totally misleading that when interior focus is turned off, position and dimensions of widgets change (even though the canvas on which we draw remains same) between focused and unfocused states... Took me some time to figure out how exactly this happens and how to get rid of it from the point of view of drawing functions. All the GtkWidget::x/ythickness, GtkWidget::focus-line-width, GtkWidget::focus-padding and GtkWidget::interior-focus feels sort of like black magic to me… Also to preserve some compactness off the theme, while maintaining good configurability of the focus ring I've introduced focus_padding engine theme to allow bigger paddings for inner focus while maintaining same widget dimensions. I still need to handle the two different padding settings in style functions properly instead of letting the drawing functions handle it...

Well, to not only talk, here are some screenshots. As you see, nothing but button is implemented, so it's not really a good candidate for updating your gtk-nodoka-engine, but in case people want to try it or hack on it, the source is available.

Wednesday 12 August 2009

Echo New Icon GTK Ready

I've finally got the design from my previous blogpost implemented. Writing gtk applications in ruby is as fun as in C, but making the widgets behave (especially in terms of positioning/size) as I'd like them to seems unbelievably hard. My workflow was this time a bit different from usual, as I was just adding the widgets one by one, with the help of glade researched what to set and how in order to be where they are and when the layout was ready implemented the signals. LOL, the result file was, despite being only 150 lines long, pretty hard to read. >_< So next step was to properly outline the program design – most importantly I've prepared myself a diagram with widgets relations – and implement it. Of course, the source is now much more readable, but also a bit long – not counting the licence at the start, it's about 240 lines.

Next I was thinking what is the best way to present it to user. Burying it in menus is suboptimal, having to launch it by hand isn't exactly useful as well, but adding it to nautilus' pop-up menu (just like e.g. nautilus-open-terminal extension does) feels about right. The problem is, of course, that nautilus extensions can be written either in C or python, but my app is in ruby. The decision what do wasn't hard – writing ruby bindings to nautilus extensions is out of my league and I'd like to keep all the echo-artist scripts architecture independent if possible, so I went with python. I'd say I like ruby more, but at the same time I must emphasize that making conclusions based on 40 lines of code is out of question :-) The nautilus extension is available in git as well. Now, I've prepared packages for people who want to start using it already at put them in my fedorapeople space because I don't want to update the echo-artist package in Fedora repos until it is in good enough shape.

I've prepared a short screen-cast to showcase the new functionality:

Download the video to see in your favourite video player.

Sunday 9 August 2009

Echo New Icon GUI Script Design Idea

In Echo Project we strongly recommend to create new icon using the echo-icon-new script which does some of the work, that an artist would need to do, behind the scenes. Today I've started thinking about writing a GTK version of the script so that the usage would be even easier. Here's my initial design idea of the GUI (click to see in original size):


Now, two issues arise:
  • How good is this layout from usability POV?
  • As I've never done GTK app, how to actually create this layout, preferably in ruby?


Both feedback for the first question and help for the second question is appreciated.

Tuesday 4 August 2009

Constantine Wallpapers Package

UPDATE: The packages are now in koji. Per frequent request I've moved Constantine Statue to default from extras.

I've just put together initial packages for Fedora Constantine release. Their contents is based on the initial feedback we received on the design-list. The packages are on my fedorapeople page and this is what will your background selector have after installing both of them:

Feedback welcomed preferably on the design-list, alternatively you can comment in this blog post. To further clarify, the two wallpapers (mosiaco and underwater mosaic) that are included in the main package are our current candidates for the default wallpaper. Please note that they are very early work and in the final release will look a lot better ;-) The rest that is in the -extras package are wallpapers that we are considering as extras – in Fedora 12 we are going to include four additional wallpapers targeted at specific audiences.

Saturday 1 August 2009

Tuesday 28 July 2009

Nodoka Widget Drawing - Starting From Scratch

I know everyone will hate me now, but I've decided to break my current development of gtk-nodoka-engine-0.8.x and start working on it from scratch. I don't know what was the real push to do that, but I felt I needed to support wider configurations in the engine (with future in mind), develop more consistent, usable and pleasing look and feel and write the drawing code in a way that would be independent on the toolkit. As for the design itself as inspiration serves basically the widget design on iPhone (and OSX in general), current nodoka, the 0.8.x sketches and existing implementation, Chromium and much more.

For faster tuning of the gradients I've wrote a simple GTK application filled with sliders... And I later extended it for showcasing and testing drawing code of the widget. Forgive me for not publishing the source code, because it's total mess. The widget drawing code will eventually go to gtk-nodoka-engine, so I try to keep that part less messy, but creating the gui, writing event handlers, ... has been made in way that it just works (TM)...

I have to say that it's pretty interesting to write GTK applications using all the GObject and GtkWidget magic, and I've come to a deep understanding of why it's mostly inevitable to use tools like Glade to design more complex GUIs. The app currently looks like this:

The top left image serves for tuning the fill gradient settings, with the four sliders right of it I can control the base color and transparency, the other five sliders are for the actual gradients settings. With this I've finally came up with something I was satisfied with for button and added entry (because it often combines with button). The result is such:

Now, even though current GTK (AFAIK) does not directly support button groupings, it is possible that in the future such feature will be there, so I decided to have the drawing code prepared. Since the drawing code is independent on widget toolkit, I can simulate everything I want in my small app, which is why the bottom part of the app was added. It has an drawing area in which I draw the widgets (currently buttons only) and a button which serves as a reference for testing various states. You can notice, that I have grouped the buttons by three – that's to test all the various cases that can happen: button is first in group, button is last in group and button is in group but is neither first nor last.

Next feature not implemented AFAIK anywhere else than pango (and perhaps other text rendering libraries) is complete writing style support. That means not only the left to right, then top to bottom (used e.g. in Latin, English, ...) and right to left, then top to bottom (used e.g. in Arabic) cases covered by CSS, GTK, ... but also top to bottom, then right to left (used e.g. in East Asian scripts) and top to bottom, then left to right (used e.g. in Mongolian). At one point this was part of CSS3 specification, but for some reason it has been dropped. Anyway, because in code it means only implementing two new cases which basically means only using different transformation matrix, and thus should not affect speed of the rendering, I decided to implement it.

Thus in the preview in the app, there are actually four button groups – the top one is usual LTR, with the left button being treated as first, the one bellow is usual RTL, with the right button being treated as first, and bellow the left one is top to bottom, then left to right case, with the top button being treated as first and the remaining is top to bottom, then right to left case, again with top button being treated as first.

The lighting follows "paragraphs flow" – meaning that for horizontal text the light shines from mostly from top, and in vertical text depending on the flow either from left (Mongolian) or from right (Japanese). Now it would be even greater if I could add some text to the buttons to test how it would look with it included, but I don't know how (or rather I am too lazy to study pango from scratch and quick google search does not seem to reveal any nice pango tutorials)...

And now some video of the buttons "in work".

Download

Thursday 23 July 2009

The True Meaning of "Open"

I may make jokes about Microsoft at times, but at the same time, I think the Microsoft hatred is a disease. I believe in open development, and that very much involves not just making the source open, but also not shutting other people and companies out.

There are ‘extremists’ in the free software world, but that’s one major reason why I don’t call what I do ‘free software’ any more. I don’t want to be associated with the people for whom it’s about exclusion and hatred.

— Linus Torvalds, Linux Magazine, via Open Source to Go!

I can totally identify myself with what LT said. I'd say that hatred is actually one of the worst emotions the mankind has. It blinds your rational thinking, makes you do things for which other people will dislike you, and in the end it will destroy yourself. To quote from Buddhist text:
Not by hate is hate defeated;
Hate is quenched by love.
This is the eternal law.

— Dhammapada, v.5

While I deem this to be a little far-fetched (as love is also blind) it basically grasps the core of the problem. Hate is not defeated by another hate. You won't defeat Microsoft by hating them. Well, they pose themselves in the role of the archenemy of Linux, but that might change. Our ultimate goal is not to defeat Microsoft and their Windows, the mantra of open source is about being open to others, sharing your ideas, your code. There is nothing about "fight" or animosity. It's a grave pity that with expansion of Linux, people not believing in this mantra appeared and our communication channels are being slowly infested by posts filled with hatred, animosity, personal insults and trolls.

We should all remember that the world open does not contain these emotions. By showing hatred or animosity towards others you are distancing yourself from being open, you close yourselves in your shell and that will eventually lead to your loss as to the loss of the thing you originally wanted to protect.

I believe similar ideas are in the core of many Asian martial arts. For example in 合気道 (合 – ai – joining, unifying, harmonizing, 気 – ki – spirit, life energy, 道 – dō – way, path) you have to became one with the enemy to master the techniques. The goal is not to the beat the attacker, the goal is to disarm (or dispose of if you wish) the attacker without hurting him.

Similarly by contributing to open source and not showing hatred against our "enemies" we can become stronger and in the long way win the "war". And winning here does not mean that open-source will be everywhere, it means that those who oppose us now will acknowledge us either as partners or as equal competitors. We do not need to lower ourselves to their level to "win".

Anyway, the basic premise of today's blog-post is that being open also means being tolerant and cooperative. These stands on a much higher moral level than hatred, FUD, … They are also vital for keeping the open-source community healthy. They are also one of the reasons I use and contribute to Fedora. It's four foundations contain these — freedom, friends, features, first.

Tuesday 21 July 2009

Firefox 3.7 New Design

Well, quite an unexpected post in my blog... In Chromium's Tips and Tricks section I noticed an article entitled First Look: Firefox 3.7’s New Design. After briefly looking at the Vista Aero look I went WTF! I just cannot seem to find this semitransparency in windows nice... But well, I scrolled down and down and down until noticing the Win XP version which I deem to be the best. Well, if such UI gets implemented on linux as well, it would definitely prompt me to try using firefox again, as it's basically Chromium UI with tiny changes in ordering and separate search entry (I prefer search to be integrated in location bar though).

The UI is very effective, as I have discovered when using Chromium over these past few days, and I think it's been a high time for the redesign. For once I have to praise the guys at mozilla for doing the right thing ;-) It's would be shame, though, to not note that midori introduced this kind of UI as well with it's recent 0.1.8 release (although as an option, rather than as the only setting). It's a prove that Google's decision to introduce their own web browser will lead to benefit of users of other browsers as well.

Friday 17 July 2009

AdBlock in Midori!

I must have been lucky today... First I installed chromium and now, after trying out latest git snapshot of midori, I've discovered, it can actually block ads (via the included, by default disabled 'Advertisement blocker' extension)! Well, it's pretty lame still as I noticed it only blocks google ads (probably because of missing filters) and adding filters seems to not work (not that I have any filters anyway) and there are loads of 'FIXME' comments in the source code, but I cannot wait till it gets finished :-)

Now, if only I knew how the 'Mouse Gestures' extension is supposed to work (if it works at all), it would totally make the day even more awesome!

And thus the browser war hath started

Behold heathens, new web-browser hath descended upon the land of Fedora. Witness the few steps needed to deploy at FergyTech. The ultimate battle for superiority may begin. Who shall be the winner?

Well, that somehow summarizes my exitement. I wonder which browser I'll end-up with in Fedora 12 :-D For now, I am using simultaneously Midori (webkitgtk)

Epiphany (xulrunner)

and Chromium (webkit/chromium)

now ;-)

Btw. I just recently used firefox once again because of some download which worked only via firefox (I don't really know why though) and the page had an enormous amount of adds... well... to be fair... I got used again to displayed adds with midori (it's not possible yet to block adds in webkitgtk), but the experience with firefox was about five times worse... The amount of windows that popped up was just terrible... Well, I'd say that using firefox without AdBlock is in a sense equivalent to taking a stroll into underworld >_<

Maybe, I'll write a short review about those three above mentioned browses (plus epiphany 2.27 snapshot which uses webkitgtk instead of xulrunner) when I gain more experience with Chromium (so for now I'll keep the awesomeness of midori's location bar only hinted in the screenshot above ;-).

Monday 13 July 2009

The mess that libass is

With 'recent' inclusion of proper ASS/SSA subtitles support into gstreamer via libass, it became a necessity to package this library separately. There seems to be one official upstream at sourceforge, but mplayer ships it's own patched version of libass, vlc as well and to make the mess even bigger, there's greg's version... As I've taken upon myself the task to provide this package for fedora, I'm trying to find the best solution to this but I don't have a single clue what the best approach would be there. Also, we seem to be on the head of separate packaging of this library separately (I've found debian, ubuntu and gentoo packages) and it would be probably good to solve this issue before other big distros start to package it and make the mess even bigger...

The gentoo package seems to be 0.9.6 unpatched, debian includes mplayer's batch patch against 0.9.6 and ubuntu is pretty much identical to debian...

Now vlc's patches seems to be taken from mplayer + one or two other fixes, however the greg's version deviates further from the official 0.9.6 version and is not API compatible with previous versions. All of those include critical, as well as non-critical, fixes and feature enhancements. Now the question is what to do about this mess? Yes, I could do the same as gentoo and just wait till 0.9.7 is released (and who knows how long will it take), or I can follow debian and just add the mplayer patch and make a note in the spec file where it originates from. That would be both an easy workarounds leading practically nowhere.

I could also review in full all the changes that the patches/greg's version carry, try to understand what does what and back-port fixes as well as submitting the (smaller) patches upstream.

I could also switch to greg's version in rawhide and hope it will not break anything... It seems almost all development is happening there, but on the other hand I'd rather not use git snapshot... Although after quick look at his changelog, it seems he might be releasing 0.9.7 soonish...

Ideally vlc and mplayer would switch to system libass, greg's version merged with upstream and do a release and everyone would be happy...

Now the basic question, are there people willing to help in any way with solving this issue?

UPDATE: The mess is beginning to clean up now. The official page now suggests Greg's git as the main version and I have been told that mplayer has plans to link dynamically against this version as well and vlc is switching over to this one as well. This means that I'll switch to greg's version in Rawhide in near future as well and if it works well, I'll use it also in stable releases.

Sunday 21 June 2009

Notification Bubble's Colour

Dear lazy web, I've been pondering for a while how to correctly implement notifications bubbles coloring. Yesterday I've threw together a simple patch that reads the colour from gtkrc (the same way the upstream default theme does). It solves a problem with text not being readable on bubbles when using dark themes. The problem is, that the bubbles apparently have same colours like windows, whereas I'd like them to have same colours like tooltips. Does anyone knows whatever to target in gtkrc theme in order to achieve that goal?

Current look:



After patch:

Saturday 30 May 2009

My Desktop

First I have to say that Fedora Desktop keeps improving with each release but there are still corners in which some love is apparently missing. So, to have assorted list of what I use and what I don't like about it I've decided to create a short post. Let me emphasize that I use my laptop both for school and for fun and it has only Fedora on it.

My usecases

  • school duties – writing various homeworks, thesis, e-mail and IM communication, research on internet
  • fun – watching movies, listening to music, ripping audio CDs, surfing web
  • fedora – coding, design, packaging, using various web services


What I use to get things done


Communication


The communication channel I use most is e-mail. Somehow I've always found all webmail's not good for me (with the best so far being probably yahoo mail, closely followed by gmail) so I use desktop client. In past I've switched away from thunderbird – it didn't fit in my desktop, it tended to download same messages multiple times, I had to install enigmail extension to get gpg working, I wasn't comfortable with it,... And now I am using Evolution. Well, it's a great application and handles and manages my mail very well, but it's slow, slow, slow and once again slow. Plus, there are zillions of functions I will never use... So I am currently looking for a nice replacement, my requirements are:
  • Handles POP3, IMAP and SMPT
  • Translates gmail's lables to folders
  • Knows how to handle GPG
  • Can remember my passwords
  • Has nice gnomeish simple GUI with icons coming from icon theme
  • Handles HTML mail as well
  • Integration with some system-wide contact book would be better than having it's own...
  • Can preview attachments inside messages
  • Can handle thousands of messages without significant performance loses
  • Can gracefully handle multiple e-mail accounts
  • Is FLOSS

I so far didn't find any that would fullfill all the points above. Do you know of any?

For instant messaging I use jabber, icq and msn, where the latter two via jabber transports. This means I have quite wide range of possible clients to use. Over the ages, I grew accustomed to gajim – and it's latest versions can even render math expresions using LaTeX. The only con I see with this client is that it tends to start slow and opening messages windows isn't fast either...

Occassionally (usually when I need to discuss something quickly with other design-team members) I also use IRC. I never grew accustomed to this service and have had some serious issues setting it up... Luckily, Empathy can handle this pretty gracefully (as oposed to X-Chat which seemed almost impossible to set up).

The rest of the web


So, in the past I've been using firefox (I was used to it from Windows, so I naturally picked it up when I switched to linux). And as I grew more accustomed to linux and gnome world, I've also grown away from firefox. Towards epiphany. I've been a happy user of this fast and simple web browser, until webkit revolution. My primary browser is now midori, for pages that don't work with it epiphany and for testing purposes I also have an unstable build of epiphany. WebKit feels faster than gecko and also is better integrated into the linux environment, plus the webkitgtk development has been really rapid these past few months. I cannot wait the moment I could switch from gecko altogether. As of now, the problems that are still blocking it are inability to access anidb from webkitgtk based browsers and inability to authenticate to koji.

For flash I use swfdec, but it's still a no-go if you expect a rich flash experience (which I do not). I use it mainly for some simpler flash-enabled websites. Youtube is best with totem's youtube plugin ;-) I use liferea for RSS and Atom feeds.

Homeworks and thesis


Well, to cut it short, I use TeX (csplain if you care about the details) for this purpose and the source files I write in gedit. This seems to be a killer combination, even to such extent that the only application from office suites that I keep installed because I occasionaly use it, is gnumeric... And, to not forgot about actually viewing various documents, I use evince. Works like a charm for PDFs, postscript and DJVU, which are the most common electronic document formats I view. Also, not to forgot one of the most improtant things for a physicist, gnuplot is the best application for making high quality plots.

Coding


Somehow, I feel like a do-it-all-in-notepad type of guy, because I do all the code writing in gedit. I think it's a great and powerful application, but from time to time I tend to think that some IDE goodies might help speed things up... But everytime I try to import my stuff to eclipse, it ends up with a totally nonworking disaster. I haven't tried anjuta for quite a long time though, maybe it would work better.

As long as version control systems go, I am fairly acquainted with CVS and GIT (and like the latter much, much more) and from time to time I also use SVN or HG, but I've never grew accustomed to these two.

Design


There's not much to say, appart from great thanks to lkundrak for providing us with the greatest and latest version of inkscape. Yep, you guess right – inkscape is doing a tremendously good job when working with vector graphics and the development seems pretty active too. Thanks to it's great abilities I use it not only for icon design but also for various other things like drawing images to accompany my thesis (because it can render LaTeX formulas and can export images to postscript, it's really helpful).

From time to time I also use gimp, but I am not much into raster graphics so I am not very skilled with it.

Fun


Well, ranging from soundjuicer through rhythmbox to totem and mplayer there is not much to complain about... Great applications working great, although rhythmbox somehow does not feel as much gnomeish as other applications to me...

My most favourite applications


Well, these are applications I definitely want to mention because I am really satisfied with them (in no particular order)
  • Epiphany
  • Midori
  • Totem
  • Inkscape
  • GEdit
  • Sound Juicer
  • Nautilus
  • mc
  • git
  • PackageKit


And which are your favourite applications?

My most used applications


There are also some applications that are running almost all the time I am logged in. These are
  • evolution
  • rhythmbox
  • midori
  • epiphany
  • liferea
  • gajim
  • gedit
  • gnome-terminal
  • nautilus

Sunday 10 May 2009

Scars on Humanity

Er... I don't usually blog about the what-am-I-thinking stuff (partly because my blog is aggregated on Fedora Planet and I don't want to be like certain others who frequently post about non-linux related stuff...) but somehow I couldn't help it this time. This post is gonna be about mostly about racism and related things so if you consider that topic to much controverse or unfitting, just skip the rest.

You might ask why? Well, I've recently picked up an interesting anime called イヴの時間 (Time of Eve) placed in a probably-not-so-distant future and focused on social problems with androids (human looking robots). And it striked me how much the problems depicted there have in common with the various you-are-different-therefore-we-must-lynch-you types of behaviour. In the aforementioned anime the main theme is the striking difference between how the androids feel (yes you read right, there is much more to them than just looking like humans, they also have emotions and such) and how they are treated (as mere machines).

I think this 'treat' is somehow interconected with mankind's whole history. Some of the prominent examples of this behaviour include (to more or less extent) the witch hunt from middle ages, mass Indian murdering when conquering over Americas, black slaves and subseqent hatred towards black people, Hitler's move against Judaism and in the current times I'd mention fear of Arabic people or animosity towards Gipsies. And looking through movies it's pretty much common to depict aliens and/or robots as a threat to mankind (and I think the reasons are pretty much the same as in the previous examples).

Now, I think all this stuff 'is complete balls' (to quote Stephen Fry). I mean I laugh at rasist jokes, I laugh at religion-related jokes, I laugh at jokes about physicists (which depicts us as unsociable, being only men or ugly women, totaly impractical...) when I find them funny and I don't care whether they are 'politically correct'. I think the whole political correctness thing is a totally wrong approach. Because it's encouraging precisely what it tries to fight against – discrimination. One of the examples from my country is usage of two different words for Gipsy people – cikáni and romové. Ever since these people came into the Bohemian and Moravian lands they were called by themselves, as well as other people, cikáni (or cigáni) and now this precise word has been labeled as politically incorrect or even racist. Since their official nationality is 'romská' they are to be referred to as 'romové'.

And to what end? To singling them out. And IMHO that's a problem. Well, yes, these people are socially problematic because they are used to different lifestyle, but have you people ever heard of tolerance? I mean it's wrong to force our lifestyle onto them. When I approach these people I try to act without prejudice. I don't care if the person I am talking to is Czech, Slovak, German, Gipsy, Vietnamese, whatever. The things I care about is whether we have something to talk about. Differences are a good thing and especially cultural and lifestyle differences makes the culture of human kind much more rich. We should learn from each other, listen to each other, not clash.

But to draw some conclusion from this random not-much-connected stream of thoughts... The law in most western countries makes it hard to not discriminate precisely because antidiscrimination paragraphs. If you do not accept a Gipsy/woman into a job because you found a better Czech/man for it you are risking you'll be acused from discrimination. With that thought in mind it's not easy to not discriminate. But yet, one should try to. Don't let the outer differences blind your mind. It does not matter if your friend, lover, employee, teacher, ... has black or white skin, whether he's native or foreigner, whether they're man or woman, whether he's Christian, Muslim or atheist, whether he's handsome or ugly, ... Don't think in groups, think in individuals. Black people have nothing in common save the colour of their skin (and some other characteristics in looks) and there's not a single reason to approach them differently because they are black. It's the stuff you don't see that matters. Also, don't discriminte positively – hiring women just to make the female/male ratio in your company 1:1 is an utmost craziness!

Anyway, these are just my thoughts... you are completely free to disagree with them ;-)

Erm... After re-reading what I've written... Arrr... I suck in philosophy and I think this small wandering into that strange land will have been for a long time the only one (luckily for you for not having to read this nonsense as well as for me for not having to embarrass myself)...

EDIT: Well, to put something linux related... the community around FLOSS is actually a pretty good example of how things would idealy be. We are people from around the whole world, with different nationalities, different beliefs (both in political and religious sense) yet we are able to work and communicate together and produce great things like Fedora. But even there there are times when things go wrong. One of the recent example is one of the negative feedback we received about the Leonidas Beta wallpaper. About the reactions was one of the kind I talk about in the above text – a concern that we have a symbol of worshipping ancient gods (temple) included in the wallpaper. A typical thing I don't give a damn about. Just imagine a world where drawing a temple marks you a public enemy. Indeed a sad imagination.

And now for something completely different:
The 3 most probable causes for extinction of mankind are IMHO:
  1. Selfdestruction
  2. Genetic degeneration combined with global pandemic
  3. Pollution (mainly of air and water)


Have a nice day ;-)

Saturday 9 May 2009

Leonidas – Lion for Single Screens

Well, a lot of people complained that we dropped the lion head from the default Leonidas backgrounds. Let me state it clear, even if you complain about it now it won't change anything. The decision for that was made quite a long time ago and the reasoning is pretty much based on the feed back we recieved and some deeped thinking. You know, the lion head takes up to about 3/4 of the screen and pretty much everything that is above it is either unreadable or hard discern... Now, while the image is nice a cool, it definitely does not make a good default.

But now back to the main topic – I've added the images with lion for single screens. They're not available in rawhide yet (and due to the freeze won't be for some time), but they're already in koji. I hereby request that people test those. For the default ones the main package is leonidas-backgrounds and needs leonidas-backgrounds-common and leonidas-backgrounds-lion-dual. For the lion ones the main is leonidas-backgrounds-lion and leonidas-backgrounds-lion-dual. In case you'd like to test the if the Beta wallpapers are working, leonidas-backgrounds-landscape package is for you.


Sunday 19 April 2009

Random Leonidas Goodies

The Leonidas (Fedora 11) release is drawing near and I am currently using it as my primary system (with the Fedora 10 release as backup). And so I thought I'd highlight what improvements I find especially useful/interesting to me.

Intel Kernel Mode Setting working


And that means flawless transition from plymouth to gdm. Plymouth still hasn't been updated to the Leonidas theme, but I am eagerly waiting since I've seen some screencasts of what might it look like. But back to the KMS. I have intel graphics and on F10 this has been disabled which meant that in order to have nice graphical boot I needed to pass vga=0x318 to kernel line in grub. It had the drawback that while the screen resolution is 1280x800, the resolution used for plymouth was 1024x768 which meant no nice transition to gdm. This is no longer true in Rawhide and as soon as plymouth starts I'm having 1280x800 res. until the time I shut the laptop down. And what's more, gdm nicely fades in over the plymouth which is really cool.

IntelKMS feature page says it's 87% complete, but for me it's now working flawlessly (and recently even metacity started being fast again with compositing manager enabled). Kudos to everyone who worked on these two things for Fedora 10 and 11!

Booting faster and faster


Yes, after selecting my usual set of services (combination of server and laptop services) and enabling ext4 I can clearly see some improvements in the boot time speed over F10. It's not the same time as the 20SecondStartup feature advertises, but it seems to be a little over 30s which is pretty good with my slow disk and the kind of services I start.

And again, kudos for the people working on this. Since around Fedora 8 the boot time gradually improves for me. Keep up the good work. But even then there are still things that need attention, like slow logging into the desktop (partly due to having a lot of things in panel) and still slow (a few seconds) X start. So I am eagerly awaiting what Fedora 12 brings ;-)

Internal USB camera finally working


Yes, that was the last piece of hardware I have that wasn't working in Fedora. It's some weird one and in Fedora 8 or so I was even trying to get it work myself (without success) but now it works out of box. Kudos again for the work being put even into these parts of linux :-) I'd still like to know, how to turn it off, the always shining green light isn't exactly comfortable at night...

Touchpad tapping


While I am in the hardware section I though I'd mention this. I use touchpad mainly at train and consider tapping and scrolling to be one of the most important featrues. Unfortunatelly in F11 it is disabled by default and I was over too lazy to try to enable it (since at least in all previous releases it required either installing non-official package or edditing some config scripts). But today I've decided to google for solution and found a not-so-much-advertised really easy solution. There's a new touchpad tab in mouse preferences which makes touchpad configuration fast and easy.


"Updates updated"


It seems there are two interesting improvements coming for the update system. One makes the graphical updates via PackageKit much better experience, as shown in hugsie's post. Looks like I'll finally switch from yum update to PackageKit updates, it now shows all the info I like (like what package is currently being downloaded/updated/cleared...) plus it shows update info (like changelog or stuff from bodhi).

Another one is Presto. This is great especially for people with low bandwidths because what it does is basically using diffs instead of whole rpms. Note that each repository need to have this feature enabled, because if you don't have a place to download diffs from, you'll endup downloading whole packages. The coolness is that, thanks to downloading only diffs, usually a lot less of download is needed (usually about 70% less).

Updated webkitgtk


Well, one of the things I cannot leave out is webkitgtk. The webkitgtk guys started doing regular releases (as oposed to nightly builds) and Rawhide is pretty much kept in sync with them. This basically means much stabler webkit than in F10 (and currently even stabler than firefox in rawhide). Next, the all the coolness of webkitgtk download comes bundled within as well and we can expect more cool features, like integrated spell checker, in near future as well. I'd say webkitgtk is progressing nicely.

Some days ago I've also read a short post about open media coolnes in Firefox 3.1(3.5). Well, while the mozilla guys make it sound like they're leading the wagon here, they're rather more or less on par with webkitgtk. Just open this page in midori and in firefox and see for yourself. Except for the fact that they have an ugly check for exact gecko version and thus hide one of the goodies from webkit users (even though it would most likely work) the rest works there:


That said, webkitgtk has still a long way to go before it can be the only web rendering engine for me. Maybe I'll put together a list of features I'm still missing there, but that's for another post ;-)

And much more


Yep, I've highlighted a few features/improvements in Leonidas that I noticed and deemed interesting enough to write about them, however the Feature list for F11 is much longer. To name a few others I find interesting: Automatic Fonts and Mime Installer, DeviceKit, Ext4 Default Filesystem, iBus or Brand New Volume Control.

Monday 13 April 2009

New Leonidas backgrounds

So, based on some Leonidas Beta artwork feedback and a new proposal from Samuele we've chosen a totally different approach for the upcoming Leonidas release. Updated packages with more or less final design will hit rawhide probably tomorrow. And I thought I'll advertise the change... So here's what the new background looks like on my Fedora 10 (sorry for the mess on desktop, I need to clean it up a little…):



We have also prepared a little surprise for dual-screen users (actually it was in the original design, but we decided to not put it on single screens because it's too complex):



And for the people who liked the Beta artwork, I've put them into leonidas-backgrounds-landscape (sub)package so that you don't have to add them manually.