<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-664175667937540078</id><updated>2010-09-08T17:48:34.600+02:00</updated><title type='text'>It's a sweet project</title><subtitle type='html'>Random stuff about &lt;a href="http://sugarlabs.org/go/What_is_Sugar%3F"&gt;Sugar&lt;/a&gt;, the FOSS learning platform.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default?orderby=updated'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default?start-index=26&amp;max-results=25&amp;orderby=updated'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-5471075791631664485</id><published>2010-09-07T12:37:00.005+02:00</published><updated>2010-09-08T17:48:34.610+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><category scheme='http://www.blogger.com/atom/ns#' term='greece'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Open GNOME/Sugar position in Greece</title><content type='html'>A &lt;a href="http://www.republic.gr/olpc/"&gt;group of people&lt;/a&gt; passionate about improving education is working on implementing &lt;a href="http://laptop.org/"&gt;OLPC&lt;/a&gt; and &lt;a href="http://sugarlabs.org/"&gt;Sugar&lt;/a&gt; technologies in Greece and they have an open position for someone with &lt;a href="http://www.gnome.org"&gt;GNOME&lt;/a&gt; knowledge.&lt;br /&gt;&lt;br /&gt;This is an excellent opportunity to hack on free software, improve educational opportunities in your country and get paid for it. These are the areas of work identified to date:&lt;br /&gt;&lt;blockquote&gt;1. Better localisation of Sugar and Sugar activities. This would involve Sugar enhancements such as:&lt;br /&gt;* spell checking facilities all around the platform&lt;br /&gt;* sugar-wide dictionary&lt;br /&gt;* new pedagogical activities (i.e. an activity that helps children with dyslexia)&lt;br /&gt;&lt;br /&gt;2. Sensors and based on existing platforms (scratch) or creating musical activities using sensors (or enhancing TamTam).&lt;br /&gt;&lt;br /&gt;3. Repackaging wikipedia, in order to include various Balkan language resources. Probably adding further material (ex, index of Internet archive or Gutenberg project)&lt;/blockquote&gt;&lt;br /&gt;Sugar is closely based on GNOME and is mostly written in Python. The job will require working within upstream communities and contributing back.&lt;br /&gt;&lt;br /&gt;If you are interested, contact Thanasis Priftis @ thanasis.priftis at gmail.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-5471075791631664485?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/5471075791631664485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=5471075791631664485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5471075791631664485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5471075791631664485'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/09/open-gnomesugar-position-in-greece.html' title='Open GNOME/Sugar position in Greece'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-6613743885211588304</id><published>2010-08-11T10:42:00.002+02:00</published><updated>2010-08-11T10:46:22.139+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>PyGObject matching GLib version numbers</title><content type='html'>&lt;a href="http://www.johnstowers.co.nz/blog/"&gt;John Stowers&lt;/a&gt; has proposed to change the PyGObject numbering scheme to match that of GLib:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mail.gnome.org/archives/python-hackers-list/2010-August/msg00006.html"&gt;http://mail.gnome.org/archives/python-hackers-list/2010-August/msg00006.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If anybody has a problem with this, please speak up now. Otherwise the next unstable release of PyGObject will be 2.25.1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-6613743885211588304?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/6613743885211588304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=6613743885211588304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/6613743885211588304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/6613743885211588304'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/08/pygobject-matching-glib-version-numbers.html' title='PyGObject matching GLib version numbers'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-8016425358004488798</id><published>2010-07-18T12:30:00.002+02:00</published><updated>2010-07-18T13:11:54.266+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>GNOME beer event in Prague</title><content type='html'>With occasion of the visit to Prague of several GNOME colleagues, we have decided to get together for some beers this tuesday July 20th at &lt;a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=u+slovanske+lipy&amp;sll=34.597042,-95.712891&amp;sspn=24.416303,36.826172&amp;ie=UTF8&amp;hq=u+slovanske+lipy&amp;hnear=&amp;radius=15000&amp;ll=52.629729,13.73291&amp;spn=3.14772,9.206543&amp;t=h&amp;z=6&amp;iwloc=B"&gt;U slovanske lipy&lt;/a&gt;, starting at about 19.00. You have a review in english &lt;a href="http://www.praguebeergarden.com/pubs/post/u-slovanske-lipy/"&gt;here&lt;/a&gt; and please comment in this blog if you plan to come so we can better organize.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-8016425358004488798?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/8016425358004488798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=8016425358004488798' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8016425358004488798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8016425358004488798'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/07/gnome-beer-event-in-prague.html' title='GNOME beer event in Prague'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-7545673859093522220</id><published>2010-07-08T09:05:00.003+02:00</published><updated>2010-07-08T09:26:59.633+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Python and introspection are in Fedora</title><content type='html'>&lt;a href="http://cgwalters.livejournal.com/"&gt;Colin Walters&lt;/a&gt; updated &lt;a href="http://koji.fedoraproject.org/koji/buildinfo?buildID=181990"&gt;PyGObject in Rawhide to 2.21.4&lt;/a&gt; and thus you can start using libraries with introspection support from Python without having to build anything yourself. One step closer to GNOME apps in Python 3.x!&lt;br /&gt;&lt;br /&gt;If an interested Fedora packager is reading this, would be nice to split the _gi_cairo.so module to its own rpm so PyGObject itself drops again the dependency on PyCairo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-7545673859093522220?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/7545673859093522220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=7545673859093522220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/7545673859093522220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/7545673859093522220'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/07/python-and-introspection-are-in-fedora.html' title='Python and introspection are in Fedora'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-9220307173654934672</id><published>2010-06-29T12:01:00.002+02:00</published><updated>2010-06-29T12:06:13.635+02:00</updated><title type='text'>New PyGObject release: 2.21.4</title><content type='html'>Just made a new release of PyGObject, this is the first one that includes introspection support after merging PyGI. That means that you can now call GObject-based libraries from Python without requiring specific Python bindings, just the .typelib files that should be already packaged along the shared library.&lt;br /&gt;&lt;br /&gt;Next challenge: Python 3.x support.&lt;br /&gt;&lt;br /&gt;Announcement follows:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Hi,&lt;br /&gt;&lt;br /&gt;I am pleased to announce version 2.21.4 of the Python bindings for GObject.&lt;br /&gt;&lt;br /&gt;The new release is available from ftp.gnome.org as and its mirrors as&lt;br /&gt;soon as its synced correctly:&lt;br /&gt;&lt;br /&gt;      http://download.gnome.org/sources/pygobject/2.21/&lt;br /&gt;&lt;br /&gt;What's new since PyGObject 2.21.3?&lt;br /&gt;&lt;br /&gt;        - Build the cairo shim as a python module so the _gi module&lt;br /&gt;stops linking to it (Tomeu Vizoso)&lt;br /&gt;        - add drawing area demo (John (J5) Palmieri)&lt;br /&gt;        - sort the demo list (John (J5) Palmieri)&lt;br /&gt;        - rename iter to treeiter so we aren't using a python reserved&lt;br /&gt;word (John (J5) Palmieri)&lt;br /&gt;        - Fixup for change in buffer API (John (J5) Palmieri)&lt;br /&gt;        - add ListStore, TreeStore and TreeViewColumn APIs (John (J5) Palmieri)&lt;br /&gt;        - Add unit test for add_actions user data. (Ignacio Casal Quinteiro)&lt;br /&gt;        - Pass user_data param when adding actions (Paolo Borelli)&lt;br /&gt;        - add an exception type to the try/except block (John (J5) Palmieri)&lt;br /&gt;        - return PyList instead of PyTuple for array, return empty&lt;br /&gt;list for NULL arrays (John (J5) Palmieri)&lt;br /&gt;        - Fix 'make distcheck' (Tomeu Vizoso)&lt;br /&gt;        - Allow building pygobject without introspection support by&lt;br /&gt;providing --disable-introspection to configure. (Tomeu Vizoso)&lt;br /&gt;        - Make sure that sys.argv is a list and not a sequence. (Tomeu Vizoso)&lt;br /&gt;        - Force loading the GObject typelib so we have available the&lt;br /&gt;wrappers for base classes such as GInitiallyUnowned. (Tomeu Vizoso)&lt;br /&gt;        - we shouldn't g_array_free NULL pointers (John (J5) Palmieri)&lt;br /&gt;        - remove unneeded TextIter creation in the tests (John (J5) Palmieri)&lt;br /&gt;        - add override for TextBuffer (John (J5) Palmieri)&lt;br /&gt;        - fix up some build issues (John (J5) Palmieri)&lt;br /&gt;        - make the overrides file git friendly by appending to __all__&lt;br /&gt;after each override (John (J5) Palmieri)&lt;br /&gt;        - Override Dialog constructor and add_buttons method (Paolo Borelli)&lt;br /&gt;        - Merge PyGI (Johan Dahlin)&lt;br /&gt;&lt;br /&gt;Note to packagers:&lt;br /&gt;&lt;br /&gt;The configure option --enable-pygi has been removed and we build now&lt;br /&gt;introspection support by default. It's not recommend for distros, but&lt;br /&gt;if needed, you can build PyGObject without requiring&lt;br /&gt;gobject-introspection by passing --disable-introspection. When built&lt;br /&gt;with introspection support (the default) we require pycairo as a build&lt;br /&gt;dependency. We now install one more python module _gi_cairo.so that&lt;br /&gt;links to libcairo and depends on pycairo and that should be packaged&lt;br /&gt;separately.&lt;br /&gt;&lt;br /&gt;Blurb:&lt;br /&gt;&lt;br /&gt;GObject is an object system library used by GTK+ and GStreamer.&lt;br /&gt;&lt;br /&gt;PyGObject provides a convenient wrapper for the GObject library for use&lt;br /&gt;in Python programs, and takes care of many of the boring details such as&lt;br /&gt;managing memory and type casting.  When combined with PyGTK, and&lt;br /&gt;gnome-python, it can be used to write full featured Gnome applications.&lt;br /&gt;&lt;br /&gt;Like the GObject library itself PyGObject is licensed under the&lt;br /&gt;GNU LGPL, so is suitable for use in both free software and proprietary&lt;br /&gt;applications.  It is already in use in many applications ranging&lt;br /&gt;from small single purpose scripts up to large full&lt;br /&gt;featured applications.&lt;br /&gt;&lt;br /&gt;PyGObject requires glib &gt;= 2.22.4 and Python &gt;= 2.3.5 to build.&lt;br /&gt;GIO bindings require glib &gt;= 2.22.4.&lt;br /&gt;&lt;br /&gt;Please remember that this is an unstable release and shouldn't be used&lt;br /&gt;in production.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;The PyGObject team&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-9220307173654934672?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/9220307173654934672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=9220307173654934672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/9220307173654934672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/9220307173654934672'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/06/new-pygobject-release-2214.html' title='New PyGObject release: 2.21.4'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-7966582290256291058</id><published>2010-06-28T13:38:00.003+02:00</published><updated>2010-06-28T13:56:07.876+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>PyGI has been merged into PyGObject</title><content type='html'>Last week the people hacking on introspection support for PyGObject &lt;a href="http://mail.gnome.org/archives/python-hackers-list/2010-June/msg00021.html"&gt;decided&lt;/a&gt; to merge (again) PyGI into PyGObject.&lt;br /&gt;&lt;br /&gt;As soon as the patches in &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=623021"&gt;this bug&lt;/a&gt; get reviewed and pushed, I will be making a new release of PyGObject that will include introspection support.&lt;br /&gt;&lt;br /&gt;For packagers, this means that PyGI packages can be dropped and that future releases of PyGObject will depend on introspection. The release notes will contain more specific information for packagers.&lt;br /&gt;&lt;br /&gt;The 'pygi' component in bugzilla has been closed for new bugs and we are using component 'introspection' in the product 'pygobject'.&lt;br /&gt;&lt;br /&gt;Similarly, the #pygi channel at GIMPNet has been changed to invite-only and we have registered the #python channel for all matters related to the internals of Python on GNOME. For user questions, please keep using #pygtk also on GIMPNet.&lt;br /&gt;&lt;br /&gt;We need help updating the &lt;a href="http://live.gnome.org/PyGObject"&gt;wiki&lt;/a&gt; to reduce the confusion caused by the brief but tribulated life of PyGI, at least we are certain that it has finally found its permanent home.&lt;br /&gt;&lt;br /&gt;We hope that users of Python on GNOME will appreciate what introspection brings to our platform and also that from now on it will be more accessible to everybody.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-7966582290256291058?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/7966582290256291058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=7966582290256291058' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/7966582290256291058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/7966582290256291058'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/06/pygi-has-been-merged-into-pygobject.html' title='PyGI has been merged into PyGObject'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-8872850395987704890</id><published>2010-06-19T10:01:00.003+02:00</published><updated>2010-06-19T10:23:08.446+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='collabora'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Proposed GNOME goal: Port your PyGTK to the new PyGI bindings</title><content type='html'>&lt;a href="http://blogs.gnome.org/jjardon/"&gt;Javier Jardón&lt;/a&gt; has proposed &lt;a href="http://live.gnome.org/GnomeGoals/PyGIPort"&gt;this goal&lt;/a&gt;, which hopefully will make more prominent the convenience of starting to port your app from the old APIs as soon as possible.&lt;br /&gt;&lt;br /&gt;If we fail to get a solid Python story in GNOME 3.0, it will be much more painful to do the porting in subsequent GNOME 3.x releases.&lt;br /&gt;&lt;br /&gt;We still need many more people starting to port their apps and filing bugs (even better with patches!). And before you think it's too soon, read this &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=621207#c3"&gt;bugzilla comment&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;My app is a complex pygtk&lt;br /&gt;program and with some, small change now is running with pygi, &lt;br /&gt;i have errors in parts like "event.type == gtk.gdk.KEY_PRESS "  or &lt;br /&gt;       actionGroup = gtk.ActionGroup("Actions")&lt;br /&gt;&lt;br /&gt;but is running fast almost perfectly.&lt;/pre&gt;&lt;br /&gt;So we aren't perfect yet, but we're already useful and fast.&lt;br /&gt;&lt;br /&gt;As an aside, I have heard through the grapevine that during &lt;a href="http://www.guadec.org/index.php/guadec/index"&gt;GUADEC 2010&lt;/a&gt; several people will meet to hack on introspection and PyGI. So if you want to have some of the PyGI hackers in the same room when you port your app, keep an eye on this and &lt;a href="http://www.j5live.com/"&gt;J5&lt;/a&gt;'s blog for updates.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://guadec.org/"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 134px; height: 46px;" src="http://guadec.org/img/guadec-oranje.png" border="0" alt="" /&gt;&lt;/a&gt;Thanks to Collabora for sponsoring my presence in GUADEC and to all the people who are working to make it possible.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://collabora.co.uk"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 354px; height: 116px;" src="http://people.collabora.co.uk/~robot101/collabora-logo-small.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-8872850395987704890?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/8872850395987704890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=8872850395987704890' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8872850395987704890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8872850395987704890'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/06/proposed-gnome-goal-port-your-pygtk-to.html' title='Proposed GNOME goal: Port your PyGTK to the new PyGI bindings'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-3749228901316169657</id><published>2010-06-11T09:45:00.002+02:00</published><updated>2010-06-11T09:54:12.410+02:00</updated><title type='text'>New PyGObject unstable release: 2.21.2</title><content type='html'>PyGObject has seen a new release, see the announcement below.&lt;br /&gt;&lt;br /&gt;I have started lending a hand to Gian Mario with the release but we are still very short-handed. If you care about Python and GNOME and know a bit of C and Python, please consider helping with patch reviews and general patch herding:&lt;br /&gt;&lt;br /&gt;https://bugzilla.gnome.org/page.cgi?id=patchreport.html&amp;product=pygobject&amp;patch-status=none&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Hi,&lt;br /&gt;&lt;br /&gt;I am pleased to announce version 2.21.2 of the Python bindings for GObject.&lt;br /&gt;&lt;br /&gt;The new release is available from ftp.gnome.org as and its mirrors&lt;br /&gt;as soon as its synced correctly:&lt;br /&gt;&lt;br /&gt;       http://download.gnome.org/sources/pygobject/2.21/&lt;br /&gt;&lt;br /&gt;What's new since PyGObject 2.21.1?&lt;br /&gt;        - Drop sinkfuncs. (Tomeu Vizoso)&lt;br /&gt;        - Clear error if we failed the import (Colin Walters)&lt;br /&gt;        - Added missing , to keyword list of gio.GFile.set_attribute&lt;br /&gt;(John Ehresman)&lt;br /&gt;        - Fix arg conversion in gio.GFile.set_attribute (John Ehresman)&lt;br /&gt;        - Set constants under python 2.5 or before (John Ehresman)&lt;br /&gt;        - Doc Extractor: Use replacements that make sense for &amp;...;&lt;br /&gt;expressions. (José Alburquerque)&lt;br /&gt;        - Add build docs for windows (John Stowers)&lt;br /&gt;        - Setup.py cosmetic tidy (John Stowers)&lt;br /&gt;        - Fix crash when importing gio (John Stowers)&lt;br /&gt;        - Bug 589671 - Dont use generate-constants (John Stowers)&lt;br /&gt;        - Bug 589671 - Fix setup.py for windows build (John Stowers)&lt;br /&gt;        - Include pygsource.h (John Stowers)&lt;br /&gt;        - codegen/docextract_to_xml.py: One more &amp;...; replacement&lt;br /&gt;(&amp;nbsp;). (José Alburquerque)&lt;br /&gt;        - codegen/docextract_to_xml.py: Replace some &amp;..; that cause&lt;br /&gt;errors. (José Alburquerque)&lt;br /&gt;        - codegen/docextract_to_xml.py: Handle C++ multi-line comments.&lt;br /&gt;(José Alburquerque)&lt;br /&gt;        - codegen/docextract.py: Stop final section processing on first&lt;br /&gt;match. (José Alburquerque)&lt;br /&gt;        - Update doc extraction tool to handle GObjectIntrospection&lt;br /&gt;annotations. (José Alburquerque)&lt;br /&gt;        - Docs: replace gio.IO_ERROR_* with gio.ERROR_* (Paul Bolle)&lt;br /&gt;        - Bug 613341 - pygobject tests seem to require pygtk causing a&lt;br /&gt;circular (Gian Mario)&lt;br /&gt;        - Don't raise an error in _pygi_import if pygi support is&lt;br /&gt;disabled (Simon van der Linden)&lt;br /&gt;        - Initialize PyGPollFD_Type.fd_obj to NULL (Tomeu Vizoso)&lt;br /&gt;        - Bug 605937 - pygobject: Makefile.am sets $TMPDIR, disrupting&lt;br /&gt;distcc (Gian Mario)&lt;br /&gt;        - Wrap gio.Cancellable.make_pollfd() and add a test (Gian Mario)&lt;br /&gt;        - Make cancellable an optional parameter in many methods (Gian&lt;br /&gt;Mario)&lt;br /&gt;&lt;br /&gt;Blurb:&lt;br /&gt;&lt;br /&gt;GObject is a object system library used by GTK+ and GStreamer.&lt;br /&gt;&lt;br /&gt;PyGObject provides a convenient wrapper for the GObject library for use&lt;br /&gt;in Python programs, and takes care of many of the boring details such as&lt;br /&gt;managing memory and type casting.  When combined with PyGTK, PyORBit and&lt;br /&gt;gnome-python, it can be used to write full featured Gnome applications.&lt;br /&gt;&lt;br /&gt;Like the GObject library itself PyGObject is licensed under the&lt;br /&gt;GNU LGPL, so is suitable for use in both free software and proprietary&lt;br /&gt;applications.  It is already in use in many applications ranging&lt;br /&gt;from small single purpose scripts up to large full&lt;br /&gt;featured applications.&lt;br /&gt;&lt;br /&gt;PyGObject requires glib &gt;= 2.22.4 and Python &gt;= 2.3.5 to build.&lt;br /&gt;GIO bindings require glib &gt;= 2.22.4.&lt;br /&gt;&lt;br /&gt;Please remember that this is an unstable release and shouldn't be used&lt;br /&gt;in production.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;The PyGObject team&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-3749228901316169657?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/3749228901316169657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=3749228901316169657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/3749228901316169657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/3749228901316169657'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/06/new-pygobject-unstable-release-2212.html' title='New PyGObject unstable release: 2.21.2'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-924418572678474147</id><published>2010-06-07T13:39:00.004+02:00</published><updated>2010-06-07T13:47:24.945+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>PyGI now in Debian and Ubuntu</title><content type='html'>Thanks to the Debian GNOME Team, Laurent Bigonville and Canonical's Robert Ancell, &lt;a href="http://live.gnome.org/PyGI"&gt;PyGI&lt;/a&gt; is well on its way to Debian and Ubuntu:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://packages.debian.org/sid/python-gi"&gt;http://packages.debian.org/sid/python-gi&lt;/a&gt;&lt;br /&gt;&lt;a href="https://launchpad.net/debian/+source/pygi/0.5.1-1"&gt;https://launchpad.net/debian/+source/pygi/0.5.1-1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to everybody involved in this effort, upstream developers appreciate your work!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-924418572678474147?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/924418572678474147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=924418572678474147' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/924418572678474147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/924418572678474147'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/06/pygi-now-in-debian-and-ubuntu.html' title='PyGI now in Debian and Ubuntu'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-1512636044214127367</id><published>2010-06-04T11:12:00.003+02:00</published><updated>2010-06-04T11:15:57.878+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>New PyGI release: 0.6.0</title><content type='html'>PyGI has seen a new release, follows the announcement:&lt;br /&gt;&lt;br /&gt;Hi all,&lt;br /&gt;&lt;br /&gt;this new release brings several new features and bug fixes and we feel application authors will have an easier time porting their software to use introspection. To mark this usability milestone we have started the 0.6.x series.&lt;br /&gt;&lt;br /&gt;Apart from further feature and stability work, you can expect compatibility with Python 3.x in a future 0.6.x release.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ftp.gnome.org/pub/GNOME/sources/pygi/0.6/pygi-0.6.0.tar.gz"&gt;http://ftp.gnome.org/pub/GNOME/sources/pygi/0.6/pygi-0.6.0.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This release adds a dependency on gobject-introspection 0.6.14 or newer.&lt;br /&gt;&lt;br /&gt;== Changes ==&lt;br /&gt;&lt;br /&gt;* Added overrides for better compatibility with the old API:&lt;br /&gt;GtkUIManager and GtkActionGroup&lt;br /&gt;* Improved callback support&lt;br /&gt;* Support for G*Array arguments&lt;br /&gt;* Support for caller-allocates&lt;br /&gt;&lt;br /&gt;== Join the effort! ==&lt;br /&gt;&lt;br /&gt;Any feedback is welcome and the PyGI community will be happy to assist any porting efforts in the mailing lists mentioned below, in the #pygi IRC channel in Freenode and in GNOME's bugzilla:&lt;br /&gt;&lt;br /&gt;Internals development mailing list:&lt;br /&gt;&lt;a href="http://mail.gnome.org/mailman/listinfo/python-hackers-list"&gt;http://mail.gnome.org/mailman/listinfo/python-hackers-list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Application development mailing list:&lt;br /&gt;&lt;a href="http://www.daa.com.au/mailman/listinfo/pygtk"&gt;http://www.daa.com.au/mailman/listinfo/pygtk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Known issues: &lt;a href="https://bugzilla.gnome.org/buglist.cgi?product=pygi&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;version=unspecified"&gt;https://bugzilla.gnome.org/buglist.cgi?product=pygi&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;version=unspecified&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enter a new report: &lt;a href="https://bugzilla.gnome.org/enter_bug.cgi?product=pygi"&gt;https://bugzilla.gnome.org/enter_bug.cgi?product=pygi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Main wiki page: &lt;a href="http://live.gnome.org/PyGI"&gt;http://live.gnome.org/PyGI&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Tomeu&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;John (J5) Palmieri &lt;johnp@redhat.com&gt; (10)&lt;br /&gt;&lt;br /&gt;  * support for caller-allocates annotations for structs&lt;br /&gt;  * don't import gobject directly in the tests&lt;br /&gt;  * fix up Builder override, add new override methods, and add unit tests&lt;br /&gt;  * check refcounting of callback userdata in unit tests&lt;br /&gt;  * correctly handle floating objects in gtk&lt;br /&gt;  * Return an empty list when a NULL GList and GSList is returned&lt;br /&gt;  * fix NULL array unit tests and fix crasher when sending None as an array&lt;br /&gt;  * don't error out on methods with callbacks as return type&lt;br /&gt;  * reset sys.argv to the return value of Gtk.init_check&lt;br /&gt;  * add GtkUIManager and GtkActionGroup overrides&lt;br /&gt;&lt;br /&gt;Steve Frécinaux &lt;code@istique.net&gt; (1)&lt;br /&gt;&lt;br /&gt;  * Fix warning in configure.&lt;br /&gt;&lt;br /&gt;Tomeu Vizoso &lt;tomeu.vizoso@collabora.co.uk&gt; (12)&lt;br /&gt;&lt;br /&gt;  * Pre-release version bump 0.6.0&lt;br /&gt;  * Wrap C arrays in structs as GArrays before converting to Python&lt;br /&gt;  * Install pre-commit hook that checks the code changes for style conformance&lt;br /&gt;  * Apply consistent whitespace formatting with:&lt;br /&gt;  * Prepend gi.repository to the __module__ attribute of wrapper classes.&lt;br /&gt;  * Correctly identify at creation time:&lt;br /&gt;  * Dont complain if another base has implemented the method&lt;br /&gt;  * Improve handling of subclasses without __gtype_name__&lt;br /&gt;  * Add support for out args in callbacks&lt;br /&gt;  * Add support for GArray args&lt;br /&gt;  * GTypeInterface cannot be unrefed&lt;br /&gt;  * If None is passed to an interface which takes an object, convert it to NULL&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-1512636044214127367?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/1512636044214127367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=1512636044214127367' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1512636044214127367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1512636044214127367'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/06/new-pygi-release-060.html' title='New PyGI release: 0.6.0'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-8497641138692540676</id><published>2010-05-25T08:50:00.004+02:00</published><updated>2010-05-25T09:05:05.146+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>New Python list at gnome.org</title><content type='html'>One of the action items that came out of the UDS sessions that touched introspection was to create an appropriate list for discussing the transition to introspection and Python 3.x.&lt;br /&gt;&lt;br /&gt;The list description should make clear why any of the existing lists was deemed a good fit:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;Development of Python bindings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Note:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    * it's for the implementation details and you need to know C, not Python&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    * questions about the internals are on-topic, even if you're not developing the internals themselves&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    * it's a single place to discuss pygtk, pygi, pygobject wrapper implementations&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;So if you are worried about how your GNOME apps written in Python are going to transition to GNOME 3.x and Python 3.x, join us before it's too late!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mail.gnome.org/mailman/listinfo/python-hackers-list"&gt;http://mail.gnome.org/mailman/listinfo/python-hackers-list&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-8497641138692540676?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/8497641138692540676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=8497641138692540676' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8497641138692540676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8497641138692540676'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/05/new-python-list-at-gnomeorg.html' title='New Python list at gnome.org'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-5568322891583567488</id><published>2010-05-17T14:06:00.002+02:00</published><updated>2010-05-17T15:17:10.926+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='telepathy'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Telepathy and Ubuntu</title><content type='html'>As mentioned in &lt;a href="http://blog.tomeuvizoso.net/2010/05/ubuntu-and-gobject-introspection.html"&gt;my last post&lt;/a&gt; about the &lt;a href="https://wiki.ubuntu.com/UDS-M"&gt;Ubuntu Developer Summit&lt;/a&gt; last week, there's interest in Ubuntu for using the &lt;a href="http://telepathy.freedesktop.org/"&gt;Telepathy framework&lt;/a&gt; in more of their projects. There was discussion of using Telepathy in their &lt;a href="https://blueprints.launchpad.net/ubuntu-arm/+spec/arm-m-telephony-stack"&gt;telephony stack&lt;/a&gt; and also on some &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-maverick-empathy-indicator"&gt;Ubuntu-specific changes in Empathy&lt;/a&gt;, but I was most interested in their effort to make &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-maverick-python-telepathy"&gt;easy and fun&lt;/a&gt; to code collaborative applications.&lt;br /&gt;&lt;br /&gt;As part of the &lt;a href="http://blog.tomeuvizoso.net/2010/03/my-focus-during-090-collaboration.html"&gt;work on Sugar&lt;/a&gt; that &lt;a href="http://www.collabora.co.uk/"&gt;Collabora&lt;/a&gt; is sponsoring, I also have a big interest in making as easy as possible to use the telepathy framework, be it in applications or in desktop components such as the Sugar shell.&lt;br /&gt;&lt;br /&gt;For now, I'm going to help kickstart the process by implementing some &lt;a href="https://wiki.ubuntu.com/Quickly/Telepathy/First_Hack_At_API"&gt;toy-like API&lt;/a&gt; on top of Telepathy in the form of widgets for &lt;a href="https://wiki.ubuntu.com/Quickly"&gt;Quickly&lt;/a&gt;, here is the &lt;a href="https://code.launchpad.net/~tomeu/quidgets/telepathy"&gt;branch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is what we came up with in the brainstorming session about the "easy and fun" API: &lt;br /&gt;&lt;pre&gt;class Client(Boo):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.tube_handler = MessageTubeHandler("tubey")&lt;br /&gt;        self.tube_handler.connect("handle-channel", self.on_handle_channel)&lt;br /&gt;&lt;br /&gt;    def on_handle_channel(self, tube):&lt;br /&gt;        self.image_tube = tube&lt;br /&gt;        tube.connect("message-received", self.on_message_received)&lt;br /&gt;&lt;br /&gt;    def on_message_received(self, tube, msg):&lt;br /&gt;        if "img_url" in msg:&lt;br /&gt;            self._download_image(msg["img_url"])&lt;br /&gt;        &lt;br /&gt;    def on_contact_selected(self, contact, account):&lt;br /&gt;        self.image_tube = tp.MessageTube(contact, account)&lt;br /&gt;        msg = {}&lt;br /&gt;        msg["note"] = self.label1.get_text()&lt;br /&gt;        self.image_tube.send(msg)&lt;br /&gt;        &lt;br /&gt;    def on_tube_initiated(self, tube):&lt;br /&gt;        if "kenvandine" in tube.contact.props.identifier:&lt;br /&gt;                return&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;As &lt;a href="http://live.gnome.org/PyGI"&gt;PyGI&lt;/a&gt; is not packaged yet for Ubuntu and for the sake of getting started quickly, I'm going to do the initial implementation with the old telepathy-python bindings, but I hope that whatever gets into the Maverick release uses the much nicer telepathy-glib API through introspection.&lt;br /&gt;&lt;br /&gt;Also will be trying to keep an eye on the collaboration needs of Sugar activities so more people benefit from this effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-5568322891583567488?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/5568322891583567488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=5568322891583567488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5568322891583567488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5568322891583567488'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/05/telepathy-and-ubuntu.html' title='Telepathy and Ubuntu'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-3725698139116451961</id><published>2010-05-17T13:01:00.005+02:00</published><updated>2010-05-17T14:13:40.187+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Ubuntu and GObject introspection</title><content type='html'>&lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; invited me to spend last week in Brussels at the &lt;a href="https://wiki.ubuntu.com/UDS-M"&gt;Ubuntu Developer Summit&lt;/a&gt;, representing the upstream projects I'm part of: &lt;a href="http://telepathy.freedesktop.org/"&gt;Telepathy&lt;/a&gt;, &lt;a href="http://www.gnome.org/"&gt;GNOME&lt;/a&gt; and &lt;a href="http://www.sugarlabs.org/"&gt;Sugar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On the GNOME front, I tried to understand Ubuntu plans regarding &lt;a href="http://live.gnome.org/GObjectIntrospection"&gt;introspection&lt;/a&gt; and developing with Python. At the beginning I was very concerned because the developers I talked to didn't seemed to be aware of the changes that introspection would bring to GNOME and thus hadn't any strategy in place.&lt;br /&gt;&lt;br /&gt;The most notable effect of the appearance of introspection support in GNOME is that the existing static bindings for Python and other languages will stop being maintained and no new bindings will be developed for new APIs. For downstreams such as Ubuntu this means that they will either have to maintain and develop static bindings themselves alone, or move to use introspection. See &lt;a href="http://live.gnome.org/GObjectIntrospection/Architecture"&gt;here&lt;/a&gt; for an explanation of how apps in python would use introspection to call GObject C code.&lt;br /&gt;&lt;br /&gt;If Ubuntu limited itself to package whatever software upstream releases, they could just sit waiting for new releases and update the dependencies accordingly. But turns out they produce a lot of Python code themselves and thus need to get involved in this transition for their own good. They also have the goal of being a great platform for developing desktop apps with Python, and introspection will play a major role in that.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://castrojo.wordpress.com/"&gt;Jorge Castro&lt;/a&gt; was tremendously helpful by presenting myself to &lt;a href="http://barry.warsaw.us/"&gt;Barry Warsaw&lt;/a&gt;, who has a responsibility role in Ubuntu's use of Python. Barry has been working on the transition to Python 3 and GNOME's move to introspection can make it way easier by making obsolete an awful lot of &lt;a href="http://en.wikipedia.org/wiki/CPython"&gt;CPython&lt;/a&gt; code. This will also make possible in the future to use &lt;a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29#Alternative_implementations"&gt;other Python implementations&lt;/a&gt; than CPython for coding GNOME applications.&lt;br /&gt;&lt;br /&gt;As the week progressed introspection got more and more present in Ubuntu's plans, which makes me very happy. Follows some of the most relevant mentions of it, check the whiteboard section of each blueprint for the details:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-python-versions"&gt;How do we get to Python 3 and do we go through 2.7 first?&lt;/a&gt; "Port PyGI to python3. Move python2 applications to use PyGI." There's lots we can do upstream to help with this, from providing a script to convert to the new API to create a compatibility layer in PyGI. We'll be discussing the creation of a mailing list for coordinating PyGObject and PyGI development and helping with the porting from the static bindings.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://blueprints.launchpad.net/gtk2/+spec/gobject-introspection/"&gt;How GObject Introspection will change our platform&lt;/a&gt; "Actions: Package PyGI for Ubuntu (Python 2) [robert-ancell], create or hijack &lt;wink&gt; a mailing list for pygi development"&lt;br /&gt;&lt;br /&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-maverick-python-telepathy"&gt;Fun and Easy Python API for Telepathy&lt;/a&gt; We are adding API to telepathy-glib in this direction and nobody has shown interest in working on new static bindings for it, so we need PyGI in order to access the new API.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-software-center-backend"&gt;packagekit as backend for software-center&lt;/a&gt; "Python API is out-of-date. It would require some adaption, especially since 0.6.x will break API. Packagekit-glib2 was written with gobject introspection support. So bindings could be generated in the future."&lt;br /&gt;&lt;br /&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-maverick-gnome"&gt;Review coming changes in GNOME and what we will want to do&lt;/a&gt; "Python introspection bindings well progressed at sprint. No resource for GLib introspection work. Libraries will stop making bindings and rely on introspection - we have to migrate at some time to keep bindings"&lt;br /&gt;&lt;br /&gt;And there seems to have been also interest in introspection from the people &lt;a href="http://bergie.iki.fi/blog/notes_from_my_first_ubuntu_developer_summit/"&gt;pushing for Midgard&lt;/a&gt; in Ubuntu.&lt;br /&gt;&lt;br /&gt;In summary, I'm very happy to count on Ubuntu in the development of PyGI, I plan to report in this blog about the progresses in polishing PyGI and porting apps to the new API.&lt;br /&gt;&lt;br /&gt;P.S.: I'm under the impression that Planet GNOME is not widely read by Ubuntu people, so if someone could rely it to their planet, would be awesome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-3725698139116451961?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/3725698139116451961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=3725698139116451961' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/3725698139116451961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/3725698139116451961'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/05/ubuntu-and-gobject-introspection.html' title='Ubuntu and GObject introspection'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-1806774152994784028</id><published>2010-05-07T18:54:00.003+02:00</published><updated>2010-05-07T19:03:56.128+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><title type='text'>Two talks in Greece about Sugar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://conf.ellak.gr/2010/?page_id=21"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 197px; height: 99px;" src="http://ellak.gr/bnsmall11.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The nice people at &lt;a href="http://ellak.gr/index.php?option=com_content&amp;task=view&amp;id=6874"&gt;EELLAK&lt;/a&gt; have invited &lt;a href="http://erikos.sweettimez.de/"&gt;Simon&lt;/a&gt; and me to discuss the software side of their 1-to-1 deployments.&lt;br /&gt;&lt;br /&gt;We'll be Saturday 15th in Athens and Sunday 16th in Thessaloniki, so if you happen to be there and are interested in discussing about Sugar, OLPC or free software in general, check out the &lt;a href="http://ellak.gr/index.php?option=com_content&amp;task=view&amp;id=6874"&gt;program&lt;/a&gt; and appear.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-1806774152994784028?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/1806774152994784028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=1806774152994784028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1806774152994784028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1806774152994784028'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/05/two-talks-in-greece-about-sugar.html' title='Two talks in Greece about Sugar'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-1681441301789426142</id><published>2010-05-05T10:04:00.004+02:00</published><updated>2010-05-05T12:16:36.746+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='collabora'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='telepathy'/><title type='text'>Going to UDS-M</title><content type='html'>&lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; has been so nice to sponsor my attendance to the next &lt;a href="https://wiki.ubuntu.com/UDS-M"&gt;Ubuntu Developer Summit&lt;/a&gt; in Brussels next week and &lt;a href="http://www.collabora.co.uk/"&gt;Collabora&lt;/a&gt; is sponsoring my time there for &lt;a href="http://telepathy.freedesktop.org/"&gt;Telepathy&lt;/a&gt;, &lt;a href="http://python.org/"&gt;Python&lt;/a&gt; and &lt;a href="http://www.sugarlabs.org/"&gt;Sugar&lt;/a&gt; stuff. Thanks a lot to both companies.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://ubuntu.com/"&gt;Ubuntu community&lt;/a&gt; has interest in making as easy as possible for regular users to create software and part of this effort is having a high-level API for having collaboration across the network. This of course will involve Telepathy and I have also a big interest in providing this experience to users of Sugar. Collabora are going to be flying as well some of their Telepathy developers to work on this and I look forward to finally meeting them.&lt;br /&gt;&lt;br /&gt;Ubuntu has also committed heavily on Python for their development efforts, both on the desktop and in the server. For the desktop side of things, Python on GNOME is facing several challenges right now and I will be happy to help them make sure they don't lose any opportunities because of that. The challenges I have referred to are the obsolescence of static library bindings and the update to Python 3. On both issues &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt; has contributed several developers to upstream and I will be happiest to discuss how we can also make Ubuntu contributors most welcome there. I'm also looking forward to finally meet &lt;a href="http://simon.vanderlinden.eu.org/"&gt;Simon van der Linden&lt;/a&gt; in person after working together in PyGI for so long, he happens to live close to the venue so he'll jump to say hello and maybe do some hacking together (I have some patches in the queue that could use some review love).&lt;br /&gt;&lt;br /&gt;There's also interest from &lt;a href="http://edubuntu.org/"&gt;Edubuntu&lt;/a&gt; in shipping Sugar, so I have registered to &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/community-maverick-edubuntu-packages"&gt;their blueprint&lt;/a&gt; and will be available to answer any questions they have regarding it. I have felt sad often when Ubuntu users have come asking how they could run Sugar on their machines and I had to point them to the instructions to build from the source, so it's great to have the possibility for Sugar to be accepted and supported by Ubuntu at last.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-1681441301789426142?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/1681441301789426142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=1681441301789426142' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1681441301789426142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1681441301789426142'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/05/going-to-uds-m.html' title='Going to UDS-M'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-8153056505391621627</id><published>2010-05-05T09:13:00.004+02:00</published><updated>2010-05-05T11:27:47.893+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><category scheme='http://www.blogger.com/atom/ns#' term='telepathy'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Using telepathy-glib in python through gobject-introspection</title><content type='html'>Until now, you had two options for writing telepathy clients in python: use the low level &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;D-Bus&lt;/a&gt; API through dbus-python, or using telepathy-python which provided very little more for clients apart from registering the zillion of constants in Telepathy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://telepathy.freedesktop.org/wiki/Telepathy%20GLib"&gt;Telepathy-glib&lt;/a&gt; is a library that provides a higher level API for interacting with the &lt;a href="http://telepathy.freedesktop.org/wiki/"&gt;Telepathy framework&lt;/a&gt; than the low level D-Bus API. No languages bindings exist currently for this library so only C apps such as Empathy used it, developers using languages such as Python and JavaScript were stuck with the D-Bus API and generally each app invented a more or less complete new API on top of it.&lt;br /&gt;&lt;br /&gt;In parallel to a push for adding more high-level APIs to telepathy-glib, we are looking at what remains to be done in the &lt;a href="http://live.gnome.org/GObjectIntrospection"&gt;gobject-introspection&lt;/a&gt; stack so we don't need to write static bindings for each language. After some weeks hacking on &lt;a href="http://live.gnome.org/Gjs"&gt;Gjs&lt;/a&gt; (Danielle Madeley), &lt;a href="http://live.gnome.org/Vala"&gt;Vala&lt;/a&gt; (Travis Reitter) and &lt;a href="http://live.gnome.org/PyGI"&gt;PyGI&lt;/a&gt; (me) things are starting to take shape.&lt;br /&gt;&lt;br /&gt;Following &lt;a href="http://dannipenguin.livejournal.com/295650.html"&gt;Danni's post&lt;/a&gt; on her progress, here comes an example observer written in Python and using PyGI to call telepathy-glib:&lt;br /&gt;&lt;br /&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;gobject&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;gobject&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;threads_init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;gi.repository&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TelepathyGLib&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c"&gt;#TelepathyGLib.debug_set_flags(&amp;#39;all&amp;#39;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;observe_channels&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;                     &lt;span class="n"&gt;dispatch_op&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;observe_channels&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;account = &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_object_path&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;connection = &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_object_path&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;channel&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;channels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;channel = &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_object_path&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;dispatch_op&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;dispatch_op = &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;dispatch_op&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_object_path&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;dispatch_op = None&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;          &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;request = &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_object_path&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accept&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="n"&gt;dbus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TelepathyGLib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DBusDaemon&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;observer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TelepathyGLib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SimpleObserver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dbus&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;PythonObserver&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;                                            &lt;span class="n"&gt;observe_channels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_observer_filter&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;br /&gt;  &lt;span class="n"&gt;TelepathyGLib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PROP_CHANNEL_CHANNEL_TYPE&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;TelepathyGLib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IFACE_CHANNEL_TYPE_TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="n"&gt;observer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;register&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="n"&gt;main_loop&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gobject&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MainLoop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;main_loop&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This needs the latest code in &lt;a href="http://git.collabora.co.uk/?p=telepathy-glib.git;a=summary"&gt;telepathy-glib&lt;/a&gt;, &lt;a href="http://git.gnome.org/browse/gobject-introspection/"&gt;gobject-introspection&lt;/a&gt; and &lt;a href="http://git.gnome.org/browse/pygi"&gt;pygi&lt;/a&gt;, and also a &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=617551"&gt;patch&lt;/a&gt; to PyGI that hasn't been release yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-8153056505391621627?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/8153056505391621627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=8153056505391621627' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8153056505391621627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8153056505391621627'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/05/using-telepathy-glib-in-python-through.html' title='Using telepathy-glib in python through gobject-introspection'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-6714913472232903786</id><published>2010-04-19T17:05:00.006+02:00</published><updated>2010-04-19T19:07:09.993+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>The 2010 Python GNOME hackfest is done!</title><content type='html'>Everything has to come to an end, and though this week has been full of hacking fun and beer work, I will welcome some rest back at home. Follows a recount of the time here.&lt;br /&gt;&lt;br /&gt;After arriving to Boston last Monday, dropped my stuff in &lt;a href="http://www.j5live.com/"&gt;J5&lt;/a&gt;'s house and went together to have some beers with some &lt;a href="http://wiki.sugarlabs.org/go/Oversight_Board"&gt;Sugar SLOB&lt;/a&gt;'s at the CBC, there I finally met &lt;a href="http://blog.verbum.org/"&gt;Colin Walters&lt;/a&gt;, putting one more face to an IRC nick. Afterwards we went to the &lt;a href="http://laptop.org/"&gt;OLPC&lt;/a&gt; offices to discuss &lt;a href="http://wiki.sugarlabs.org/go/Sugar_Labs/Governance/Trademark/Guidelines"&gt;Sugar Labs' trademark policy&lt;/a&gt;, and though I had to leave shortly after because of the lack of sleep, turns out they swiftly solved this issue that has been dragging on for so long, congrats!&lt;br /&gt;&lt;br /&gt;On Tuesday several of the Sugar SLOB's got together to discuss miscellanous stuff about Sugar, mainly doing some high-bandwidth chatter to share our positions on several issues. Discussions should follow soon on the &lt;a href="http://lists.sugarlabs.org/listinfo/iaep"&gt;IAEP mailing list&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Wednesday started the hackfest, met &lt;a href="http://zachgoldberg.com/"&gt;Zach Goldberg&lt;/a&gt;, John Ehresman (of &lt;a href="http://www.wingware.com/"&gt;Wingware&lt;/a&gt; fame) and &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt;'s David Malcolm. I'm still impressed by the professionalism and technical knowledge of these guys, it allowed us to keep a strong focus and to overcome together the roadblocks we found, even when we weren't able to agree on a single position. David partnered with John and J5 on the Python 3.x side, and Colin, Zach and me on the introspection side. Having in the same room people with as a deep knowledge of Python such as John and David also helped a lot to the introspection side of things.&lt;br /&gt;&lt;br /&gt;From Thursday to Sunday we just continued hacking on our goals, from 9am to 6pm on the OLPC offices with a small pause to grab food. Was so much fun that we only stopped when our brains grinded to a halt. Check the links below from Zach for more details about each day.&lt;br /&gt;&lt;br /&gt;On Saturday night we celebrated the &lt;a href="http://www.mail-archive.com/pygtk@daa.com.au/msg19138.html"&gt;first PyGI release: 0.5&lt;/a&gt;. One very important outcome of the hackfest is that Zach has joined the maintenance team of PyGI, assuring its continuity, this will mean that PyGI will have a well triaged list of bugs, patches will be reviewed on time and releases will be made on time. Simon van der Linden (who unfortunately couldn't make it to Boston) and me will be lending a hand on that from time to time.&lt;br /&gt;&lt;br /&gt;The Python 3.x patches haven't landed yet because are very invasive and we need to make sure we don't introduce more regressions than what can be fixed timely, we don't want to break all PyGTK software out there! So the plan is to keep developing the Py3k ports of PyGObject and PyGI in separate branches and test them with big codebases such as Sugar until we are confident of their stability, then we'll propose the merge. Both ports are feature complete and ready to be tested, which is a giant step forward.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://live.gnome.org/Travel/Policy?action=AttachFile&amp;do=get&amp;target=sponsored-badge-shadow.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 230px; height: 230px;" src="http://live.gnome.org/Travel/Policy?action=AttachFile&amp;do=get&amp;target=sponsored-badge-shadow.png" border="0" alt="" /&gt;&lt;/a&gt;I'm very grateful to my employer &lt;a href="http://www.collabora.co.uk/"&gt;Collabora&lt;/a&gt; for having sponsored the time I spent hacking on PyGObject (and traveling!), to the &lt;a href="http://foundation.gnome.org/"&gt;GNOME Foundation&lt;/a&gt; for sponsoring my trip, to my OLPC colleagues for lending us their facilities, to &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt; for taking us out for dinner and to &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; for the coffee. Also, my special admiration to Red Hat for understanding that a strong downstream requires a strong upstream and sending three of its best hackers to lend us a hand here.&lt;br /&gt;&lt;br /&gt;You can read more about the hackfest from others:&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://arstechnica.com/open-source/reviews/2010/04/python-support-in-gnome-gets-a-boost-from-hackfest.ars"&gt;http://arstechnica.com/open-source/reviews/2010/04/python-support-in-gnome-gets-a-boost-from-hackfest.ars&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://blog.verbum.org/2010/04/14/pygtk-performing-engine-maintenance-while-the-car-is-running/"&gt;http://blog.verbum.org/2010/04/14/pygtk-performing-engine-maintenance-while-the-car-is-running/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://zachgoldberg.com/2010/04/15/gnomepython-hackfest-2010-day-2-or-how-to-actually-coordinate-packages/"&gt;http://zachgoldberg.com/2010/04/15/gnomepython-hackfest-2010-day-2-or-how-to-actually-coordinate-packages/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://zachgoldberg.com/2010/04/17/pygi-hackfest-day-4-a-call-back-to-the-past/"&gt;http://zachgoldberg.com/2010/04/17/pygi-hackfest-day-4-a-call-back-to-the-past/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://zachgoldberg.com/2010/04/18/pygi-version-0-5-the-watch-out-theres-a-volcano-release/"&gt;http://zachgoldberg.com/2010/04/18/pygi-version-0-5-the-watch-out-theres-a-volcano-release/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://zachgoldberg.com/2010/04/18/pygi-version-0-5-the-watch-out-theres-a-volcano-release/"&gt;http://www.j5live.com/2010/04/12/gnome-python-hackfest-thanks-to-sponsors/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://www.j5live.com/2010/04/14/caffeined-up-and-starting-to-hack/"&gt;http://www.j5live.com/2010/04/14/caffeined-up-and-starting-to-hack/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://www.j5live.com/2010/04/14/gnome-python-hackfest-day-1/"&gt;http://www.j5live.com/2010/04/14/gnome-python-hackfest-day-1/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://www.j5live.com/2010/04/15/gnome-python-hackfest-day-2-quick-roundup/"&gt;http://www.j5live.com/2010/04/15/gnome-python-hackfest-day-2-quick-roundup/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-6714913472232903786?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/6714913472232903786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=6714913472232903786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/6714913472232903786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/6714913472232903786'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/04/2010-python-gnome-hackfest-is-done.html' title='The 2010 Python GNOME hackfest is done!'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-8435144390954031441</id><published>2010-04-07T18:07:00.004+02:00</published><updated>2010-04-13T18:02:27.353+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Python + GNOME hackfest is set</title><content type='html'>Everything is ready for the &lt;a href="http://live.gnome.org/Hackfests/Python2010"&gt;hackfest&lt;/a&gt; that will update Python as a great language with which to program in GNOME.&lt;br /&gt;&lt;br /&gt;In case you want to hack with us but cannot be at Cambridge, the attendants are going to hang on the &lt;strike&gt;#pygobject&lt;/strike&gt; #pygtk, #pygi and #introspection channels at &lt;a href="http://www.gimp.org/irc.html"&gt;GIMPNet&lt;/a&gt;. Just say hi and we'll find something cool on which to hack together.&lt;br /&gt;&lt;br /&gt;Update: channel #pygobject doesn't exist, should have written #pygtk instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-8435144390954031441?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/8435144390954031441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=8435144390954031441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8435144390954031441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/8435144390954031441'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/04/python-gnome-hackfest-is-set.html' title='Python + GNOME hackfest is set'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-1991852658998623991</id><published>2010-03-19T18:40:00.004+01:00</published><updated>2010-03-19T18:55:04.685+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='telepathy'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Sugar with better Telepathy</title><content type='html'>After three weeks of little coding but much reading, a reward:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OoKpv4QinxI/S6O4WLSFz4I/AAAAAAAAALs/2jhdE0fzLu0/s1600-h/chat_without_ps.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_OoKpv4QinxI/S6O4WLSFz4I/AAAAAAAAALs/2jhdE0fzLu0/s320/chat_without_ps.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5450402665173733250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This shows the Chat activity talking to Empathy through link-local xmpp. This was already possible, but the difference now is that Chat is a normal telepathy client, and it has been activated by dbus as would be any other telepathy-enable application in GNOME, Meego or whatever.&lt;br /&gt;&lt;br /&gt;The current code is very sketchy, but we are starting to get a good sense of the next challenges. If you are interested in knowing why this is important, see my &lt;a href="http://blog.tomeuvizoso.net/2010/03/my-focus-during-090-collaboration.html"&gt;previous post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Progress can be followed in &lt;a href="http://wiki.sugarlabs.org/go/Development_Team/Collaboration_Refactoring"&gt;this page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-1991852658998623991?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/1991852658998623991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=1991852658998623991' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1991852658998623991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1991852658998623991'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/03/sugar-with-better-telepathy.html' title='Sugar with better Telepathy'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OoKpv4QinxI/S6O4WLSFz4I/AAAAAAAAALs/2jhdE0fzLu0/s72-c/chat_without_ps.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-2575878750020986607</id><published>2010-03-06T11:14:00.002+01:00</published><updated>2010-03-06T11:38:46.471+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Update on the Python/GNOME hackfest</title><content type='html'>The hackfest is going to happen from 14th to 18th April in Boston (MA, USA). We haven't agreed yet on a venue, but we are aiming for something near Kendall Square.&lt;br /&gt;&lt;br /&gt;We'll be 3 people working on Python 3 support, and 3 more on the introspection bindings. More details at &lt;a href="http://live.gnome.org/Hackfests/Python2010"&gt;http://live.gnome.org/Hackfests/Python2010&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://foundation.gnome.org/"&gt;GNOME Foundation&lt;/a&gt; will be sponsoring the travel, an as-of-yet unnamed sponsor will be providing the venue and the GNOME Foundation board is busy looking for sponsors for hacking food and such.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-2575878750020986607?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/2575878750020986607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=2575878750020986607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/2575878750020986607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/2575878750020986607'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/03/update-on-pythongnome-hackfest.html' title='Update on the Python/GNOME hackfest'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-4929802319120682147</id><published>2010-03-03T11:17:00.003+01:00</published><updated>2010-03-03T11:32:10.281+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Early childhood hackers</title><content type='html'>Of course, Sugar hasn't the monopoly in FOSS in primary classrooms, but are there other projects whose contributors include those children? Teacher L.M.Y.Lim is working to &lt;a href="http://lmylim.wordpress.com/2010/03/03/60/"&gt;make that happen&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;...&lt;br /&gt;- I have to narrow my focus on the goals I have for the children. Objectives will include:&lt;br /&gt;The children will generate a list of responsibilities a QA engineer, or “tester” has;&lt;br /&gt;The children will generate a list of what makes a good QA engineer;&lt;br /&gt;The children will write about their experience – not only about what they figured things out, but also how they did it.&lt;br /&gt;The children will provide feedback for future SoaS deployment or pilots.&lt;br /&gt;...&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And Mel &lt;a href="http://blog.melchua.com/2010/03/02/meeting-the-students/"&gt;briefed&lt;/a&gt; about their first meeting with the community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-4929802319120682147?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/4929802319120682147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=4929802319120682147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/4929802319120682147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/4929802319120682147'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/03/early-childhood-hackers.html' title='Early childhood hackers'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-1983650512217693308</id><published>2010-03-02T18:05:00.005+01:00</published><updated>2010-03-03T11:26:20.752+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='collabora'/><category scheme='http://www.blogger.com/atom/ns#' term='telepathy'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>My focus during 0.90: Collaboration</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OoKpv4QinxI/S4412YJfc4I/AAAAAAAAALE/W1YHzlQdtRA/s1600-h/collabora_logo.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 99px;" src="http://1.bp.blogspot.com/_OoKpv4QinxI/S4412YJfc4I/AAAAAAAAALE/W1YHzlQdtRA/s320/collabora_logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5444348207848977282" /&gt;&lt;/a&gt;From now on to the next &lt;a href="http://www.sugarlabs.org/"&gt;Sugar&lt;/a&gt; release in about 6 months (0.90), I'm going to be working on improving the collaboration stack in Sugar, graciously sponsored by &lt;a href="http://www.collabora.co.uk/"&gt;Collabora&lt;/a&gt;. Collabora employees developed almost all of the collaboration code in Sugar, and are the main force behind the &lt;a href="http://telepathy.freedesktop.org/wiki/"&gt;Telepathy framework&lt;/a&gt;, on which Sugar's collaboration is based. Though pervasive collaboration is one of the major features of Sugar, it hasn't been funded for a long time and there's large room for improvement, also due to the new developments in Telepathy. My work will aim to make presence and collaboration more reliable and to put the pieces in place for enriching the experience with the new features in Telepathy.&lt;br /&gt;&lt;br /&gt;Collabora has almost 5 years of experience in open source software so they know very well that for a project to survive, someone needs to take the role of software maintenance, and that's why they are going to be sponsoring me as well 1-2 days per week of maintenance work. Maintenance work includes tasks such as reviewing proposed changes, maintaining the bug database, participating in community discussions, welcoming new contributors, making new releases, etc, and is fundamental in keeping an open source project such as Sugar alive. That's why I would like to put a call for our many users of Sugar to help the other maintainers keep doing their work by supporting them financially. As of today the only Sugar maintainers that are paid anything for doing their job are &lt;a href="http://sayamindu.randomink.org/profile/"&gt;Sayamindu&lt;/a&gt; and me, and this is not sustainable.&lt;br /&gt;&lt;br /&gt;The grunt of the work will be dropping custom code that was developed ad-hoc in the early days and making Sugar use instead new developments in Telepathy. Many of the bugs we see today in collaboration are due to the several layers on which collaboration information is cached. By &lt;a href="http://bugs.sugarlabs.org/ticket/416"&gt;dropping&lt;/a&gt; the &lt;a href="http://wiki.sugarlabs.org/go/Development_Team/Release/Modules#sugar-presence-service"&gt;Presence Service&lt;/a&gt; and having activities call Telepathy directly, we'll improve the reliability of presence and collaboration.&lt;br /&gt;&lt;br /&gt;There's also code in Telepathy that is exclusively for Sugar and that is redundant now due to new developments in other parts of Telepathy. I will be working as well in making Sugar don't need those specific mechanisms because the Telepathy maintainers will drop those pieces at some point and Sugar cannot be left behind. As well, Sugar depends on the server being configured in an specific way, breaking collaboration with non-Sugar specific servers, there will be work as well to remove this limitation.&lt;br /&gt;&lt;br /&gt;By using the same pieces as other environments such as GNOME and MeeGo, Sugar will be closer to the development of those platforms and will be in a better position to take advantage from new features. We'll be reducing as well the effort required to maintain and further develop our collaboration stack, and we'll be sharing with others the burden of keeping our collaboration foundations solid.&lt;br /&gt;&lt;br /&gt;Many of the changes will be under the hood and won't be seen nor by users nor by activity developers. Other changes will affect developers because API that they were using won't be there any more, I'm going of course to try to minimize this as much as possible. Other changes will impact the UI, mostly by adding new features, but sometimes will be changes required to make Sugar closer to the other Telepathy clients. I will be starting discussions very soon about all these changes so we can find the best solutions for each.&lt;br /&gt;&lt;br /&gt;In summary, Sugar will improve in these ways:&lt;br /&gt;&lt;br /&gt;- the collaboration code will be smaller and simpler,&lt;br /&gt;&lt;br /&gt;- Sugar users will be able to collaborate through more networks, with more protocols, and with people not using Sugar,&lt;br /&gt;&lt;br /&gt;- Sugar will be more compatible with future versions of Telepathy,&lt;br /&gt;&lt;br /&gt;- we'll have a simpler path to acquire recent and upcoming features in Telepathy and related frameworks, such as VOIP and video calls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-1983650512217693308?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/1983650512217693308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=1983650512217693308' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1983650512217693308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/1983650512217693308'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/03/my-focus-during-090-collaboration.html' title='My focus during 0.90: Collaboration'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OoKpv4QinxI/S4412YJfc4I/AAAAAAAAALE/W1YHzlQdtRA/s72-c/collabora_logo.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-5231003372666970657</id><published>2010-02-26T17:20:00.002+01:00</published><updated>2010-02-26T17:31:12.137+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Make Your Own Sugar Activities!</title><content type='html'>James Simmons has been working for the last months in a manual about writing activities for the &lt;a href="http://www.sugarlabs.org/"&gt;Sugar platform&lt;/a&gt;, you can get it from the &lt;a href="http://en.flossmanuals.net/"&gt;FLOSS Manuals site&lt;/a&gt; along other Sugar and FLOSS documentation.&lt;br /&gt;&lt;br /&gt;If you had wanted to contribute to the pool of educational activities for Sugar and found it hard to get all the details right, it should be now much easier for you to help more children around the world to get better learning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-5231003372666970657?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/5231003372666970657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=5231003372666970657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5231003372666970657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5231003372666970657'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/02/make-your-own-sugar-activities.html' title='Make Your Own Sugar Activities!'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-5817380810764251800</id><published>2010-02-24T17:16:00.006+01:00</published><updated>2010-02-24T19:33:50.562+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='igalia'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Visit to Igalia</title><content type='html'>&lt;div style="float:right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OoKpv4QinxI/S4Vsk6Y-iLI/AAAAAAAAAKY/1oufk7vI2DE/s1600-h/3480415920_34a3c4cd74_b.jpg"&gt;&lt;img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_OoKpv4QinxI/S4Vsk6Y-iLI/AAAAAAAAAKY/1oufk7vI2DE/s200/3480415920_34a3c4cd74_b.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5441875106152220850" /&gt;&lt;/a&gt;&lt;div style="font-size: small"&gt;&lt;a href="http://www.flickr.com/photos/bertogg/3480415920/"&gt;New Igalia office&lt;/a&gt; by &lt;div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/bertogg/3480415920/"&gt;&lt;a rel="cc:attributionURL" href="http://www.flickr.com/photos/bertogg/"&gt;Berto Garcia&lt;/a&gt; under &lt;a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/"&gt;CC BY-SA 2.0&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;A couple of weeks ago I spent two days with the colleagues at &lt;a href="http://www.igalia.com/"&gt;Igalia&lt;/a&gt;, talking about &lt;a href="http://www.sugarlabs.org/"&gt;Sugar&lt;/a&gt; and other &lt;a href="http://www.gnome.org/"&gt;GNOME&lt;/a&gt; stuff. The goals were to brief them on the current state of Sugar - from the technical, community and business points of view, and to discuss ways in which they could contribute to this adventure of using computers to improve education everywhere. As a company, Igalia has a strong interest in Sugar because of their social mission, which they take very seriously, and also because of their 8 years of GNOME, &lt;a href="http://www.freedesktop.org/wiki/"&gt;Freedesktop&lt;/a&gt; and Linux experience, which allows them to jump into Sugar without further investments.&lt;br /&gt;&lt;br /&gt;The morning of the first day was spent with &lt;a href="http://blogs.igalia.com/juanjo/"&gt;Juan José Sánchez&lt;/a&gt;, who explained to me the ways in which they are a special company. Igalia's management structure is very flat, with responsibility fairly distributed among its partners, which are 70% of its employees. This means among other things that when the company participates in a project, the people working on it are going to be more committed than if they just were assigned by their managers.&lt;br /&gt;&lt;br /&gt;&lt;div style="float:right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OoKpv4QinxI/S4VmMOiY4TI/AAAAAAAAAKI/FmxAqfUVz9Q/s1600-h/4350069932_0f5fb2efa7_b.jpg"&gt;&lt;img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://4.bp.blogspot.com/_OoKpv4QinxI/S4VmMOiY4TI/AAAAAAAAAKI/FmxAqfUVz9Q/s200/4350069932_0f5fb2efa7_b.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5441868084993909042" /&gt;&lt;div style="font-size: small"&gt;&lt;a href="http://www.flickr.com/photos/mariosp/4350069932/"&gt;Tomeu Vizoso in Igalia&lt;/a&gt; by &lt;div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/mariosp/4350069932/"&gt;&lt;a rel="cc:attributionURL" href="http://www.flickr.com/photos/mariosp/"&gt;Mario Sánchez&lt;/a&gt; under &lt;a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/"&gt;CC BY-SA 2.0&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;The first talk started that day after lunch, intended to give an overview of Sugar's origins, its present state and perspectives of future. The goal was two-fold: give them enough background so they could more efficiently jump into the community, and present a case of a FOSS project to the &lt;a href="http://www.igalia.com/events/master/"&gt;Master on Free Software&lt;/a&gt; students. The best of the session was without doubt their questions and the discussions that ensued afterwards, I'm happy I was able to pick their interest! The slides (in Spanish) can be found &lt;a href="http://wiki.sugarlabs.org/images/3/3b/SugarIgalia.odp"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="float:right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OoKpv4QinxI/S4VmnuMI8DI/AAAAAAAAAKQ/PoGQKg6s6zA/s1600-h/4348479361_a5ac281219_b.jpg"&gt;&lt;img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_OoKpv4QinxI/S4VmnuMI8DI/AAAAAAAAAKQ/PoGQKg6s6zA/s200/4348479361_a5ac281219_b.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5441868557346992178" /&gt;&lt;div style="font-size: small"&gt;&lt;a href="http://www.flickr.com/photos/amaneiro/4348479361/"&gt;Hacking session on sugar, by Tomeu Vizoso&lt;/a&gt; by &lt;div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/amaneiro/4348479361/"&gt;&lt;a rel="cc:attributionURL" href="http://www.flickr.com/photos/amaneiro/"&gt;Andrés Maneiro&lt;/a&gt; under &lt;a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/"&gt;CC BY-SA 2.0&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;After a break, we held a workshop about hacking on Sugar. The audience had a varied technical background, including experienced GNOME developers but also students of the &lt;a href="http://www.igalia.com/events/master/"&gt;Master on Free Software&lt;/a&gt; with little or no knowledge of GNOME hacking, so I tried to jump over the details that are not specific to Sugar and to highlight the specifics of contributing code to Sugar, in the hope that our online resources will be able to fill the gaps. I started introducing them to our &lt;a href="http://live.gnome.org/Jhbuild"&gt;jhbuild&lt;/a&gt; instance, went quickly through the &lt;a href="http://wiki.sugarlabs.org/go/Development_Team/Release/Modules"&gt;core modules&lt;/a&gt; in &lt;a href="http://git.sugarlabs.org/"&gt;git&lt;/a&gt;, explained the &lt;a href="http://wiki.sugarlabs.org/go/Development_Team/Code_Review"&gt;code review process&lt;/a&gt; and went through the process of contributing a trivial bugfix. Then moved to activities, explaining the layout of a simple Python activity and then the &lt;a href="http://wiki.sugarlabs.org/go/Development_Team/Low-level_Activity_API#X_Properties"&gt;couple of X window properties&lt;/a&gt; that need to be set so the Sugar shell can recognize a top level window as belonging to an activity. We also spent some time peeking inside a few Sugar activities such as Browse and Write.&lt;br /&gt;&lt;br /&gt;Morning next day, several Igalians approached me to talk about the different ways in which Sugar could benefit from their work:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.igalia.com/svillar"&gt;Sergio Villar&lt;/a&gt; showed me the work that has gone recently into &lt;a href="http://tinymail.org/"&gt;Tinymail&lt;/a&gt; (a library that provides an email backend) clients using different toolkits. They have been refactoring &lt;a href="http://modest.garage.maemo.org/"&gt;Modest&lt;/a&gt; so more code can be shared between the &lt;a href="http://en.wikipedia.org/wiki/Hildon"&gt;Hildon&lt;/a&gt; and &lt;a href="http://www.gtk.org/"&gt;Gtk+&lt;/a&gt; based versions, paving the way for more Tinymail-based experiences. Though we haven't heard calls often for an email client in Sugar, this may be due to the fact that we hear most about Sugar deployments that are well connected to Internet, thus being able to use an on-line email service. This makes me think that there may be indeed a need for an email client that allows an async experience, for places with intermittent connectivity such as remote Peru where often not even electricity is available. Sergio has been quick to test his ideas and has &lt;a href="http://blogs.igalia.com/svillar/2010/02/15/some-modest-sir-sure-with-sugar-please/"&gt;blogged about it already&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.igalia.com/apinheiro/"&gt;Alejandro Piñeiro&lt;/a&gt; talked to me about his work on the accessibility layers in the GNOME stack. He has been working recently on the accessibility bits in &lt;a href="http://live.gnome.org/Cally"&gt;Clutter&lt;/a&gt; and &lt;a href="http://maemo.gitorious.org/hail?page=2"&gt;Hildon&lt;/a&gt;, so already has a very good idea of the work needed in the Sugar shell and toolkit so screen readers such as Orca can do their job. This will play a very important part in Sugar's accessibility story, on which I hope to write soon in more detail here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.igalia.com/itoral/"&gt;Iago Toral&lt;/a&gt; has worked in the multimedia infrastructure for &lt;a href="http://maemo.org/"&gt;Maemo&lt;/a&gt; and has recently been involved in &lt;a href="http://gitorious.org/grilo"&gt;Grilo&lt;/a&gt;, a framework for media acquisition and reproduction. He envisioned an activity that would provide a rich UI for searching, browsing and reproducing educational media. These UIs already exist in the form of web apps, but an activity could have benefits such as more responsive and focused UIs, automatic caching, using secondary sources depending on connectivity, etc. We still need to understand better how Grilo could grow support for users &lt;span style="font-style:italic;"&gt;contributing&lt;/span&gt; media to online services.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.igalia.com/mario/"&gt;Mario Sánchez&lt;/a&gt; and Juan José Sánchez took some time to discuss how &lt;a href="http://live.gnome.org/WebKitGtk"&gt;WebKit/GTK+&lt;/a&gt; could be put to use in the Sugar platform (though we already use it in Read for rendering EPUB books). We discussed the feasibility of adapting Epiphany to run as an activity, and also port the Browse activity to use Webkit instead of Mozilla. This can be very important for Sugar, because distros such as Ubuntu are talking about dropping support for embedders of Mozilla, and because WebKit/GTK+'s accessibility is improving very quickly because of Igalia's work.&lt;br /&gt;&lt;br /&gt;As you can see, this has been an incredibly productive trip, bringing on the table several opportunities for growing Sugar on top of new GNOME technologies, on which Igalia has an impressive knowledge. I'm also very happy to see the interest that Sugar has raised on our colleagues from Igalia, and I'm very confident on their capability to make excellent contributions to Sugar if they chose to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-5817380810764251800?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/5817380810764251800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=5817380810764251800' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5817380810764251800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5817380810764251800'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/02/visit-to-igalia.html' title='Visit to Igalia'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OoKpv4QinxI/S4Vsk6Y-iLI/AAAAAAAAAKY/1oufk7vI2DE/s72-c/3480415920_34a3c4cd74_b.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-664175667937540078.post-5700001053632493114</id><published>2010-02-15T13:18:00.002+01:00</published><updated>2010-02-15T13:23:41.232+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trisquel'/><category scheme='http://www.blogger.com/atom/ns#' term='sugar'/><category scheme='http://www.blogger.com/atom/ns#' term='fsf'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>Free love</title><content type='html'>A fan of free software sent this greeting yesterday to me, addressed to the Sugar community and to other free software projects:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://file.status.net/identica/openuniverse-20100214T113540-ku7fg26.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 276px; height: 299px;" src="http://file.status.net/identica/openuniverse-20100214T113540-ku7fg26.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;blockquote&gt;free software foundation suggests people send valentine's greetings to free software developers. i could be wrong, but i think it's a great idea. i don't get many excuses to bother devs with thank yous.&lt;br /&gt;&lt;br /&gt;i'm not only a huge fan of sugar. i have sugar to thank for helping introduce me to all of these: linux-libre (via trisquel-con-sugar) trisquel, python, gnewsense. i tried trisquel because it included sugar, i learned python because of pippy. after 25 years of coding in basic, python is probably my favorite language.&lt;br /&gt;&lt;br /&gt;i know sugar is developed for kids and that's great. i learned basic as a kid, and i believe very strongly in pippy and i think turtleart is absolutely ingenious.&lt;br /&gt;&lt;br /&gt;i know i have (a) team(s) to thank, but in the interest of not making spam filters angry and retributive i'm just sending this valentine to you. maybe you'll share it? thanks everyone.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/664175667937540078-5700001053632493114?l=blog.tomeuvizoso.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tomeuvizoso.net/feeds/5700001053632493114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=664175667937540078&amp;postID=5700001053632493114' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5700001053632493114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/664175667937540078/posts/default/5700001053632493114'/><link rel='alternate' type='text/html' href='http://blog.tomeuvizoso.net/2010/02/free-love.html' title='Free love'/><author><name>Tomeu Vizoso</name><uri>http://www.blogger.com/profile/16626407169435386757</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13853388525829400939'/></author><thr:total>1</thr:total></entry></feed>