Category Archives: Linux

GDateTime

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 [...]

Realtime Graphing (again)

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 [...]

Realtime Graphing

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 [...]

Introduction to lock-free/wait-free and the ABA problem

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 [...]

My take on Tornado and "modern" web servers

I am happy to see Facebook release Tornado, their Python based web-server that was developed to run the FriendFeed service. They have done their best to optimize the stack within the Python process. However, I’m inclined to believe that it is more of the same problem from which many HTTP toolkits suffer.
Since Tornado [...]

Connecting people and Mentoring

Is there anything out there to help connect newer programmers with experienced programmers in GNOME or Linux in general? A big-brother/big-sister type thing. It’s quite rewarding to both those learning and those with experience to help each other when they have common goals and passions. It allows for broader dissemination of information, [...]

Faster code completion

The python code completion engine in MonoDevelop is now much faster. It’s was a simple fix and one that I think gets overlooked too often in these “dynamic” days.
Thankfully, python makes it easy to index information based on a fully-qualified name. Everything can basically be represented in package format such as “xml.etree.ElementTree.ElementTree.isinstance”. [...]

MonoDevelop Python Tutorial 1

I put together a quick walk-through of how to setup the Python add-in for real Python development. You will need a recent check-out of MonoDevelop trunk.

Python add-in for MonoDevelop (Updated)

I wrote a python add-in for MonoDevelop last year. Unfortunately, I have a hard time sticking to a single project and therefore it suffered a bit. However, we are getting ready for feature freeze for MonoDevelop 2.2 and so I kicked my ars in gear to fix a few things.
Namely, the code completion [...]

Ethos – Simplifying Plugins for GNOME Applications

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 [...]