Home Home > 2008 > 08
Sign up | Login

Archive for August, 2008

Enlightenment

August 31st, 2008 by

Glad to announce the release of Enlightenment LiveCD based on OpenSUSE-11.0.

Download page
‘Welcome’ notes (PDF)
Direct link to the .iso image

Login details:

User: linux
Pass: soad

User: root
Pass: soad

A lot of people helped me to manage this. THANK YOU VERY MUCH! My deepest apologizes that I can’t mention all of you by name. But I’ll try to make it ‘in general':

Enlightenment Development Team and Enlightenment Community
OpenSUSE Build Service Team
OpenSUSE KIWI Team (schaefi, cyberorg, pzb, cgoncalves – THANKS!)
Stalwart, thanks for the hosting!
Packman Team
Novell
Dear engineers and developers, THANKS! Using SuSE since 8.2 (Pro) Decided to contribute not so long ago…

It’s the result of my modest efforts. Hope you like it.

Regards,
sda

Hackweek Day 2: cross-build with OBS Part 1

August 31st, 2008 by

I took the chance to meet with the openSUSE Buildservice Developers on tuesday and discuss with them the progress made so far. Although the OBS was not a theme at Hackweek that much, I found two people participating.

Dirk Müller, Marcus Hüwe and me decided to meet at Hackweek to accelerate the development by adding a way to build for architectures, where the buildhost is different from the architecture you are working at. Dirk was inspired by the call of some KDE akademy participants to get the Maemo Project used in the Nokia N810 building and running in OBS. We were all motivated by all the embedded systems out there and a secenario of running embedded openSUSE on them. Also, Adrian told me very often that cross-build is one of the most wanted features requested when openSUSE and OBS is beeing presented at an event.

(more…)

OpenOffice_org 3.0.0.2 available

August 29th, 2008 by

I’m happy to announce that OpenOffice.org 3.0.0.2 beta packages are available in the Build Service OpenOffice:org:UNSTABLE project.

IMPORTANT: We highly encourage anybody using the previous build 3.0.0.1 to update. It included a serious problem with saving formulas, see the bug #420314.

The package is still a beta version and might include even serious bugs. Therefore it is not intended for data-critical usage. A good practice is to archive any important data before an use, …

We kindly ask any interested beta testers to try the package and report bugs.

(more…)

Hackweek Day 4

August 29th, 2008 by

Group photo from Hackweek community members and some Novell guysThursday was my last way of Hackweek since I went on FTO on friday. Jan had the great idea to take a group photo, so here you see a photo of all invited guests to hackweek together with some Novell folks they hacked together. After the photo it was time for a small ice-cream party.

While I think that many people will blog in more detail on what they’re been doing during hackweek but let me give a short summary of those folks that came to Nürnberg.  This is the status from Thursday afternoon:

  • Benji Weber: worked on the software portal with Pascal. He spend most of the time on mapping packages to applications – since users look for applications and not for packages. He wants to publish a test page soon. Btw. the software portal can use some help, so if you are a Java programmer or web designer and like to help, please contact Benji and Pascal.
  • Pascal Bleser called it  “Chatweek” – and was working also on the software portal.
  • Jan Weber, a GSOC student working on LTSP, created an education YaST module to create users and assign groups for kiosk/sabayon so that admins/parents can easily setup the system with the appropriate permissions for the kids. He showed that YCP is not such a complex language ;).
  • Andrew Wafaa wants to work on a documentary about openSUSE staff and started doing the first videos.
  • Marcus Hüwe worked on the openSUSE Build Service to resolve dependencies using metadata instead of downloading packages directly (works so far for Debian packages only)
  • Andreas Demmer started to redesign openSUSE web pages with Robert Lihm, the current version has been sent to the opensuse-wiki and -marketing lists for review.
  • Frank Karlitschek worked on the “Social Desktop” – community is a strength of Open Source but the desktops do not really show the community and enable easy interaction, this could allow different communities like GNOME, KDE or openSUSE, to better interact and grow.
  • Jörg Riedel worked with Alexander on KVM: Now KVM can run inside KVM.
  • Sebastian Trüg has been discussing and hacking on the KDE desktop.

I repeat myself but we spend indeed a great time together and discussed a lot besides all the hacking.

Hackweek: Finished Lower Case Letters

August 29th, 2008 by

The lower case letters are finished now! Well, to be precise, they are drawn, but they still need some tweaking.

See here a rough picture:
TomsMono, Version 0.1

Download the SFD and OpenType file from my public webspace (could take some time to get synchronized).

What’s missing:

  • Some proportions should be corrected
  • Hinting needs to be improved
  • Digits
  • More characters
  • Bold, italic, and bold+italic versions of the font
  • And probably much, much more

Have fun! Feedback is always welcome! :-)

HackWeek III Day 4 – Diary Of An Outsider

August 29th, 2008 by

For the first time this week, I didn’t do a great deal of chatting.  I did manage to interrupt some of the X11 team and chatted about the whole X thing and how weird convuluted and generally messy the whole thing is – highly enjoyable and depressing at the same time.  As a result I managed to get some interviews done which was great.  I’d like to thank Sonja Krause-Harder, Garett Le Sage, Martin Lasarsch, Marco Michna, Flavio, and especially Cornelius Schumacher.

Why am I especially thankful to Cornelius? Well Cornelius was kind enough to spend the longest time in front of the camera and gave a brilliant interview explaining quite a bit about the Incubation Team and their work on SUSE Studio.  A lot of misconceptions are dispelled and some light and clarification is shed on the whole product.  He also managed to enlighten us as to what being Vice-President of KDE.e.V and his HackWeek Project on the Social Desktop.

The others managed to enlighten us as to what it is that they actually do during normal day to day operations, and also what they are doing during the week.  Hopefully I can get some more interviews tomorrow, and actually manage to get some editing done.

In the evening most of the remaining external community members that were left went out for dinner and had a great meal and a few drinks, and chatted about a lot of stuff – both openSUSE related and general.

I’m feeling a bit sad that I have to leave tomorrow as everyone here has been great and it has really been invaluable to me (and hopefully to those in SUSE) to meet in person and talk about many things that interest and annoy us.

Hackweek: Drawing the Lower Case Characters

August 28th, 2008 by

In my previous post, I talked about the majuscles. Now it’s time to implement the minuscles, or the lower case characters.

This time, I omitted the sketch and try to implement it directly in FontForge. I think, it worked pretty well, but judge it yourself:

First draft of the lower case characters

It’s a first draft. Of course, I have to adjust a lot of things. The font is far from finished or being perfect. :-)

After this, I have to find a good name. Any suggestions? Robert thinks, Toms Mono is a funny name and I should keep it. ;-)

Button Order in YaST: Trying to Make Peace with Both Worlds

August 28th, 2008 by

KDE and GNOME have different button orders. Like many desktop-related issues, this has been a subject of heated debates time and time again.

Where KDE uses something like this:

GNOME would use something like this:

Which one is right? Which one is wrong? There is no real answer to that; it will always be more a religious debate rather than an objective discussion.

YaST Button Order

So, which button order to choose for YaST?

For historical reasons, we used the KDE button order. But this has repeatedly started the same heated discussions as for KDE vs. GNOME, with the same results — which is, no tangible result, only something along the lines of “because we says so” (and didn’t you always hate it as a kid when mom or dad said that?).

YaST should not favour one of the major desktops over another. YaST should work well for all users. So, YaST should adapt to the environment it runs in.

YaST comes in different flavours. There is the graphical version: The YaST Qt UI (user interface) engine (Side note: The YaST Qt UI is not in any way KDE specific; Qt just happens to be a great toolkit for making graphical user interfaces, and KDE happens to use it, too. There is not one single line of KDE-specific code in the YaST Qt UI.).

There is also the text-based version, the YaST NCurses UI.

As an alternative graphical UI, there is also the YaST Gtk UI which uses the same widget toolkit (Gtk) as GNOME. That brings YaST closer to the GNOME crowd. At least, that’s the theory. Yet, that alone didn’t improve the situation in any way for this button order issue:

YaST dialogs are specified in a subset of the YaST-specific YCP scripting language. Those dialog descriptions include input fields, list boxes, headings, etc. as well as the logical arrangement of all those user interface elements (widgets, even though that term has seen a lot of misuse recently). And buttons, too, of course.

So, the arrangement of buttons was still fixed. The YaST Gtk UI couldn’t really do anything about changing that button order so it looked more GNOMEish.

This is now different. We introduced a new widget ButtonBox that abstracts exactly that. A YaST module developer now only specifies “there is a ButtonBox, this is where I put my buttons, and the ButtonBox will arrange them as appropriate”.

…for users…

So now it is possible for the first time to use the proper button order for each environment: GNOME button order for the Gtk UI, KDE button order for the Qt UI.

But there is more.

…for power users…

The Qt UI can now demonstrate the fact that it’s not KDE specific. It checks what environment it runs in and uses the appropriate button order: GNOME button order when running in GNOME and KDE button order for KDE (or other window managers).

It checks the $DESKTOP_SESSION and $WINDOWMANAGER environment variables to figure that out. But of course power users can still override that and set the $Y2_BUTTON_ORDER environment variable to “KDE” or “GNOME”.

…for YaST developers…

Of course, such a change doesn’t come over night. There is a very large amount of YaST code. I counted 69 .desktop files in my /usr/share/applications/YaST2 directory; that corresponds to 69 YaST modules. On my machine I have 432000+ lines of YCP code below /usr/share/YaST2 . Now try to figure out how many YaST dialogs that might be, and how many of them need to be converted to use that new ButtonBox mechanism.

Obviously, it’s a lot of stuff to change. So the change should not hurt the people doing the change more than it absolutely has to. Don’t forget, it’s not just working hours that have to be paid; it’s also working hours that can’t be spent on implementing other features or on fixing bugs. And any change (even more so changing code at so many places) means a possibility to introduce new bugs.

…trying to be smart…

So this ButtonBox mechanism was made to be smart, to re-use existing information (things that are already there in the code), to make good use of existing conventions.

In principle, using something like the ButtonBox means having to tell it which logical role each button has so it can be arranged according to the current button order’s conventions: Which button is the positive confirmation of a dialog (it might be “OK” or “Continue” or “Yes”, but it might also be someting like “Save” or “Print”), which one is the “safe escape” (“Cancel”, but sometimes also “No”), which one is the “Apply” button or the “Help” button, and which ones are just “other” buttons. Remember, YaST is being translated into some dozen languages, so just hard-coding the English button labels won’t do.

But we already have a mechanism that maps (translated!) button labels to function keys, and that mechanism does something similar: There is a list of commonly used button labels and what function key is to be used (in the NCurses UI) for them. For example, “OK”, “Continue”, “Yes”, “Next” all map to the F10 key, “Cancel” to F9, “Help” to F1.

Extending that thought some more, it makes sense to assume an “okButton” role for buttons that are otherwise assigned the F10 key, “cancelButton” for buttons that get the F9 key, etc.

Buttons in YCP each are assigned a widget ID. That ID is the “handle” by which a button is being referenced; this is what the YCP application receives when it is informed that the user clicked that key. When specifiying a layout with buttons, this looks (slightly simplified) like this:

UI::OpenDialog( 
    `VBox(
         `InputField(`id(`name  ), "Name" ),
         `InputField(`id(`street), "Street" ),
         ...
         `HBox(
               `PushButton(`id(`ok    ), "OK" ),
               `PushButton(`id(`apply ), "Apply" ),
               `PushButton(`id(`cancel), "Cancel" )
               )
         )
);

As shown in this example, a button with the “OK” role typically has an ID like `id(`ok), a “Cancel” button has `id(`cancel), an “Apply” button has `id(`apply). So this information is used, too, to figure out what role a button has.

Of course, there are still situations where the system needs to be explicitly told what button has which role: It’s hard to figure out in a generic way that a “Print” button or a “Save” button has the “okButton” role in a dialog. In that case, the YCP developer has to change the code to look like this:

`PushButton(`id(`print), `opt(`okButton), "Print" )

…the normal case…

But in many cases, the migration is as simple as replacing the `HBox() (the horizontal layout box) holding the buttons with `ButtonBox():

UI::OpenDialog( 
    `VBox(
         `InputField(`id(`name  ), "Name" ),
         `InputField(`id(`street), "Street" ),
         ...
         `ButtonBox(        // This is the only line that changed
               `PushButton(`id(`ok    ), "OK" ),
               `PushButton(`id(`apply ), "Apply" ),
               `PushButton(`id(`cancel), "Cancel" )
               )
         )
);

…taming the masses…

Just imagine doing only this little change in 432000+ lines of code – of course, only where such a `HBox() contains `PushButtons, not just blindly replacing all `HBoxes. And just changing it is not all there is to it; each dialog has to be tested, too. And that alone is not so trivial: A dialog might easily only be shown in very exotic cases, so the developers doing the test have to recreate each of those exotic cases just to see the dialog.

You see, masses of code are a dimension of complexity all of their own. Little things that look trivial to do gain a whole new meaning. Everybody can do this change in one or two places, but try to do it in someting as big as YaST — without introducing new bugs that would wreck other people’s system.

Yet, we do those kinds of changes, typically unnoticed by the user community. And those little things are what, if added up, make or break a system’s quality.

We don’t take such decisions lightly. But we felt that in this specific case (the button order) the gain would be worth the pain: Users should feel at home in the tools we provide. And having the buttons where you are used to is part of this feeling at home.

Further Reading

http://en.opensuse.org/YaST/Development/Misc/Button_Order

HackWeek III Day 3 – Diary Of An Outsider

August 28th, 2008 by

Day 3 started off relatively early in comparison to day 2, why? Because I was continuing my ChatWeek with a fairly important chat with a fairly influential person.  The person in question was non other than Jeff Jaffe, Novell’s CTO.  Fellow Community member Pascal Blesser and myself were invited to have a relaxed discussion with Jeff about openSUSE and Novell and bring up any issues/comments/etc that we may know of.  We spoke with Andreas Jaeger and Michael Loeffler yesterday about the impending meeting, and discussed at some length some of the items not just because we hoped to bring them up with Jeff, but because we felt they warranted discussion regardless of who it was in front of.

The meeting with Jeff went well, and we appreciate the opportunity immensely to be able to speak fairly frankly to Jeff (no, neither of us swore or threw any furniture in the style of a Rock Star).  We didn’t manage to go through all the points we would have liked, but we certainly got through the big burning issues that we had.  After almost 90 minutes Jeff had to leave and do the rounds to see how HackWeek was progressing from the “shop floor”.  This meeting wasn’t a marketing blah blah meeting but a definite participation on all sides; there were times when disagreement happened but as the atmosphere was relaxed it was pretty easy to move on.

Afterwards I tried (relatively unsuccessfully) to get on with my project and edit the footage from the previous day.  Why oh why is video editing not simple?  Either applications are just way way way too difficult or just unbelievably unstable to the point of uselessness.  Hopefully tomorrow will be more successful when I pressgang Thomas Schmidt into helping me :)

For ALL participants of HackWeek: SudoWrestling, a great Linux focused podcast and blogcast (sometimes they can’t be bothered to talk, strange considering they’re women ;-) ) would really like to hear from you about your projects.  Now is the time to blow your own trumpet and chat to these two lovely Linux loving lunatics.

HackWeek III Day 2 – Diary Of An Outsider

August 28th, 2008 by

So the fun and sun in Nurenberg continues :D

Again day 2 started off very much as day 1 – lots of discussions.  This is not a bad thing, and maybe Novell would consider sponsoring a ChatWeek (it could be condensed into 2 or 3 days), it is a fact that communication is the one major stumbling block that any company/community suffers from and Novell and openSUSE are no exception to this.

We started with general discussions and continuing some of the discussions we had over dinner last night.  After lunch we then continued our discussions on openSUSE and what/how things could be improved – highly productive and very inspiring to get internal and external community members to speak honestly and bluntly about their thoughts and ideas. 

Note to the community (yes, all of you!): If you have thoughts on what or how to help imporve anything within the openSUSE universe speak up!!  If you’re not sure who or how to do so, the key contact details (in no particular order) are Zonker, opensuse-project mailing list, #opensuse-project irc channel and of course the openSUSE Board.  One of the advantages of openSUSE is that you can pick things up and run with them, if you need any help just ask and people will rally around (sometimes it takes a bit of time but it does happen, honest).

After all the discussions I had just enough time to grab a drink before the first openSUSE Marketing Team irc meeting took place.  This was shorter than I would personally have like, but that was down to one very important reason – the HackWeek BBQ!

The BBQ was and is a great opportunity for people just to chat on all levels, and general have fun with some fine food and some fine Bavarian Beer – Pascal will certainly disagree with me on the last point, but then again he is kind of correct; being Belgian he is used to a much wider variety and quality of beers, just go to FOSDEM to find out ;-)  You can see a montage of the video that I took over here – yes I know it’s evil flash!

The party atmosphere went on long into the night and everyone managed to enjoy themselves. Thank you SUSE for the fine food and beer, and thank you Pascal for bringing some prized Belgian beers for comparison with the Bavarian ones.