Community Discussion - Part 4
Who is Linux?
I spent only few minutes. I think it is quiet OK, given its very low production value. I am not trying to win, but just like I send crappy patches to Linux and waste kernel developers time, I uploaded it to waste 43 seconds of your time.
Beautiful Evidence of Committers
A couple years ago I got turned on to Edward Tufte's books about visualizing data. It's inspiring work, showing the value and beauty of data-rich visualizations that work at multiple levels. Since then, I have wanted to apply the principles he espouses in my own work, leveraging software for data processing and interactivity.
This is my first attempt. I wanted to visualize who contributes to a given project and how long they've been involved. I knew I had speedy access to the commit logs via git, but the choice of tools or languages to process and generate the display was harder to make. I opted to try using Perl (a language ingrained in my memory from using it at the LJ World) and HTML/CSS (ingrained from numerous projects and jobs).
The EvidenceI'm happy with the result. You can quickly see when people started contributing, and the changing rate at which they joined. And you can see how long any given contributor stayed involved. I generated charts for a few git repos I already had checked out, including Banshee.
This is a scaled screenshot of the rendered HTML output, which I encourage you to click through to since it has tooltips and is zoomable in your browser. The script is available, and barring bugs should work on any git repo.
Evolution 2.30 released!!
This is one of the memorable releases of evolution considering the amount of work which has gone into this release. We could consider this as a preview for GNOME 3.0. To provide a snapshot of the major changes in this release,
- Diligent UI re-architecture to give farewell to bonobo.
- Improved imap implementation with live view updates, non-blocking operations and IDLE support, IMAPX.
- DBus transport replacing bonobo for address-book and calendar.
- GNOME 3.0 cleanup tasks. Gets rid of LibGnome, LibGnomeUi, LibArtLgpl, LibGLade.
- Evolution-mapi with push mail support and reduced memory footprint.
- Contacts map plugin.
Getting rid of bonobo from evolution was not only a cleanup work, but it enables evolution to shed off lot of weight to get flying. This has provided a lot of positive side-effects, one of the best which needs to be quoted is the startup speed of preference dialog. Evolution is now sleak and fast. If one has used the previous versions of evolution, no one needs to explain for appreciating the work. All credits goes to Matthew Barnes who has done an extra-ordinary job here.
We also have the new imap implementation IMAPX, which provides substantial performance improvements over the old imap provider making all the operations non-blocking in nature.
Credits to Ross Burton for replacing bonobo with dbus transport in EDS. This would pave way for us to fix some out-standing issues which had been put aside waiting for this change to dbus. There is also some work-in-progress for making this extremely stable in threaded environment.
We have listed the probable tasks which would be taken up for the future releases at http://live.gnome.org/Evolution/PlanningFuture. We would be picking up some tasks from there for Evolution 3.0 depending on the effort available. If you have suggestions feel free to get in touch with us to get it added..
Thanks to Akhil Laddha (bug master), Milan Crha (patch master), Johnny Jacob, Bharath Acharya and all others (many to list everyone here.. ) who have made significant contributions for making this release successful. Thanks to all the contributors, translators, distributors and users!!
Banshee 1.6!
As scheduled, we just released Banshee 1.6.0! This release has been a long time coming, and we're really proud of it.

A more detailed backstory
We originally intended to release 1.6 last fall, but we got caught short on time, and ended up calling 1.5.1 a stable release so distros would feel comfortable picking it up, but of course the weird versioning has caused quite some confusion.
We continued the 1.5 series with 1.5.2 though 1.5.7 betas, leading up to this release: 1.6.0. The process really started 14 months ago when we branched off 1.4, and master became the workplace for 1.5. It wasn't even until after we branched that Alexander Kojevnikov, now one our most prolific contributors and a maintainer of the project, got involved!
Beautiful numbers53 programmers contributed to Banshee 1.6 just since 1.5.1, and over Banshee's full history, 142 programmers have contributed. I think these are astounding numbers. And these don't include Banshee Community Extensions, which started two months ago today and already includes 15 extensions and 19 maintainers.
We fixed 265 bugs since 1.5.1 as well (over 500 since 1.4), added dozens of new features and enhancements, and had over 2,000 beta users opt-in to report anonymous usage data that we will use to make Banshee better.
Banshee 1.6Here are some of the new features in Banshee 1.6. Read the Release Notes for more detail, screenshots, and enhancements not listed here.
- Play Queue Auto DJ
- Sync Device From Playlist
- Grid View
- Type-ahead Find in Track, Artist, and Album Lists
- Automatic Scoring
- New Shuffle Modes
- Audiobooks Library
- Library-folder Watcher
- eMusic Importer/Downloader
- Internet Archive Extension
- YouTube Extension
- Improved Metadata Handling
Thanks to everybody who has helped make Banshee such a success! Tremendous thanks go to Bertrand Lortentz and Alexander Kojevnikov, who over the last year in particular have contributed countless hours writing their own patches and reviewing others', triaging bugzilla, being active on IRC and the list, and generally being great maintainers of the project. They have invested in Banshee, and the effect on Banshee's quality and the community's growth is evident.
You can tap into the Banshee community and energy in many ways – read Planet Banshee, follow us on Twitter, lurk in the #banshee chat room, subscribe to banshee-list, monitor bug activity, and keep up with the latest code. We're a friendly, productive bunch, so stop by if you have a question or idea, if you want to contribute or you just want to learn how you can make your own project better.
Russian openSUSE community
Hello everybody,
I want to share some ideas about the success of the Russian openSUSE community, and try to answer the question about its popularity. As you can see it is one of the top places:
The reason for the high popularity of this distribution in Germany is of course the fact that the German SuSE distribution and the main branch of development is located in Nuremberg. Popularity in the U.S. is due Novell – an American company, and of course the language is English. But why are so many people in Russia choosing openSUSE?
Good question. One of the main things that influence the choice of distribution – the quality and localization. The global community plays a top role for quality of distribution and local make it appropriate for Russian language users (of course a local community can be as part of a global community).

Perhaps most important is the documentation. And of course, not everyone wants (or can) read the documentation in English. Everyone wants to read the documentation in their native language. The distribution may be in a good shape and stable, nice and convenient, but without documentation it will use very few. Translated documentation is very important to the community. The translation must have a high quality, understandable, and as it must be kept up to date.
For the community its also profitable that 2 guys from the community working for Novell (in Nuremberg and in Prague). This provides better communication between “developers – community”. It helps to be closer to the project. This allows you to always be aware of all the major news of the project. And of course the translation is much better if they are engaged not just as a translator, but the employee who works on the distribution.
Of course this also applys for software. Although it is not as important as documentation, it still makes an impression on the quality of distribution. Everyone wants to work with the software in their native language %)
A successful community is a group of people who love openSUSE, who understands why the software should be free, who wants to make openSUSE better and better… every day.
Community Discussion - Part 3
z-shell (zsh) completion for osc and zypper
z-shell (zsh) completion for osc and zypper
When working with the openSUSE distribution, there are a couple of tools you have to deal with over and over again. Two of them are osc and zypper. The first one to build or fix packages, the latter to install, remove or update them. Using one of those tools on a regular basis? Read on…
…but to make this post actually useful for you, there needs to be another prerequisite: You need to use zsh as your primary shell. And I hope you do. If not, you should definitely put this on your TODO list.
All of the following is ready to use, because it's already in openSUSE Factory for quite some time and has already been in openSUSE 11.2. I just have the feeling that people are not aware of this feature, so I am writing this post…
osc
So let's start with osc. There are a couple of sub commands like checkout, getbinaries or branch I need all the time. And every time I do, I have to look up the syntax. For instance, have a look at the osc getbinaries command:
$ osc help getbinaries osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE
Hm? Four parameters? Things like that were actually the reason I sat down implementing a solution which works quite well for me: Zsh completion for osc. Now you can do stuff like the following:
$ osc getbinaries <tab> home:hmacht openSUSE:11.0 openSUSE:11.3 SUSE:SLE-11:Update:Test home:hmacht:kernel-sony openSUSE:11.1 openSUSE:Factory openSUSE:10.3 openSUSE:11.2 SUSE:SLE-11-SP1:GA $ osc getbinaries openSUSE:Factory aaa_base <tab> openSUSE_10.2 openSUSE_11.0 openSUSE_11.2 openSUSE_Factory SUSE_SLE-11_GA openSUSE_10.3 openSUSE_11.1 openSUSE_11.3 standard $ osc getbinaries openSUSE:Factory aaa_base openSUSE_Factory i586 x86_64
Quite handy, isn't it?
You might also wonder why the first completion output in the above example contains my personal home project home:hmacht. By default, the completion contains a couple of default build targets, repositories and architectures like openSUSE_Factory, openSUSE:Factory or x86_64. You can extend those lists with the shell variables ZSH_OSC_PROJECTS_EXTRA and ZSH_OSC_BUILD_TARGETS_EXTRA. My corresponding part of my ~/.zshrc looks so:
export ZSH_OSC_PROJECTS_EXTRA="home:hmacht home:hmacht:kernel-sony SUSE:SLE-11:Update:Test SUSE:SLE-11-SP1:GA" export ZSH_OSC_BUILD_TARGETS_EXTRA="standard SUSE_SLE-11_GA"
After that, the extra repos/targets show up in the completion output.
By default, the completion is in verbose mode:
$ osc <tab> --debugger -- jump into the debugger before executing anything --no-keyring -- disable usage of desktop keyring system --post-mortem -- jump into the debugger in case of errors --version -- show program's version number and exit -A -- URL/alias, --apiurl=URL/alias -H -- --http-debug debug HTTP traffic -c -- FILE, --config=FILE -d -- --debug print info useful for debugging -h -- --help show this help message and exit -q -- --quiet be quiet, not verbose -t -- --traceback print call trace in case of errors -v -- --verbose increase verbosity abortbuild -- Aborts the build of a certain project/package add -- Mark files to be added upon the next commit addremove -- (ar) Adds new files, removes disappeared files aggregatepac -- "Aggregate" a package to another package api -- Issue an arbitrary request to the API branch -- (bco, branchco, getpac) bugowner -- Show bugowners of a project/package build -- Build a package on your local machine [...]
To change that you can set
$ zstyle ':completion:*:osc:*' verbose no $ zstyle ':completion:*:osc-subcommand:*' verbose no
Now it looks like:
$ osc <tab> --debugger api diff meta resolved --no-keyring branch disable mkpac results --post-mortem bugowner getbinaries mv rremove --version build global my search [...]
All the completion output is auto generated by the osc help output (btw., even osc help <tab> can be completed), so new commands should show up automatically. However, this contains the risk of possible bugs where the help output is unexpected, so if you find any issues, send me a mail or add a comment.
zypper
Basically all the above applies for zypper. An example output looks like:
$ zypper re<tab> refresh -- ref Refresh all repositories. refresh-services -- refs Refresh all services. remove -- rm Remove packages. removelock -- rl Remove a package lock. removerepo -- rr Remove specified repository. removeservice -- rs Remove specified service. renamerepo -- nr Rename specified repository. repos -- lr List all defined repositories.
Change verbose/short output with:
$ zstyle ':completion:*:osc:*' verbose no $ zstyle ':completion:*:osc-subcommand:*' verbose no
Personally I use the zypper completion quite seldom, nevertheless, some people might find it useful.
ruby-dbus 0.3.0 Works on Ubuntu
NEWS:
Bug fixes:RPMs can be found via Webpin.
These are by Klaus Kaempf:
- Fixed "undefined method `get_node' for nil:NilClass" on Ubuntu Karmic (Ticket#34).
- Get the session bus address even if unset in ENV (Issue#4).
- Improved exceptions a bit: UndefinedInterface, InvalidMethodName, NoMethodError, no RuntimeException
Features:
- Make the signal dispatcher call all handlers (Issue#3).
- Run on Ruby < 1.8.7 (Issue#2).
- Avoid needless DBus::IncompleteBufferException (Ticket#33).
- Don't ignore DBus Errors in request_service, raise them (Ticket#32).
- Automatic signature inference for variants.
- Introduced FormalParameter where a plain pair had been used.
Články pro linuxové weby
Články pro linuxové weby
Aktualizovaný seznam mých článků souvisejících s Linuxem, které vyšly povětšinou na LinuxEXPRESu, méně i na jinách webech.

