2008-07-27

PyBindGen 0.9 released

Get it while it's hot:

http://code.google.com/p/pybindgen/

It's far from perfect released, but API should become more or less stable starting with this release, and NS-3 is using this code with success. Also most features that I need are there.

Oh, and here's the NEWS related to this release:


=== pybindgen 0.9 ===
- Fix GCC 4.2 compilation warnings;
- Works with some GCCXML 0.9/cvs snapshots (tested with 2008-04-20),
in addition to stable 0.7;
- Support for overloaded virtual methods;
- Add 'ignore' annotation support, allowing to ignore functions
and methods;
- Generally work hard to make sure the generated code at least
always compiles, even if we have to disable generation of
certain wrappers;
- Add support for protected methods and constructors;
- Preliminary support for templated classes/methods/functions;
- Add more type conversions, such as uint64_t and uint16_t;
- Support implicit conversions also for pass-by-reference parameters;
- Add supported for nested (i.e. defined inside a class) enums and classes;
- Add support for adding manually written custom method or function wrappers;
- Split the gccxmlparser.ModuleParser.parse() method into several
smaller methods, to allow greater customization and flexibility;
- Add support for customising C++ class instance creation code;
- Much improved support for wrapping pure C code;
- Support std::ostream << myobject mapped as str(myobject) (Mathieu Lacage)
- Support default values in parameters;
- More intuitive API (thanks Mathieu Lacage for feedback)
- Support generation of a Python pybindgen script from scanned API;
- Support splitting of generated python script and/or C/C++ module into several files;
- Lots of small bug fixes, and other features I probably forgot;
- New tutorial (thanks Mathieu Lacage), and API docs.


2008-07-12

PyBindGen has new home page

PyBindGen finally has a home page: http://code.google.com/p/pybindgen/

Why it needs a home page:
  • Launchpad does not directly provide downloads, it only mirrors existing downloads;
  • Launchpad has no Wiki;
  • Launchpad does not allow me to host documentation.
So I decided to use Google Projects for hosting PyBindGen. So now we have:
  • Documentation is hosted in the google project. I upload it via subversion (slightly painful but doable), and users can browse the svn http url directly to view the documentation online;
  • Wiki pages are always useful and google project has a good wiki system;
  • Downloads in google project.. currently no downloads, but I'll put them up some other day;
  • Bug tracking and code hosting are still handled by launchpad, as usual. Thankfully google project allows me to override the Source and Issues tabs, to redirect users to launchpad instead.
In other news, pybindgen based python bindings for NS-3 have finally been merged!

2008-07-01

NS-3 released first stable version

Finally, the "1.0" version of NS-3 has been released! This work represents a huge amount of effort by some very talented people.

2008-06-10

GnomeOSD on Euro 2008 pub

I received an email asking for some help with multihead in GnomeOSD. It started like this:

First, I would like to thank you for your work on gnome-osd, I am currently using it for displaying Twitter messages (with users being able to post the messages for commenting the game) on top of football games of the euro08 in an Austrian pub, and it works fabulously.

Ha! Amazing and that my pet project of the past has been put to such a fun use :-) Strangely this makes me feel some kind of regret for not hacking GnomeOSD in a very long time. But I guess it's life... so much to do, so little time... :-/

2008-04-30

PyBindGen documentation

I have been prodded by the NS-3 guys, namely Mathieu Lacage, to provide more documentation for PyBindgen. Additionally he provided some nice and short examples of C/C++ code to wrap. I then wrote the PyBindGen code that wraps the C/C++ examples, and added everything to the repository.

I looked into it and decided to use epydoc to generate API docs. Additionally I wrote a small introductory section, just to get started (else it's easy to get lost with all the classes). So here it is, the first draft of PyBindGen API documentation. Enjoy.

2008-04-24

RedHat conspiracy theories

It seems my last post was not taken well by the community. The thing is, I had not realized my blog would reach so far. Luis Villa and Jeff Waugh in particular think I should I apologize. I respect their opinion, one hand, and I the blog post had unintended consequence, potentially damaging Red Hat's image, on the other hand, which is not what I intended. Red Hat absolutely rocks as a company.

So, I apologize to Red Hat for the last blog post.

Conspiracy theories are always fun, but it seems blogging about them can have unintended consequences.

2008-04-23

RedHat's open source community trick

OK, I am going to be a bit cynical here, so be prepared ;-)

I think one of the new genial tricks of late being employed by RedHat to great effect is the following:
  1. Select a good open source developer, respected in the community but not affiliated with any Linux distributor company;
  2. Secretly talk to the guy and offer him a job at RedHat in some months, but he has to agree to start an open source project doing this and that...
  3. The developer agrees, starts the open source project, and starts developing it;
  4. In time the open source project gets good community support, not only because of its good quality but also because it is perceived as coming from the open source "community" rather than a company;
  5. After some months, the developer joins RedHat, and continues to maintain the project (which now has good community adoption);
  6. ....
  7. Profit!
I am trying to guess here, and could be wrong, but I am guessing this might have happened with projects such as Cairo (Carl Worth), Pulse Audio (Lennart Poettering), and more recently PackageKit (Richard Hughes), probably others in the past (I suspect Nautilus as well).

Well, if true, I think this is only slightly evil, anyway. I love RedHat, and I think they have always done a great service to open source in the past, and continue to be the leading technology innovators.

OK, if one was not being so cynical one might consider a scenario where the developer in question starts something cool on his own free will and the company simply sees the potential and decides to hire him. But I think I am too cynical to believe this :)