March 11, 2010
Aaron, Sandro, moofang, Shantanu and Diego have been hacking up a Plasma storm lately on the Javascript bindings for Plasma and the Plasmate builder tool. Since good code is running code, and running code is a lot easier when somebody else builds it and packages it, I've updated the Plasmate packages in KDE:KDE4:Playground to 0.1alpha2 and have updated the javascript bindings in our KDE SC 4.4.1 packages to include Aaron's latest errata - no need to update yourselves.
So it's even easier to take part in the Plasma Javascript Jam Session competition now.
And while you're at it, how about completing the loop by using our kde-obs-generator to package your plasmoids and make them available on kde-look.org, so others can start to download and improve them directly in Plasmate? Free Software virtuous circle FTW!
March 10, 2010
The folks of the openSUSE Community in Nicaragua, are preparing a great event in the city of Granada, Nicaragua, in Central America.
After some considerations and discussion within the Nicaraguan LUGs Community, SUSE-Ni was appointed to carry on with the FLISOL event on April 24th.
FLISOL stands for “Festival Latinoamericano de Instalación de Software Libre”: Free Software Installation Latinamerican Festival, where we make live demostrations and installation of Linux on the computers being carried by the crowd.
Nicaragua’s plans are to host 3 FLISOL events in 3 different cities: Managua, Granada and Leon (for the moment), leaving the management and direction in every site to one particular LUG.
For us, the openSUSE Group in Nicaragua, this is a great opportunity to participate in leading one of the main groups and to send personnel to the remaining places, so we can provide a permanent and effective presence in the Country.
Our Main event will take place at the Casa de los 3 Mundos, a Cultural Meeting place, administrated by Mr. Dieter Stadler. The house has enough room for us and for the visiting public.

More to come in the following days, detailing our plans and organization for the event.
There are multiple options to set up a slide show screen saver that shows the pictures of your choosing when the screen saver kicks in. The following shows the various options and works with the gnome-screensaver.
Easy does it
The most direct way to get a slide show screen saver going is to place your pictures in the $HOME/Pictures directory, then start the GNOME screen saver settings dialog by using gnome-screensaver-preferences from the command line or by selecting the Screensaver icon in the Control Center (gnome-control-center). In the screen saver settings dialog select “Pictures folder” and click “Close”.
One step of customization (not the preferred option)
If you do not want to use the Pictures directory as the location for the pictures to be shown you can customize the location by making a few simple edits. As the root user edit the file /usr/share/applications/screensavers/personal-slideshow.desktop. At the end of the line that starts with “Exec” add “–location=PATH_TO_PICTURE_DIRECTORY”, without the quotes and with PATH_TO_PICTURE_DIRECTORY being a real path. For example if my pictures were in /opt/slideshow the modified line would look as follows:
Exec=/usr/lib/gnome-screensaver/gnome-screensaver/slideshow –location=/opt/slideshow
Save the file and select the “Pictures folder” in the screen saver preferences dialog to select the slide show as your screen saver.
While this is a straight forward modification this is not really a good solution. The reason being that this modifies a file that is part of a package and when the package gets updated you will loose your changes.
A second step of customization
The better solution to accomplish the task of customizing the picture location is to create a new .desktop file in /usr/share/applications/screensavers. You should use the personal-slideshow.desktop file as your starting point.
As root copy the personal-slideshow.desktop file to a file with a name of your choice, then edit the file. Change the value of “Name”, “Comment”, and add the “–location” option at the end of the “Exec” value as previously. Save the file and start the GNOME screen saver preferences dialog. In the list to the left search for the value you assigned to the “Name” variable when you edited the new .desktop file. Select it and your all set.
Getting fancy
If the animation of the pictures in the previous slide show setup is not sufficiently fancy for you, the GLSlideshow screen saver maybe the ticket for you. Unfortunately you cannot just simply configure the location of the images you would like to use in the GNOME screen saver preferences dialog or via command line arguments to the glslideshow screen saver. In order to configure the location of the images to be used it is necessary to run the xscreensaver settings dialog (don’t worry, in the end gnome-screensaver will be running again).
Just starting xscreensaver will fail as only one screen saver daemon per display is allowed. Therefore, it is necessary to first kill the gnome-screensaver; use the following commands:
-> ps -A | grep gnome-screens
At the beginning of the line this produces you will find a number, this is the process ID (PID). Use this number in the next command
-> kill -9 PID
Now fire up xscreensaver and select “Settings”. In the settings dialog select “GLSlideshow” and then switch to the “Advanced” tab. In the “Image Manipulation” frame select “Choose Random Image” and then enter the path of the directory containing your image files in the text box below the check button text. If you click the “Settings” button on the “Display Modes” tab you can set various parameters for the slide show.
With the slide show configured you can switch back to the GNOME screen saver if you so desire. In the settings dialog select File->Kill Daemon, then File->Quit. Now in a terminal window restart the GNOME screen saver by using the “gnome-screensaver” command. The process is a daemon and it will background itself. That’s it, now if you select the GLSlideshow in the GNOME screen saver preferences dialog you will see your images being selected.
With this you can have a slide show as your screen saver in no time.
Happy Hacking.
Do you know this one?
Phoronix tested md5sums of ISO images of distributions. The winner was openSUSE, scoring e29311f6f1bf1af907f9ef9f44b8328b, which gave it a noticeable lead before second Slackware (b026324c6904b2a9cb4b88d6d61c81d1), which is quite closely followed by Fedora (9ffbf43126e33be52cd2bf7e01d627f9) and Debian (9ae0ea9e3c9c6e1b9b6252c8395efdc1). The difference between these two distributions, as you can see, is only very small. Ubuntu completely flopped in this test, achieving only 1dcca23355272056f04fe8bf20edfce0, which is surprising, especially considering that its previous release scored a very nice c30f7472766d25af1dc80b3ffc9a58c7. (source).
Ok, that's just a joke, but the sad part is, as somebody pointed out, that it wouldn't be really that surprising if Phoronix actually did something like that. And, probably even more sad, there would be people who'd really take it as if it meant something and started adding comments about how last openSUSE is pretty good, last Ubuntu is so disappointing, and Fedora and Debian are not really that different.
So take this from somebody who has already done a lot of performance work: Benchmarks, on their own, mean almost nothing if you don't understand them. Especially if they are seriously flawed (I mean, testing filesystem performance by doing CPU-intensive tasks? Hallo? Probably even FAT16 could provide the same results in those tests on an SSD.), but even if the results are useful numbers, it is still necessary to understand what the numbers actually say. I think I wouldn't even have a big problem forging a "benchmark" where KDE would get better (and correct) numbers than LXDE by finding a scenario that'd be twisted enough.
And even then, it is still necessary to keep in mind what is compared. Comparing the default setup of Fedora and openSUSE means also comparing GNOME and KDE, which you may or may not want, but if you compare the distributions this way, it is affected by differences between the desktops, and if you compare the desktops, it is affected by the differences between the distributions. And in either case, it may or may not apply to another distribution or another desktop.
Yet one more thing to understand is what is measured and how it affects performance as a whole. Ages ago there was a Dot article that also mentioned performance improvements to be brought by Qt4 in some specific areas, yet even now there are numbers of people seriously disappointed by KDE4's performance only because they thought that since Qt4 improves in some areas, KDE4 will get exactly the same improvement, regardless of how much these improvements matter for the whole of KDE4 or how much of KDE4 was rewritten when porting from KDE3. When I fixed Exmap to work again and did a little benchmark as a part of it, there wasn't really much more to it than to show that Exmap works again and that it is very easy to lose a lot of advantage by a simple mistake, yet people had no problems drawing all kinds of strange conclusions from that. Since making right conclusions is unexpectedly difficult for most people when it gets to benchmarks, I really need to remember not to just post numbers again without also saying what it means.
And, finally, there is still the question of other costs and whether it is worth it. Various KDE components often have resource demands, but then they are also often worth it. I mean, we all could still use TWM, or, heck, Windows 95, but seriously, how many of us really would? This, ultimately, is always about what works the best for you.
On Monday evening Cynthia McKinney spoke at a
meeting on the
theme "Behind the "War on Terror" held at SOAS. The medium sized lecture room
was full: other speakers were Ian Henshall and Nafeez Ahmed.
Ian Henshall spoke first, and touched on the reluctance of politicians and
journalists to discuss the real nature of the so-called "War on Terror" and
the events that precipitated it in public, despite being personally convinced
that the official story does not make sense. He highlighted the smears, name
calling, whispering campaigns and straw man arguments that are regularly used
to try to close down discussion. He stressed that his aim was help people to
understand the problems with the official story of 9/11 and not to promote any
particular detailed theory or account, and he was particularly insistent on
the need to use objectively sourced evidence and present the case for a real
investigation while avoiding unprovable speculation.
Nafeez Ahmed discussed the ways in which the official story of 9/11 was, as he
put it "flawed and incoherent". He mentioned the fact that roughly a quarter
of the footnoted sources of information in the 9/11 Commission report referred
to statements extracted using torture. He discussed the US Army Field Manual
on unconventional warfare that was leaked in 2008, and also the Gladio
"strategy of tension" (described in detail by Daniel Ganser), both of which
show a modus operandi that has deep roots and a long history. He discussed the
use made over the years of Islamist terror networks by the United States, and
discussed the
derivation
of the term "Al Qaeda". He also mentioned the February issue of "American
Behavioural Scientist" which is devoted to matters related to the
situation since 2001.
Ian Henshall introduced Cynthia McKinney, mentioning in particular her 12
years in Congress, her work on behalf of victims of Hurricane Katrina, her
attempts to get records surrounding the assassination of Martin
Luther King unsealed, and her recent kidnapping and imprisonment by the
Israelis.
Cynthia McKinney made a wide-ranging speech in which she began by describing
some of her own experiences on the day of September 11th 2001, and the way in
which members of Congress were given "talking points" at a very early stage.
She discussed the large proportion of the CIA's budget which has historically
been devoted to opinion forming activities, going back to the 1960s and
earlier. She also discussed the CIA's involvement in drug running and the
work of Gary Webb and Mike Ruppert in exposing this. She stressed the
importance of exposing the truth about these and other matters, and noted that
President Obama has continued to use 9/11 as a justification for the war in
Afghanistan.
Some photos are here.

Monday I
released Tomboy 1.1.4. Last month's 1.1.2 release was actually the first to feature automatic note synchronization (herein referred to as 'autosync'), but in 1.1.4 the feature is less annoying and you can actually turn it on in the Preferences UI. Here's the only possible autosync screenshot:

Here are some facts about autosync:
- It assumes the server is always right when conflicts occur, so if you actually found Tomboy's conflict-handling UI useful, don't use autosync
- When a sync occurs, it desensitizes all note windows, because Tomboy sync is still a bit insistent on believing in transactions.
- But in theory this should never be a problem for you, because Tomboy will never sync while you are editing a note. It will wait until *at least* one minute has passed where you have not been editing.
- Besides this desensitization of note windows, there is no indication at all that a sync has occurred. Next cycle, I intend to use libnotify bubbles and/or status icon changes where they make sense to let the user know if new updates have been downloaded, or if the sync server appears to be down, etc. Right now this feature is totally silent, though you can get a few details if you run from a terminal with --debug.
It's unfortunate that I've been too busy to publicize this feature until so very late in the cycle. I'd appreciate any testing, feedback, bug reports, etc. At this point all I can say is that it Works For Me.
Other sync-related news:
- Rumor has it that Ubuntu One note sync can no longer mangle your notes, unless you use their web editor, in which case the mangling is much less severe than in the past. I keep getting emails from Launchpad saying that Rodrigo has fixed yet another of the old irritating bugs, to the point that I've lost track and think he may have gotten the last of them! :-) This is great news for U1 users, who previously suffered from a few serious sync bugs.
- I've started the ball rolling on deploying Snowy on GNOME servers (this would be known as Tomboy Online, if the marketing team approves...I still need to email them).
- We have another Snowy planning meeting this weekend.
- Many thanks to Leon Handreke and Sander Dijkhuis for their valuable contributions to Snowy in git.
- Tomdroid 0.3.1 is out, and although it doesn't yet include web sync, the merge is impending!
Another feature in Tomboy 1.1.4 makes me very happy, might upset Tomboy old-timers, and could possibly cause
Alex Graveley to destroy my very soul:
By default, when you rename a note, Tomboy will no longer automatically update all of the text that used to link to that note. Instead, if other notes link to the renamed note, Tomboy will show you a dialog (lame, I know, I intend to bind
GtkInfoBar for next cycle to eliminate all dialogs in Tomboy) that lets you choose what to do. Here's an example screenshot, with the Advanced section expanded:

Some have argued that automatic link renaming is part of Tomboy's magic, but many many users (including me) consider this dark magic to be
a serious potential data loss bug. If you've ever had a note called "Linux", and renamed it to "openSUSE", and been dismayed to find that everywhere in your notes where it used to say "linux" it now says "openSUSE", you know what I'm talking about.
In the future, I'd like to allow folks to have more control over note linking behavior. Many users have expressed a desire to turn off automatic linking, or to be able to link arbitrary text to another note (not just text that matches the note's title). Enough people have asked for it that it'll probably happen, though of course patches would make it happen faster.
Next time you hear from me, Tomboy 1.2.0 should be out, and we should be making progress on getting Tomboy Online deployed!
March 09, 2010
1) Create a folder somewhere eg ~/Desktop/My Favourite Apps
2) Drag and drop the folder onto a panel
3) Choose "Folder View" from the popup that appears
4) Drag apps from the menu, documents from Dolphin and other stuff onto the new panel icon
5) Click it and enjoy your new menu!
As this blog is more and more converting into a “meet me at …” blog, I want to keep this tradition.
On next weekend I will be present at Chemnitzer Linux-Tage running the openSUSE booth there, so if you don’t know what todo next weekend and you are in the Chemnitz area stop by and visit Chemnitzer Linux-Tage, of course stop by at the openSUSE booth
Of course there are also a number of interesting talks over there, so it is really worth a visit.
The last days I’ve spent some time to investigate how to package Google Earth into an rpm. There was already a script called make-google-package available on the internet, but this one creates a debian package only. However, it was a good start to get me going to create a Google Earth (GE) rpm. Although I met quite some obstacles, which is not to uncommon in package building, I was still able to come up with a procedure a get GE packaged. The biggest problem I encountered were incorrect library dependencies, for which I opened issue 702 in the Google Earth issue tracker. Anyway to make a long story short: the rpm installs Google Earth system wide, corrects file permissions, for openSUSE_11.2 it takes care that the font is rendered correctly, the rpm takes care that Google Earth integrates nicely with the rest of the openSUSE system.
The procedure to build the rpm can be found in the openSUSE wiki. One word of caution about the procedure, you need to be an experienced linux user and you need to have access to the openSUSE Build Service (OBS) to be able to build the rpm. This is due to library dependency problem, which prevents it to build without modification to the base system.
If you like and you have the knowledge how to build an rpm with the tool ‘build’, it would be great if you can extend the howto with steps how to do this (build a GE rpm with ‘build’) to the before mentioned page. The same is valid for a procedure that uses VirtualBox to build the rpm.
Last but not last; a procedure or even a script, that uses ”’rpmbuild -ba”’ to build the rpm, would be very welcom as well.
Few weeks ago I was at FOSDEM. It was really amazing experience. I meet many interesting people, learned quite some thing and I returned full of enthusiasm. Open Source events are really great.
But all the fun wasn't over even after the FOSDEM. I spent few more days in Bruxelles attending MySQL packagers meeting organized by SUN/Oracle. We spent quite some time talking to each other. We learned what MySQL people are doing and how. And they learned how do we deal with MySQL and what is troubling us. And many good things will come from this.
First but certainly not last of them is about to appear now. One very interesting thing we learned at meeting was MySQL release policy. What openSUSE and Ubuntu and maybe some others are doing is that after release date there is generaly no version updates allowed. We are only fixing serious bugs and security related issues. It takes quite some work. What we learned is that new releases in stable branch of MySQL are in fact maintanance updates. If you update from 5.1.43 to 5.1.44 you wouldn't get any new features. All you will get are bugfixes. And only bugfixes of serious or security related issues. Does it sound familiar? Yes it is the same thing we are doing! So I discussed it with our maintanance team. And we came to the conclusion that we want to give our users all serious fixes. Not only these few selected. And the best way to do it is to use maintanance updates provided by MySQL people themself. I'm not saying that I don't have enough confidence to play with MySQL sources, but I think that MySQL people can do it better 
Yes, you are guessing right. What I'm trying to say is that we are going to update MySQL to the latest available version. This means 5.1.44 for openSUSE 11.2 and 5.0.90 for older openSUSE. We will start with 11.2 as version gap is smaller there and if everything will proceed smoothly, we will continue with 11.1 and 11.0. For 11.2 you can help by testing update. Currently 5.1.44 update is prepared for 11.2 in server: database: STABLE and I'm running some final tests. If you want, you can try it too (not recomended on production servers yet) and if you'll find any problems, please report them before it will hit official updates.
Remember, this is just the beginning. I've got some bigger plans regarding MySQL in 11.3 
The next openSUSE german Wiki Team meeting will take place tomorrow Wednesday March 09 at 18:00 GMT. As always, the meeting will be held in IRC on the #opensuse-wiki-de channel on Freenode.
Please add your topics to the meeting wiki page at:
http://de.opensuse.org/Wiki-Team/Meetings#Topics
We using for our Meeting the Meetbot. Please check http://wiki.debian.org/MeetBot for the commands.
Please add topics as soon as possible. Also, if you have questions for the meeting, but can’t attend (we know that the meeting times can’t work for everyone) please add them to the agenda as well.
For more on IRC meetings, see: http://en.opensuse.org/Meetings/About.
As always, we meet in #opensuse-newsletter on Freenode. Fire up your favorite IRC client and head over to #opensuse-wiki-de
Not familiar with IRC? A good overview can be found at irchelp.org. This site is not affiliated with openSUSE. For more information on Freenode, see http://freenode.net/.
Wondering what meeting times are? Check the openSUSE Meetings page. All project meetings and team meetings should be listed there.
Community Discussion - Part1
I thought it would be a good idea to try and engage you – the fine openSUSE community – in discussion about "Us" the Community. We seemed to have been spoiled by having a Community Manager, people kind of seemed to let him do the work or worse expected him to do so. Now that we don't have that position any more we need to go back to basics and start rolling our sleeves up. We've started but we have much to do. As such this is the first in I'm not sure how many posts on the subject.
To save me having to repeat myself constantly I'll do a small disclaimer now:
THESE ARE MY OPINIONS AND THOUGHTS AND NOT GOSPEL! I AM NOT EMPLOYED BY NOVELL! I WANT TO GET A DISCUSSION GOING NOT A FLAME WAR!
In my opinion this topic is linked to my previous post about the "Planning For The Future". The key here is to remain agile, able to flex, roll, bounce, jump and basically move with the times. If we impose strict rigid requirements then things will start to crack and crumble.
So what do I see as key items needed to enable more community contributions, and get more non-Novellians involved in taking a more (pro)active role in the Project?
- Tools - we need an enabler of sorts that lets people start off small and get to grips with how things move, from there they can grow out and up.
- Transparency - ensuring that the decisions that are made are clear concise and understandable. I'm ure not everyone will like the decisions but if they can see the reasons behind it then they can work with it and maybe come up with a better alternative.
- Communicate - this is something that has improved a lot over time but still has some ways to go. There are certain parties that still don't understand how to communicate with the wider community but they can and are an integral part of the ecosystem, we need to educate and help them get better.
- Coach - no-one can get to a suitable proficiency in any subject whether it be academic/sporting/whatever without some form of tutelage. To help lighten the work load on the employees that are trying to juggle between their enterprise workload and community workload we need to have them spend some time away from their corporate duties to help with some knowledge and skill sharing.
- Teamwork - stop depending on individuals, whether they are Novellian or non-Novellian one person can't do it all in their supposed subject matter of expertise.
- Educate - self market, not just to the outside world but internally too. The openSUSE community is too modest for it's own good at times, we need to be more vocal about all the fantastic stuff we do. We have to be clear and concise in the message we send out across the community.
- Learn - look at our peers and take a leaf out of their book sometimes. Believe it or not they do do things right sometimes ;-) I'm not saying copy, but try and take the bits that are needed and roll it into what you want.
- Collaborate - work with our peers on universal matters. This doesn't just mean cross-desktop, but also cross-project and cross-distro.
- Listen - take a moment to hear what is being said. Just taking that little bit of extra time can help isolate the noise from the message and help you understand what is being said/asked. Remember that not everyone is a native speaker of your language so things might get lost/confused in translation, which is where that little bit of time will help.
- Lead - you don't have to do things by committee. If you see something that needs/can be done just do it! We dither around far too much waiting for someone else to do it. Do what you can and then communicate what you've done and what if anything is outstanding.
All the above link into one another almost inextricably, so not doing one will most likely have an detrimental effect on the rest.
We already have several items that are great examples of how the community can get on and do something great, a sample of those are:
- openSUSE Education - this team started from very little and have created one of the best educational derivatives of any distro. There is a good mix of people involved, and no-one is paid to do it, even on the Novell side. They're a well knit team of contributors that are more than happy to help people wanting to help them. They saw a gap and filled it, by taking a leaf out of one of our peers' book and enhanced it.
- Packman - the great resource for the common user. They are one of the oldest community based projects relating to openSUSE or its earlier iterations that I remember. They're approachable friendly and have a heck of a lot of knowledge. They saw a need and did it.
- LXDE - a new desktop environment that is only a couple of years old. It has effectively been packaged from scratch by one person and is now included in Factory and the upcoming 11.3 release. There was no committee discusion about doe we want it in or should we have it in, there was an opportunity and it was capitalised on.
Now I'd love to hear from people on what they think is missing or blocking them from doing any/all of the above, I'd also like to know what it is that people find awkward or difficult in joining in and being more active. Don't get me wrong I appreciate one of the most precious and costly commodities is pretty much standard across the board - that of time. I suffer from that problem as much as anyone, but it doesn't stop me from contributing, sometimes I just ave to slow down and trickle the contributions rather than pour them. So let's start the conversation and get ideas and complaints out in the open. If you don't say it how are people going to know about it?
Remember that this is an open dialogue. Pot shots, defamation of character, flaming, and anything non-constructive will NOT be tolerated. Let's keep it clean and helpful. Listing things that our peers do better than us and also what they do worse than us would most likely open eyes.
How one gets to the future greatly depends on how one deals with the present and learns from the past.
I'm happy to announce that my talk "Making MySQL administration a breeze - a look into a MySQL DBA's toolchest" has been accepted for this year's edition of the MySQL Conference & Expo in Santa Clara, which will take place on April 12-15, 2010. The session is currently scheduled for Wednesday 14th, 10:50 in Ballroom E.
My plan is to provide an overview over the most popular utilities and applications that a MySQL DBA should be aware of to make his life easier. The focus will be on Linux/Unix applications available under opensource licenses that ease tasks related to user administration, setting up and administering replication setups, performing backups and security audits.
Of course I will cover the usual suspects (e.g. Maatkit), some of these are actually collections of different utilities by themselves. As it's impossible to go over each individual component in the given time frame, I will try to pick out the most popular/useful parts related to the scopes mentioned above. But I will also cover some lesser known gems that migh be worth taking a look at. What's your the most valued tool in your toolchest? I am still looking for more inspiration.
I look forward to being at the conference again and meeting with colleagues and friends in the MySQL community. Judging from the current schedule, it will be a very interesting mix of talks.
If you're interested in attending, you should consider registering soon! The early registration ends on March 15th. Until then, I encourage you to make use of this "Friend of Speaker" discount code (25% off): mys10fsp
The next openSUSE Weekly News meeting will take place Saturday March 13 at 14:30 UTC. As always, the meeting will be held in IRC on the #opensuse-newsletter channel on Freenode.
Please add your topics to the meeting wiki page at:
http://en.opensuse.org/OpenSUSE_Weekly_News/Meetings/Topics_current
We using for our Meeting the Meetbot. Please check http://wiki.debian.org/MeetBot for the commands.
Please add topics as soon as possible. Also, if you have questions for the meeting, but can’t attend (we know that the meeting times can’t work for everyone) please add them to the agenda as well.
For more on IRC meetings, see: http://en.opensuse.org/Meetings/About.
As always, we meet in #opensuse-newsletter on Freenode. Fire up your favorite IRC client and head over to #opensuse-newsletter.
Not familiar with IRC? A good overview can be found at irchelp.org. This site is not affiliated with openSUSE. For more information on Freenode, see http://freenode.net/.
Wondering what meeting times are? Check the openSUSE Meetings page. All project meetings and team meetings should be listed there.
March 08, 2010
A few weeks ago, the GNOME Foundation has been contacted by the organizers of the Idlelo conference in order to get a GNOME presence during the event. Quoting the website of the event:
IDLELO is one event for FOSS practitioners, developers and advocates as well as governments to showcase results, share experiences and challenges, review progress on the continent in diverse domains and chart a way forward for an African future grounded in true ownership of technology. IDLELO is therefore a premier international forum for the presentation of research results in Free and Open Source Software (FOSS) in Africa.
The event will occur in May, in Accra, Ghana.
There have been many discussions in the past about how to get more community involvement in Africa, and there's no magical solution. But a good first step is, for sure, to be present at events that are being organized on the african continent. We're already sending Luis de Bethencourt to FOSS Nigeria, and we want to be at Idlelo too.
If everything goes well, the amazing Fernando will go deliver training sessions before the conference itself; but we need one more person to man a booth during the conference. While this is not a hard requirement, we'd still like to have a GNOME Foundation member who feels empowered to talk in the name of the Foundation. If you're interested in representing GNOME at Idlelo, please get in touch with the board. I'm sure you'll enjoy it!
...sponsored by Microsoft, tommorow at 18h. I decided to take a look, so there will be some fun ;-). [And I guess I can always run away when it gets too bad.]
In the past weeks (actually, months) I've been doing some changes in the MonoDevelop GUI to make it more functional and better looking. Here is the result:
Before

After
Changes in the Status Bar
Everything started with the idea of removing the status bar, in order to save space in the main window. The plan was to use something similar to Chrome's status popups, which are visible only when there is actual information to show to the user. However, after playing with the idea and thinking about how would it fit in MonoDevelop, I decided to try something else. Instead of removing the status bar, we would make a better use of the space it takes. So in the new GUI I merged the status bar and the bottom dock bar. The dock bar is the area where the title of pads in auto-hide mode are shown (for example, the Test Results pad in the above screenshots). When you hover over the title, the pad is shown in a popup window, with a nice sliding effect. The bottom dock bar is now shown next to the status bar, growing as more space is required.

I also added support for custom pad labels. So for example, the Errors List pad now shows the error and warning count, instead of just the "Errors List" label. In this way pads can show some status information while they are minimized.
Less intrusive output pads
Temporary output pads such as logs for Version Control or Find in Files operations are now shown in autohide mode by default. Until now, those pads were shown docked at the bottom, taking space from the text editor. I also removed the standalone Build Output pad. The build output is now available in the Errors List pad, by clicking on the Build Oputput button:
Visual improvements
A noticeable visual change is that the main window new has a darker background, with some subtle shading effects. The pads look more "physical" and better delimited. The pad toolbars are now integrated in the docking system, improving the overall visual consistency.
Configurable GUI compactness
One thing I learned while working in MonoDevelop is that it is hard to find the right balance in the use of padding between the gui components (specifically, between the components shown in the main window). Using more padding makes the GUI more visually pleasant, and the components are better delimited. On the other hand, padding may be a waste of space when working on small resolutions.
I added a configuration option for selecting the level of compactness of the GUI. There are five levels, from Very Compact to Very Spacious. So for example, the screenshots shown above are using the 'Spacious' level. In that level, there is some padding always visible between the pads, the window borders and the main menu. There is no such padding in 'Normal' mode.
Zoomable tree views
MonoDevelop has an option which allows choosing the font to use for the tree view pads such as the Solution pad or the Class pad. Those trees may be large for big projects, so users find it convenient to use a small font, which allows seeing more information at once.
To make font reduction easier and more handy, I added a Zoom capability to the tree pads. So to zoom, all you have to do is hold the Control key and move the mouse wheel up and down (the standard zoom shortcuts can also be used for this, including Control+0 to reset the zoom). This screenshot shows the solution and class pads with different levels of zoom:
Conclusion
The changes I described are part of an ongoing effort to make MonoDevelop easier to use. There is more to come. It would be great to have feedback on the changes we are doing, so that we can further fine tune the interface for the 2.4 release.
A few days ago Michal blogged about a public virtual machine by our dear friend Jaromir Cervenka. Time flew by, Jaromir installed the latest Milestone 3 to the machine and the project is now available from the new and easy to remember domain (thanks darix for driving this). The new frontpage also contains the instructions in English how to access it via VNC and SSH client or directly inside the browser.

Enjoy this gift from our community member and don’t forget to report any problems you find with this new milestone in our bugzilla.
PS: I had a talk with our SUSE Studio guys and they are up to something similar using their infrastructure. They have to solve some issues first, though. Feature for this is already filed in openFATE.
Hi,
recently I implemented a “osc config” command to set or get a configuration option.
Syntax: osc config <section> <option> [<value>]
(<section> is either an apiurl (see sections in the configfile) or an apiurl alias or ‘general’)
Here are some small examples how to use it:
# get the current value
marcus@linux:~> osc config general build-root
‘general’: ‘build-root’ is set to ‘/var/tmp/build-root-%(repo)s-%(arch)s’
# set an option
marcus@linux:~> osc config https://api.opensuse.org aliases obs
‘https://api.opensuse.org’: ‘aliases’ is set to ‘obs’
# remove an option
marcus@linux:~> osc config obs aliases –delete
‘obs’: ‘aliases’ got removed
# remove/reset an option
marcus@linux:~> osc config general build-root –delete
‘general’: ‘build-root’ is set to ‘/var/tmp/build-root’
Feedback, comments etc. are always welcome
This is part of the Search’d series. Topics are taken from Search Engine keyword searches.
This second post is coming a bit late, but it is finally here. I’ve been getting ready for our World Wide Sales Kickoff. We will be kicking off our new fiscal year with great sessions for our worldwide group of partners. I’ll be presenting with two of my EMEA colleagues on Scaling Alfresco. I’ve chosen to tackle scaling our WCM product. It might even turn into some great information for a post or two here.
This weeks topic is one of the most popular searches that has lead to this blog: How do I enable the Sharepoint Protocol in Alfresco. At the outset let me tell you: I’m not going to explain how to actually configure the Sharepoint Services in this post, rather I want to point you to resource that take you through all of the steps of enabling the Sharepoint Protocol in Alfresco and how to use it. These are often over looked resources, but resources that can be really useful.
The first resource is the Installing and Configuring Alfresco Community Edition guide found on the Alfresco Community Download page (or on the Alfresco Content Community Site [registration required] in the Document Library under Documentation in the Installation and Configuration folder for your installed release of Alfresco Community. This guide covers the basics of setting up and runningg Alfresco Community (It is also a preview of the documentation available as part of an Alfresco Enterprise Subscription in the Alfresco Network site [Alfresco Enterprise Subscription Required].) You’ll find instructions for setting up and configuring Alfresco Sharepoint Services (on the server side) starting on the bottom of page 26.
The second resource covers using the Sharepoint Extension in Microsoft Office: Managing Alfresco Content from within MS Office Community Edition. (Requires Registration). This is also found in the Alfresco Content Community Site [registration required] in the Document Library but in the Tutorials folder.
These documents as well as others for using Share, Web Content Management, Document Management and Records Management can be found in the Content Community Site. You’ll also find presentations from past Community Conferences, Case Studies, White Papers and Webinars.
If you're still wondering what happened during the Usability hackfest, then you clearly missed a lot of blog posts. The good news is that you can catch up with all the links being collected on the Hackfests, or you can cheat and go read Máirín's coverage, since she did an amazing job writing about what was being discussed.
I was there only for the last two days; the original plan was to attend a bit more of the event, but the travel from France to London took an unexpected 12 hours. I still had some good and useful time there, that I mostly used to get a good overview of what people are working on, and how this can be integrated in a GNOME roadmap. Here are some highlights:
- While I missed the discussion about nautilus, it seemed most people at the hackfest agreed on streamlining the nautilus user interface. I'd love to try the prototypes that were worked on: most of the proposed changes make sense to me. But getting rid of tabs and/or the split view will certainly trigger various reactions, and that's something that we cannot ignore...
- Thomas
je parle français couramment
Wood was kind enough to let me use his laptop charger nearly all the time — I had one, but not for the right laptop...
- Charline reported about a usability review of empathy, and this was definitely instructive. It's always fun to look at a user interface and finds what's wrong and what can be improved. In some way, it reminded me of some usability reviews that the usability team was doing for various applications a few years ago. That's an effort that we've been missing lately, and I'd love to see someone revive this!
- The work on the new control center seems to be moving along nicely. We should see the results in the next development cycle; don't be afraid to help Thomas if you're interested in this!
- While discussing preferences, and removing some of them that we think most (as in a huge percentage) people don't use, we mentioned the fact that when we remove some settings from the various configuration tools, a lot of people get unhappy, to say the least. This is understandable, but we also always pointed out that it should be easy to write a small tool to enable people to change those settings graphically again. That never happened, but we'd like to avoid further unhappiness. This is how the idea of GNOME Plumbing was born. And I foolishly proposed to implement this.
- It was funny to see Garrett breaking his openSUSE installation. Except that it shouldn't break this way when using GNOME:Factory on 11.2. Oops.
- I had a good chat with Jon about GNOME 3. There's so much we can deliver during the whole GNOME 3.x cycle... We're focusing on 3.0 right now, but we need to prepare the following releases too. It was motivating to get reminded of the various areas we should explore, and motivation is something that was most welcome :-)
- It was good to catch up with Lucas, just a few days before Julia magically appeared :-) He's still one of my heroes.
- On Friday morning, Bastien told to Mairin, Garrett, Jakub and Hylke:
okay, you want tools for designers; we're a bunch of hackers here, but we need you to design the tools you need
. This resulted in a good discussion. Except that now, we really need some people to sit down and implement this. I guess this could be an interesting Summer of Code project!
- Seeing Willie get hopes for usable accessibility support in GNOME Shell was a real pleasure. It's been a hard topic for months, and knowing that there might be some light at the end of the tunnel is already good news.
- Matthew invited me to a card sorting session about settings and how to group them. It was a new experience for me, and seeing someone struggle to organize settings was eye-opening: I got the feeling that even with just one person doing this seriously, we can improve the overall experience for many users. I'm intrigued how usability people deal with different people having conflicting behaviors, though.
Many thanks to Canonical and Google for sponsoring this hackfest, and also thanks to Klaas and Novell for letting me go on a short notice :-)
I have high hopes that putting all those designers and usability people in one room together during one week will also make the GNOME Usability team move forward again. Usability is an essential part of our DNA, but we've been slowing down our efforts there, instead of accelerating as we should have done. This hackfest should put us back on track!
March 07, 2010
Yep, that's me; and yes, I know what the cue to slow down the horse is -- lean back and use both reins. And yes, you can stop the horse by doing "slow down" three times...
But that's not a way to stop the horse. If you are going full gallop and need to stop, you want full stop now cue, not three slow down cues.
Now, I knew some horses that were actually very good at stopping, and yes, there's huge difference between stop now and slow down to full stop. Cue those horses were trained to was "whoa"...
So I tried teaching that cue to young stallion here, and it does not really work. Or rather... it works a bit too well.
I know many horses where "whoa" means slow down so I sometimes utter it when I want to just slow down... and then the horse comes abrubtly to full stop. What is worse, many other words trigger same response -- I guess they are too similar for stallion's ears.
There must be some reasonable cue, that is impossible to mistake for the horse, and unlikely to be given accidentally by the rider... unintended full stop is almost "and now climb back to the horse" event... but what is it? For now I know "whoa" is neither :-(.
(And for the record, I probably could teach horse to do full stop on something completely crazy -- like hand touching his tail -- he's learning almost too quick.)
Last time I
blogged about open positions in the SUSE Studio team we were just preparing the first public alpha of SUSE Studio. We were excited about our application, but we didn't know what users would say. Now we are running
SUSE Studio Online with more than 50.000 registered users. We have
released an onsite version as part of the
SUSE Appliance Toolkit, have won
awards, and we get a lot of
fantastic feedback. We have achieved a lot. To sustain this growth and success we are looking for some smart people to
join our team. This could be you.

We love to learn, we like challenges, and we are passionate about great user experience. We are a tightly knit team of a diverse set of people spanning the whole range of development, from user interface design over Rails and system programming to QA. We have people who just started their career and others who have decades of experience in the business. Technology, innovation, open source, team work, and meeting the goals of our users are important to us.
If you are interested, look at the
job descriptions. We are looking for user interface designers, web developers, Rails experts, and all-rounders with a hang for backend programming. You will learn, you will grow, you will be working on exciting software. Apply now.
@IanRomanick, with
his post on a little cultural problem that VIA encountered.
I actually had some issues when unichrome.sf.net was first created in Q2 2004. Some commit emails would get caught by the sf.net spamfilter. There was an interesting struct in
this headerfile.
A quick grep of VIAs current codedrops does not show much of an improvement. The same structs name is now preceded with "NEW".
March 06, 2010
Issue #113 of openSUSE Weekly News is now out!
- Pavol Rusnak: Announcing Connect!
- Andrew Wafaa: openSUSE & Google Summer of Code 2010
- Bento-Theme implementation approach
- Linux.com/Joe Brockmeier: Beginner’s Guide to Nmap
- Poll: Which linux Distro do you use frequently
For a list of available translations see this page:
http://en.opensuse.org/OpenSUSE_Weekly_News/113/Translations.
Issue #113 of openSUSE Weekly News is now out!
- Pavol Rusnak: Announcing Connect!
- Andrew Wafaa: openSUSE & Google Summer of Code 2010
- Bento-Theme implementation approach
- Linux.com/Joe Brockmeier: Beginner’s Guide to Nmap
- Poll: Which linux Distro do you use frequently
For a list of available translations see this page:
http://en.opensuse.org/OpenSUSE_Weekly_News/113/Translations.
I recently received a question from Robin Schumacher at Calpont, the makers of the InfiniDB analytics database engine for MySQL: "How would you recommend we try and get bundled in with the various Linux distros?"
Since this question has come up several times before, I thought it might make sense to blog about my take on this.
First of all, please note that there is a difference between "being part of the core distribution" and "being available from a distributor's package repository". The latter one is relatively easy, the former can be hard, as you need to convince the distributor that your application is worth devoting engineering resources to maintain and support your application as part of their product. It's also a space issue – distributions need to make sure that the core packages still fit on the installation media (e.g. CD-ROMs or a DVD). Therefore they take a very close look at each package and if it's really needed to be part of the installation medium or if it's fine to provide it for download from a package repository instead.
Distributors prefer to keep their core product small and restricted to the "basic OS building blocks". While MySQL might still be considered to be a part of this, this probably does not apply to the various plugins and extensions that are available for it. Therefore the best approach is to invest some engineering time and start doing the packaging yourself, either by hiring an engineer capable of creating and maintaining the packages, or by finding someone in your community who has the required experiences and is willing to do it.
While it's of course possible to set up and maintain your own build and package hosting infrastructure for that, I recommend to make use of the existing services provided by the distributors.
The top tier distributors all provide means of offloading the maintenance of "non-core" packages to their community, offering various options for packages to be made available. For example, Novell/openSUSE provide the free "Build Service", which is capable of building packages for other distributions as well (e.g. Fedora, Mandriva, Debian/Ubuntu, etc.). In addition to automating the builds, the Build Service also takes care of the distribution via their download mirror network and ensures that your application can be found via their package search interface.
Red Hat/Fedora provide something similar, named "Koji" – but it's "Fedora only". Here's a HOWTO that outlines the process of becoming a Fedora package maintainer.
Ubuntu/Canonical have "Personal Package Archives (PPAs) – if your project is hosted on Launchpad already, that might be something to look into for providing Debian/Ubuntu packages. Alternatively you could join the Debian project and start building and maintaining your package there. They maintain a list of "Work-Needing and Prospective Packages", a description of the process on how to become a new maintainer is outlined here.
If you'd like to target Solaris/OpenSolaris as well, there is the OpenSolaris Source Juicer – a web service which allows OpenSolaris community developers to build packages (using RPM spec files) and publish them for review, so they will be included in an official package repository. The Software Porters Community Group coordinates, advocates, encourages and helps with the porting of Software from multiple Platforms to the OpenSolaris Platform.
March 05, 2010
One of the more difficult things for reporters working in the tech industry, especially those who aren't really familiar with a beat, is finding contacts for free software projects.
Increasingly, projects like GNOME or openSUSE are in mainstream news, but finding someone to "speak for" those projects can be a challenge. This is doubly true when a site has no contact information for project "leadership" or stale information for the project.
As an example, I just pinged all the addresses on the GNOME Press Resources page -- and they're in a pitiful state right now. At an outside guess, I'd say that the page is at least three years old and probably older than that, and the bounces I just received reflect that. Luckily, I'm not on deadline or anything -- I'm just trying to get information and clean the page so that we have good contacts for any press who are researching stories about GNOME.
A reporter on deadline might not get a great impression about the project if they pinged some of these contacts because they'd either get a "recipient failed" note from everyone's favorite contact "Mail Delivery Subsystem," or they'd get (even worse) a "subscription required to post to this list" in some cases.
This is not the way to receive glowing press coverage. Hell, it's not necessarily the way to receive any press coverage at all.
If you're participating in a FLOSS project, make sure there's a prominent contact page where reporters, bloggers, etc., can find someone to talk to and get information from on very short notice. Some reporters are savvy and persistent enough to hunt developers down in IRC if needed or stalk mailing lists to find the contact info -- but most won't, and the best you'll be able to hope for is "project could not be reached by deadline."
This also highlights the importance of attracting non-developer contributors to projects. Maintaining this sort of information and putting together PR plans is something that a few developers are good at and enjoy, but not very many -- and it's rarely a good use of their time in any event.
When you want to use skype on a 64bit openSUSE 11.x system, there are some additional rpms needed, to get skype going. The following packages are needed:
- xorg-x11-libXv-32bit
- libqt4-32bit
- libqt4-x11-32bit
Those packages will pull in others, but those 3 will take care that all packages are available to run skype. The package can be installed using zypper:
zypper install xorg-x11-libXv-32bit libqt4-32bit libqt4-x11-32bit
Have fun!
-
Why are you reading, replying to, or posting in
foundation-list? Why are you wasting your own time and
everyone else's? Instead, go and make GNOME better.
Fire up that text editor. If you don't "git push"
today, your day was a waste of time.
Those that were at either CampKDE or FOSDEM might already know, so for those this is a status update, for the rest: I've been working on a tool that makes it quite easy to create packages in the openSUSE build service, which despite the name can create binary packages also for other distributions than openSUSE. If you've ever gotten a mail asking for a binary package of your application or help with a compile problem, this could make your life easier.
For example, imagine Joe Developer, who has written his KFoo application, uploaded it to http://kde-apps.org and is now watching what happens. But, alas, instead of thanks and praise, what often happens is that the first comment is something like "I get this compile error, can you help?" or "Are there packages for Kubuntu?".
It may be quite easy for Joe to see that the compile error is caused by libbar-devel not being installed, but how is he to know what the package is called in other distributions? The same way, how is he to provide binary packages for distributions he does not use? And that's far from all things that can go wrong in such case - Joe may be running KDE workspace 4.4, but somebody may be still on 4.3, where the application would nicely compile and run, if only one #ifdef would be added to the right place. But will Joe really downgrade his installation just in order to fix that, and again each time he does a release of KFoo? And then maybe somebody else will try to compile it on openSUSE Factory, which already uses GCC 4.5, and will get compile errors because the latest compiler is more strict than previous versions and rejects invalid code that however compiles just fine on Joe's computer. And so on and on.
Joe, of course, is a smart guy (after all, he's written this great KFoo app that everybody wants to run if only they could compile it
). He can get the idea to use VirtualBox and install other distros he could care about, and test in all of them. The question is how long he'd be really willing to do that, since it certainly sounds like a lot of fun (and lot of disk space, and work). And that still means that all those potentional users would have to compile KFoo from source.
Maybe distributions would eventually include KFoo, but there's this tricky loop 'nobody uses it' -> 'why should a distro include it' -> 'no distro ships it' -> 'nobody uses it'. Maybe Joe gets lucky, maybe he does not.
Sometimes other people may provide binary packages for the distribution they use, so if somebody likes KFoo enough (and knows how to do it), Joe may find a comment on kde-apps.org pointing to this package and can add it to the list of packages to download. Except this may and also may not work, depending on how well those packagers keep up. Having a binary package of KFoo-0.3 when the latest source tarball is KFoo-1.5 is probably worse than no binary package at all.
So Joe can go back to the VirtualBox installations and try to package KFoo for all those distributions. But Joe is a developer, not a packager, so first of all he'd have to learn how to actually do that (e.g. creating a .deb is quite different from .rpm, and even .rpm packages for different distros are not created exactly the same way). Worse, he is a developer, and, honestly, developers just love packaging, especially for multiple distributions, riiiiiight?
Now here comes the openSUSE build service (OBS), which as already said is not only used for creating the openSUSE distribution, but also provides the ability to create repositories providing additional software, also for non-openSUSE distributions. That almost looks like the solution for all the above problems, doesn't it? No need to install the distributions and do the builds locally, the OBS itself will do the building. New packages would be available very soon after updating the sources in the OBS. And kde-apps.org has even direct OBS support, so packages can have direct download links there.
There's still the problem of actually having to know how to do the packaging, but that is exactly what kde-obs-generator should help with. KDE applications in general happen to be simple to build, and thus quite simple to package (in fact, compared to some other pieces of software, KDE apps happen to be remarkably simple to package
). So a lot of that could be automated. In the best case, creating a KDE package in the OBS can be now a couple of clicks in the web interface, few osc commands (osc is the CLI tool for OBS) and running kde-obs-generator in the directory with the source tarball. I've already tested the tool with some packagers and they even started using it for real, because even for experienced people it saves work.
I still consider the tool to be experimental and work in progress, but it's already pretty usable. Currently it can handle Plasma themes, KDM themes, KPlash themes, wallpapers and generic KDE/Qt CMake-based builds. It tries to automatically figure out all the needed build dependencies (which however means the list of mappings from cmake to package names for all supported distributions needs to be extended as necessary). Also kde-obs-generator itself is packaged using kde-obs-generator. The biggest thing I've built so far is the whole of kdeutils, that's of course not how something like kdeutils should be packaged, but that shows it can handle quite a lot.
So, in case you'd like your application to reach more of its posible users, you'd like to ease your testing, or you're just curious, the documentation is in the openSUSE wiki. I'd especially like to point out the tutorial, which is really step by step and includes also things like how to create an account for the OBS, so maybe even a monkey could now create a package (well, assuming it can read and write and is pretty bright for a monkey
- this still cannot be as simple as just hitting Enter repeatedly). If there are any questions or a problem, see the feedback section (mail the opensuse-kde mailing list, or just ping me (llunak) in #opensuse-kde on Freenode).
PS: I'd appreciate if people using other distributions could edit the wiki page on how to actually install the binary packages in some easier way than going to http://download.opensuse.org, navigating to the right .rpm/.deb file and clicking on it. It's pretty easy with openSUSE so I assume there must be something simpler on other distributions too, but I can't find it.
March 04, 2010
This how-to is written in the hope that it will help souls in achieving basic LDAP login with Bonita User Experience, using EJB3. This how-to is written based on the thread at http://www.bonitasoft.org/forum/viewtopic.php?id=2397.
It is working for me, but it may not for you. Please post your questions on the Bonita forums, many eyes will look at your issue and try to help you.
Here is a dirty PDF for those who wants. However, if you do use this howto, always refer to the online version for updates and up-to-date content.
Bonita LDAP howto
It may not render well in this blog, so I’d advise in pasting the code in your favorite editor to see clearly.
My environment at this time is:
- Centos 5.4 latest updates
- Jboss 5.1 GA
- BOS 5.0.1
- Java JDK 1.6.0 update 18
- Active Directory 2003
To give a reference, here is how my base directory look like. I will refer to it when editing some files.
Under /opt:
lrwxrwxrwx 1 root root 9 Feb 23 11:39 BOS -> BOS-5.0.1
drwxr-xr-x 5 root root 4096 Feb 15 19:33 BOS-5.0.1
lrwxrwxrwx 1 root root 11 Feb 23 13:58 java-jdk-6 -> jdk1.6.0_18
lrwxrwxrwx 1 root root 14 Feb 23 16:19 jboss -> jboss-5.1.0.GA
drwxr-xr-x 9 root root 4096 Mar 4 09:57 jboss-5.1.0.GA
drwxr-xr-x 10 root root 4096 Feb 23 13:57 jdk1.6.0_18
We will use the org.jboss.security.auth.spi.LdapExtLoginModule, as it will allow us to bind to the ActiveDirectory server. If you can allow for anonymous LDAP requests, then you may also try the Sun LDAPLoginModule.
jBoss configuration and EAR generation
JAVA_OPTS
In the run.sh file of jboss /opt/jboss/bin/run.sh) , edit it to configure your JAVA_OPTS:
JAVA_OPTS="-Dorg.ow2.bonita.api-type=EJB3 -server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"
Alongside specifying the EJB3 for Bonita, I am setting reasonable settings for jBoss java memory, and possible avoid Permgen out of memory errors.
Extra: For quick and unsecure monitoring using jconsole, also add the following.
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=10001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
bonita-environment.xml
… under the /opt/BOS/runtime/conf directory directly. It will be used when building the EAR file.
So, we can already specify the implementation of the AuthenticationService interface, which we will call SimpleLdapAuth.
Edit the file /opt/BOS/runtime/bonita-environment.xml. It should look like the following:
<!-- Description: Implementation of the authentication service. -->
<!-- <authentication-service name='authentication-service' class='org.ow2.bonita.services.impl.DbAuthentication'> -->
<authentication-service name='authentication-service' class='com.domain.bonita.auth.SimpleLdapAuth'>
<arg><string value='bonita-session:core' /></arg>
</authentication-service>
Of course, your package path will vary.
A sample, simple, implementation of the interface follows later on.
Generating bonita.ear
We now need to go ahead and generate our bonita.ear file, which will then be used by jBoss.
cd/opt/BOS/runtime
Now, build your ejb3.
ant ear.ejb3
You should get something like this:
[root@bonita-test runtime]# ant ear.ejb3
Buildfile: build.xml
ear.genBonitaConfJar:
ear.ejb3:
ear:
[mkdir] Created dir: /opt/BOS-5.0.1/runtime/ear/tmp
[unjar] Expanding: /opt/BOS-5.0.1/runtime/lib/server/bonita-server-5.0.1.jar into /opt/BOS-5.0.1/runtime/ear/tmp
[copy] Copying 1 file to /opt/BOS-5.0.1/runtime/ear/tmp/META-INF
ear.copyJeeDD:
[copy] Copying 1 file to /opt/BOS-5.0.1/runtime/ear/tmp/META-INF
[jar] Building jar: /opt/BOS-5.0.1/runtime/ear/ejb3/bonita-ejbjar.jar
[delete] Deleting directory /opt/BOS-5.0.1/runtime/ear/tmp
[ear] Building ear: /opt/BOS-5.0.1/runtime/ear/ejb3/bonita.ear
[echo] EJB3 ear has been generated in ear/ejb3 directory.
[echo] You can use it in the easybeans container, jonas 5 and jboss 5 application server.
BUILD SUCCESSFUL
Total time: 4 seconds
Now, copy the bonita.ear file into your jboss deploy directory.
cp /opt/BOS-5.0.1/runtime/ear/ejb3/bonita.ear
/opt/jboss/server/default/deploy/
login-config.xml
Add the 2 stanzas to the end of your login-config.xml, before the end tag. It is valid for an AD server (ie: (sAMAccountName={0}) is typically AD).)
<application-policy name="BonitaAuth">
<authentication>
<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule"
flag="required">
<module-option name="java.naming.provider.url">ldap://your_ldap_server:389</module-option>
<module-option name="java.naming.security.authentication">simple</module-option>
<module-option name="baseCtxDN">DC=domain,DC=com</module-option>
<module-option name="bindDN">DOMAIN\ldapbrowser</module-option>
<module-option name="bindCredential"><![CDATA[Yourpasswd]]></module-option>
<module-option name="baseFilter">(sAMAccountName={0})</module-option>
<module-option name="searchScope">SUBTREE_SCOPE</module-option>
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="debug">true</module-option>
<module-option name="rolesCtxDN">DC=domain,DC=com</module-option>
<module-option name="roleFilter">(sAMAccountName={0})</module-option>
<module-option name="roleAttributeID">memberOf</module-option>
<module-option name="roleAttributeIsDN">true</module-option>
<module-option name="roleNameAttributeID">cn</module-option>
<module-option name="java.naming.referral">follow</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="BonitaStore">
<authentication>
<login-module code="org.ow2.bonita.identity.auth.BonitaRemoteLoginModule" flag="required"/>
<login-module code="org.jboss.security.ClientLoginModule" flag="required">
<module-option name="password-stacking">useFirstPass</module-option>
</login-module>
</authentication>
</application-policy>
Your jaas-standard.cfg will then not be used anymore. You can comment everything out.
Implementation of AuthentionService interface
Java Code
Here you need to develop a little piece of java. Here is an example that will get you through for starters.
package com.domain.bonita.auth;
/**
* @author chapeaurouge
* @date 04/03/2010
* @version 0.1
*/
import org.ow2.bonita.facade.exception.UserNotFoundException;
import org.ow2.bonita.services.AuthenticationService;
public class SimpleLdapAuth implements AuthenticationService {
private String persistenceServiceName;
public SimpleLdapAuth(String persistenceServiceName) {
super();
this.persistenceServiceName = persistenceServiceName;
}
/**
* Determines if the user should have amdin accesses to the bonita interface
* Let's say that Domain Admins have that privilege
*/
public boolean isUserAdmin(String username) throws UserNotFoundException {
if (username.equals("MyAdmin")) {
return true;
} else {
return false;
}
}
/**
* @return always true. If the LDAP request failed before, it doesn't matter (?)
* Necessary to implement interface
*/
public boolean checkUserCredentials(String username, String password) {
return true;
}
}
Compiling
Compile the java code into a .class. Make sure the bonita jars are in your classpath.
javac -cp ~/BOS-5.0.1/runtime/lib/server/bonita* SimpleLdapAuth.java
You should then have your .class file. If you did it locally, you can then upload it to your server.
Deploying
A manual way would be to do the following.
Go to your /opt/jboss/server/default/lib, create the directory hierarchy for your package name. So with our example, you could type
mkdir -p com/domain/bonita/auth
Then copy, your .class in it. Now, still in your jboss lib directory, create a .jar file, as:
jar -cvf domainLdapAuth.jar com/domain/bonita/auth/SimpleLdapAuth.class
Your jar will now be deployed on the next server startup.
Getting more verbose output
Edit /opt/jboss/server/default/conf/jboss-log4j.xml, and uncomment the following block:
<category name="org.jboss.security">
<priority value="TRACE"/>
<appender-ref ref="CONSOLE.SECURITY"/>
</category>
Conclusion
This should be it. I may have forgotten some things, or overlooked some steps. Hopefully, this was of some help for some of you.
You can now (re)start your jBoss server for the changes to take effect. Don’t forget to tail -f server.log to see how it looks like.
Your feedback and comments are welcome.
Thanks to rlg and abirembaut for their help in the forums.
Michael Foot has died.
Although he was (not entirely through his own fault) a failure as leader
of the Labour Party, and never became Prime Minister, Michael Foot was a
politician whose qualities of honesty, decency, humanity, intelligence
and learning simply do not exist in politics today.
Obituaries:
Guardian,
Independent,
Times and
Telegraph.
Mark Probst found and squashed one of the hardest bugs in
our
upcoming garbage
collector. Pablo from Codice has been testing the new GC
under stress
and posted
a nice message to the list.
Plenty of great feedback on deprecating old libraries and
tools from Mono. We will have a lighter distribution. As
things are coming together so fast and we are now well into
the features we had planned for 3.0, we might end up just
calling the next version 3.0 instead o 2.8.
Andreia
got Moonlight
running
on
Chrome.
March 03, 2010
Part of our “umbrella” milestone, Pavol and Robert ported software.opensuse.org to the Bento theme. To get more feedback for it, I now deployed it as http://software.opensuse.org/stage.
Please note two things:
- it also includes a new feature from the Education project: a link to openSUSE derivates
- the language box is experimental and we kind of decided already to kill it again
On top of that of course: the Bento theme is not yet finished – it’s only a stage deployment to get feedback.
Have fun!

Last Wednesday we released
Banshee 1.5.4, which included an opt-in feature to submit anonymous usage data. Over 500 people have already opted-in!
Interesting Stats
They are primarily
getting Banshee through the Ubuntu PPA, with a moderate number building from source or using other distributions — including 20 OS X users.
| 383 | Ubuntu |
| 33 | source-tarball |
| 27 | openSUSE/SLED |
| 22 | git-checkout |
| 20 | OS X |
| 16 | Gentoo |
They are using Banshee in 36 locales, across 30 languages. Keep in mind the Preference to opt-in is (so far) only translated into 9 languages.
| 223 | en-US |
| 51 | en-GB |
| 41 | de-DE |
| 35 | unknown |
| 21 | ru-RU |
| 18 | it-IT |
| 14 | fr-FR |
| 12 | en-CA |
| 11 | en-AU |
| 11 | es-ES |
| 9 | pl-PL |
| 8 | pt-BR |
| 6 | es-CL |
| 5 | es-MX |
| 5 | nl-NL |
| 5 | sv-SE |
About half have the Banshee window maximized, enable ReplayGain support, show the bottom-left cover art, and show the context pane.
I'm still
working on better ways to analyze the data and extract actionable information. I plan to have distribution graphs and such soon. In the meantime, I've posted some
more stats here. As we get more submissions, add more data points, and get better analysis, we will be able to identify options nobody uses and optimize Banshee for real-world users.
An important milestone happened on Friday, February 26: Mono Accessibility 2.0 was released. It’s important because all applications running on Moonlight 2.0, or greater, will be accessible from now on.
Accessibility?
If you are not familiar with this word, Accessibility, it might mean nothing to you and, probably, you will need a more formal definition:
“Accessibility is a general term used to describe the degree to which a product, device, service, or environment is accessible by as many people as possible. Accessibility can be viewed as the ability to access and possible benefit of some system or entity. Accessibility is often used to focus on people with disabilities and their right of access to entities, often through use of assistive technology.” Wikipedia
You have interacted with Accessibility in real life, even if this is your first time reading this word. Have you seen those tiny bumps on the floor when taking the subway? Wheelchairs ramps or the dots on elevator buttons? Have you heard that noise, like beeping, when crossing the street? Have you noticed the audio jack in some ATMs?
These are real life examples of Accessibility. Accessibility in software is similar, it’s basically the degree of interaction between your software and people with temporal or permanent disabilities. People who can only use the keyboard or the mouse, people with low vision, blind people or people with hearing disabilities. All of them will be able to interact and use your application only if it’s accessible. That’s why Accessibility is important.
Accessibility and Moonlight
Microsoft Silverlight is web application framework for building media experiences and rich interactive applications for the Web. Moonlight is an open source implementation of Silverlight. Besides providing a rich experience for the web, applications running on Moonlight are now available for people with disabilities, allowing them to interact and use these applications. The interaction between these new applications and existent Accessibility Technologies (ATs), such as screen readers, is the same. All existent ATs are reused, it’s like interacting with any other desktop application. ATs in GNOME should work right now without any change and, if any change is required, it will help to provide a better integration with this framework.
Implementation

Refer to Accessibility Architecture for a detailed explanation of the complete architecture.
In both Accessibility implementations, Silverlight and Moonlight, Microsoft UI Automation is used for interacting and exposing data of UI elements of the application. These data are used by ATs to access and manipulate those UI elements. Properties such as visibility, sensitivity or interaction, are exposed by Automation Peers (also known as Automation Providers), along with Automation Patterns to indicate the type of interaction in the control, for example: accepting selection or allowing clicking. There’s always a relation one to one, one Automation Peer and one Control. The properties are available to ATs through the information exposed by the UIA/Atk Bridge module. This module is loaded by the Moonlight application to interact with ATs. It keeps a tree of Atk objects to represent every UI Automation element in the Moonlight application.
The interaction between ATs and Moonlight applications is like this:
- An AT requests information about the Moonlight control in Firefox.
- Firefox asks Moonlight this information.
- Moonlight uses the A11yHelper to load the UIA/Atk bridge module and returns the root accessible, it represents the control’s Automation Peer: WindowAutomationPeer.
- From now on, new AutomationPeers will be mapped, one-to-one, to an Atk.Object. All data requested by an AT will be accessed through the associated Atk.Object, and this one will return information contained in the AutomationPeer.
If you are curious you can checkout the sources to see the final implementation:
- Moonlight: important bits located in class/System.Windows/System.Windows.Automation.Peers/ and class/System.Windows/Mono/A11yHelper.cs.
- Moonlight UIA/Atk Bridge: implementation located in MoonAtkBridge/.
How do I install it?
Before installing, make sure Assistive Technologies is enabled, then add the Mono UIA repository (see Downloading) and follow the instructions (taken from Installing):
- Install the updated xulrunner package from the above repositories. (This is required until Firefox 3.7 because of bug #480317)
- Install Novell Moonlight with Accessibility Support for 32 bit or 64 bit.
- Install Novell Moonlight Accessibility Extensions
- Restart Firefox
- Enjoy!
Useful links
New KDE Four Live CDs with KDE 4.4.1, and much more are up.

They were built with openSUSE Build Service's KDE:Medias project and SUSE Studio and consist of openSUSE 11.2 plus all updates, KDE 4.4.1, upstream branding, Nepomuk enabled and Strigi disabled (because it's a Live CD).
They can be used as Live USB sticks too, see these instructions if you don't know how to dd a file to a device.
You can also install to disk and use it as a normal distribution using the installer on the desktop. Once installed, the first update will pull in all the packages that are normally on an openSUSE KDE install that do not fit on a single CD.