J5’s Blog

May 28, 2010

It’s Alive

Filed under: Gnome, Python, weekend — J5 @ 9:14 am

After sweating a bit and then Colin Walter’s wonderful caller-allocates patch being committed to gobject-introspection, I give you PyGI’s gtk-demo clone:

A clone of gtk-demo

A clone of gtk-demo

It may not look like much but consider this, the demo uses a TreeView, TreeStore, ScrolledWindow, TextView, TextBuffer, TextTags and numerous types of Iters without asserting inside of GTK (provided you have the latest GTK from git). I can also now drop a python file in a directory and have it show up in the demo list which means many little snippets to methodically run through the gamut of the GTK API and fix any issues. Right now I need to write unit tests for the patches that enable gtk-demo.py to run but once I have those in I will commit gtk-demo.py to the PyGI repo.

Progress is sweet but hard work which is why I will be away this long Memorial Day weekend, sans any electronic devices, hiking the Glastonbury Wilderness. I’ll be back hacking on PyGI this Tuesday.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

May 21, 2010

Let’s get this staight – MPEG-LA’s and an x264 developer’s sabre rattling is pure FUD

Filed under: Open Formats, Standards, video — J5 @ 12:13 pm

Unless you have been living under an Internet rock you already know that Google just released VP8 as an open source and open standard protocol. Almost instantly over night the video codec ecosystem has been turned on its head as Mozilla, Opera, YouTube and Flash, among others have already pledged support and even got tech previews up and running.

It is also no surprise that the MPEG-LA and x264 developers are hitting back. What is of concern is people take these bias sources as fact. The issue is the arguments used to scare us away from moving to a format that they do not control or develop, either hold very little water or apply just as much to using MPEG-LA technologies as it does to VP8 technologies, with the caveat that you have to pay for the privilege.

For instance the assertion that you can never be 100% sure something is patent free (or more precise you have the rights to use a technology without fear of litigation) is on the surface true. Our patent system is fatally flawed in that it is over broad and largely opaque. One can never be sure that some patent might surface or a jury might interpret a patent in a way that is more favourable to the patent holder. The issue with the argument is it applies just as much to H.264 as it does to both Theora and VP8. It is a straw man argument. The logic follows very closely to extortion (legalized because of the flawed patent system) – if you pay us money and use our services we will ignore you but if you go somewhere else we might start harassing you, so you are safe if you stay with us, if you catch my drift. What we do know for a fact is organizations such as Google, Mozilla, Opera and Adobe, all of who have very capable team of lawyers, have come to the conclusion that it is safe to ship the utilize the VP8 codec.

As for the argument that hardware manufactures already support H.264, we wouldn’t get anywhere if we just accepted the status quo. If you look at the list of organizations supporting WebM you will see that they are not only heavy hitters, there is also a good number of them that are hardware vendors. I’m pretty sure we will see android devices coming out in the near future that support the format in the base system (and I’m sure we will see apps and plugins pop up almost instantly).

What about technical arguments that VP8 just isn’t good enough yet? Those arguments came from an x264 developer. (side note – x264 is an Open Source implementation of the H.264 format. While the code itself is under an Open Source license the usage of such code is not open as it is governed by the MPEG-LA patent portfolio). Good enough is a pretty subjective thing. Google seems to think it is good enough for YouTube and as we have seen with the improvements in Theora which started out as a pretty low quality encoder, a little time and effort is all that is needed. Unlike Theora however, which is reaching the upper level of constraints imposed on it by the format, VP8 is at the low end of its potential. With a modern video codec design and more interest due to the open sourcing of VP8, we can expect a stead stream of improvements to the encoder for years to come.

In the end this will all come down to supported codecs. Right now H.264 has the lead but with Google’s YouTube on board as well as all the major browsers which have rising market share, that might not be the case forever. MPEG-LA and H.264 developers will continue to sabre rattle in hopes that their FUD will scare off users instead of actually competing. Here is an idea, why not license H.264 in a more market friendly model? You know one, that doesn’t threaten and extort users and developers? I’m not holding my breath for that one.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

May 19, 2010

PyGI: where we are at and what have I been up to

Filed under: Gnome, Python, Standards — J5 @ 11:56 am

Well it has been awhile since we had the awesomely productive GNOME Python hackfest and now we have a roadmap and people working on getting out releases of the various components. At first I came in as a concerned citizen who just was just a consumer of the Python stack. I thought I would just organize a hackfest, attend a couple of days and everything would work itself out. I find naiveté helpful when getting started in a project because if I walked in knowing the amount of work involved I would start whistling, make a sharp U turn and hope nobody noticed me running for the hills.

As it stands I am lucky enough to have a Manager who realizes the importance of the GNOME Python stack (given that a lot of Red Hat’s tools including the installer are based off of them). Fedora 13 already has a parallel installable Python 3.1 stack and since we are targeting Fedora 14 to get as many major modules ported as possible, I have been give permission to work full time on the GNOME bits.

So what exactly have I been up to?

I’ve been working on porting PyGTK apps to PyGI with an eye towards fixing up the PyGI API through the overrides, finding and fixing bugs and adding binding friendly API’s directly to GTK+ (as well as fixing up some of the introspection annotations).

Where am I at?

I am happy to say that yesterday I managed to squash what seems to be the last of the memory crasher bugs that have been frustrating my API fixing efforts. They still need to either be vetted or are waiting on other patches to be incorporated into git so for now you can apply the patches in bugs 617780, 618049, 619007 and 583909. Actually the last two patches are redundant, the latter being the correct patch and the former being the patch we will go with if pygobject take some time to approve. PyGObject is a lot more risk averse since the PyGTK static bindings also relies on its API being stable.

I am also pretty sure that most of the GtkBuilder/GtkUIManager stack is now usable with minimal porting efforts from PyGTK. I should be pushing most of my override work into git fairly soon (I need to write test cases). One issue is they rely on patches to GTK such as the one in bug 61857 which won’t be in GTK until the 3.0 release. This leads to another issue of finding all the needed API changes. Since GTK is on a 9-12 month release cycle, not to mention API freeze dates, it might be hard to find all the API that needs adding in order to be binding friendly. Bellow I will talk about some strategies to deal with this.

What needs to be done and where can others help?

The biggest hurdle to making PyGI usable is gaps in API coverage. Because PyGI’s API is mostly auto-generated on the fly it doesn’t always get things right or throws in a lot of C’isms which are confusing in a Python world. Some APIs just plain can’t be wrapped correctly and will lead to refcounting errors and ultimately crashes. PyGTK on the other hand has been developed for many years and each API has evolved to fit within the Python world. Some are APIs better wrapped than others but I digress. What needs to be done is port small PyGTK examples that utilized different parts of the GTK+ API. For things that don’t work we need to file bugs and write overrides for those pieces of API. We are not aiming for a 1 to 1 port of PyGTK. For instance PyGI’s handling of constants, enums and flags is much nicer and more complete than PyGTK. What we are aiming for is to make it easy enough to port applications and to be able to fully utilize the GTK API.

As for patches to GTK goes I think we should have a two pronged approach. We should create a compat library that adds the needed API fixes but prefer API inside of GTK itself. The compat library will be for internal override use only and anything going into the compat library must first have a bug and patch filed against GTK. As we get a larger coverage inside of GTK, all new GTK APIs are vetted for scritability issues and distributions start removing support for older versions of GTK we can drop the compat library.

We also need people to read and vet patches as well as usher them through the approval process. Getting patches through quickly to meet schedules is very important. Helping to write tests for patches will also speed up the approval process.

Do I see any roadblocks in the way?

My number one biggest concern is the Tree and List model/view API. It is packed with C’isms so requires a lot of hand holding to wrap correctly. Also PyGTK has a rich, completely custom, tree API because of this. That means for the most part we have to hand write and maintain a lot of code in order to get the API into a usable state. I already took a crack at it but got frustrated when trying to wrap parts that used iters. It is all doable but in the end even PyGTK had to make some hard decisions (using TreeIters will almost certainly cause a leak). Does anyone want to write a new script friendly Tree API? I find this issue to be the dragon standing in the way of getting PyGI to a usable state. Let’s just hope it doesn’t turn into a windmill.

Where can someone ask questions and offer to help?

Right now the best place is #pygi on GIMPNet/irc.gnome.org. We are in the process of creating a mailing list and will inform everyone once it is up.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

Preparing for the GNOME Boston Summit – Foundation memebers input request

Filed under: Boston Summit, Gnome, community, conference — J5 @ 10:31 am

I’m going to be starting the process for setting up the Boston Summit. That basically means getting the space at MIT and then a budget from the board. Last year we saw an issue with the timing of other GNOME related conferences. This year we have a choice of two dates – the usual Columbus day weekend, October 9th-11th or piggyback the weekend after the Linux Plumbers Conference, November 6th-8th.

I’m leaning towards keeping Columbus day weekend because it is easier to get rooms, and it reduces confusion by having it at the same time every year.

The reasons for piggybacking the Plumbers Conference is that a number of our fellow GNOMies will already be in Boston and we might get a few stragglers from other parts of the Linux stack to stop by and offer their perspective.

I want to get the foundation members’ opinion on this. Ultimately it will be up to the board to make a final decision but I plan to have a concrete date by the middle of June if not sooner.

I hope you are all getting excited to reflect on the work done in the past year and plan the future of the GNOME platform. I hope to see as many of you as possible at GUADEC and the Boston Summit this year!

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

Powered by WordPress