Blender UI – reinventing the Wheel

I just ran across this proposal for imporving the UI of Blender. First of all it is nice that they are trying to improving one of the most confusing an not intuitive interface I have come across. It is especially also nice since they also recognized some design flaws, like having to set object properties before creating the actual object, which prevents adjusting the properties afterwards.

Another interesting point is to see how it could come that far; Blender was initially intended to be used by the same people who wrote it, which is a small audience that does not care about usability and interface standards, so you can define the UI the way you like it best. But as Blender became opensource the audience dramatically increased and Blender now is used in the context of a desktop, where standards matter.

But what I do not like is the way out of their “self written toolkit” trap; first of all the proposal says, that it is a good idea, that Blender looks the same across the platforms. But that is clearly a false assumption since meanwhile we know that “same everywhere” translates to “integrated nowhere” – this is even something that Mozilla after a lot of struggling acclaimed when they left out their key-lock concept out of firefox3 on Linux. This is also a principle all modern cross platform toolkits try to follow, but Blender wants to keep to its own look, which they want to improve instead.

This shows another problem of the “self written toolkit”; currently they have many problems with usability, because the toolkit is broken at a basic level, like there is no visual difference between buttons and a one out of many selection. Things that were available in GTK for years and which are documented in the HIG, so you can use them correctly.

So basically what we are seeing here is another lack of interaction between Open Source projects – instead of use (for instance) GTK and get platform integration and the experience of years with user interaction for free, Blender tries to fix their inherently broken toolkit and so to say reinvent the Wheel.

Gallium 3D and the rest

this is kind of a followup to this post, which explains what I mean with “the rest”.

So now we are going to look at Gallium 3D and put in in the context of the rest. First of all you need to know that there is the DRI protocol, an API provided by the kernel and there is a DRI driver which controls the graphics hardware by using this protocol.

Gallium 3D is now a modularization of the DRI driver, where the parts which the intel and radeon drivers(and others) have in common are put in a seperate package which is then used by both. Furthermore Gallium 3D itself provides a simple graphics API on which you can implement more complex APIs like OpenGL, OpenVG or Direct3D.

Currently every driver reinvents the wheel, when it comes to common parts and if you want to implement some other graphics API, you have to map it to the OpenGL like interface which current DRI drivers provide, which in many cases slows things down.

Now how does this relate to DRI2? There are people asking whether Gallium 3D or DRI2 is better. Well you will need both. Like already said above DRI2 just a protocol, which Gallium 3D will have to use in order to talk to the kernel – just like any DRI1 driver which will be updated to DRI2.

And DRI2 is what you want for proper memory management on the graphics card, one that allows redirected direct rendering etc.

News on YouAmp

There has been a while since I have last written about the progress of YouAmp – my pet music player. Menwhile I realeased the 0.5.x series, which mainly feature the cover view.

the full changelog is:

  • do not require restart to accept last.fm credentials
  • view the cover if saved along with the music files in the same directory
  • details view of the song
  • right click menu allowing filtering by album/ artist
  • allow to jumping in the playlist with “play this next”

YouAmp on Ubuntu

and there is also the first release for Ubuntu; you can find it in my PPA.

As for the next task I am engaging is getting rid of my self written indexer and use Tracker, which will fix some problems with the current design and also is intresting for Frementale.

Gnome3 Theme

while I possibly can not tell how the actual GTK Theme for Gnome3 will look like, I suppose that It will use the GTK-CSS Engine which just made a first release.

One might ask why the next Gnome should use an engine which just looks as crappy as that, but that becomes pretty obvious when you think about what CSS is.

CSS is the language used to layout XML document such as XHTML websites and thus it is flexible enough to support every possible design one might think of. Furthermore it is pretty widespread – probably not in the desktop world, but everyone only barely related with web design should have a pretty good knowledge of it.

And now lets look at CSS Zen Garden a Website created to showcase the possibilities of CSS – look at the themes on the right and how they can change the face of the website. Remember it is always the same physical structure! Now think all of these would be possible with gtk and just using one engine – pretty cool, right?

Gnome and NFS

when it comes to folder sharing in a local network and Linux, you have basically the choice between samba and NFS. While samba is the better choice when you have also windows machines on the network, NFS should be the choice when the network is homogeneously Linux, since it is much easier to configure and directly maps user-ids and permissions on the remote machine.

One might think, that that native Linux filesystem should have good GUI tool coverage, but amazingly there are absolutely no tools for setting up NFS in Gnome, while accessing a Samba share is just a few clicks away. In order to set up NFS one still has to manually edit the fstab and manually mount the directory in the console. Neither Nautilus nor gnome-volume-manager give you a hand here.

Even though the tools you need are already there; you can already advertise NFS through Avahi/ Zeroconf and make it automatically show up on OSX – all it takes is to make Nautilus recognise this and automount the share in the /media/ folder.

So lets vote here and hope that the situation improves.

fglrx 8.9: improved 2D performance

AMD just realeased a new version of their proprietary graphics driver fglrx. While usually they only introduce new bugs every months while the really interesting stuff is happening within the open source radeon driver, this month there are also some interesting things in fglrx.

Not that it would excite any of the existing radeon users, since they have got that stuff for months, but now fglrx also supports Xrandr 1.2 and accelerated 2D rendering through Xrender.

in order to enable this, add the following to the Video Device Section of your xorg.conf:

    Option      "Textured2D"
    Option      "EnableRandR12"
    Option      "TexturedXrender"

Textured2D is AMDs acceleration architecture for primitive drawing, similar to EXA in the open source world and is required for the Xrender Acceleration.

Although 2D is just as good as with the OSS drivers now, the texture_from_pixmap extension is still slow and so is scrolling in compiz,  therefore I would still recommend the OSS drivers for compiz.

So Mozilla is getting cocky again

As you propably already know, mozilla is now demanding that vendors display their EULA if they want to ship the Firefox branding. I could understand the issue they had with debian last time, since the debian package was not it that good shape – but now I think it is going over the top.

Firefox is an open source application an as far as my intuition of this goes this means that it must be as easy distributable as possible. Putting an EULA in front of the application complicates the whole thing unnecessarily. But Mozilla thinks Firefox is such an important brand that everyone just has to swallow it.

But I do not think they are that important, since they are only a small component in the operating system called Ubuntu. And for most people the “operating system” is synonymous for “the computer” and hence they call it so.

So I propose to split up the current firefox package in two packages one called “xul-browser” and another called “firefox-branding”. As default “xul-browser” is being installed which is basically firefox but without the icon and without google in the search engine list and of course without the EULA. The “firefox-branding” package will include the icon, the EULA and add back google as the search engine, but wont be installed as default. Lets see how mozilla reacts when google asks why their ad, they have paid for is not visible in a major Linux distribution. The risk for Ubuntu should be minimal, hence most people I install Ubuntu for ask me for “the Internet” and dont care whether it is displayed to them by Firefox or by IE.

YouAmp 0.4.1 is out

Yeah, I have missed the YouAmp 0.4.0 release announcement, but since this update is just a few days ahead, I will just merge that two.

So the changes since 0.3.8 are

  • support submission to last.fm
  • submissions are happening in background and do not block UI
  • cursor is moved on shuffeling/ unshuffeling, so you can just unshuffle if you want to get more of the same artist
  • the playlist is now automatically updated if you change the music folder
  • mp4 and wmv files are now also supported

Finally Liberated

Bcoming with the approaching Intrepid Ibex release it seems like you finally will not have to use any closed source drivers on a Lenovo T60.

Right now with hardy I use fglrx and madwifi to get all the hardware working properly.

  • fglrx is needed because of the used r500 graphics chip, which got supported only recently with the mesa 7.1 release
  • madwifi is actually not really closed source, it just uses the closed source hal library in order to talk to the wireless chip

But with intrepid there are now better alternatives available:

  • mesa the open source driver now also supports the r500 chip in 3D and on top of that also offers superior 2D performance by using EXA
  • ath9k atheros has started supporting open source properly and got a working IEEE 802.11n wireless driver in the kernel in just several months. And it feels like ath9k connects a bit faster than madwifi. But it displays the wrong connection speed – the transfer rates are the same though.