Wednesday, August 25th, 2010
Some readers may remember that I spent some time working on a DateTime structure for GLib last year. After much refinement by others better than myself, it has been included in GLib master. Much thanks to Thiago Sousa Santos, Emmanuele Bassi, and the countless reviewers.
You can find some quick examples here.
GDateTime is both [...]
As suggested by Benjamin, I switched UberGraph to use a single GdkPixmap instead of two. Previously I copied the content back and forth between Pixmaps as I added the new second’s worth of data. That wasted memory in X as well as being unnecessary. Now it uses a single GdkPixmap as a [...]
I recently had the need for a realtime graph and thought it would be a fun hack. I spent some time thinking about a few ways to optimize the drawing to reduce both the client and server side overhead. Having a way to visualize data without a significant effect on system performance is [...]
Friday, December 25th, 2009
I recently read a paper on Hazard Pointers[2] and thought I would share what I learned and some general information on lock-free/wait-free programming. I hope it is useful to others getting started.
I’m not very clever, so keep in mind this is mostly regurgitating knowledge I’ve found in various places. If you find anything [...]
I’ve written another library, Catalina. It started as an example for using the threading library Iris and turned into what I think is a useful library. Catalina is an object data-store for glib and gobject. It provides access through a natural key/value pair interface.
Transparent serialization is supported to and from storage for [...]
I branched Thomas Wood’s GObject generator code the other day and started adding some desired features.
Select a license including LGPL-2, GPL-2, MIT-X11, Apache 2.0, or no license
Generate gtk-doc in-code documentation
Generate and install GObject properties including proper switch casements for basic glib types
Generate getter and setter methods for GObject properties
Generate methods and include guards in the [...]
Wednesday, May 27th, 2009
Plenty of desktop applications have extension frameworks so that users may extend functionality for their own purposes. However, many seem to invent their own plug-in system or use a framework tied to the applications source code language. For example, there is pkg_resources for python and Mono.Addins for mono. Both are great tools [...]
Tuesday, April 21st, 2009
Today I finished off a couple more bug fixes for Iris. It now has the Coordination Arbiter which is similar to CCR’s Arbiter.Interleave(). I’m quite happy I ventured down the path of doing GTask based on message passing. It’s already been much easier to find bugs and triage them.
So like the previous [...]
Thursday, February 19th, 2009
I’ve made some API changes to the GTask delegates that should make using GTask much less painful. I must have been smoking some seriously good ‘ish when I thought it was a good idea to return GValue* from any sort of delegate. That would have required negotiating allocation methods when an allocation shouldn’t be necessary [...]