Postings tagged with Openismus
They call us crazy, but we store Contacts in Tracker
Visa authorities playing bad games with Chandni gave me the chance to talk about the QtContacts tracker plugin, which I and others where working on for that past few months. In case you've missed that early talk, here are the slides.
Interesting to just watch George from KDE to talk about similar things.

Painting Strategy in MeeGo's Virtual Keyboard
I've never been happy with the conclusion in the influential blog post "Qt Graphics and Performance — The Cost of Convenience" by Gunnar Sletta: If you want performance, downgrade QGraphicsView to a mere canvas with a single QGraphicsItem. It defeats the whole purpose of decomposing the problem into many small QGraphicsItems and is therefore entirely counter-intuitive. One might be quick to ask what Qt Graphics View is good for (and one might find the answer here), but instead I would like to present an alternate solution to Gunnar's which reaches the same performance but embraces the ...
Is MeeGo Keyboard conquering GNOME3?
You'd probably like me more if I had spend my time testing the upcoming release of MeeGo Tablet UX on this shiny new WeTab (I ♥ Openismus), but Jon couldn't resist to test-drive GNOME3 first. Well, and since we like our virtual keyboard so much, [we just had to make it ...
New features in MeeGo Keyboard
This week we published new features for the MeeGo Keyboard, including accent popups (activated through long-press on certain keys) and support for Chinese Input Methods. The latter still requires an IM engine that supports Cangjie for example to be really useful (not provided by MeeGo Input Methods).
Ubuntu users can easily test it out, as I updated the packages in the [MeeGo ...
MeeGo Input Methods for your desktop
I've been working on the MeeGo Input Methods project (codename "Maliit") for nearly a year now. The project provides a pluggable framework for input methods. It comes with a reference plug-in for a multi-touch-capable virtual keyboard.
It had bothered me that, even though our source code was available at gitorious.org, there were nearly no ...
The limits of "community driven"
So I decided to finally upgrade from Karmic to Lucid. Easy task, only should take some time: After all I did a plain default install. Well, ok - I've used the alternative ISO as my employer requires me to use full disk encryption. It's a good idea anyway, no idea why this feature isn't the default for all installs.
So after some time the install finishes, the ...
About missing flights
Frequent fliers will know this, but to everyone else: If you ever should be that stupid to miss a flight, call the airline where you booked that missed flight as soon as possible. Otherwise they will cancel your inbound flight and bet on charging you an incredible amout of money for your previously reserved seat. For me they lost their ...
Using DBus as lock-daemon
Recently I found this comment in the source code I am working with:
// what if both processes read in the same time and write at the same time, no increment
Please! Don't do such things! Don't just leave such comments in hope someone else will come around and will fix later. Please take the time to apply a locking mechanism.
Obvious choice when dealing with files would be to create a lock file. Unfortunately creating a ...
Stylish New Business Cards
Our new business cards have arrived:

Stylish. Professional. No Nonsense. Hopefully the attributes associated with Openismus...
Well done Kat!
Application Theming Tricks
From time to time applications need custom theming rules. Especially when the project has professional UI designers involved. So how to achieve this with GTK+?
Trivial Theming
Most easy and very wrong:
if (gdk_color_parse ("pink", &color))
gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &color);
This will break and look childish as soon as your users use a custom color scheme.
Better:
static void
style_set_cb (GtkWidget *widget,
GtkStyle *old_style)
{
GtkStyle *style = gtk_widget_get_style (widget);
if (gtk_style_lookup_color (style, "SecondaryTextColor", &color))
...
Well, and it is a phone!
So after months of denial it turns out, that the/we Maemo folks really built a phone!

Week 1 or Comparing Disruptiveness of Communication Methods
So my first trainee week at Openismus is over, and it has been a pleasant surprise.
Day 1 started with a nice team-building exercise where David and I could show our understanding of real Office Origami: IKEA(TM) furniture assembly. Once that was done we were ready to set up our newly arrived PCs. I appreciate that we were offered a choice over the keyboards and such - those are the details that count! Since I could not figure out how to make it boot from a DVD first (press ENTER, d'oh) I lost 5 coolness points. I ...
Missed Anniversary
Great, I've missed my anniversary! Hard to believe, but exactly 13 months ago I've started working for Openismus. Interesting, eventful, insightful months. Let's do even better for the next year.
LIRC Properties hosted on gnome.org now
Murray did the neccessary steps for moving GNOME LIRC Properties to GNOME infrastructure now last week. Bugs are tracked in Bugzilla now, and latest source code can be found here: http://svn.gnome.org/svn/gnome-lirc-properties/.
Thanks infrastructure for doing this job quickly. Thanks Fluendo for allowing to move the code.
Just wondering now, when GNOME's awesome I18N team find the module and ...
GNOME LIRC Properties
Some time ago Murray announced this little GUI to configure IR remote controls we Openismus guys did for Fluendo. Last Friday the program finally got uploaded to Ubuntu's package archive, since yesterday its package is in Hardy's Universe repository.
The program can detect your IR receiver and suggest a remote control. Success of that ...
GTK+ Hackfest is over
So the GTK+ Hackfest really ended yesterday. I absolutely enjoyed having all you guys arround me. I am absolutely confident, that all the ideas collected and exchanged here will lead to some great GTK+ 3.0 release. It cannot be said often enough, but even in our highly connected world face-to-face meetings are invaluable for our work. This can be understand as invitation to order your tickets ...
Launchpad's Personal Package Archives
Probably inspired by openSUSE's Build Service Launchpad provides this excellent Personal Package Archive (PPA) service.
It's quite exciting service: You just request your PPA, upload your source packages via dput command, and get them built within freshly setup Ubuntu environments. When building succeeds your packages are placed within some apt-get repository. No further maintenance steps required.
Unfortunately the service is not perfect yet: It seems to be ...
GtkCalendar Details
Hmm... Too much whining on this blog recently. So let's demonstrate some small, but exiting code I've wrote for Openismus, and which will show up in GTK+ 2.16:
/**
* gtk_calendar_set_detail_func:
* @calendar: a #GtkCalendar.
* @func: a function providing details for each day.
* @data: data to pass to @func invokations.
...
libepc 0.3 released
A new version of the Easy Publish and Consume Library has found its way on GNOME's FTP servers.
This release has seen many API changes to make the library more versatile. For instance streaming capabilities and support for ZeroConf bookmarks have been added. Also noteworthy is the new service monitor, which provides a very easy method for finding libepc (and DNS-SD) services.
...
Totem Playlist Sharing
To test versatility of libepc I've written a Totem plugin for sharing the current playlist.
Seems we've got another cool feature now, and libepc is in much better shape. Code is commited to Totem trunk, and also depends - surprise - on libepc trunk.
Disclaimer: Yes, demonstrating ...
Use gtk-doc to find required package version
Usually I am quite unsettled when adding package requirements to README files and configure scripts. AI never really know if the version I specified is correct.
This morning I had enough of this uncertainness and hacked a short Python script to extract that information from our find gtk-doc manuals: gtkdoc-check-symbol-versions.
Libxml2 cannot parse the HTML gtk-doc generates, so the script reads the gtk-doc manuals line by line, throws regular expressions at them and puts the ...
Simple description of libepc
Seems I failed to give a simple description of libepc. People still ask what it really is.
Well, its nothing fancy. It's really just a public hash table.
- plus encryption
- plus authentication
- plus discovery
Sounds trivial to implement, but isn't.
At least the discovery part: Current DNS-SD APIs provide a robust state monitoring API, and evilly ...
Easy Publish and Consume Library
As GNOME remembers the meaning of the 'N' in its name, more and more GNOME applications become network aware. GNOME provides excellent libraries for implementing network capabilities, nevertheless quite some effort is needed to glue them together to provide a smooth user experience.
When starting to add network support to Glom, we at Openismus decided it would be time to stop this frequent reinvention of the wheel, and put some of this glue code into an easy to use library. So the Easy Publish and Consume Library (libepc) was born.
The Easy Publish and Consume Library is ...
Canvas Review
As announced by Murray already I am working for Openismus now. First task I got assigned was providing patches for some binding glitches in GooCanvas. Seems I complained too much about GooCanvas' code during that task. So Murray asked me to review GooCanvas, HippoCanvas and libccc to figure out which canvas would fit best for diagrams and reports in Glom.
As we have that nice canvas overview on the GNOME Wiki already, I added additional information to that wiki page. Thank you Emmanuele for updating the clutter records, btw. ...


