The Wayback Machine - https://web.archive.org/web/20080913233410/http://expander.gtk.org:80/

Subscriptions

gtk-expander

expander.gtk.org

Web logs from gtk+ developers.

September 09, 2008

gtk-print-preview

Alexander Larsson

Embeddable languages, an implementation

I read Havocs post on embeddable languages with great joy. I very much agree that this is a good model for writing a larger application. I.E. you write the core of your application in C/C++ and then do the higher levels in an embedded dynamic scripting language. All the reasons Havoc lists are important, especially for the Gnome platform (a swarm-of-processes model where we want to avoid duplicating the platform in each language used).

There are a lot of dynamic scripting languages around, but only a few of them really qualify as embeddable languages in the form Havoc proposes. I would say the list is basically just: lua, JavaScript and some of the lisp dialects.

I’m far from a JavaScript lover, but it seems pretty obvious to me that from these alternatives it is the best choice. For a variety of reasons:

To experiment with this I started working on GScript (gscript module in gnome svn). It is two things. First of all its an API for easily embedding JavaScript (using SpiderMonkey atm) in a Gtk+ application. Secondly its a binding of GObject and GObject-based libraries to JavaScript.

Here is a quick example:

GScriptEngine *engine;
GScriptValue *res;
engine = g_script_engine_new ();
res = g_script_engine_evaluate_script (engine, "5+5");
g_print ("script result: %s", g_script_value_to_string (res));
g_object_unref (res);

If you want to expose a gobject (such as a GtkLabel) as a global property in JS you can do:

GtkLabel *label = gtk_label_new ("Test");
GScriptValue *val = g_script_value_new_from_gobject (G_OBJECT (label));
g_script_value_set_property (g_script_engine_get_global (engine), "the_label", val);

Then you can access the label from  javascript by the name “the_label”. You can read and set the object properties, connect and emit the signals and call all the methods that are availible via introspection.

You can also easily call from javascript into native code.

static GScriptValue *native_function (int n_args, GScriptValue **args);
GScriptValue *f = g_script_value_new_from_function (native_function, num_args);
g_script_value_set_property (g_script_engine_get_global (engine), "function", f);

The JavaScript wrappers are fully automatic, and lazily binds objects/classes as  they are used in JS. The object properties and signal information are extracted from the GType machinery. Method calls are done using the new GObject-Introspection system.

More work is clearly needed on the details of the JS bindings, but this is already a usable piece of code. I’m very interested in feedback about interest in something like this, and discussions about how the JS bindings should look.



gtk-connect by alexl at September 09, 2008 08:57 AM

September 08, 2008

gtk-print-preview

Federico Mena Quintero

Mon 2008/Sep/08



gtk-connect September 08, 2008 08:38 PM

gtk-print-preview

Stefan Kost

8 Sep 2008

buzztard

Out of some irc conversation, I gave implementing synced meters a go. Until so far level and spectrum meters in buzztard were ahead of time. The reason is that gstreamer tells me about the values once they are computed, but that's not when the actual data segment gets played. Luckily the message has a timestamp. So all it needs is to sync drawing with the audio sink. MikeS gave me some good pointers on irc. It wasn't that straight forward. I found and fixed a bug in level meter plugin so that it now puts useful timestamps on messages when it play loops. It works really great now.

gtk_widget_grab_focus() is a nasty function. It asserts when the widget is not mapped/realized and steals the focus in any case. This is problematic if you have tabs and update widgets when things changed. I now have a wrapper added that does the extra checks. Wonder if that would be a good change for upstream.

I did lot of testing with real buzz songs and machines. I have now about 80 original plugins in use. Real testing always leads to some good fixes :) We now add an empty pattern by default when adding new source machines (like buzz did). I also noticed that bpm/tpb information was not loaded from buzz songs. This is now fixed (also master volume was missing). After that I spotted that most bpm tempi did not work well. Now timing precision is much better.

project namespaces

A big recommendation to everyone. Pick a decent prefix for your project. I've been a bit blue eyed and had chosen 'bt'. Part of my package is a core library called libbtcore. Now unfortunately ktorrent did the same mistake and have a libbtcore (bt stands for bittorrent there). As neither of them are really general purpose they should be uniquely named. I analyzed all files I install and went thought the great pains of renaming everything - libs, binaries, docs includes, pkg-config files, desktop files and so on. Hope I never have to do that ever again. I also filed a bug for ktorrent so that they can fix it before its causing problems. Interesting how they dealt with the report - "I was first with libbtcore - RESOLVED AS WONTFIX". Interestingly I was 1.5 years earlier, but that wasn't the point at all.



gtk-connect September 08, 2008 06:53 PM

gtk-print-preview

Murray Cumming

Openismus in Berlin

Last week I visited Berlin to look at offices and found one that’s perfect. I’m signing the contract now. It’s in Kastanienallee (recent Flickr photos), a lively main street in hip Prenzlauerberg. I’m excited. The location and office couldn’t be better.

There are 5 large offices, plus a beautiful large central area, with bare brick, stone tiles, and lots of light, and even a patio for summer meetings. It’s peaceful and secure in a building to the rear beyond the inner courtyard.

I’m now ordering lots of furniture and equipment. Hopefully we’ll have it mostly set up before the Maemo summit on the 19th/20th September so we can proudly show it to our friends. I’m even thinking of having a little GNOME/Maemo party there before we have moved in properly.

I hope that Berlin, and this amazing part of Berlin, and this wonderful office will help to attract new employees, maybe from outside of Germany.



gtk-connect by murrayc at September 08, 2008 10:27 AM

gtk-print-preview

Ross Burton

Sound Juicer "Stab Stab Stab! This Is More Than A Message" 2.23.3

Sound Juicer "Stab Stab Stab! This Is More Than A Message" 2.23.3 has been released. Tarballs are available on burtonini.com, or from the GNOME FTP servers.



gtk-connect September 08, 2008 10:01 AM

September 07, 2008

gtk-print-preview

Bastien Nocera

A step closer to World Domination

Same as. But more times.



gtk-connect by noreply@blogger.com (hadess) at September 07, 2008 10:57 PM

September 05, 2008

gtk-print-preview

Mathias Hasselmann, SOC

C genuinely less powerful than modern languages

So today I finally realized that C is not only less convenient than modern programming languages, it's also genuinely less powerful than modern languages: In garbage collected (and reference counted) languages you can easily write:

if (attr_list != priv->cached_attr_list ||
    0 != list_compare (attr_list, priv->cached_attr_list)) {
    priv->attr_value = parse_attr (attr_list);
    priv->cached_attr_list = attr_list;
}

In modern languages this snipped works as expected: As soon as attr_list changes in some way it will be parsed again. In C this code doesn't work, since all pointers are just weak references: malloc/free don't know which memory address still are referenced, and therefore malloc easily will return some still referenced memory address. So destroying and rebuilding attr_list can easily lead to the new attr_list pointing to the same memory address as the old list:

old_list = g_list_append (NULL, "foo");
cached_list = old_list;
g_list_free (old_list);

new_list = g_list_append (NULL, "bar");

g_assert (new_list != cached_list); /* usually will fail! */

With C there are good chances that old_list and new_list both point to the same memory address. This clearly sucks.

Didn't expect that there are algorithms you can implement with modern languages, but not with C. Well, but obviously strong references/garbage collection do not only add convenience, they also allow new algorithms.

Yes, old news for the smarter among us, but not common knowledge I guess.

Update: I definitly should use a better phrase than "algorithms you can [not] implement", as I am definitely not here to challenge turing completeness of C.



gtk-connect September 05, 2008 06:32 PM

gtk-print-preview

Olav Vitters

World Port Days Rotterdam

This year I’ll help out at the World Port Days in Rotterdam. It is an event where the various things related to the port are shown. They’re expecting around 350.000 visitors. I’ll help at the Maersk stand on Sunday afternoon (2 pm onwards). The stand is located next to the Dutch Navy at the Parkkade (right hand side). It should be easy to locate as there will be a ship from Norfolkline alongside which people can visit (stand is about 60m wide).

Stuff at the stand:



gtk-connect by ovitters at September 05, 2008 02:21 PM

September 03, 2008

gtk-print-preview

Andreas Nilsson

Hack weekend

As the observant Daniel already noted, I had a small hackfest at my apartment in Gothenburg this weekend.
The attendees was Kalle Persson, Clemens Buss and myself + this odd fellow that Clemens brought along.
Traveling GNOME

We had quite a nice time. Discussed some ideas around GNOME, Clemens did some Emblem hacking and Kalle and I designed a website and drew some icons. We’re definitely doing this again soon and I hope more people will be interested in joining.



gtk-connect by Andreas Nilsson at September 03, 2008 09:09 PM

gtk-print-preview

Ross Burton

Why I Hate September

I hate September because it is in September that I finally get my mobile phone bill from GUADEC.

Total of 5 Calls while abroad 00:23:20 £31.402

Money grabbing tight fisted evil bastards. This includes a rate of £1.25 a minute to receive a call.

NP: Los Angeles, Flying Lotus



gtk-connect September 03, 2008 09:00 AM

August 30, 2008

gtk-print-preview

David Schleef

Random Updates

I’m at this annoying stage with Orc and Liboil where I need to add a feature to Liboil to support a new feature in Schrödinger, except that the new feature would be really easy to write if Orc was further along. Sigh. So I continue to muddle along not working on either.

In other news, jirac, the Java Dirac decoder written by Bart Wiegmans as a Google Summer of Code project, is pretty much feature complete and integrated into Cortado. There are a few showstopper bugs remaining, but I’m hoping for a release soon.

And in yet other news, I will be attending IBC in Amsterdam in a few weeks to meet up with various people to talk about Dirac and GStreamer. If you would like to meet up, let me know. There will be at least 3 booths related to Dirac: the BBC will be demonstrating Dirac as used for high-definition video distribution, NHK will be demonstrating Super Hi-vision with Dirac compression (that’s 4320p, kids), and Numedia will be demoing their hardware that handles Dirac Pro (SMPTE VC-2), which is Dirac for studio compression.

I’ve been seeing comments on teh Internets about “when Dirac is ready…” Just wanted to let you all know that Dirac is ready now.



gtk-connect by admin at August 30, 2008 12:18 AM

August 27, 2008

gtk-print-preview

Carol Spears

This is a web log

This is the web log for Carol Spears. As I write this, it is August 27, 2008 in both UTC and PDT and I am still in a very wrong location, for some very wrong reasons and after several years, it occurs to me that I have yet to hear that anyone other than me made a mistake. What are the odds that this is correct, that in so many years I am the only person who has made a mistake?

So far, to the best of what I can see, there exists in this world no golden rule for free software. So, I am guessing, that if you are selling software it is possible to "contribute" to free software in a way that makes what you are selling to be more appealing and actually cause disfunctionality to where your contributions went. While I am trying to think of a way to get my life back (the one I made and that I was enjoying before I became involved in this free software world), I am also going to attempt to think of a "golden rule" method that would inspire those who messed good and well written software up to go back and clean it up or at least not interfer with those who are willing and able to clean it up.

...



gtk-connect August 27, 2008 09:36 AM

August 26, 2008

gtk-print-preview

Federico Mena Quintero

Tue 2008/Aug/26



gtk-connect August 26, 2008 04:42 PM

gtk-print-preview

Rodrigo Moya

Olympics over

[Note: if you don’t care about sports, just skip this post]

Another Olympic games over, and, as always, I enjoyed them a lot, even though now I miss a lot having top level sport events all day on TV. But good things always last too little. So, here are the things I’d like to highlight:

And now for some stars of these games:

Now, just looking back to London 2012, which, I hope, I might be able to feel live, since my sister lives in the UK, so a visit to her during the Olympics is a must.



gtk-connect by rodrigo at August 26, 2008 02:49 PM

August 21, 2008

gtk-print-preview

Federico Mena Quintero

Thu 2008/Aug/21



gtk-connect August 21, 2008 05:29 PM

gtk-print-preview

Johan Dahlin

Introspection hackfest at the Boston Summit

We’re arranging an introspection hackfest at the Boston Summit! Thanks to the nice lads at the foundation we can have most of the participants flown over. Colin Walters, Jürg Billeter, Philip Van Hoof, I and hopefully Havoc Pennington is going to be there.

If you’re interested in language bindings or other uses of the introspection data, come by and help us out.

Oh, I almost forgot to say hi to Planet Python. Andrew was kind enough to add me there. My name is Johan Dahlin and I’m mostly working on Python related to GNOME, especially, Python bindings for GObject and Gtk., and Kiwi + Stoq of course. The introspection project is intended to make it easier to write language bindings for the Gnome stack, not only Python ones.



gtk-connect by johan at August 21, 2008 02:10 PM

gtk-print-preview

Mathias Hasselmann, SOC

libtool aware gdb wrapper and mergetool

Just want to mention some small and rough tools I've written recently to easy my daily hacker's life:

Both tools are quite rough, but maybe some of you find them useful.

Update: Seems that "libtool --mode=execute cmdline..." works similar to my wrapper script. Thanks for pointing me on this.



gtk-connect August 21, 2008 10:18 AM

August 18, 2008

gtk-print-preview

Ross Burton

Sound Juicer "I Don't Know What You Heard But It's Mandatory" 2.23.2

Sound Juicer "I Don't Know What You Heard But It's Mandatory" 2.23.2 has been released. Tarballs are available on burtonini.com, or from the GNOME FTP servers. Lots of fixes from the Amazing Matthew Martin:



gtk-connect August 18, 2008 01:59 PM

August 16, 2008

gtk-print-preview

Christian Neumair

Before / After

 Before

  Before

Note how the regular grid layout is destroyed by the long file name, which can make its row very large.

 After

   After (1/2)           After (2/2)

Note how the grid layout is preserved, while the whole filename is still visible as the file is selected or hovered.

Take that five year old bug report! Thanks to the incredible Pango grand master Behdad. Many play the Banjo, but only few master the Pango.

Update

I received lots of feedback. Many appreciations were given, some usability concerns were raised and some people just didn’t like the change. Therefore, I added GConf keys that allow you to control in detail (i.e. for all zoom levels, and for the desktop) how many lines of text you want.

Another proposal was that file extensions should never be truncated. This will be implemented as Pango supports it. There is also an interesting recent user request to ellipsize file names depending on the other displayed file names (assuming you have “alongfilename-01-continuin-hereg.jpg”, “alongfilename-02-continuing-here.jpg” the result is supposed to be “along…e-01-…ere..jpg”, “along…e-02-…ere..jpg”.



gtk-connect by cneumair at August 16, 2008 06:18 PM

August 14, 2008

gtk-print-preview

Federico Mena Quintero

Thu 2008/Aug/14



gtk-connect August 14, 2008 05:56 PM

gtk-print-preview

Behdad Esfahbod

A good day for Free Software

Red Hat's Rob Tiller, Vice President and Assistant General Counsel, IP, writes in a blog post:
The Federal Circuit not only corrected the error of the trial court, but also provided a short primer on open source projects and licensing. It explained that such licensing “has become a widely used method of creative collaboration that serves to advance the arts and sciences in a manner and at a pace that few could have imagined just a few decades ago.” The appeals court acknowledged that with open source “software programs can often be written and debugged faster and at lower cost than if the copyright holder were required to do all the work independently.” The court also wrote about the substantial economic benefits associated with free and open source software, including product improvements from independent sources.
...
As to the licensing issue, the Federal Circuit correctly determined that the Artistic License was enforceable through copyright law, because the relevant restrictions were conditions rather than mere covenants. The more important point is the general one that “copyright holders who engage in open source licensing have the right to control the modification and distribution of copyrighted material.” The court found that an open source licensor’s choice to impose requirements such as disclosure and an explanation of changes, instead of requiring monetary payment, was entitled to legal recognition.

Congrats to all involved.


gtk-connect by behdad (noreply@blogger.com) at August 14, 2008 06:36 PM

August 13, 2008

gtk-print-preview

Richard Hult

GTK+ code rewriter

I have been looking at the compiler framework llvm/clang recently in order to do automatic refactoring and code rewriting. One use case for this is to move code that does things like:

gdk_window_foo (widget->window);

to

gdk_window_foo (gtk_widget_get_window (widget));

automatically, to get code working with a sealed GTK+.

Another useful thing that can be done automatically is to change code so that only gtk/gtk.h is included, which is the recommended way, instead of many individual header files. There are more examples of things that can help developers clean up their code, such as spotting common mistakes like not chaining up in finalizers etc etc. Clang makes it quite easy to implement those ideas.

I have started working on a tool to do the accessor and header file rewriting as a first step. Please check it out and let me know if there are any issues or if you want to help out!



gtk-connect by Richard Hult at August 13, 2008 05:30 PM

gtk-print-preview

Paolo Borelli

gedit ported to gio/gvfs

In the last months I’ve been pretty busy and time for gedit, gtksourceview and GNOME in general has been particularly small. The lack of posts on this page pretty much reflects that.

When reading discussions about decadence I could not help but feel a bit guilty, especially since gedit user base has never been more healthy: new plugins are released, users partecipate on irc and mailing lists, blog posts  about customizing gedit pop up daily on the interweb.

It seemed inevitable that gedit 2.24 would have been pretty much exactly the same as 2.22, but Jesse came to rescue. He first ported the filebrowser side pane to gio and last week he completed the work by also reworking all the gedit internals (especially remote file loading and saving) to use gio instead of gnome-vfs. As of today I committed that work to svn and I will try to make a tarball release as soon as possible.

Since Jesse was on a roll, he also ported all the dialogs from libglade to gtkbuilder, killing yet another dependency.

Please test it, test it, test it and test it again and then report bugs!



gtk-connect August 13, 2008 12:09 PM

August 12, 2008

gtk-print-preview

Federico Mena Quintero

Tue 2008/Aug/12



gtk-connect August 12, 2008 07:50 PM

August 11, 2008

gtk-print-preview

Olav Vitters

SVN-commits-list annoyance

Noticed that I got a bounce message from dict-notifications at fsa-bg org after a commit to SVN. This triggered an email to svn-commits-list which this address was subscribed to. Of course, such bounces are very annoying so I’ve unsubscribed that address. I do wonder why I didn’t see any complaints in a place meant for this (gnome-sysadmin, gnome-infrastructure, support@, mailman@, …).



gtk-connect by ovitters at August 11, 2008 11:11 PM

LDAP replication change

Up to today LDAP replication was done using slurpd-style replication. In this setup the LDAP master pushes changes to the various slaves. For this to work the slave must be accessible by the master. This was setup using encryption (self signed certificates). This replication method is deprecated as of OpenLDAP 2.3 in favour of ’syncrepl’. OpenLDAP 2.4 doesn’t even have slurpd-style replication. Changing the replication method is important as I want to be able to upgrade to RHEL6 without being forced to do other changes at the same time.

The biggest drawback about slurpd is that it only replicates the changes. Meaning: If you have a new slave, you first have to stop the master, dump the database, then load this database on the slave, then start the slave and the master. Really annoying and during this time your master LDAP server is down!

With syncrepl-style replication the slaves contact the master. Slaves are now called consumers and the master is the provider. I don’t like consumers contacting the provider as I don’t want a security issue on some external host to cause security problems on the LDAP master db. I’ve tried to minimize the risk by using encryption (self signed certificates, server won’t accept any other certificates), using iptables, restricting the LDAP logon to just one user (to ensure brute forcing userPassword entries by logging in often will not work), not replicating the userPassword attribute, not allowing database modifications from external clients and some ACL restrictions.

There are two things I like about syncrepl.

  1. After it connecting with the provider it checks the consistency of the database. At one point the SVN machine missed just one uid entry. That person couldn’t log in. With sycnrepl such a problem is not possible (ignoring possible config errors like ACLs).
  2. You can restrict what is replicated to the slave using ACLs on the master.

Syncrepl has two ways of working, using refreshOnly it checks for LDAP changes every x minutes (configurable). This isn’t as nice as slurpd as I want all LDAP changes to be propagated instantly (even if the SSH sync script only runs once an hour). Fortunately it also has a refreshAndPersist, where it first checks and then waits for change notifications from the provider.

Tips to ensure a working syncrepl:



gtk-connect by ovitters at August 11, 2008 11:00 PM

gtk-print-preview

Murray Cumming

cluttermm and playing with clutter-box2d

cluttermm

There are now C++ bindings for the various clutter-0.8 libraries. That’s cluttermm-0.8, clutter-gtkmm-0.8, and clutter-cairomm-0.8. The tarball versions are 0.7.x because they are not ABI-stable yet. Armin Burgmeier did most of the work for Openismus to update cluttermm for clutter-0.8 and make it mostly complete.

I’d still like to find the time to do a C++ version of my Clutter tutorial.

clutter-box2d

I really wanted to look at clutter-box2d. It’s the clutter-with-simple-2D-physics thing created by Øyvind Kolås. His Moblin Playground Clutter prototype (watch the screencast) shows how it might be used. For instance, it makes it easier to implement the spinning circular menus you see at the left and right, and to implement the photo “table”. Since I wrote the clutter tutorial, I’ve thought we need abstractions such as this.

So I wrapped it as clutter-box2dmm and made C++ versions of its examples to get familiar with it.

clutter-box2d provides a ClutterBox2D (or Clutter::Box2D::Box2D in C++) container actor, which has child properties for its child actors. For instance, you can say whether the actor should be static (not moving) or dynamic (moving and colliding according to some simple physics), and you can say whether the actor should be manipulatable by pushing it around with the mouse. You can also specify its velocity. These are explicit methods on the Box2D class in the C++ binding.

You can then start the simulation on the ClutterBox2D. By default there is normal gravity (a bug, I think), which makes examples fun. The examples create a static box around the edges of the ClutterStage so the actors don’t fall out of it.

You can also specify some joints to connect actors in certain ways, such as a distance joint to put an invisible rod between them, or a revolute joint, as used to link the sections in the chain example. The joints are a bit difficult to understand.

This is all useful apart from some minor bugs that seem fixable, maybe together with the Box2D project that clutter-box2d uses. (Can’t stop damping and Can’t stop rotation.) It would be even more useful if applications could respond to collisions between objects and objects arriving at locations, which is apparently also doable.

However, I think clutter-box2d provides only some of the abstractions that I’d like. I particularly still miss the ability to simply define a rail and put an actor on it so its motion is restricted to that path. The actor would then be moved programmatically (maybe just by specifying an end point to reach) or by the user. clutter-box2d could do that by defining a rail and some runners, but it’s not a high level concept, and it’s probably not efficient.

I’d also like the idea of actors falling into locations as you move them, like those ball bearing maze games, and maybe it would be useful to have some ability to connect actors by elastic, and to let them bounce and compress.



gtk-connect by murrayc at August 11, 2008 11:36 AM

gtk-print-preview

Ryan Lortie

icanhasedit?

1 part federico + 1 part marnanel-musings + 1 part tango experiment + a couple of hours

= icanhasedit.py (very rough concept)

also in git at git.desrt.ca (git-clone git://git.desrt.ca/icanhasedit).

for best effect, set it as the default application for opening text files.

be warned: its saving is non-atomic.



gtk-connect by desrt at August 11, 2008 04:46 AM

August 10, 2008

gtk-print-preview

Emmanuele Bassi

Stuck with me

guadec 2008: I’m late, but I wanted to thank everyone in the GUADEC team for making this edition of the conference really rocking. thanks to everyone.

clutter: well, after the 0.8.0 release during GUADEC things have slowed down — but just a little bit; we’re fixing bugs in trunk and preparing for a 0.8.2 release of Clutter core. we also released the various integration libraries, and I’m trying to find more time to fix up the bindings. at the moment, the only bindings that have been officially released are the Perl bindings, the C++ bindings (thanks to Murray Cumming), the C# bindings (thanks to Thomas Machelen) and the Ruby bindings (thanks to Neil Roberts). I plan to release the Vala bindings really soon now — just some finishing touches to make the API nicer to use.

pyclutter: I wrote a couple of weeks ago that the Python bindings for Clutter have been, let’s say, problematic. taking a week or so away from them seems to have worked well enough, though, and now trunk is in a much better shape. unfortunately that have been some reports of segfaults and weird memory allocation issues — so any help in terms of testing is much, much appreciated. I also finally got around and generated the API reference for pyclutter using a slightly modified script coming from pygobject — but the content is missing sections like the object properties and signals. it just needs editing and some kind Python developer to start contributing documentation and fixes. again: any help is much appreciated.

travel: next week I’m headed to Sunnyvale for work; I’ll be there from the 17th to the 22nd. after I get back I’ll finally get a couple of weeks off, which I’ll spend with my wife travelling between New Haven and New York.

gnome-utils: finally found some time to do bug triaging and applying some old patches. nothing stellar: for what I have in mind I’d need a lot more time, or a lot more contributions (and less drive-by patches). for instance:

as you can see, gnome-utils is not at all dead — it just lacks manpower sticking around enough to get a SVN account and an entry in the MAINTAINERS file.



gtk-connect by ebassi at August 10, 2008 09:04 PM

gtk-print-preview

Stefan Kost

10 Aug 2008

buzztard

Wow, July went fast. I spend most time with my family. Still a few news from the development front. I worked mostly on wavetable view. It now features more proper sample playback. I wrote a memory audio source for GStreamer. It supports forward and backward playback. This is needed for e.g. ping-pong loops. Also now changing things takes effect while a sample plays. Our waveform widget also shows a playback pointer and loop markers. I also got around to unify and merge duplicated note conversion code. You know, when you've copied something the 3rd time, its time to refactor.

Earlier this month I refactored the song-io plugin API a bit. It has now more metadata. This helps the UI to setup file and recent filters. Unfortunately I had to find out that the mime-type detection in glib was broken. Its at least fixed in trunk. No idea since when it actually worked. As a workaround I am now adding "*.xml" to the filters.



gtk-connect August 10, 2008 06:08 PM

August 08, 2008

gtk-print-preview

Federico Mena Quintero

Fri 2008/Aug/08



gtk-connect August 08, 2008 03:50 PM

gtk-print-preview

Rodrigo Moya

Olympics’ hopes

With the Olympic Games about to start, here’s what I hope to see:

Anyway, good luck to everyone, and please, try to not stay too much time in the sofa watching the games :-) You can just do some exercises while you watch the sports or when going to the sofa to somewhere else and back, so as to feel the Olympic spirit also :-D



gtk-connect by rodrigo at August 08, 2008 11:33 AM

August 07, 2008

gtk-print-preview

Bastien Nocera

Neologisms

Today, I saw Girnomous being used on TV. I felt dirty.


gtk-connect by noreply@blogger.com (hadess) at August 07, 2008 11:33 PM

gtk-print-preview

Federico Mena Quintero

Thu 2008/Aug/07



gtk-connect August 07, 2008 02:47 PM

August 06, 2008

gtk-print-preview

Federico Mena Quintero

Wed 2008/Aug/06



gtk-connect August 06, 2008 07:06 PM

gtk-print-preview

Mathias Hasselmann, SOC

Firefox Certificate Insanity

Christopher, this kind of insanity and the arrogance with which related feedback is handled, is exactly the reason, why people want alternate browser UI's. Sometimes I really wonder if Mozilla's UI designers serve the users, or if they just serve their ego.

Combine this need for custom UIs with the uglyness of Mozilla's bloated XPCOM APIs and the inability to keep them stable - some people even perceive the situation as sabotage - and you know why developers turn their back to your project.

PS: Colin, you totally forget that FOSS land doesn't only consist of big companies! Expect for big companies nobody, really nobody is paying for certificates. Only alternative seems to be CACert, but their website and the short-livingness of their certificates also make it a pain to use.



gtk-connect August 06, 2008 07:00 AM

gtk-print-preview

Federico Mena Quintero

Tue 2008/Aug/05



gtk-connect August 06, 2008 02:31 AM

August 04, 2008

gtk-print-preview

Ross Burton

Sound Juicer "We're Singing In Tune But Now It's Over" 2.23.1

Sound Juicer "We're Singing In Tune But Now It's Over" 2.23.1 has been released. Tarballs are available on burtonini.com, or from the GNOME FTP servers. Nothing that amazing here, sorry:



gtk-connect August 04, 2008 07:33 PM

August 03, 2008

gtk-print-preview

Ronald S. Bultje

Kuala Lumpur - Day 1

I’m in Kuala Lumpur, Malaysia to visit my girlfriend’s family.

Today, we went for a touristy ride to visit the Batu Caves (which contain an in-cave Buddhist Hindu temple and monkeys), Kuala Lumpur itself and a butterfly garden. Tomorrow, we go shopping in Kuala Lumpur before heading off to the Redang resort.



gtk-connect by rbultje at August 03, 2008 10:43 AM

August 02, 2008

gtk-print-preview

Andreas Nilsson

Using Spot colors in Scribus

A while ago, Máirín blogged about creating print originals in Inkscape and Scribus, and I can only chime in on her praise of these tools. Since I joined Imendio, a large amount of what I’ve done on a daily basis have been print work (stickers, t-shirts, rollups, tattoos etc.) and all of it have been done using a free software workflow!

A common obstacle you run into when using Scribus for print is the lack of support for predefined spot colors from Pantone, something that usually comes handy when you need more exact colors that you looked up in a color swatch. The reason that Scribus can’t include these is, as usual, because of legal reasons.
Luckily there exists a small howto in the Scribus Wiki how to get hold of and use these in your designs.



gtk-connect by Andreas Nilsson at August 02, 2008 04:38 PM

August 01, 2008

gtk-print-preview

Cody Russell

Ding Dong, the Witch Is Dead!

Seven years, 157 comments later.. IT IS DONE!

Witch



gtk-connect by bratsche at August 01, 2008 03:39 AM

July 31, 2008

gtk-print-preview

Behdad Esfahbod

Stuck in Whistler

In Whistler for Mozilla Summit. The summit ends today. Original plan was to do some cycling in the mountains tomorrow morning, and head back to Vancouver at 3pm, spend the weekend with friends in Vancouver.

BUT! The night before last one there was a massive rock slide blocking the main road from Whistler back to Vancouver (aerial photo, news story, interesting blogpost) and it takes at least five days to clear it up. The alternate route is 8 hours long, so they have rescheduled all the buses. I'm now on the 3am bus on Friday, which hopefully means I can sleep on the bus after the party. Beats having to wakeup and catch the 8am one and be bored on the bus for a good part of the day.

So I thought I attend my sessions this morning and head out in the afternoon to do some cycling, be back in time for the party. BUT! Woke up this morning to learn that power is out for at least a few hours. A laundry truck hit the
transformer.
Yay! Got a couple more hours of battery life. Funny thing is that wifi works.

Finally, I didn't notice that the schedule for today starts half-hour earlier than previous days. So missed breakfast too. Have to run out, get breakfast, get real coffee, and plan the rest of my stay here. But found some nagging first quite refreshing :).

Anyway, having tons of fun. I'm sure if the summit was in the winter, we could expect lots of The Shining flashbacks at the hotel. :-D


gtk-connect by behdad (noreply@blogger.com) at July 31, 2008 02:54 PM

gtk-print-preview

Mathias Hasselmann, SOC

Changelogs and Fortune Cookies

Nasrudin walked into a teahouse and declaimed, "The moon is more useful than the sun."
"Why?", he was asked.
"Because at night we need the light more."

Regularly applaud myself for changing my prepare-changelog script to yield a random fortune cookie with each changelog entry:

`/usr/games/fortune -s wisdom`

Quite entertaining.

Just take care to remove those cookies before commiting: Some people might get offended by this unexpected and often unrelated wisdoms.



gtk-connect July 31, 2008 09:48 AM

gtk-print-preview

Johan Dahlin

Generic CClosure marshaller using libffi

Marco: You can also use the libffi CClosure marshaller I wrote for PyGObject. If you use you don’t need to generate the marshal.list at all, it’ll figure out the signature and call the callback just by looking at the signals GValues.

I originally wrote it so that Edward could prototype playbin2 in gst-python and still being able to connect to signals created in python from GstElements written in C. I know that a couple of other projects are using that file by copying and pasting it while waiting for bug 401080 to be solved.



gtk-connect by johan at July 31, 2008 09:31 AM

gtk-print-preview

Bastien Nocera

About wasting time

Make sure your application's setup uses GNOME_COMPILE_WARNINGS in configure, and has WARN_CFLAGS in the CFLAGS... I just wasted too much time doing fixing a bug that wasn't.


gtk-connect by noreply@blogger.com (hadess) at July 31, 2008 12:53 AM

July 30, 2008

gtk-print-preview

Federico Mena Quintero

Wed 2008/Jul/30



gtk-connect July 30, 2008 05:50 PM

July 29, 2008

gtk-print-preview

Ross Burton

GUADEC

Hmm, so I never did blog a GUADEC roundup. In two words: it rocked. Congratulations to Baris and everyone else who organised it!

In other late GUADEC news I finally reviewed the rest of my GUADEC photos and uploaded them to Flickr. I'll try and not take a month to upload next time, honest!



gtk-connect July 29, 2008 08:40 PM

gtk-print-preview

Federico Mena Quintero

Tue 2008/Jul/29



gtk-connect July 29, 2008 07:44 PM

gtk-print-preview

Mathias Hasselmann, SOC

GNOME makes happy people

GNOME is fun. Proof below:

Happy Marc-André stands in the GNOME swag bag



gtk-connect July 29, 2008 11:11 AM

July 28, 2008

gtk-print-preview

Bastien Nocera

GIMP on the Beeb

The GIMP was featured in Click, a tech show on the BBC. They got the license wrong though.

Seems Jakub already spotted it.


gtk-connect by noreply@blogger.com (hadess) at July 28, 2008 02:37 PM

gtk-print-preview

Rodrigo Moya

Asturias patria querida

I was out last week on vacation in Asturias, in the North-West of Spain. Asturias is one of the few regions in Spain I had never visited, so it was time, and what a good idea indeed. Asturias (or at least the East part of it, where I’ve been) is one of the most beautiful places I’ve seen in my life. With the sea in the North, and a land full of huge mountains (totally covered with forests or with land full of cows and horses), it is indeed a paradise (that’s what they say when you get into Asturias, ‘Welcome to Asturias, a nature paradise’).

We went to Cangas de Onís, a very nice village close to the river Sella (the real reason we came here, more later), just a few kms close to the Picos de Europa national park, and with lots of things to do around.

First mandatory thing to do was to visit the Lagos de Covadonga, mytical finish of lots of stages of the Vuelta a España (cyclism’ Tour of Spain), with the sanctuary of Covadonga in the way to it:

The road to the lakes, which goes from less than 200 meters to more than 1000 meters above the sea level, is indeed perfect for a cycling race, except for the cows, which just hang around the road and the mountains around without caring about the cars, just laying down in the middle of the road :-)

At the top of the road, the landscape is really wonderful:

But as I said, we came to Cangas de Onís because we wanted to do some canoieng in the river Sella, famous because of the International Descent of the River Sella, a race, to take place on August 9th, where 1000s of people participate, racing and in the different celebrations in all the villages and towns along the river bank. I don’t have many photos of this, since I didn’t want to ruin my camera if my canoe got sinked :-) So the first day we did it, I didn’t take any photos, the 2nd one, I took my cell phone with me and just got a few photos.

You just need to pay 25 € per person, and you are given a single/double/triple canoe, and then you can go on your own, stop in any of the many beaches around the river to eat the snadwiches you are given, or just relax. And then there are different places where you can stop, at 7, 10 or 12 kms. We got, although quite tired, both days to the last exit, and, believe me, we would have continued for more time, since just being in the river, surrounded by mountains, without seeing any civilization apart from the (lots of) people canoeing also and the few bars around the river bank is indeed a very funny thing to do, which, hopefully, I’ll be doing again around here, if I can find a place to do it (there are lots of rivers around here, but not sure if you are allowed to navigate them, and also, I wouldn’t like going on my own without knowing if a place is safe or not).

Also, while I don’t fancy much going to the beach in summer (I love it in winter), I have to confess I’ve changed a bit my mind after being in some beaches in Asturias. First of all, the weather is ok, not too hot (as in the Mediterranean, where I’ve almost always been when going to the beach in Summer), and there are just a few people, and finally, but most important, the beaches are just spectacular. We found one, called Playa de las Cuevas del Mar, which was a perfect place to just sit down and contemplate.

We also did lots of walking around the countryside, some tourism sightseeing, and, every day, we ate wonderful stuff like Chorizos a la Sidra, Escalopines al Cabrales, etc, and, specially, Fabada:

I’ll be back to Asturias soon for sure.



gtk-connect by rodrigo at July 28, 2008 11:30 AM

gtk-print-preview

Murray Cumming

Finding an office in Berlin

I’d like to open an Openismus office in Berlin in the next couple of months, for about three of our people. I don’t have much idea where office rental is advertised in Berlin. What’s the equivalent of the Süddeutschezeitung’s small ads there?

I’d love us to have something in Kreuzberg, near Schlesiches-Tor, maybe by the river there, but it looks like Prenzlauerberg will be more convenient for Mathias to get to. I’d like to avoid being in one of the anonymous office buildings in the centre of town. It’s much nicer to have something with character in a lively residential area like Kreuzberg or Prenzlauerberg which is still close to everything by public transport.



gtk-connect by murrayc at July 28, 2008 10:32 AM

gtk-print-preview

Johan Dahlin

PyGObject activities

I’ve been spending quite a bit of time lately on PyGObject, the python bindings for GObject. This blog post will summarize the recent activies.

Code Generator move

One of the most important parts of the gtk python bindings lies within the code generator. This piece of software which was mostly written by James Henstridge, Gustavo Carneiro and I takes an API definition file (in scheme s-expression style) and output C glue which tell Python how to call the API in a library. For various reasons the code generator is mostly intended to be used by a GObject based library. It was originally written for PyGTK but has since been used in a number of other placs, most noticable gst-python contains a fork which various modifications. It has recently moved from the PyGTK package to PyGObject and can now easily be used by GObject based library which wishes to use it without depending on GTK+.

GIO

The principal motivation for moving the code generator from PyGTK to PyGObject was to be able to create GIO bindings. An initial set of bindings has been created for GIO. They are not complete yet, quite a bit of the API which takes async result parameters has not yet been written, but it should be perfectly usable by applications already. Please use it and let me know if there is any methods missing and I will gladly wrap them for you

GLib

One of the complaints over there years has been that it’s kind of weird to type gobject.MainLoop(), gobject.io_add_watch() etc, since these functions are not really related to GObject. Complain no more, they have now moved to a new module called just glib. It’s been quite hard to come up with any reasonable use cases for third party packages using glib but not gobject. I guess one of them is python bindings for Qt wishing to integrate with the python bindings for Gtk+. Qt already provides (optional) glib/mainloop integration, so perhaps this would be useful to them.

Porting to Python 3

This weekend I ported the glib and gobject modules over to be compilable against Python 3.0b2. It has been done in such a way that the source code is compatible with both the 2.x and 3.0 APIs of Python. To be able to do that I was forced to add a number of quite intrusive macros which takes care of the hard work. I’ve only managed to reach the point where it is possible to import the gobject module. The code generator and the gio bindings has not yet been ported. Even less has the testsuite been run, so this is just moderatly useful at this point. As part of porting this I had to make the python support in automake be compatible with python 3. Patches against git head of automake can be found here.



gtk-connect by johan at July 28, 2008 08:05 AM

July 27, 2008

gtk-print-preview

Bastien Nocera

Freedesktop sound theme support: done!


Details in bugzilla. Bugs go to bugzilla as well. Death to esound!

PS: robster is a sucka, fixing bugs in dead code.


gtk-connect by noreply@blogger.com (hadess) at July 27, 2008 11:50 PM

July 24, 2008

gtk-print-preview

Bastien Nocera

Totem article: "Movie Magic"

Philip will be happy. The author of this article for Linux Magazine UK is full of praise for the YouTube plugin. Good work Philip!



gtk-connect by noreply@blogger.com (hadess) at July 24, 2008 01:23 PM

gtk-print-preview

Mathias Hasselmann, SOC

Project specific editor settings

Everyone knows the problem that seemingly each project uses its own code style. So here is my solution for that problem:

$ cat ~/.vim/after/ftplugin/c.vim 
if filereadable('.project.vim')
    source .project.vim
else
    set sw=2 sta et
endif

Maybe you had some better ideas already - I'd like to read about them.



gtk-connect July 24, 2008 09:44 AM

gtk-print-preview

Federico Mena Quintero

Wed 2008/Jul/23



gtk-connect July 24, 2008 12:03 AM

July 23, 2008

gtk-print-preview

Bastien Nocera

Better late than never

Back in the day, I used my paycheck to buy the top-notch MP3 player that was the Rio500. Unfortunately, I forgot it in the back pocket on my plane seat when flying over to Raleigh for my Red Hat induction. And then I used one of my first new job paycheck to buy a second generation (and very very expensive) iPod.

You could say that hacking on Walk500, a front-end to that great player is the reason why I'm hacking on GNOME these days.


I couldn't bear the thought anymore, and bought a Rio500 on eBay for $5. Hacking on it half-an-hour at a time, I cleaned up the code. The latest release of the modern era is available on SourceForge.


gtk-connect by noreply@blogger.com (hadess) at July 23, 2008 10:01 AM

gtk-print-preview

Mathias Hasselmann, SOC

29 years and still immature...

g++ just gave me this error message right now:

./JavaScriptCore/kjs/ArgList.h:133: error: extra qualification 'KJS::ArgList::' on member 'operator new'

Would be nice if this language (or its compilers) would have matured that much, that you don't always need exactly the same C++ compiler as the guy writing the code you try to compile. It was just 29 years ago, that C++ was invented...



gtk-connect July 23, 2008 07:31 AM

July 22, 2008

gtk-print-preview

Federico Mena Quintero

Tue 2008/Jul/22



gtk-connect July 22, 2008 05:19 PM


Subscribe RSS2

Subscribe ATOM

Powered by Planet!
Last updated: September 09, 2008 05:12 PM