Skip to main content

the avatar of Andrés G. Aragoneses

the avatar of Martin Vidner

Helping Newcomers

Since the discussion (do check out the linked paper, BTW) and the opensuse-women announcement, I've been thinking about how to make the openSUSE community more friendly to women.

I think one good way is to make sure that new people feel welcome when they join a conversation, be it on the forums, on IRC or on the mailing lists. Now this would be easier if we all had infinite time to read and answer all questions, but as we don't, I decided to focus somehow.

The forums provide a handy shortcut for the focus, labeling a user who made few posts as a "Puzzled Penguin". So I've made a simple service, a feed of http://forums.opensuse.org showing only the posts by newcomer users: http://vidner.net/martin/software/rss-creator-blacklist

(Actually right now it does not show Puzzled Penguins only but instead excludes the 100 most-posting users until I learn how to optimize the PHP code.)

a silhouette of a person's head and shoulders, used as a default avatar

Nautilus automated test script under Mago applications

As part of an effort to expand Mago a bit by adding nautilus, Jeff Lane from Ubuntu created a launchpad team called mago-applications. It was created to let people interested in adding new applications to Mago collaborate on the same code bases without cluttering up the mago-contributors team.

The way we see it, mago-applications can focus on simply adding new application interfaces and test suites/cases to Mago, while mago-contributors can focus on the core Mago code making sure it works with the latest changes to LDTP and so forth.

So, if you're interested in adding applications to Mago, feel free to join:

https://launchpad.net/~mago-applications

Feel free to create your own branches there to add new apps to Mago, there are plenty that can be added to enhance desktop testing of Ubuntu!

Also, adding an application is a good way to get some experience adding to a project that uses Python, is OO based, complex, and useful!

a silhouette of a person's head and shoulders, used as a default avatar

Packager-O-Matic

As already mentioned, I have this certain tool in works that can do various magic when it comes to creating packages, especially for people who have no idea how to do them themselves. And since

too, and on Wednesday I have scheduled a slot for demoing the tool and helping people who'd like to create packages of their software, I've worked on implementing and improving various features that make it more interesting:

  • Besides the obvious CMake support, there is now also support for autotools-based software. Autotools stuff is harder to process then CMake (funny, I remember not being very impressed by the move to CMake, but going back now made me wince here and there), but it's already pretty usable.
  • Which means that even though the tools is called kde-obs-generator it can handle non-KDE stuff too. For example I have GEdit, Gnumeric or GOffice (why aim low, right?) in my testing project, and while none of that finish the build completely yet, it just needs handling more of the autofoo trickery. I guess the tool is about to need a better name.
  • There's QMake support too, kind of. However, if you use QMake, you probably want to switch to CMake anyway.
  • The recommended way of use is setting the build service project in a way that presents a more unified build environment, with macros and package name substitutions automatically taking care of distribution differences. This results in the .spec files being quite clean and easy to read. But there is also a mode that doesn't require this setup and builds directly in normal openSUSE, Mandriva and Fedora repositories (and Ubuntu, but that's already different enough from the rest). It means of course that the .spec may have a bunch of %ifdef's and manually written macros at the top, but it works.
  • A consequence of this is that it is also usable for creating normal openSUSE packages. If the project build only for openSUSE, the resulting .spec is more or less a normal openSUSE .spec file. I've already watched few times Pavol and Michal explaining packaging to people who would like to learn it, and I couldn't help wondering how scary it has to be for some of them, getting a full .spec file explained line by line on how they need to write it manually. Well, for the next time the introduction part can be greatly reduced to just "run this tool, if it works and you're happy with the result, that's all then".
  • There is also the bonus even for somebody who knows how to create packages. It's still nice to have the .spec generated automatically, including all the build requirements (if they are already in the database), the file list and so on. Everything I have posted at kde-apps.org for the last several months has up-to-date binary packages too, and it's almost boring to create them.

So, whoever would be interested, just talk to me at Akademy or come to the Wednesday session and I'll try to help you getting your stuff built and answer any questions (except for the two questions about blue hair - really, people, I've heard both of them already enough times, can't you get at least a bit innovative :) ?).

the avatar of Sandy Armstrong

Recent Releases: Tomboy 1.3.1, Snowy 0.1, Stewie 0.12

'Yo Quiero Tomboy Online', remixed from 'Benito Chihuahua'


Monday I made two releases: Tomboy 1.3.1 and Snowy 0.1.

Tomboy 1.3.1 is our second development release of the cycle. So far we have been focusing on bug fixing, cleaning out old patches from bugzilla, and removing use of APIs that are deprecated for GNOME 3.0. Some highlights of 1.3.0 and 1.3.1 are:

  • New topic-based help from Paul Cutler and others on the GNOME docs team should provide a more useful way to get help when using Tomboy.
  • Panel applet support is now disabled by default (distributors, please use --enable-panel-applet when configuring) to drop most GNOME 2 dependencies (many thanks to Javier Jardón for this, and Aaron Borden for other API usage updates).
  • Alejandro Cura added libproxy support to web sync, and there was much rejoicing.
  • If you're hacking on Tomboy and are sick of having to install to test your changes, you'll be glad to hear that make run finally works again.
  • We added a couple of hidden preferences that we may expose in the Preferences UI this cycle: hiding the tray icon is handy for folks who use Docky or gnome-do instead of the tray menu (Matthew Pirocchi), and deleting notes without being prompted for confirmation may speed up your workflow (Jeff Stoner).
  • Brian Mattern fixed a bug noticeable on Ubuntu, where the panel applet wasn't using their fancy new icons.
  • In bullet list land, Owen Williams fixed an irritating printing bug, and Stefan Schweizer fixed some keyboard navigation issues.


I'm really glad to have so many contributors helping out this cycle, as I've been splitting my time between two babies. First, here's a cute picture of my awesome son Stewart Daniel Kekoa Armstrong, who was born on May 16th:

Stewie 0.12


The other baby is Snowy, the AGPL Django app that will power the upcoming Tomboy Online free web service. We had planned on releasing according to the GNOME schedule, but wanted to wait until we added OpenID support to limit how many times alpha testers need to wipe their databases and start over again. ;-)

So today, I am proud to offer our first development release of Snowy: 0.1, the Chihuahua release. Ripped from the headlines, here are the features:
  • An implementation of the Tomboy web sync REST API (the same API that Ubuntu One implements for note sync)
  • OpenID support, so you can log in with your Google/Launchpad/whatever account
  • Read-only online note access (notes can be made publicly readable in the admin UI for now)
  • A friendly Tomboy-like web UI for accessing your notes, supporting rich text, note links, note pinning, full-text search, etc
  • An initial unit test suite


Although Brad Taylor wrote most of the initial app, and I did a lot of the sync related work, I'd really like to call attention to some of our awesome contributors who have made this release possible:

  • Leon Handreke improved our sync code, fixed a ton of our unit tests (on multiple occasions), and added OpenID support so that you can log in with your Google account or any other OpenID, instead of having to remember a new username/password pair for our little service. He also made some slick improvements to our note search UI.
  • Sander Dijkhuis made improvements to our web UI, improved the ease of testing deployment by adding a fake mail server, and has been active on bugzilla and in IRC helping people work through deployment issues.
  • Benoit Garrett, Stuart Langridge, and Olivie Le Thanh Duong have made numerous contributions to the REST API, OAuth support, and upstream django-piston, which is the library we use to achieve those features.
  • We've also had great contributions from Adam Ziolkowski, Andy Duplain, Jordan Keyes, Mike Gorse, Ray Wang, and Shayne Macaulay.
  • And we'd love to add your name to this list! We need Python hackers, designers, HTML/CSS pros, Javascript wranglers, testers, Django deployment experts...and I could use a babysitter, too.


Please join us in #snowy on GIMPNet, or on our mailing list, and help us bring Tomboy to your web.
the avatar of Martin Vidner

kiwi2puppet

I have started working on kiwi2puppet, a tool to convert KIWI image descriptions to Puppet manifests.

The goal is to recycle the data that went into the building of an image and use it for managing a deployed appliance.

So far it is a prototype that can write these resources
  • package
  • yumrepo
  • user
  • group
It is written in Ruby, like Puppet.

Source at GitHub: http://github.com/mvidner/kiwi2puppet
RPMs: http://software.opensuse.org/search?q=kiwi2puppet&baseproject=ALL (currently it is a single Ruby script, so at the moment RPMs are not worth any trouble)
Novell Reference: FATE#309497

Get in touch if you're interested.

In case you didn't know:
"The openSUSE KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for virtualisation systems like Xen Qemu or VMware."
"Puppet is an open source data center automation and configuration management framework. Puppet provides system administrators with a simplified platform that allows for consistent, transparent, and flexible systems management."
a silhouette of a person's head and shoulders, used as a default avatar

WebYaST: Switch from XML into JSON (day two)

Hi!
Today I compared JSON vs XML communication in WebYaST.
And the result is ... there's no big difference for us.
Calling groups index page without profiling takes almost same time with XML or JSON:

JSON
5.59, 5.7, 5.59, 5.82, 6.01 (average 5.742)

XML
5.99, 5.98, 5.88, 6.17, 5.96 (average 5.996)


Comparing processor cycles - JSON is winner, but the difference is not so visible, because there are much bigger time consumers than XML/JSON parsing.
Maybe (as jreidinger suggested) caching on client side could improve the performance ...

a silhouette of a person's head and shoulders, used as a default avatar

WebYaST: Switch from XML into JSON (day one)

This week I'll continue on project that started on recent WebYaST Workshop:WebYaST_Performance

Result from previous tests was that bundled reXML parser is slowest from all ;-)
Now I'd like to continue with comparison XML and JSON performance. For this purpose I created webclient json branch in our git repository.


To install profiling extension you'll need to add repository http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.2
and install package rubygem-ruby-prof. Also to see results from profiling you'll need kcachegrind package.

I started some tests with Firefox firebug extension (5 measurements from each and then calculate average). First one without any modification, then with profiling enabled.

xml (rexml), no benchmarking xml (rexml), ruby-prof enabled
5.53 6.3
6.53 5.71
6.15 5.79
6.55 5.78
6.15 5.99
6.182 5.914







On this picture you can see (selected line is xml parsing process) with luck we can speed up 1/5 times (about 1 sec in my case). There's almost no difference between creating json and xml output: Calling http://localhost:4984/groups.xml takes average time 655ms, http://localhost:4984/groups.json takes average time 621.4ms.
In rest-service there are some problems - json output is not valid, jreidinger is working on it.
I'll continue tomorrow.

a silhouette of a person's head and shoulders, used as a default avatar

Difficult, difficult...

KDE Project:

It is interesting to notice what is sometimes seen as difficult. "It's too hard for me, I can't do that." "I'll never be able to do that, that's nothing for me." Like if most things could be done instantly just by snapping one's fingers. They instead require all these tedious things like effort, trying, learning, practicing and so on. The funny thing is, figuring out things in the IT area is not really that demanding. Wanna write a Plasma applet? There's a step-by-step tutorial at Techbase, just follow it blindly and with a decent skill in reading and typing, tadda, there's a Plasma applet. Wanna a package in the build service? You can use another one as a template, find a tutorial on the wiki or just google for it, and if you'll be just a little lucky, a tool can even do the work for you.

For getting a good comparison of what can difficult actually mean, let me show you something I consider to be pretty hard to learn. To have a better contrast, let's go in some completely different area that has absolutely nothing to do with computers. So if you think something is difficult, instead of doing this whatever something, try doing for example the Salchow jump. And since I expect many people here have no idea what that is, it looks like this, performed by yours truly:

That's roughly it. I assume it looks quite unimpressive to anyone who's never tried it or anything close (and, possibly, in this specific case it probably looks quite unimpressive even to whose who have). Yet this thing was bloody hard to learn for me. I probably learnt coding with Qt quite decently with much less effort (although, that's one of Qt's selling points, isn't it). Writing .spec files and creating packages? Nah, eeeasy. Even getting into Xlib programming was probably less effort, and I read a good part of the Xlib manual as a part of that. I admit getting into compositing effects and adding them to KWin might have been harder than the Salchow though :). Still, for somebody whose reaction to the idea of writting an alternative KDE workspace shell was 'how hard can that be?', the Salchow proved to be an unexpectedly difficult matter.

I was first shown and explained the Salchow about 9 months ago. I think I needed about 2 or 3 months just to perform it in the most lame way that'd technically qualify, about as much as x = 1 qualifies for a math equation. The video is from April, i.e. more than 3 months on top. Today I can perform it somewhat higher and at slightly faster speed, but it still hardly qualifies for anything better than 'decent'. And while I hope it'll one day get to something I'd consider good, I'll probably never ever get to those crazy things like multiple rotations or anything even remotely close to what you can see on the TV, no matter how much and how hard I'd try. Do you still think that e.g. creating and maintaining a package is hard, compared to this? And don't even get me started on the next jumps ... the Salchow is actually easy. Try to think of this next time when you'd want to do something but would consider it too difficult (besides, take this from me, trying difficult things is actually much more interesting than the easy ones).

PS: Come to think of this, I've never thanked Danimo and Scott Wheeler, who happen to be ultimately reponsible for me starting with skating and having a lot of fun, as I'd probably never come across any such idea myself. So, well, thank you.

the avatar of Stephan Kulow

Buildservice development on 11.3

The build service (and any other of openSUSE infrastructure software using RoR) is using rails 2.3.5, because we once decided to harmonize on the version of SLE11 SP1. Of course the latest version has less bugs (usually), but mixing RoR versions between different developers and deployment is a nightmare, so we had to decide on one.

Now comes the catch: 11.3 has rails 2.3.8 and as such you can’t develop the build service on factory/11.3 as is. But the good news, openSUSE:Tools has all the right versions, so you can add the repo (zypper ar -r http://r.opensu.se/openSUSE:Tools/f/r) and then install zypper in -f rubygem-rack-1.0.1 rubygem-activesupport-2_3-2.3.5

To make sure, the next zypper dup is not going to take it away, use zypper al rubygem-rack rubygem-activesupport-2_3