<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jon Nordby &#187; Software</title>
	<atom:link href="http://www.jonnor.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jonnor.com</link>
	<description>My grassy patch in a world of walled gardens</description>
	<lastBuildDate>Thu, 12 Jan 2012 12:05:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Maliit and third party input method plugins (video)</title>
		<link>http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/</link>
		<comments>http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 12:05:43 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Maliit]]></category>
		<category><![CDATA[mobile text input]]></category>
		<category><![CDATA[Openismus]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=529</guid>
		<description><![CDATA[Maliit has an architecture where input methods are implemented as plug-ins. This enables a multitude of different input methods to exist and be used in the same way by applications. Maliit comes with a set of reference plug-ins, but there are also third party plug-ins. This video gives a quick introduction to some of them: [...]]]></description>
			<content:encoded><![CDATA[<p>Maliit has an architecture where input methods are implemented as plug-ins. This enables a multitude of different input methods to exist and be used in the same way by applications. Maliit comes with a set of reference plug-ins, but there are also third party plug-ins. This video gives a quick introduction to some of them:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/OwupsN5Aqyw" frameborder="0" allowfullscreen></iframe></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/" rel="bookmark" class="crp_title">Example plugins for Maliit available</a></li><li><a href="http://www.jonnor.com/2011/04/introducing-maliit-on-screen-keyboard-in-gnome-3/" rel="bookmark" class="crp_title">Introducing; Maliit on-screen keyboard in Gnome 3</a></li><li><a href="http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/" rel="bookmark" class="crp_title">GTK+ application support integrated into Maliit mainline</a></li><li><a href="http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/" rel="bookmark" class="crp_title">Gitorious Merge Request Monitor</a></li><li><a href="http://www.jonnor.com/2011/12/the-maliit-buildbot/" rel="bookmark" class="crp_title">The Maliit buildbot</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gitorious Merge Request Monitor</title>
		<link>http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/</link>
		<comments>http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 14:36:58 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[devtools]]></category>
		<category><![CDATA[Gitorious]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[Maliit]]></category>
		<category><![CDATA[Openismus]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[Twisted]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=520</guid>
		<description><![CDATA[In Maliit, all changes have to be reviewed by two people in order to be merged to mainline. This helps us catch issues early and keep code quality high. Since the code is hosted on Gitorious, we use their merge requests feature for that purpose. Up until now we have periodically checked the website for [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.maliit.org">Maliit</a>, all changes have to be reviewed by two people in order to be merged to mainline. This helps us catch issues early and keep code quality high. Since the code is <a href="https://gitorious.org/maliit">hosted on Gitorious</a>, we use their merge requests feature for that purpose. Up until now we have periodically checked the website for changes (potentially going through each and every one of the repositories), and manually mentioned updates in the IRC channel. This is both tedious and inefficient, so I wrote a simple tool to help the issue: <a href="https://github.com/jonnor/gitorious-mrq-monitor">Gitorious Merge Request Monitor</a></p>
<p>It provides an IRC Bot which gives status updates on merge requests in an IRC channel:</p>
<p><code>16:01 &lt; mrqbot-AfFa1&gt; desertconsulting requested merge of ~desertconsulting/maliit/desertconsultings-maliit-framework with maliit-framework in http://gitorious.org/maliit/maliit-framework/merge_requests/126<br />
16:01 &lt; mrqbot-AfFa1&gt; mikhas updated http://gitorious.org/maliit/maliit-framework/merge_requests/125  State changed from Go ahead and merge to Merged</code></p>
<p>One can also query the current status from it:</p>
<p><code>15:02 &lt; jonnor&gt; mrqbot-7ACeB: list<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-framework/127: - New - Allow QML plugins to add custom import paths for QML files and QML modules<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-framework/126: - Need info - configurable importPath for qml<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-plugins/26: - New - Add PluginClose from main view and add key repetition support<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-plugins/25: - New - Clear active keys and magnifier on keyboard change<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-plugins/24: - New - Remove QtGui dependency from libmaliit-keyboard<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-plugins/23: - New - Get rid of Qt keywords<br />
15:02 &lt; mrqbot-7ACeB&gt; maliit-plugins/22: - New - Add phone number and number layout getters.</code></p>
<p>Status changes are retrieved by periodically checking the Gitorious  project activity feed (Atom)*, and the status itself is scraped from the website. There is no other API right now, unfortunately. Implemented in Python with Twisted, feedparser and BeautifulSoup doing all of the heavy lifting.</p>
<p>Get it from PyPi, using easy_install or pip:<br />
<code>pip install gitorious-mrq-monitor<br />
gitorious-mrq-monitor --help # For usage information</code></p>
<p>For now this solves the immediate need for the development work-flow we have in the Maliit project. Several ideas for extending the tool are mentioned in the <a href="https://github.com/jonnor/gitorious-mrq-monitor/blob/master/README">TODO</a>. Contributions welcomed!</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/" rel="bookmark" class="crp_title">GTK+ application support integrated into Maliit mainline</a></li><li><a href="http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/" rel="bookmark" class="crp_title">Example plugins for Maliit available</a></li><li><a href="http://www.jonnor.com/2011/12/the-maliit-buildbot/" rel="bookmark" class="crp_title">The Maliit buildbot</a></li><li><a href="http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/" rel="bookmark" class="crp_title">Maliit and third party input method plugins (video)</a></li><li><a href="http://www.jonnor.com/2011/04/introducing-maliit-on-screen-keyboard-in-gnome-3/" rel="bookmark" class="crp_title">Introducing; Maliit on-screen keyboard in Gnome 3</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Maliit buildbot</title>
		<link>http://www.jonnor.com/2011/12/the-maliit-buildbot/</link>
		<comments>http://www.jonnor.com/2011/12/the-maliit-buildbot/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 21:54:11 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Buildbot]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Maliit]]></category>
		<category><![CDATA[Openismus]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=518</guid>
		<description><![CDATA[After having set up the typical things open source projects needs like a website/wiki, mailing-list and bug-tracker, Maliit now also has something not so common: a build-bot. As Maliit consists of several components that can be built in several different ways (and for several different platforms), we wanted to automate the build and tests of [...]]]></description>
			<content:encoded><![CDATA[<p>After having set up the typical things open source projects needs like a website/wiki, mailing-list and bug-tracker, <a href="http://www.maliit.org">Maliit</a> now also has something not so common: <a href="http://maliit.jonnor.com/buildbot">a build-bot</a>.</p>
<p>As Maliit consists of several components that can be built in several different ways (and for several different platforms), we wanted to automate the build and tests of the different variations to ensure that we do not break any of them. This is especially important for variations which are not easy to test for the individual developers, like for instance <a href="http://blog.jpetersen.org/2011/12/07/maliit-and-qt5/">Maliit on Qt 5</a>.</p>
<p>The software chosen to help with this task was <a href="http://trac.buildbot.net/">Buildbot</a>. Getting an initial instance it up and running was very quick and pain-free, especially thanks to packages being easily available and the <a href="http://buildbot.net/buildbot/docs/current/full.html">excellent documentation</a>. The current setup now builds, tests and installs the two major components we have: Maliit Framework and Maliit (Reference) Plugins, in the most important build/config variations we have. A total of 12 individual build jobs, plus 2 meta-builds. The configuration for the instance can be found in the <a href="https://gitorious.org/maliit/maliit-buildbot-configuration">maliit-buildbot-configuration</a> repository.</p>
<p>For security reasons the build-bot is not directly exposed to the Internet. Instead a script runs every 5 minutes to generate a static HTML website and publish on the public web-server: <a href="http://maliit.jonnor.com/buildbot">Maliit build-bot</a></p>
<div id="attachment_521" class="wp-caption alignnone" style="width: 310px"><a href="http://www.jonnor.com/wp/files/all-green.png"><img class="size-medium wp-image-521" title="All green!" src="http://www.jonnor.com/wp/files/all-green-300x187.png" alt="" width="300" height="187" /></a><p class="wp-caption-text">Buildbot says: All green!</p></div>
<p>This gives us a minimal continuous integration system for Maliit, which for now will hopefully helps us avoid breakage. In the future, the usage of the build-bot might extend to include:</p>
<ul>
<li>Automating <a href="https://wiki.maliit.org/Development/Making_Releases">the release process</a></li>
<li>Testing of merge-requests/patches before merging to master</li>
<li>Automated integration/system testing, complementing the unit-tests</li>
<li>Triggering external builders for packaging. OpenSUSE OBS, Maemo 5 Garage, etc.</li>
<li>Automating certain aspects of bug-lifetime. Resolving when fix is committed, closing on release if pre-verified, etc</li>
</ul>
<p>&nbsp;</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/" rel="bookmark" class="crp_title">Example plugins for Maliit available</a></li><li><a href="http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/" rel="bookmark" class="crp_title">Gitorious Merge Request Monitor</a></li><li><a href="http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/" rel="bookmark" class="crp_title">GTK+ application support integrated into Maliit mainline</a></li><li><a href="http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/" rel="bookmark" class="crp_title">Maliit and third party input method plugins (video)</a></li><li><a href="http://www.jonnor.com/2011/04/introducing-maliit-on-screen-keyboard-in-gnome-3/" rel="bookmark" class="crp_title">Introducing; Maliit on-screen keyboard in Gnome 3</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/12/the-maliit-buildbot/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>GTK+ application support integrated into Maliit mainline</title>
		<link>http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/</link>
		<comments>http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 14:28:33 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[GTK]]></category>
		<category><![CDATA[Maliit]]></category>
		<category><![CDATA[Meego Input Methods]]></category>
		<category><![CDATA[Openismus]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=502</guid>
		<description><![CDATA[GTK+ application support for Maliit input methods has existed for a long time, but up until now it has lived in separate repositories. This has been inconvenient for users and for developers, and was the major cause for it to not be on the same level as the Qt support. This has changed as the [...]]]></description>
			<content:encoded><![CDATA[<p>GTK+ application support for <a href="http://www.maliit.org">Maliit</a> input methods has existed for a long time, but up until now it has lived in separate repositories. This has been inconvenient for users and for developers, and was the major cause for it to not be on the same level as the Qt support. This has changed as the GTK+ support has now been merged into the maliit-framework repository, and along side the Qt support. Maliit 0.80.8, which was <a href="http://lists.meego.com/pipermail/meego-inputmethods/2011-November/000251.html">released yesterday</a>, contains these changes.</p>
<div id="attachment_509" class="wp-caption alignright" style="width: 160px"><a href="http://www.jonnor.com/wp/files/maliit-wetab-fedora15_gtk-mainline.jpg"><img class="size-thumbnail wp-image-509  " title="maliit-wetab-fedora15_gtk-mainline" src="http://www.jonnor.com/wp/files/maliit-wetab-fedora15_gtk-mainline-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Maliit running on WeTab with Fedora 15, showing QML reference plugin and GTK+ application </p></div>
<p>Two implementations existed for Maliit GTK+ support. <a href="https://gitorious.org/meego-gtk-im">One</a> was written by <a href="http://javispedro.com/">Javis Pedro</a> as part of a Google Summer of Code project for MeeGo in 2010. His blog has <a href="http://javispedro.com/cgi-bin/mt/mt-search.fcgi?search=meegotouch&amp;IncludeBlogs=1&amp;limit=20">several posts</a> on the topic.<a href="https://www.gitorious.org/meegotouch-inputmethodbridges"> The other</a> implementation was maintained by Raymond Liu (Intel). This is the implementation shipped in Meego Netbook, and the one improved by <a href="http://people.gnome.org/~csaavedra/">Claudio Saavedra</a> (Igalia) as part of the GTK+ on MeeGo project. It was also the only one that was updated to work with the DBus connection changes that was done quite some time ago, and supporting both GTK 2 and 3. For these reasons this was the implementation integrated into mainline Maliit.</p>
<p>Once the code <a href="https://gitorious.org/maliit/maliit-framework/merge_requests/77">was integrated</a>, improvements soon followed. The application now correctly<a href="https://gitorious.org/maliit/maliit-framework/commit/04b7b8ac3160b8a042e63b2ea2c72464ef74a37b"> reconnects to server</a>, and make install will automatically update the GTK+ input module cache <a href="https://gitorious.org/maliit/maliit-framework/commit/783602d3243d3df47633a8658b27d55175e717aa">on Ubuntu</a>, thanks to <a href="http://sil2100.vexillium.org">Łukasz Zemczak</a> (Canonical), and <a href="https://gitorious.org/maliit/maliit-framework/commit/24393bc8e0bd61ccc36629e94084c0066e6c181d">on Fedora</a>. This means GTK+ application support will work out of the box, no twiddling needed.</p>
<p>While this is a huge step in the right direction, the GTK+ support is not as good as for Qt yet. Javis Pedros implementation has features that does not exist in mainline, so code/principles can hopefully be reused from there to implement these. This includes custom toolbars and attribute extensions, and content type hints for text entries. Other features looks hard to implement due to limitations/differences in the input context plugin architecture found in GTK+, and will probably need work in GTK+ itself to solve.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/" rel="bookmark" class="crp_title">Example plugins for Maliit available</a></li><li><a href="http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/" rel="bookmark" class="crp_title">Gitorious Merge Request Monitor</a></li><li><a href="http://www.jonnor.com/2011/12/the-maliit-buildbot/" rel="bookmark" class="crp_title">The Maliit buildbot</a></li><li><a href="http://www.jonnor.com/2011/04/introducing-maliit-on-screen-keyboard-in-gnome-3/" rel="bookmark" class="crp_title">Introducing; Maliit on-screen keyboard in Gnome 3</a></li><li><a href="http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/" rel="bookmark" class="crp_title">Maliit and third party input method plugins (video)</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Combining PySide and PyGObject introspection bindings</title>
		<link>http://www.jonnor.com/2011/08/combining-pyside-and-pygobject-introspection-bindings/</link>
		<comments>http://www.jonnor.com/2011/08/combining-pyside-and-pygobject-introspection-bindings/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 18:03:45 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[bindings]]></category>
		<category><![CDATA[gegl]]></category>
		<category><![CDATA[gegl-qt]]></category>
		<category><![CDATA[gobject introspection]]></category>
		<category><![CDATA[pygobject]]></category>
		<category><![CDATA[pyside]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[shiboken]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=453</guid>
		<description><![CDATA[Some while back I added basic GObject Introspection support to GEGL and GEGL-GTK master a while back. This will* allow application developers to write their Gegl + Gtk based applications in any language supported by GObject Introspection, like Python, Vala and Javascript. For GeglQt, the Qt integration library for using Gegl in Qt based applications, [...]]]></description>
			<content:encoded><![CDATA[<p>Some while back I added basic GObject Introspection support to <a href="http://www.gegl.org">GEGL</a> and GEGL-GTK master a while back. This will* allow application developers to write their Gegl + Gtk based applications in any language supported by <a href="https://live.gnome.org/GObjectIntrospection">GObject Introspection</a>, like Python, Vala and Javascript. For GeglQt, the <a href="http://qt.nokia.com/">Qt</a> integration library for using Gegl in Qt based applications, it was natural to use <a href="http://www.pyside.org/">PySide</a> to provide Python bindings for it. The initial setup was quick and easy, thanks to the <a href="http://developer.qt.nokia.com/wiki/PySide_Binding_Generation_Tutorial">binding tutorial</a>, but there was one challenge.</p>
<p>The current widgets provided by GeglQt are for displaying the output of a node in the GEGL graph. Therefore they have methods with the following signature to hook up it up:</p>
<pre><code><a href="http://git.gnome.org/browse/gegl-qt/tree/gegl-qt/nodeviewwidget.h">From gegl-qt/nodeviewwidget.h</a>
GeglNode *inputNode() const;
void setInputNode(GeglNode *node);</code></pre>
<p><em>GeglNode</em> is a <em>GObject</em> (from the C based <a href="http://developer.gnome.org/glib/">glib</a>) subclass, and without help the bindings generator (Shiboken) does not know what to do with it so the method cannot be bound. PySide could have been used to also generate bindings for Gegl itself, but what we actually want to do is to make use of the existing PyGObject based bindings.</p>
<p><a href="http://setanta.wordpress.com/">Marcelo Lira</a> on #pyside let me know that this should be possible by adding some annotations to the typesystem.xml file, and implementing a Shiboken::Converter&lt;T&gt;. It is indeed possible, and for the above type looks something like this:</p>
<pre><a href="http://git.gnome.org/browse/gegl-qt/tree/pygegl-qt/typesystem_gegl-qt.xml">From typesystem_gegl-qt.xml</a><code>
&lt;primitive-type name="GeglNodePtr"&gt;
      &lt;conversion-rule file="geglnode_conversions.h"/&gt;
      &lt;include file-name="pygobject.h" location="global"/&gt;
&lt;/primitive-type&gt;
</code></pre>
<pre><code>
<a href="http://git.gnome.org/browse/gegl-qt/tree/pygegl-qt/geglnode_conversions.h">From geglnode_conversions.h</a>
namespace Shiboken {
template&lt;&gt;
struct Converter&lt;GeglNodePtr&gt;
{
    static inline bool checkType(PyObject* pyObj)
    {
        return GEGL_IS_NODE(((PyGObject *)pyObj)-&gt;obj);
    }

    static inline bool isConvertible(PyObject* pyObj)
    {
        return GEGL_IS_NODE(((PyGObject *)pyObj)-&gt;obj);
    }

    static inline PyObject* toPython(void* cppObj)
    {
        return pygobject_new(G_OBJECT((cppObj)));
    }

    static inline PyObject* toPython(const GeglNodePtr geglNode)
    {
        return pygobject_new(G_OBJECT(geglNode));
    }

    static inline GeglNodePtr toCpp(PyObject* pyObj)
    {
        return GEGL_NODE(((PyGObject *)pyObj)-&gt;obj);
    }
};
}</code></pre>
<p>The PyGObject C API and the GObject type system is here being used to implement what Shiboken needs. The attentive reader will note that <em>GeglNodePtr</em> is used and not <em>GeglNode*</em>. This is a simple &#8220;<em>typedef GeglNode * GeglNodePtr</em>&#8220;, which looks to be neccesary with current PySide (1.0.6) to avoid it being confused by the pointer. Hopefully that is fixable and won&#8217;t be necessary in the future.</p>
<p>With this solved, I committed the <a href="http://git.gnome.org/browse/gegl-qt/commit/?id=1a444f65ff80bb15bd43ea1a0206345b83c665e6">initial Python support</a> to GeglQt master yesterday. It contains a <a href="http://git.gnome.org/browse/gegl-qt/tree/examples/pyside-basic.py">trivial Python example</a> showing the usage. Some build cleanups, binding generator tweaks and testing remains to be done, but expect Python support to be a prominent feature for GeglQt 0.1.0</p>
<p>&nbsp;</p>
<p>* There are still a lot of GObject Introspection annotations missing in Gegl. See the <a href="https://bugzilla.gnome.org/show_bug.cgi?id=645822">tracking bug</a>. Help wanted!</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/08/making-gegl-easier-to-use-in-graphical-applications/" rel="bookmark" class="crp_title">Making GEGL easier to use in graphical applications</a></li><li><a href="http://www.jonnor.com/2011/05/geglfilter-gstreamer-element-for-manipulating-video-using-gegl/" rel="bookmark" class="crp_title">geglfilter: GStreamer element for manipulating video using Gegl</a></li><li><a href="http://www.jonnor.com/2011/03/cairooverlay-generic-cairo-overlay-element-for-gstreamer/" rel="bookmark" class="crp_title">cairooverlay: Generic Cairo overlay element for GStreamer</a></li><li><a href="http://www.jonnor.com/2011/12/the-maliit-buildbot/" rel="bookmark" class="crp_title">The Maliit buildbot</a></li><li><a href="http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/" rel="bookmark" class="crp_title">Example plugins for Maliit available</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/08/combining-pyside-and-pygobject-introspection-bindings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making GEGL easier to use in graphical applications</title>
		<link>http://www.jonnor.com/2011/08/making-gegl-easier-to-use-in-graphical-applications/</link>
		<comments>http://www.jonnor.com/2011/08/making-gegl-easier-to-use-in-graphical-applications/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 18:02:53 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Clutter]]></category>
		<category><![CDATA[gegl]]></category>
		<category><![CDATA[gegl-clutter]]></category>
		<category><![CDATA[gegl-gtk]]></category>
		<category><![CDATA[gegl-qt]]></category>
		<category><![CDATA[GTK]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=442</guid>
		<description><![CDATA[So, in the last couple of months I&#8217;ve been working a bit on GEGL. Some of the work has already been covered by LWN, so I guess it is time that I blog about it&#8230; GEGL is a generic image processing library which is used by applications like GIMP, (and in the future maybe MyPaint and DarkTable). [...]]]></description>
			<content:encoded><![CDATA[<p>So, in the last couple of months I&#8217;ve been working a bit on <a href="http://www.gegl.org">GEGL</a>. Some of the work has already been <a href="http://lwn.net/Articles/451417/">covered by LWN</a>, so I guess it is time that I blog about it&#8230;</p>
<p>GEGL is a generic image processing library which is used by applications like <a href="http://www.gimp.org">GIMP</a>, (and in the future maybe <a href="http://www.mypaint.org">MyPaint</a> and <a href="http://darktable.sourceforge.net/">DarkTable</a>). It provides applications with a graph based image processing backend that can do non-destructive processing of high-bitdepth images, among other things.</p>
<p>One of the problems that I think has been limiting adaptation of GEGL has been the entry barrier to starting to use it in a graphical application. While GEGL provides the image processing backend, it did not provide good and easy ways of displaying the output on screen. Now it does!</p>
<h3>GTK+, Clutter and Qt integration libraries</h3>
<p>Some code for integrating GEGL in GTK+ based applications has existed in the GEGL tree for a long time, but it was not well maintained and there was no public API. After brushing up the code to use Cairo for rendering and to support both GTK+ 2 and 3, it was split out to a separate library and repository: <a href="http://git.gnome.org/browse/gegl-gtk">gegl-gtk</a>. This library now provides a GtkWidget for displaying the output of a node in the GEGL graph, with basic support for scaling and translations. Any change in the GEGL graph will be reflected in the view widget. This makes it trivial for applications using a GTK+ based user interface to get started using GEGL, see for instance the provided examples <a href="http://git.gnome.org/browse/gegl-gtk/tree/examples/gegl-gtk-basic.c">in C</a> or <a href="http://git.gnome.org/browse/gegl-gtk/tree/examples/gegl-gtk-python.py">in Python</a>.</p>
<p>The same functionality is provided for Clutter based user interfaces by <a href="http://git.gnome.org/browse/gegl-clutter">gegl-clutter</a> in form of a ClutterActor. This code was previously available as <a href="http://git.clutter-project.org/cgit.cgi?url=clutter-gegl">clutter-gegl</a>, but has now been renamed and moved to be a part of the GEGL project, and is maintained by <a href="http://pippin.gimp.org">Øyvind Kolsås</a>. <a href="http://git.gnome.org/browse/gegl-clutter/tree/examples/parsexml.c">Example code</a> in C.</p>
<p>Last but not least, <a href="http://git.gnome.org/browse/gegl-qt/">gegl-qt</a> was created to serve the needs of applications using Qt based user interfaces. The different widget systems (QWidget-, QGraphicsWidget- and QML-based) are all supported. In addition to the features currently available in the GTK+ and Clutter versions, the Qt view widgets also support auto-scaling and auto-centering. Python bindings via PySide is planned, but blocking on a <a href="http://lists.pyside.org/pipermail/pyside/2011-August/002785.html">PySide issue</a> at the moment.</p>
<p>A pretty boring screenshot showing two QWidget based examples (code: <a href="http://git.gnome.org/browse/gegl-qt/tree/examples/qwidget-transformations">1</a>, <a href="http://git.gnome.org/browse/gegl-qt/tree/examples/qwidget-autotransform">2</a>) for transformations:</p>
<p><a href="http://www.jonnor.com/wp/files/2011-08-21-192538_1280x800_scrot_cropped.png"><img class="alignnone size-medium wp-image-454" title="2011-08-21-192538_1280x800_scrot_cropped" src="http://www.jonnor.com/wp/files/2011-08-21-192538_1280x800_scrot_cropped-300x198.png" alt="" width="300" height="198" /></a></p>
<p>Artwork: &#8220;<a href="http://mypaint.deviantart.com/#/d3urag0">Wanted</a>&#8220;, speedpainting by <a href="http://www.davidrevoy.com/">David Revoy</a></p>
<p>The first stable release of gegl-qt and gegl-gtk will hopefully be available soon. The list of tasks can be found <a href="http://git.gnome.org/browse/gegl-qt/tree/README.txt#n62">in the README</a> <a href="http://git.gnome.org/browse/gegl-gtk/tree/README">files</a>.</p>
<h3>Display operations</h3>
<p>In GEGL, image processing is described as a graph of operations. &#8220;gegl:display&#8221; and &#8220;gegl:gtk-display&#8221; operations existed in the gegl tree, and by attaching one of these to a node in the graph one could display the output of the graph at the given node in a window . Such display operations are useful for applications that just want to show the output of a graph without having to use a GUI library directly.</p>
<p>The problem was that both of these operations were optional, so applications could not rely on this functionality to be present. This is solved by letting the &#8220;gegl:display&#8221; operation be a meta-operation, which uses other operations as a handler to actually display the output. Such display handler operations are now provided by gegl (optional, using SDL), gegl-gtk (using GTK+) and gegl-qt (using Qt). In addition a fallback operation that will export a PNG file and launch an external application to display it will be provided in GEGL.</p>
<p>More to GEGL stuff to come soon, hopefully.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/08/combining-pyside-and-pygobject-introspection-bindings/" rel="bookmark" class="crp_title">Combining PySide and PyGObject introspection bindings</a></li><li><a href="http://www.jonnor.com/2011/05/geglfilter-gstreamer-element-for-manipulating-video-using-gegl/" rel="bookmark" class="crp_title">geglfilter: GStreamer element for manipulating video using Gegl</a></li><li><a href="http://www.jonnor.com/2010/08/introducing-massifg-0-1/" rel="bookmark" class="crp_title">Introducing MassifG 0.1</a></li><li><a href="http://www.jonnor.com/2010/09/massifg-0-2/" rel="bookmark" class="crp_title">MassifG 0.2</a></li><li><a href="http://www.jonnor.com/2010/11/image-preview-support-for-openraster-in-qt-working/" rel="bookmark" class="crp_title">Image preview support for OpenRaster in Qt working</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/08/making-gegl-easier-to-use-in-graphical-applications/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Registration open for Workshops &amp; BoFs at the DesktopSummit 2011</title>
		<link>http://www.jonnor.com/2011/06/registration-open-for-workshops-bofs-at-the-desktopsummit-2011/</link>
		<comments>http://www.jonnor.com/2011/06/registration-open-for-workshops-bofs-at-the-desktopsummit-2011/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 00:02:32 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Desktop Summit]]></category>
		<category><![CDATA[Desktop Summit 2011]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=432</guid>
		<description><![CDATA[As a member of the local organizing team for the Desktop Summit 2011 in Berlin, I&#8217;m glad to say that you can now register your workshop or BoF session. These sessions take place during the last 3 days of the conference, and complement the presentations that take place during the 3 first days: The Workshops [...]]]></description>
			<content:encoded><![CDATA[<p>As a member of the local organizing team for the <a href="http://www.desktopsummit.org">Desktop Summit 2011 in Berlin</a>, I&#8217;m glad to say that you can now register your workshop or BoF session. These sessions take place during the last 3 days of the conference, and complement the presentations that take place during the 3 first days: The Workshops &amp; BoFs sessions are hands-on sessions where people get together to <em>discuss and work</em> on issues face to face.</p>
<p>Short excerpt from the <a href="https://desktopsummit.org/news/registration-workshops-bofs-now-open">news entry</a> on the webpage:</p>
<blockquote><p>All forms of <em>hands-on</em> activities that aim to further the Free Desktop are welcomed. Examples of such sessions include <a href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_%28computing%29">BoF</a>,  project and cross-project meetings, workshops, hacking sessions and  training/teaching sessions. Each session is self-organized and it is up  to the hosts and participants to decide if the session is to be loosely  oriented around a set of topics, or have a well-defined agenda.</p>
<p>The organisation committee would like to schedule as many of these  sessions beforehand as possible. We expect over 1000 visitors and  scheduling helps to ensure minimal overlap with other sessions and  allows us to provide a clear timetable for the visitors.<br />
The remainder of the rooms will be scheduled via the wiki but we urge  you to pre-register and get a proposal in before the deadline, July 3rd!</p></blockquote>
<p>I will be proposing a session or two of my own very soon, I suggest you do the same! <a href="https://desktopsummit.org/program/workshops-bofs">Use this link</a></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/07/workshop-bof-schedule-at-desktop-summit-2011-published/" rel="bookmark" class="crp_title">Workshop &#038; BoF schedule at Desktop Summit 2011 published</a></li><li><a href="http://www.jonnor.com/2010/10/qt-developer-days-2010-and-more/" rel="bookmark" class="crp_title">Qt Developer Days 2010 and more</a></li><li><a href="http://www.jonnor.com/2011/06/mypaint-and-openraster-talks/" rel="bookmark" class="crp_title">MyPaint and OpenRaster talks</a></li><li><a href="http://www.jonnor.com/2011/02/fosdem-2011/" rel="bookmark" class="crp_title">FOSDEM 2011</a></li><li><a href="http://www.jonnor.com/2010/06/lgm2010-writeup/" rel="bookmark" class="crp_title">LGM2010 writeup</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/06/registration-open-for-workshops-bofs-at-the-desktopsummit-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyPaint and OpenRaster talks</title>
		<link>http://www.jonnor.com/2011/06/mypaint-and-openraster-talks/</link>
		<comments>http://www.jonnor.com/2011/06/mypaint-and-openraster-talks/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 13:30:50 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[LGM]]></category>
		<category><![CDATA[LGM2011]]></category>
		<category><![CDATA[Libre Graphics Meeting]]></category>
		<category><![CDATA[MyPaint]]></category>
		<category><![CDATA[OpenRaster]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=424</guid>
		<description><![CDATA[One of my goals for this year was to give a presentation at a conference. And I can now say that I have achieved that goal. I gave a talk about MyPaint at Libre Graphics Meeting 2011 in Montreal, Canada: MyPaint &#8211; the past, the present and the future. Download in Ogg/Theora I will also [...]]]></description>
			<content:encoded><![CDATA[<p>One of my goals for this year was to give a presentation at a conference. And I can now say that I have achieved that goal.</p>
<p>I gave a talk about <a href="http://www.mypaint.org">MyPaint</a> at <a href="http://www.libregraphicsmeeting.org/2011">Libre Graphics Meeting 2011</a> in Montreal, Canada: <a href="http://river-valley.tv/mypaint-%E2%80%93-the-past-the-present-and-the-future/">MyPaint &#8211; the past, the present and the future</a>.</p>

<span id="video0" class="HDFLV">
<a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</span>
<script type="text/javascript">
var s0 = new SWFObject("http://www.jonnor.com/wp/wp-content/plugins/contus-hd-flv-player/hdflvplayer/hdplayer.swf","n0","500","400","7");
s0.addParam("allowfullscreen","true");
s0.addParam("allowscriptaccess","always");
s0.addParam("wmode","opaque");
s0.addVariable("baserefW","http://www.jonnor.com/wp");s0.addVariable("vid","1");
s0.write("video0");
</script>
<div id="htmlplayer1"> <video id="video" src="" poster="" width="500" height="400" autobuffer controls onerror="failed(event)">
     Html5 Not support This video Format.</video> </div><script>var txt =  navigator.platform ;if(txt =="iPod"|| txt =="iPad"|| txt =="iPhone" || txt =="Linux armv7I")
            {   document.getElementById("htmlplayer1").style.display = "block";
                document.getElementById("video1").style.display = "none";
            }else{
 document.getElementById("htmlplayer1").style.display = "none";
            }
			 function failed(e) {
			  if(txt =="iPod"|| txt =="iPad"|| txt =="iPhone" || txt =="Linux armv7I")
            {
   alert("Player doesnot support this video.");
   }
}
        </script>
<p><a href="http://media.river-valley.tv/conferences/lgm-2011/0401-Jon-Nordby-ogg.php">Download in Ogg/Theora</a></p>
<p>I will also be giving a lighting talk at the DesktopSummit in Berlin about <a href="http://create.freedesktop.org/wiki/OpenRaster">OpenRaster</a>. It looks like this will be <a href="https://desktopsummit.org/program/sessions/lightning-talks">on August 7th at 14.00</a>, but you should of course come for the whole week. Just look at <a href="https://desktopsummit.org/program">the awesome program</a>!</p>
<p>&nbsp;</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/03/going-to-libre-graphics-meeting-2011-in-montreal/" rel="bookmark" class="crp_title">Going to Libre Graphics Meeting 2011 in Montreal!</a></li><li><a href="http://www.jonnor.com/2010/06/lgm2010-writeup/" rel="bookmark" class="crp_title">LGM2010 writeup</a></li><li><a href="http://www.jonnor.com/2010/10/qt-developer-days-2010-and-more/" rel="bookmark" class="crp_title">Qt Developer Days 2010 and more</a></li><li><a href="http://www.jonnor.com/2011/02/fosdem-2011/" rel="bookmark" class="crp_title">FOSDEM 2011</a></li><li><a href="http://www.jonnor.com/2011/07/workshop-bof-schedule-at-desktop-summit-2011-published/" rel="bookmark" class="crp_title">Workshop &#038; BoF schedule at Desktop Summit 2011 published</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/06/mypaint-and-openraster-talks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Example plugins for Maliit available</title>
		<link>http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/</link>
		<comments>http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 18:32:02 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Maliit]]></category>
		<category><![CDATA[Meego]]></category>
		<category><![CDATA[Meego Input Methods]]></category>
		<category><![CDATA[Openismus]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=413</guid>
		<description><![CDATA[In Maliit input methods are implemented as plugins. This flexibility is important because it allows the same framework to provide very different text input methods, without us having to implement them all. Different virtual keyboards, hardware keyboard input, handwriting, speech-to-text, input methods for accessibility, et.c. are all possible with the Maliit framework. This makes the [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://wiki.meego.com/Maliit">Maliit</a> input methods are implemented as plugins. This flexibility is important because it allows the same framework to provide very different text input methods, without us having to implement them all. Different virtual keyboards, hardware keyboard input, handwriting, speech-to-text, input methods for accessibility, et.c. are all possible with the Maliit framework. This makes the input method plugin API the most important extension point.</p>
<p>To make it simple to start developing an input method for Maliit, we have written a set of example plugins that can be used as a skeleton* for a new input method. There is one &#8220;Hello World&#8221; example showing the C++ interface, and one showing the <a href="http://taschenorakel.de/michael/2011/05/12/writing-qml-based-input-methods-maliit/">newly added QML interface</a>. The latest documentation for the framework in HTML format is also included, along with a simple test application. How to get started is documented on our wiki page: <a href="http://wiki.meego.com/Maliit/Documentation#Plugin_development_Quickstart">Go!</a></p>
<div id="attachment_420" class="wp-caption alignnone" style="width: 310px"><a href="http://www.jonnor.com/wp/files/maliit-plugin-example-opensuse1.png"><img class="size-medium wp-image-420" title="Maliit C++ example plugin" src="http://www.jonnor.com/wp/files/maliit-plugin-example-opensuse1-300x175.png" alt="" width="300" height="175" /></a><p class="wp-caption-text">A very conventional example: An input method that allows you to input &quot;Hello World&quot;</p></div>
<p>A nice thing is that these examples are in our framework repository: built as part of the standard build, with simple tests run as part of our test-suite. This ensures that the examples stay up-to-date and working, something I find that step-by-step, code-and-talk tutorials in some documentation repository/directory typically do not.</p>
<p>If you want to look at real-life examples of plugins, check out the <a href="https://meego.gitorious.org/meegotouch/meegotouch-inputmethodkeyboard/trees/master/m-keyboard">Meego Keyboard code</a> (C++), the <a href="https://meego.gitorious.org/meegotouch/meegotouch-inputmethodkeyboard/trees/master/meego-keyboard-quick">Meego Keyboard Quick code</a> (QML), or <a href="http://talk.maemo.org/member.php?u=31949">foolegg</a> from maemo.org&#8217;s <a href="https://github.com/foolegg/cute-input-method/tree/maliit">cute-input-method code</a> (QML with Pinjyin support!). Also make sure to check out <a href="http://taschenorakel.de/michael/">Michael Hasselmann</a>s talk at the Meego Spring 2011 Conference: <a href="http://sf2011.meego.com/program/sessions/developing-custom-input-methods-meego">Developing custom input methods for Meego</a>.</p>
<p>If you hit any issues, contact us through one of <a href="http://wiki.meego.com/Maliit#Communication_channels">our communication channels</a>.</p>
<p>* Note that currently the license of the examples is LGPLv2 like the rest of the framework.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/11/gtk-application-support-integrated-into-maliit-mainline/" rel="bookmark" class="crp_title">GTK+ application support integrated into Maliit mainline</a></li><li><a href="http://www.jonnor.com/2012/01/maliit-and-third-party-input-method-plugins-video/" rel="bookmark" class="crp_title">Maliit and third party input method plugins (video)</a></li><li><a href="http://www.jonnor.com/2011/04/introducing-maliit-on-screen-keyboard-in-gnome-3/" rel="bookmark" class="crp_title">Introducing; Maliit on-screen keyboard in Gnome 3</a></li><li><a href="http://www.jonnor.com/2011/12/gitorious-merge-request-monitor/" rel="bookmark" class="crp_title">Gitorious Merge Request Monitor</a></li><li><a href="http://www.jonnor.com/2011/12/the-maliit-buildbot/" rel="bookmark" class="crp_title">The Maliit buildbot</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>geglfilter: GStreamer element for manipulating video using Gegl</title>
		<link>http://www.jonnor.com/2011/05/geglfilter-gstreamer-element-for-manipulating-video-using-gegl/</link>
		<comments>http://www.jonnor.com/2011/05/geglfilter-gstreamer-element-for-manipulating-video-using-gegl/#comments</comments>
		<pubDate>Sat, 21 May 2011 18:25:13 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[gegl]]></category>
		<category><![CDATA[GStreamer]]></category>

		<guid isPermaLink="false">http://www.jonnor.com/?p=381</guid>
		<description><![CDATA[Gegl is an image processing framework used in projects like Gimp and DarkTable. It will eventually allow Gimp to allow non-destructive, high bit-depth image processing, among other things. And GStreamer is the multimedia framework for GNU/Linux, handling video/audio/other playback/recording/manipulation on your favorite desktop/server/mobile/embedded system. After writing the Cairo overlay GStreamer element, I implement a basic GStreamer element [...]]]></description>
			<content:encoded><![CDATA[<p><a href="www.gegl.org">Gegl</a> is an image processing framework used in projects like Gimp and DarkTable. It will eventually allow Gimp to allow non-destructive, high bit-depth image processing, among other things. And <a href="http://gstreamer.freedesktop.org/">GStreamer</a> is <em>the</em> multimedia framework for GNU/Linux, handling video/audio/other playback/recording/manipulation on your favorite desktop/server/mobile/embedded system.</p>
<p>After writing the <a href="http://www.jonnor.com/2011/03/cairooverlay-generic-cairo-overlay-element-for-gstreamer/">C</a><a href="http://www.jonnor.com/2011/03/cairooverlay-generic-cairo-overlay-element-for-gstreamer/">airo overlay GStreamer element</a>, I implement a basic GStreamer element which allows you to apply a filter to video in a GStreamer pipeline using Gegl. Using this element, video editing/manipulation applications like <a href="http://www.pitivi.org/">Pitivi</a> could allow users to apply effects provided by Gegl to videos. Gegl is a very powerful image processing framework, and already has <a href="http://www.gegl.org/operations.html">a significant number of image processing operations</a>. More operations is expected, especially from the port the tools, filters and plugins used in Gimp to Gegl.</p>
<p>Here are some screenshots showing the standard GStreamer video test data being manipulated in different ways using Gegl. Note: the size of the images are only different because the output windows had different sizes when I took the screenshot.</p>
<div class="mceTemp">
<dl id="attachment_409" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://www.jonnor.com/wp/files/geglfilter-examples.png"><img class="size-medium wp-image-409" title="geglfilter examples" src="http://www.jonnor.com/wp/files/geglfilter-examples-300x232.png" alt="Top left: original video. Top right: color temperature adjusted from 6500 to 9000 K Bottom left: inverted colors. Bottom right: inverted colors and black-white threshold" width="300" height="232" /></a></dt>
<p><span style="color: #0000ee;"><span style="text-decoration: underline;"> </span></span></p>
<dd class="wp-caption-dd">Top left: original video (no-op). Top right: color temperature adjusted from 6500 to 9000K. Bottom left: inverted colors. Bottom right: inverted colors and black-white threshold conversion</dd>
</dl>
</div>
<p><a href="https://bugzilla.gnome.org/show_bug.cgi?id=650750">A bug has been filed for inclusion</a> of this element into gst-plugins-good. The patch attached there also contains an example application, showing how to use the element.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">In the  patches you will find an example.</div>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.jonnor.com/2011/03/cairooverlay-generic-cairo-overlay-element-for-gstreamer/" rel="bookmark" class="crp_title">cairooverlay: Generic Cairo overlay element for GStreamer</a></li><li><a href="http://www.jonnor.com/2011/08/making-gegl-easier-to-use-in-graphical-applications/" rel="bookmark" class="crp_title">Making GEGL easier to use in graphical applications</a></li><li><a href="http://www.jonnor.com/2011/06/example-plugins-for-maliit-available/" rel="bookmark" class="crp_title">Example plugins for Maliit available</a></li><li><a href="http://www.jonnor.com/2010/11/playing-with-qt-quick-imago/" rel="bookmark" class="crp_title">Playing with Qt Quick; Imago</a></li><li><a href="http://www.jonnor.com/2011/08/combining-pyside-and-pygobject-introspection-bindings/" rel="bookmark" class="crp_title">Combining PySide and PyGObject introspection bindings</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.jonnor.com/2011/05/geglfilter-gstreamer-element-for-manipulating-video-using-gegl/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

