<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pygtk on John Stowers</title><link>https://johnstowers.co.nz/tags/pygtk/</link><description>Recent content in Pygtk on John Stowers</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 03 Apr 2011 14:48:08 +0000</lastBuildDate><atom:link href="https://johnstowers.co.nz/tags/pygtk/index.xml" rel="self" type="application/rss+xml"/><item><title>End of an Era: PyGTK</title><link>https://johnstowers.co.nz/2011/04/03/end-of-an-era-pygtk/</link><pubDate>Sun, 03 Apr 2011 14:48:08 +0000</pubDate><guid>https://johnstowers.co.nz/2011/04/03/end-of-an-era-pygtk/</guid><description>&lt;p&gt;I just &lt;a href="http://mail.gnome.org/archives/gnome-announce-list/2011-April/msg00002.html" rel="noopener"&gt;released&lt;/a&gt;
 PyGTK 2.24, which will almost certainly be the last major &lt;a href="http://www.pygtk.org" rel="noopener"&gt;PyGTK&lt;/a&gt;
 release. The future of Python on the GNOME platform is &lt;a href="http://live.gnome.org/PyGObject" rel="noopener"&gt;PyGObject + GObject Introspection&lt;/a&gt;
. From my experience over the last few months porting a number of my projects, the future is bright.&lt;/p&gt;
&lt;p&gt;In a cruel twist of irony, the state of PyGTK on Windows and Mac has never been better. The credit for the windows work (and some great documentation improvements this cycle) must go to Dieter Verfaillie&lt;/p&gt;</description></item><item><title>PyGTK All-in-one Installer for Windows</title><link>https://johnstowers.co.nz/2010/12/24/pygtk-all-in-one-installer-for-windows/</link><pubDate>Fri, 24 Dec 2010 20:18:25 +0000</pubDate><guid>https://johnstowers.co.nz/2010/12/24/pygtk-all-in-one-installer-for-windows/</guid><description>&lt;p&gt;The PyGTK team is pleased to &lt;a href="http://www.daa.com.au/pipermail/pygtk/2010-December/019296.html" rel="noopener"&gt;announce&lt;/a&gt;
 the return of the highly popular all-in-one installer for Windows.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The PyGTK All-in-one installer provides an alternative installation method for PyGTK users on Windows. It bundles PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, the gtk+-bundle and Glade in one handy installer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Currently 32 bit Python 2.6 and 2.7 versions are supported on Windows XP and above.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://download.gnome.org/binaries/win32/pygtk/2.22/" rel="noopener"&gt;Download&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/dieterv/pygtk-installer/blob/master/README.rst" rel="noopener"&gt;README&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://github.com/dieterv" rel="noopener"&gt;Dieter Verfaillie&lt;/a&gt;
 deserves enormous thanks for this work. Firstly, he performed the tedious job of ensuring that all the component MSI installers were exactly correct, and secondly, the really difficult task of deconstructing these individual installers and reassembling their contents into a single cohesive executable.&lt;/p&gt;</description></item><item><title>Misc Hacking</title><link>https://johnstowers.co.nz/2010/01/22/misc-hacking/</link><pubDate>Fri, 22 Jan 2010 11:22:39 +0000</pubDate><guid>https://johnstowers.co.nz/2010/01/22/misc-hacking/</guid><description>&lt;p&gt;I had two days off while I moved offices, so I got a chance to catch up on my backlog of random hacking.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;osm-gps-map&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I released &lt;a href="http://nzjrs.github.com/osm-gps-map/" rel="noopener"&gt;osm-gps-map&lt;/a&gt;
 v0.5.0 which adds a few new features (such as keyboard navigation) but also contains many bugfixes and performance improvements. Check the &lt;a href="http://mail.gnome.org/archives/gnome-announce-list/2010-January/msg00063.html" rel="noopener"&gt;release notes&lt;/a&gt;
 for more information. The next item on the TODO is merging the OSD/layers branch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conduit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I &lt;a href="http://mail.gnome.org/archives/gnome-announce-list/2010-January/msg00064.html" rel="noopener"&gt;released Conduit 0.3.17&lt;/a&gt;
 which was long overdue. Mostly a bugfix release and updating to new API. The &lt;a href="http://live.gnome.org/Conduit" rel="noopener"&gt;Conduit homepage&lt;/a&gt;
 has also moved to live.gnome.org. Progress on Conduit is a bit slow at the moment, it does everything I want it to (I have a budget cellphone so phone synce does not interest me), and is pretty stable. I have some SOC work I would like to merge, but basically I am looking for developers and inspiration&amp;hellip;&lt;/p&gt;</description></item><item><title>Gtk+ Map Widget</title><link>https://johnstowers.co.nz/2010/01/11/gtk-map-widget/</link><pubDate>Mon, 11 Jan 2010 01:14:06 +0000</pubDate><guid>https://johnstowers.co.nz/2010/01/11/gtk-map-widget/</guid><description>&lt;p&gt;It has been a long time between blogs. I thought I should talk about the piece of software that has been responsible for the most emails in my inbox over the last few days - &lt;a href="http://nzjrs.github.com/osm-gps-map/" rel="noopener"&gt;osm-gps-map, the Gtk+ based map widget&lt;/a&gt;
. What started as a widget for use in one small application of mine has grown considerably.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;I recently r&lt;a href="http://mail.gnome.org/archives/gnome-announce-list/2010-January/msg00020.html" rel="noopener"&gt;eleased 0.4.0&lt;/a&gt;
, a bugfix release.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I created a &lt;a href="http://groups.google.com/group/osm-gps-map" rel="noopener"&gt;mailing list&lt;/a&gt;
, if you are a user or interested osm-gps-map, them please join.&lt;/p&gt;</description></item><item><title>Back into the swing of things</title><link>https://johnstowers.co.nz/2009/01/22/back-into-the-swing-of-things/</link><pubDate>Thu, 22 Jan 2009 01:38:06 +0000</pubDate><guid>https://johnstowers.co.nz/2009/01/22/back-into-the-swing-of-things/</guid><description>&lt;p&gt;It has been a long time between posts, but I am back in New Zealand now, and vowing to get back on top of this blogging thing. I will post more in the coming weeks about my time in France with the &lt;a href="http://www.enac.fr/" rel="noopener"&gt;ENAC&lt;/a&gt;
 crew, but I will start today small; by releasing some code I have been hacking on.&lt;/p&gt;
&lt;p&gt;I wanted a small project to get back into the desktop development mindset after being in the embedded C (ARM 7 LPC2148) and OpenEmbedded (Beagleboard and Gumsix Overo) world for a while. I am also ecstatic that git was clearly the most popular DVCS in the recent survey, I really hope it provides the impetus for GNOME to move to a DVCS.&lt;/p&gt;</description></item><item><title>Threading and (py)Gtk</title><link>https://johnstowers.co.nz/2007/03/12/threading-and-pygtk/</link><pubDate>Mon, 12 Mar 2007 02:58:31 +0000</pubDate><guid>https://johnstowers.co.nz/2007/03/12/threading-and-pygtk/</guid><description>&lt;p&gt;At the request of a few people I have made a &lt;a href="http://gist.github.com/51686" rel="noopener"&gt;demo to share&lt;/a&gt;
, showing how I do threading in a pygtk application (&lt;a href="http://www.conduit-project.org" rel="noopener"&gt;Conduit&lt;/a&gt;
). I find the following approach seems to work reliably and requires little code. Other approaches can be found &lt;a href="http://aruiz.typepad.com/siliconisland/2006/04/threads_on_pygt.html" rel="noopener"&gt;here&lt;/a&gt;
 and &lt;a href="http://live.gnome.org/PyGTK/FAQ/MainLoopAndThreading" rel="noopener"&gt;here&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;This approach takes advantage of the fact that signal emission in glib has been threadsafe since glib 2.8 (IIRC). All communication with the GUI is done via gobject signals. There is definitely a compromise in the level of GUI fiddling that you can do, particularly when compared with the &lt;em&gt;threads_enter/leave&lt;/em&gt; approach. However, I have found this signal based approach sufficent in my case, and that it encourages me to decouple the slow blocking tasks from the GUI.&lt;/p&gt;</description></item></channel></rss>