<?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:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-20155916</id><updated>2012-01-28T18:37:38.753+11:00</updated><title type='text'>Bob's development blog</title><subtitle type='html'>Musings on open-source, GNOME, Ubuntu etc</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default?start-index=101&amp;max-results=100'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>173</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20155916.post-4754345789881152552</id><published>2011-12-08T16:25:00.001+11:00</published><updated>2011-12-08T16:44:59.570+11:00</updated><title type='text'>Gnome Games Modernisation</title><content type='html'>The &lt;a href="https://live.gnome.org/GnomeGames"&gt;GNOME Games project&lt;/a&gt; maintains fifteen small "five-minute" games for the GNOME desktop.&lt;br /&gt;&lt;br /&gt;Unfortunately over time the games have struggled to keep up with the latest GNOME technology due to the time required to do this.&amp;nbsp; And the further behind we've got the harder it is for new developers to get involved as the code is hard to work with.&lt;br /&gt;&lt;br /&gt;So the time has come for a great modernising.&amp;nbsp; And here's where you fit it :) &lt;br /&gt;&lt;br /&gt;We've picked eight of the games we think are the best and we want to focus on bringing them up to modern standards.&amp;nbsp; The games are Chess, Five or More, Mines, Iagno, Mahjongg, Sudoku and Swell Foop.&amp;nbsp; These games all have been or are in progress of being ported to &lt;a href="https://live.gnome.org/Vala"&gt;Vala&lt;/a&gt;.&amp;nbsp; Vala is a modern programming language that will be familiar to anyone who has used Java or C#.&lt;br /&gt;&lt;br /&gt;We have a Matrix of things to do:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://live.gnome.org/GnomeGames/Modernisation" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" src="http://2.bp.blogspot.com/-asPRcI-_toI/TuBKRnHJ17I/AAAAAAAAFuo/5v4EZEmqdzM/s400/Gnome+Games+Modernisation+Matrix.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;with the goal being to turn everything to green.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, if you're interested in helping out follow any of the bug links and start fixing the bugs!&amp;nbsp; All the tasks should be able to be completed independently and shouldn't be too complex to achieve.&amp;nbsp; Anyone is welcome to attempt these and there are non-coding tasks (documentation and design).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4754345789881152552?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4754345789881152552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4754345789881152552' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4754345789881152552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4754345789881152552'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/12/gnome-games-modernisation.html' title='Gnome Games Modernisation'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-asPRcI-_toI/TuBKRnHJ17I/AAAAAAAAFuo/5v4EZEmqdzM/s72-c/Gnome+Games+Modernisation+Matrix.png' height='72' width='72'/><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5726279333447186317</id><published>2011-09-10T11:25:00.001+10:00</published><updated>2011-09-10T11:26:00.265+10:00</updated><title type='text'>GNOME OS</title><content type='html'>There was a very good &lt;a href="http://derstandard.at/1313024283546/Interview-GNOME-Designer-Jon-McCann-about-the-future-of-GNOME3"&gt;interview with Jon McCann&lt;/a&gt; recently about GNOME 3 and GNOME OS.&amp;nbsp; Reading public comments on this interview showed a lot of negativity which I think missed the good points.&lt;br /&gt;&lt;br /&gt;GNOME OS is unfortunately very &lt;a href="http://blogs.gnome.org/mccann/2010/08/01/shell-yes/"&gt;loosely defined&lt;/a&gt;, but from what I can gather it's essentially controlling the entire stack that GNOME is to make a better experience and make it easier to work on the project.&lt;br /&gt;&lt;br /&gt;What I like about this strategy:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It's focuses on the users that GNOME is targeted at.&amp;nbsp; We've had a strong direction since GNOME 2 days and the focus on features that these users need through design is the right way of getting there.&lt;/li&gt;&lt;li&gt;It's dropping old desktop metaphors and moving to new ones.&amp;nbsp; There are other desktops like XFCE which will continue the Windows 95 desktop metaphor and be successful with it; it's right for GNOME to move on and be more cutting edge.&lt;/li&gt;&lt;/ul&gt;What I don't like about it:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It downplays the value of GNOME as a "box of bits".&amp;nbsp; The drum I'm banging at the moment is about &lt;a href="http://bobthegnome.blogspot.com/2011/09/desktop-common-ground.html"&gt;sharing infrastructure&lt;/a&gt;.&amp;nbsp; This is something GNOME has been very successful with in the past and discouraging this cuts off a lot of places where GNOME can get investment from other projects.&lt;/li&gt;&lt;li&gt;It puts very strong requirements on distributors which they don't want to / can't meet.&amp;nbsp; GNOME is not like Apple, it can't control the entire stack from hardware to sales.&amp;nbsp; It needs to work with distributors or have a distribution strategy.&amp;nbsp; &lt;a href="http://bobthegnome.blogspot.com/2011/05/razing-bazaar.html"&gt;Building a perfect desktop is not enough&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;The impression I get is GNOME OS is now effectively the strategy of GNOME and it's generally a good direction.&amp;nbsp; We need to make sure to flesh it out and ensure that we can have sustained development in GNOME and get wide distribution. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5726279333447186317?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5726279333447186317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5726279333447186317' title='34 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5726279333447186317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5726279333447186317'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/09/gnome-os.html' title='GNOME OS'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>34</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7648199390085280468</id><published>2011-09-10T10:55:00.001+10:00</published><updated>2011-09-10T10:56:01.561+10:00</updated><title type='text'>Desktop common ground</title><content type='html'>There's a common argument that you hear about open source desktops which goes something like "we have less than 1% market share; the other desktops are laughing at us; we should pool together and make a real contender".&lt;br /&gt;&lt;br /&gt;&lt;i&gt;And you know what, they're right!&lt;/i&gt;&amp;nbsp; We don't have a significant market share, and we're not at the point where we have a truly amazing desktop experience (but we're getting closer).&amp;nbsp; Anything we can do to get there faster must be a good thing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;And you know what, they're wrong&lt;/i&gt;.&amp;nbsp; We don't have a finite developer resource.&amp;nbsp; Open-source is amazing like that - when a project starts that people care about suddenly the community grows.&amp;nbsp; Trying to mash everyone together into one project wouldn't work and would probably make us even slower.&amp;nbsp; Putting all our eggs in one basket is a big risk.&lt;br /&gt;&lt;br /&gt;How can we share resources to grow that market share without pushing us together into a big compromise?&amp;nbsp; We need to &lt;b&gt;share infrastructure&lt;/b&gt;.&amp;nbsp; What we need is a &lt;a href="http://en.wikipedia.org/wiki/POSIX"&gt;POSIX&lt;/a&gt; for the 21st century.&amp;nbsp; We've been slowly building this with things like the Linux, D-Bus, X, GStreamer.&amp;nbsp; We can do more. &lt;br /&gt;&lt;br /&gt;There's been a rise in design thinking in Open-Source which has been really good for everyone.&amp;nbsp; But I think the pendulum has swung too far.&amp;nbsp; User experience is not the only factor in deciding what to do.&amp;nbsp; Infrastructure is expensive.&amp;nbsp; Every bad API is slowing us down progress on the layers above it.&amp;nbsp; Every desktop developer that dives into infrastructure is not working on those layers either.&lt;br /&gt;&lt;br /&gt;Sharing is hard.&amp;nbsp; But the cost of not sharing is huge.&amp;nbsp; Lets make sure the infrastructure we're building for tomorrow works cross-desktop and we can share those costs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7648199390085280468?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7648199390085280468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7648199390085280468' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7648199390085280468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7648199390085280468'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/09/desktop-common-ground.html' title='Desktop common ground'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3910160400455545110</id><published>2011-09-01T22:30:00.002+10:00</published><updated>2011-09-01T22:30:38.155+10:00</updated><title type='text'>Desktop Summit 2011</title><content type='html'>Last month I attended the &lt;a href="https://www.desktopsummit.org/%20"&gt;Desktop Summit 2011&lt;/a&gt; in Berlin.&amp;nbsp; Unfortunately I was only there for the core days because Berlin is an awesome city and the summit is awesome too.&lt;br /&gt;&lt;br /&gt;The quality of the talks this year were great, and I only had one or two slots the whole time where there was nothing I wanted to go to.&amp;nbsp; This summit felt more integrated than the last one and I hope this continues into the future.&lt;br /&gt;&lt;br /&gt;Some highlights: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;There was a good response to &lt;a href="https://www.desktopsummit.org/program/sessions/lightdm-cross-desktop-display-manager%20"&gt;LightDM&lt;/a&gt;.&amp;nbsp; I felt my talk had a lack of GNOME people present, but I think the GTK4 talk may have absorbed them.&lt;/li&gt;&lt;li&gt;Lennart did a well researched talk on &lt;a href="https://www.desktopsummit.org/program/sessions/systemd-and-login-sessions"&gt;revamping the login system&lt;/a&gt; which sounds very good and left me wanting to know more.&lt;/li&gt;&lt;li&gt;From what I heard the future of &lt;a href="https://www.desktopsummit.org/program/sessions/gtk-4-future-your-favorite-toolkit"&gt;GTK+4 and Clutter&lt;/a&gt; looks very promising, but I haven't been able to see the talk as I was doing mine.&amp;nbsp; Can't wait for the videos to come out so I can find out more.&lt;/li&gt;&lt;li&gt;Vincent Untz is did a really thoughtful talk on his &lt;a href="https://www.desktopsummit.org/program/sessions/ramblings-retired-release-manager"&gt;experiences as a GNOME release manager&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;GNOME Shell seems to be progressing very well and there were a lot of talks on it.&lt;/li&gt;&lt;li&gt;Plasma/KDE also seems to be doing a lot of innovation.&lt;/li&gt;&lt;/ul&gt;Some negatives: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;There was basically no mention of Unity.&lt;/li&gt;&lt;li&gt;There was the usual amount of Canonical bashing and it's not helping anyone.&amp;nbsp; The &lt;a href="https://www.desktopsummit.org/program/sessions/gnome-state-union"&gt;GNOME State of the Union&lt;/a&gt; had too many cheap jabs and the half hearted laughter shows it's just not funny anymore.&lt;/li&gt;&lt;li&gt;There was a lack of Canonical people present, and it was commented on numerous times.&amp;nbsp; I'm personally not surprised, as every year more of my colleagues just don't want to be there.&amp;nbsp; Andrea Cimitan, who is a great guy, summed it up when he &lt;a href="https://plus.google.com/107658363031614745288/posts/A5gGxbomXSb"&gt;said on Google+&lt;/a&gt; "&lt;span class="zj"&gt;when I say around here I'm working for "Canonical", people stop smiling :)".&lt;/span&gt;&lt;/li&gt;&lt;li&gt;There was little mention of GNOME OS.&amp;nbsp; Sometimes we need to be more than just hackers talking about technology and really talk more about planning and strategy.&lt;/li&gt;&lt;/ul&gt;What I'd like to see at the next summit:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Increased visibility of other desktops - it still feels very GNOME and KDE centric, I think we can learn a lot from projects like XFCE, LXDE, Elementary, Unity etc.&lt;/li&gt;&lt;li&gt;Increased collaboration on infrastructure - we need to get freedesktop.org in a better shape so we can pool out resources on the boring stuff and focus more on the user facing component which make us successful.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3910160400455545110?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3910160400455545110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3910160400455545110' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3910160400455545110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3910160400455545110'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/09/desktop-summit-2011.html' title='Desktop Summit 2011'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6673470152499482008</id><published>2011-09-01T11:32:00.000+10:00</published><updated>2011-09-01T11:32:02.882+10:00</updated><title type='text'>Broken PDFs in Simple Scan</title><content type='html'>Since version 2.32 Simple Scan has had a &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/741628"&gt;bug&lt;/a&gt; where it generates PDF files with invalid cross-reference tables.&amp;nbsp; The good news is this bug is now fixed, and will work correctly in simple-scan 3.2; thanks to Rafał Mużyło who &lt;a href="https://bugs.gentoo.org/show_bug.cgi?id=380429"&gt;diagnosed this&lt;/a&gt;.&amp;nbsp; You may not have noticed this bug as a number of PDF readers handle these types of failures and rebuild the table (e.g. Evince).&amp;nbsp; It was noticed that some versions of Adobe Reader do not handle these failures.&lt;br /&gt;&lt;br /&gt;I've added a command line option that can fix existing PDF files that you have generated with Simple Scan.&amp;nbsp; To use run the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;simple-scan --fix-pdf ~/Documents/*.pdf&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It should be safe to run this on all PDF documents but &lt;b&gt;PLEASE BACKUP FIRST&lt;/b&gt;.  It will copy the existing document to DocumentName.pdf~ before replacing it with the fixed version so you have those in case anything goes wrong.&lt;br /&gt;&lt;br /&gt;If you can't wait for the next simple-scan, you can also run this Python program (i.e. python fixpdf.py broken.pdf &amp;gt; fixed.pdf)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;import sys&lt;br /&gt;import re&lt;br /&gt;lines = file (sys.argv[&lt;wbr&gt;&lt;/wbr&gt;1]).readlines ()&lt;br /&gt;xref_offset = int(lines[-2])&lt;br /&gt;xref_offset = 0&lt;br /&gt;for (n, line) in enumerate (lines):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Fix PDF header and binary comment&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (n == 0 or n == 1) and line.startswith ('%%'):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;xref_&lt;wbr&gt;&lt;/wbr&gt;offset -= 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;line = line[1:]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Fix xref format&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;match = re.match ('(\d\d\&lt;wbr&gt;&lt;/wbr&gt;d\d\d\d\&lt;wbr&gt;&lt;/wbr&gt;d\d\d\d) 0000 n\n', line)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if match != None:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;offset = int (match.groups ()[0])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;line = '%010d 00000 n \n' % (offset + xref_offset)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Fix xref offset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if n == len(lines) - 2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&amp;nbsp;line = '%d\n' % (int (line) + xref_offset)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Fix EOF marker&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if n == len(lines) - 1 and line.startswith ('%%%%'):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line = line[2:]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print line,&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6673470152499482008?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6673470152499482008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6673470152499482008' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6673470152499482008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6673470152499482008'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/09/broken-pdfs-in-simple-scan.html' title='Broken PDFs in Simple Scan'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5455800244162278820</id><published>2011-08-02T23:08:00.000+10:00</published><updated>2011-08-02T23:08:02.901+10:00</updated><title type='text'>LightDM at the Desktop Summit</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I'm going to the &lt;a href="https://www.desktopsummit.org/"&gt;Desktop Summit&lt;/a&gt; and will be doing a &lt;a href="https://www.desktopsummit.org/program/sessions/lightdm-cross-desktop-display-manager"&gt;talk on LightDM&lt;/a&gt;; please come along if you're interested in this project.&amp;nbsp; It's at the same time as the &lt;a href="https://www.desktopsummit.org/program/sessions/gtk-4-future-your-favorite-toolkit"&gt;GTK4 talk&lt;/a&gt; unfortunately, but I promise I'll watch that one on video and turn up to mine...&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.desktopsummit.org/"&gt;&lt;img border="0" src="https://www.desktopsummit.org/sites/www.desktopsummit.org/files/DS2011banner.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5455800244162278820?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5455800244162278820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5455800244162278820' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5455800244162278820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5455800244162278820'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/08/lightdm-at-desktop-summit.html' title='LightDM at the Desktop Summit'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5599577410245675761</id><published>2011-05-19T12:35:00.002+10:00</published><updated>2011-05-19T14:58:20.552+10:00</updated><title type='text'>Razing the Bazaar</title><content type='html'>Currently in GNOME there is some tension as we move into the post 3.0 world about the scope and direction of the project.&amp;nbsp; I wont go into the details of this, but essentially a number of core developers are pushing for a future in which:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The scope is widened to include more as part of core GNOME.&amp;nbsp; This is to allow more control and integration to produce a better user experience.&lt;/li&gt;&lt;li&gt;The project focus is being narrowed to have tighter requirements.&amp;nbsp; This is to reduce support overhead and complexity.&lt;/li&gt;&lt;/ul&gt;This change is being pushed under the "GNOME OS" banner.&amp;nbsp; While I think these ideas are being pushed for noble reasons (to make GNOME as good as it can be), there are some serious risks I am worried about:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; If we build the perfect OS in GNOME it will not be enough.&amp;nbsp; History is littered with better products that fail to succeed.&amp;nbsp; Making an OS successful is as much about the OS design and quality as the ability to deliver that OS to end users.&lt;/li&gt;&lt;li&gt;If we base all our decision making on "what user visible change does this have?" then we risk losing innovation in our platform.&amp;nbsp; End-users are only one type of user in an OS and not all changes are relevant to them.&amp;nbsp; We have to think more in terms of "will this have a bad effect on end-users?" and look at other aspects.&lt;/li&gt;&lt;li&gt;If we narrow our focus too much we risk losing some of our current community.&amp;nbsp; The community is an enormous asset of GNOME, and not something we should take for granted.&amp;nbsp; This is not a company, and is driven by motivated individuals (some of who are then employed by companies).&amp;nbsp; There is great number of communities out there and GNOME needs to be competitive.&lt;/li&gt;&lt;li&gt;If we try and control everything then we increase the burden of maintenance onto one project.&amp;nbsp; There is no funding guaranteed to get us to GNOME 4.&amp;nbsp; We should always look (within reason) for opportunities to collaborate with other communities.&lt;/li&gt;&lt;/ul&gt;To abuse the metaphor by Eric S. Raymond it feels like we are &lt;b&gt;razing the bazaar to build the GNOME OS cathedral&lt;/b&gt;.&amp;nbsp; We have a great product in GNOME but to build it faster and better we don't have to clean up our messy edges.&amp;nbsp; The bazaar around the cathedral is interesting and fun and throws up new ideas.&amp;nbsp; It's not stopping us from achieving success.&lt;br /&gt;&lt;br /&gt;UPDATE:&amp;nbsp; Changed description of project focus, as it is confusing the point of this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5599577410245675761?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5599577410245675761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5599577410245675761' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5599577410245675761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5599577410245675761'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/05/razing-bazaar.html' title='Razing the Bazaar'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2136513280199164915</id><published>2011-03-09T09:44:00.000+11:00</published><updated>2011-03-09T09:44:23.557+11:00</updated><title type='text'>And now for some good news</title><content type='html'>With all the doom and gloom blog posts running around at the moment you may be forgetting all the awesome progress that is being made.&amp;nbsp; So I just wanted to shout out some things that are happening that I love: &lt;br /&gt;&lt;br /&gt;&lt;b&gt;GTK3&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;GTK+ has been cleaned up and it shows!&amp;nbsp; GTK is a great toolkit but it had been showing its age.&amp;nbsp; The tidying up (particularly removing the GDK stuff) has significantly reduced the learning curve.&amp;nbsp; And more improvements planned for GTK4!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GNOME Shell/Unity&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The core user interface is being pulled from the 1990s to the future!&amp;nbsp; There are real risks and challenges here but it's progress in making GNOME the front-running interface it deserves to be.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GObject Introspection&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;No more out-of-date language bindings!&amp;nbsp; With introspection information GNOME developers have huge flexibility in picking languages and all languages are first class citizens.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Vala&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A modern language for a modern desktop!&amp;nbsp; Languages like Java and C# offered a lot of promise, but never seemed to break into GNOME.&amp;nbsp; A modern language makes us more productive, attracts new experienced developers and gives us an opportunity to escape from the Albatross around our neck (C).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2136513280199164915?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2136513280199164915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2136513280199164915' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2136513280199164915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2136513280199164915'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2011/03/and-now-for-some-good-news.html' title='And now for some good news'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-9036577121198345871</id><published>2010-12-06T18:24:00.000+11:00</published><updated>2010-12-06T18:24:51.806+11:00</updated><title type='text'>Brainstorm Idea #25877: GNOME System Monitor lacks in-depth information</title><content type='html'>One of the popular &lt;a href="http://brainstorm.ubuntu.com/"&gt;Ubuntu Brainstorm&lt;/a&gt; ideas is to &lt;a href="http://brainstorm.ubuntu.com/idea/25887/"&gt;improve GNOME System Monitor&lt;/a&gt;.&amp;nbsp; This has been &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=543347"&gt;reported to the upstream project&lt;/a&gt;, and the project developers agree with the concept.&lt;br /&gt;&lt;br /&gt;There is a proposed design: (no attribution as it's not clear who made this)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://launchpadlibrarian.net/16099226/process_properties.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://launchpadlibrarian.net/16099226/process_properties.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;How can you get involved?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you have some coding skills, then consider making a patch to fix this!&amp;nbsp; This is a well-defined feature request, and should be relatively easy to get to work.&amp;nbsp; Here's how:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Comment on &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=543347"&gt;the bug&lt;/a&gt; that you are interested in working on this.&amp;nbsp; Ideally the GNOME System Monitor developers will be able to help you, but I am also watching the bug and willing to help out.&lt;/li&gt;&lt;li&gt;Get the dependencies required to build the GNOME System Monitor.&amp;nbsp; On Ubuntu this is as easy as: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sudo apt-get build-dep gnome-system-monitor&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Check out the upstream: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;git clone git://git.gnome.org/gnome-system-monitor&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: inherit;"&gt;Build and test it: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;./autogen.sh --prefix=`pwd`/install ; make ; make install ; ./install/bin/gnome-system-monitor&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: inherit;"&gt;Make some changes and repeat from step 4 until everything works.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;When you are done, do a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;git commit -a; git format-patch origin&lt;/span&gt; and attach the patch to the bug report.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: inherit;"&gt;Happy coding!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-9036577121198345871?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/9036577121198345871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=9036577121198345871' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/9036577121198345871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/9036577121198345871'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/12/brainstorm-idea-25877-gnome-system.html' title='Brainstorm Idea #25877: GNOME System Monitor lacks in-depth information'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8194705053748235667</id><published>2010-11-11T17:37:00.000+11:00</published><updated>2010-11-11T17:37:10.837+11:00</updated><title type='text'>Using the latest SANE drivers in Ubuntu 10.04, 10.10</title><content type='html'>&lt;span style="font-size: small;"&gt;If you are running Ubuntu 10.04 LTS or 10.10 and your scanner is not supported, then you can try the latest releases of the SANE  drivers from &lt;a href="https://launchpad.net/%7Erobert-ancell/+archive/sane-backends"&gt;my sane-backends PPA&lt;/a&gt;.&amp;nbsp; The following steps from the terminal will enable it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ sudo add-apt-repository ppa:robert-ancell/sane-backends&lt;br /&gt;$ sudo apt-get update&lt;br /&gt;$ sudo apt-get upgrade&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Please feedback to the &lt;a href="http://www.sane-project.org/"&gt;SANE project&lt;/a&gt; if you continue to have problems!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8194705053748235667?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8194705053748235667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8194705053748235667' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8194705053748235667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8194705053748235667'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/11/using-latest-sane-drivers-in-ubuntu.html' title='Using the latest SANE drivers in Ubuntu 10.04, 10.10'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1247905372738329209</id><published>2010-11-11T17:28:00.000+11:00</published><updated>2010-11-11T17:28:47.215+11:00</updated><title type='text'>GNOME3 PPA</title><content type='html'>In the Ubuntu Desktop team we're currently packaging GNOME 3 components for Ubuntu as per &lt;a href="https://launchpad.net/%7Eubuntu-desktop/+archive/gnome3-builds"&gt;the blueprint&lt;/a&gt; decided at the last &lt;a href="http://uds.ubuntu.com/"&gt;Ubuntu Developer Summit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you're already brave enough to be running Natty, then you can additionally try some new GNOME 3 applications by adding the &lt;a href="https://launchpad.net/%7Eubuntu-desktop/+archive/gnome3-builds"&gt;GNOME3 builds PPA&lt;/a&gt; into your sources.&amp;nbsp; Expect the usual - the packages may not work perfectly, and it's non-trivial to downgrade, so be warned!&lt;br /&gt;&lt;br /&gt;We're going to evaluate these packages in the PPA and decide how many are appropriate to include in Natty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1247905372738329209?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1247905372738329209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1247905372738329209' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1247905372738329209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1247905372738329209'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/11/gnome3-ppa.html' title='GNOME3 PPA'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5217039718660298627</id><published>2010-11-11T17:18:00.000+11:00</published><updated>2010-11-11T17:18:02.311+11:00</updated><title type='text'>LightDM status update</title><content type='html'>It must be time to update on how progress is going with &lt;a href="http://www.freedesktop.org/wiki/Software/LightDM"&gt;LightDM&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PCMan from &lt;a href="http://lxde.org/"&gt;LXDE&lt;/a&gt; wrote an awesome &lt;a href="http://lxde.git.sourceforge.net/git/gitweb.cgi?p=lxde/ldm-gtk-builder-greeter;a=tree"&gt;new greeter&lt;/a&gt; that uses GtkBuilder for layout.  This allows you to easily theme up new greeters, the default one being the old Industrial theme:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_pzVKVDOIYcQ/TNuIGKArGbI/AAAAAAAAFF4/eXHZ5RCL8Lc/s1600/LightDM+Industrial.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/_pzVKVDOIYcQ/TNuIGKArGbI/AAAAAAAAFF4/eXHZ5RCL8Lc/s320/LightDM+Industrial.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There's been some interest in writing a QT based greeter, and I hope we'll be able to show that working soon. &lt;/li&gt;&lt;li&gt;I've started to write &lt;a href="http://www.freedesktop.org/wiki/Software/LightDM"&gt;some documentation&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;I&amp;nbsp;&lt;a href="http://mail.gnome.org/archives/desktop-devel-list/2010-October/msg00226.html"&gt;non-proposed&lt;/a&gt; LightDM for inclusion in GNOME 3 (I don't feel it will be sufficiently ready in time).&amp;nbsp; This raised the idea of should we switch display managers in the future and got some good feedback.&lt;/li&gt;&lt;li&gt;We had a &lt;a href="https://blueprints.edge.launchpad.net/ubuntu/+spec/packageselection-desktop-n-display-manager"&gt;UDS session&lt;/a&gt; on LightDM which also gave some good feedback.&amp;nbsp; The outcome is that I plan to make LightDM easily installable in Ubuntu 11.04 as an alternative display manager.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5217039718660298627?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5217039718660298627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5217039718660298627' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5217039718660298627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5217039718660298627'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/11/lightdm-status-update.html' title='LightDM status update'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_pzVKVDOIYcQ/TNuIGKArGbI/AAAAAAAAFF4/eXHZ5RCL8Lc/s72-c/LightDM+Industrial.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8693909478674735053</id><published>2010-10-29T00:37:00.002+11:00</published><updated>2010-10-29T00:54:24.094+11:00</updated><title type='text'>How I Learned to Stop Worrying and Love the Vala</title><content type='html'>When I first heard of &lt;a href="http://live.gnome.org/Vala"&gt;Vala&lt;/a&gt; I was not impressed.  A &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_language"&gt;domain specific language&lt;/a&gt;?  That seems like a dead-end; how would we every attract developers to the GNOME platform?&lt;br /&gt;&lt;br /&gt;After a while of thinking about it I realised that GNOME already was in this position.  GObject+C already is a domain specific language.  New developers already have to learn GObject and finding developers who both are proficient and willing to use C can be a struggle.&lt;br /&gt;&lt;br /&gt;Recently I have been working on more and more with Vala and &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=632856"&gt;porting applications&lt;/a&gt; from PyGTK/C to it.  Before Vala, PyGTK had a lot of advantaged over C; now the main differences are easy debugging and fast development (Python) vs fast performance and type checking for easier maintenance (Vala).&lt;br /&gt;&lt;br /&gt;So, my recommendation is if you have a desktop application that uses GObject APIs* and you are happy with debugging tools like gdb and valgrind then consider using Vala!&lt;br /&gt;&lt;br /&gt;* I was working on porting &lt;a href="https://launchpad.net/lightdm"&gt;LightDM&lt;/a&gt; to Vala but old system APIs were causing difficulty.  If you have this case consider wrapping them in C+Gobject first and then interfacing to that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8693909478674735053?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8693909478674735053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8693909478674735053' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8693909478674735053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8693909478674735053'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/10/how-i-learned-to-stop-worrying-and-love.html' title='How I Learned to Stop Worrying and Love the Vala'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4837460856126599338</id><published>2010-10-29T00:24:00.002+11:00</published><updated>2010-10-29T00:36:57.614+11:00</updated><title type='text'>LightDM UDS Session</title><content type='html'>If you're interesting in any of the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Ubuntu desktop login experience&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Display managers&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The &lt;a href="https://edge.launchpad.net/lightdm"&gt;LightDM project&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Then come along to &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/packageselection-desktop-n-display-manager"&gt;my session&lt;/a&gt; at &lt;a href="http://summit.ubuntu.com/uds-n"&gt;UDS&lt;/a&gt;.  It's at 5:10pm EDT and you can join remotely by connecting with IRC to &lt;code&gt;irc.ubuntu.com #ubuntu-uds-bonaire2&lt;/code&gt; and listening in to the &lt;a href="http://icecast.ubuntu.com:8000/bonaire2.ogg.m3u"&gt;audio stream&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Everyone is welcome and I'm particularly interested in gathering requirements for derivative distributions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4837460856126599338?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4837460856126599338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4837460856126599338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4837460856126599338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4837460856126599338'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/10/lightdm-uds-session.html' title='LightDM UDS Session'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4463003504010889832</id><published>2010-07-28T01:08:00.002+10:00</published><updated>2010-07-28T01:12:42.996+10:00</updated><title type='text'>GUADEC 2010</title><content type='html'>I'm at &lt;a href="http://www.guadec.org"&gt;GUADEC&lt;/a&gt; all this week so if you have any questions/comments about &lt;a href="http://www.ubuntu.com/desktop"&gt;Ubuntu Desktop&lt;/a&gt;, &lt;a href="http://launchpad.net/lightdm"&gt;LightDM&lt;/a&gt;, &lt;a href="http://launchpad.net/simple-scan"&gt;Simple Scan&lt;/a&gt; or &lt;a href="http://live.gnome.org/Gcalctool"&gt;GCalctool&lt;/a&gt; feel free to find me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4463003504010889832?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4463003504010889832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4463003504010889832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4463003504010889832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4463003504010889832'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/07/guadec-2010.html' title='GUADEC 2010'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7473317127755793513</id><published>2010-07-05T13:04:00.004+10:00</published><updated>2010-11-11T11:58:03.677+11:00</updated><title type='text'>LightDM</title><content type='html'>I'd like to announce a side-project I've been working on: The &lt;a href="http://www.blogger.com/%20https://launchpad.net/lightdm"&gt;Light Display Manager&lt;/a&gt; (LightDM).&lt;br /&gt;&lt;h3&gt;Features?&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Fully themeable&lt;/i&gt; (easiest with the webkit interface)&lt;/li&gt;&lt;li&gt;Cross-desktop (greeters can be written in any toolkit)&lt;/li&gt;&lt;li&gt;Low-complexity codebase&lt;/li&gt;&lt;li&gt;Standards compliant (PAM, ConsoleKit, etc)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tell me about themeing...&lt;/h3&gt;This is the part I'm most excited about...&lt;br /&gt;&lt;br /&gt;You can &lt;a href="http://people.ubuntu.com/%7Erobert-ancell/lightdm/greeter.html"&gt;try the webkit interface&lt;/a&gt; online &lt;i&gt;today&lt;/i&gt;.  My HTML/CSS/Javascript skills are not great so please take that page, copy the lightdm.js include line (simulates the lightdm interface) and write an &lt;i&gt;awesome&lt;/i&gt; interface!  Please leave a comment here if you make a cool one.  Idea - make a greeter that integrates with Facebook.&lt;br /&gt;&lt;br /&gt;Got bigger plans?  Read the &lt;a href="http://people.ubuntu.com/%7Erobert-ancell/lightdm/reference/"&gt;libldmgreeter reference&lt;/a&gt;.  Idea - make an OpenGL interface that uses &lt;a href="http://en.wikipedia.org/wiki/Mii"&gt;Mii avatars&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;libldmgreeter not in the right language for you?  It supports GObject introspection so you should be able to write a greeter in any introspetion enabled languange (e.g. Python).  And the interface to lightdm is D-Bus so you can go more direct if you want.&lt;br /&gt;&lt;h3&gt;Wait, what is a display manager again?&lt;/h3&gt;The display manager handles the running of the X server (graphical display) on your system.  It also provides the login screen (greeter) to authenticate users.&lt;br /&gt;&lt;h3&gt;Who is developing this?&lt;/h3&gt;This is a personal project developed in my own time. Patches, feedback and help welcome.&lt;br /&gt;&lt;h3&gt;What about the other display managers?&lt;/h3&gt;LightDM aims to support all use cases of the current display managers, from embedded to desktop systems.  LightDM is still in early development and not suitable for use in production systems.&lt;br /&gt;&lt;h3&gt;Where can I get it?&lt;/h3&gt;Source is in Launchpad (bzr clone lp:lightdm) and &lt;a href="http://people.ubuntu.com/%7Erobert-ancell/lightdm/releases/"&gt;tarball releases&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are using Ubuntu (Lucid or Maverick) you can install it from a PPA:&lt;br /&gt;&lt;code&gt;$ sudo add-apt-repository ppa:robert-ancell/lightdm&lt;br /&gt;$ sudo apt-get update&lt;br /&gt;$ sudo apt-get install lightdm lightdm-theme-webkit lightdm-theme-gnome&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can test lightdm by running it in a window:&lt;br /&gt;&lt;code&gt;$ sudo apt-get install xserver-xephyr&lt;br /&gt;Create the file lightdm.conf:&lt;br /&gt;[Greeter]&lt;br /&gt;theme=webkit&lt;br /&gt;$ lightdm --test-mode -c lightdm.conf&lt;/code&gt;&lt;br /&gt;&lt;b&gt;11/11/2010 - Updated test instructions&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7473317127755793513?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7473317127755793513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7473317127755793513' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7473317127755793513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7473317127755793513'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/07/lightdm.html' title='LightDM'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7921293458997419567</id><published>2010-06-22T10:33:00.004+10:00</published><updated>2010-06-22T10:51:38.433+10:00</updated><title type='text'>MMS internet radio in Rhythmbox</title><content type='html'>If you listen to &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Media_Server"&gt;MMS internet radio&lt;/a&gt; in Rhythmbox and get a "Couldn't start playback" error, there is a workaround.  It could be that your stream is actually RTSP - change the mms: prefix to rtsp.&lt;br /&gt;&lt;br /&gt;e.g. mms://wms-trn-all.streaming.net.nz/trn-newstalk-zb-akl -&gt; rtsp://wms-trn-all.streaming.net.nz/trn-newstalk-zb-akl&lt;br /&gt;&lt;br /&gt;This is correctly handled by GStreamer but Rhythmbox currently &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=581885"&gt;does not handle this&lt;/a&gt;.  Other applications like Totem and Amarok work fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7921293458997419567?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7921293458997419567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7921293458997419567' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7921293458997419567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7921293458997419567'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/06/mms-internet-radio-in-rhythmbox.html' title='MMS internet radio in Rhythmbox'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7803963249833374104</id><published>2010-06-10T10:14:00.004+10:00</published><updated>2010-06-11T09:01:45.599+10:00</updated><title type='text'>PyGI in Maverick</title><content type='html'>&lt;a href="http://live.gnome.org/PyGI"&gt;PyGI&lt;/a&gt; is now available in Maverick, you can install it with the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ apt-get install python-gi gir1.0-gtk-2.0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and then write applications like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;from gi.repository import Gtk&lt;br /&gt;&lt;br /&gt;def destroy_cb(widget):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Gtk.main_quit()&lt;br /&gt;&lt;br /&gt;w = Gtk.Window()&lt;br /&gt;w.connect('destroy', destroy_cb)&lt;br /&gt;&lt;br /&gt;l = Gtk.Label()&lt;br /&gt;l.set_text("Hello World!")&lt;br /&gt;w.add(l)&lt;br /&gt;&lt;br /&gt;w.show_all()&lt;br /&gt;Gtk.main()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;br /&gt;EDIT: Updated to note you need to install the GI package for the module you are using.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7803963249833374104?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7803963249833374104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7803963249833374104' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7803963249833374104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7803963249833374104'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/06/pygi-in-maverick.html' title='PyGI in Maverick'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2303819757155917180</id><published>2010-05-18T09:23:00.002+10:00</published><updated>2010-05-18T09:39:02.928+10:00</updated><title type='text'>GObject introspection in Ubuntu</title><content type='html'>At UDS we planned discussed how &lt;a href="https://blueprints.launchpad.net/gtk2/+spec/gobject-introspection/"&gt;Ubuntu will support GObject introspection&lt;/a&gt;. I am currently working on packaging &lt;a href="http://live.gnome.org/PyGI"&gt;PyGI&lt;/a&gt; for Maverick.&lt;br /&gt;&lt;br /&gt;You can read more about this in a &lt;a href="http://blog.tomeuvizoso.net/2010/05/ubuntu-and-gobject-introspection.html"&gt;blog post from Tomeu Vizoso&lt;/a&gt; who came to the session and is an upstream developer for &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; and helped inform us about GObject introspection and PyGI status.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2303819757155917180?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2303819757155917180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2303819757155917180' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2303819757155917180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2303819757155917180'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/05/gobject-introspection-in-ubuntu.html' title='GObject introspection in Ubuntu'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4973860809442232917</id><published>2010-05-11T17:55:00.003+10:00</published><updated>2010-05-11T19:01:27.357+10:00</updated><title type='text'>GNOME Games Help</title><content type='html'>If you've just read &lt;a href="http://www.paulcutler.org/blog/?p=1353"&gt;Paul Cutler's blog post&lt;/a&gt; about &lt;a href="http://www.projectmallard.org/"&gt;Mallard&lt;/a&gt; documentation and want to get involved, consider translating some of the GNOME Games help!&lt;br /&gt;&lt;br /&gt;The games are a good project to start with because their help is relatively simple.&lt;br /&gt;&lt;br /&gt;I've opened bugs against &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=618342"&gt;Sudoku&lt;/a&gt;, &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=618343"&gt;Mines&lt;/a&gt;, &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=618344"&gt;Mahjongg&lt;/a&gt; and &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=618345"&gt;Quadrapassel (Tetris)&lt;/a&gt;, leave a comment if you start working on it.&lt;br /&gt;&lt;br /&gt;To get started look at the existing documentation either by running the games or &lt;a href="http://git.gnome.org/browse/gnome-games/tree/gnomine/help/C"&gt;browsing the help in git&lt;/a&gt;. Learn about Mallard by doing the &lt;a href="http://projectmallard.org/about/learn/tenminutes.html"&gt;ten minute tour&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4973860809442232917?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4973860809442232917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4973860809442232917' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4973860809442232917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4973860809442232917'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/05/gnome-games-help.html' title='GNOME Games Help'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3677896355279547413</id><published>2010-05-09T21:35:00.004+10:00</published><updated>2010-05-10T06:21:17.442+10:00</updated><title type='text'>GCalctool 5.31.1</title><content type='html'>&lt;a href="http://bobthegnome.blogspot.com/2010/03/gcalctool-530.html"&gt;GCalctool 5.30&lt;/a&gt; was a case of two steps forward, one step backwards as I didn't have the time to complete all the changes I had planned.  GCalctool 5.31 has these changes.  Note that this is an unstable release at the start of a development cycle; the design will be refined before the 6.0 release (GNOME 3.0).&lt;br /&gt;&lt;br /&gt;Introducing basic mode:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pzVKVDOIYcQ/S-cR5QJWHKI/AAAAAAAAFCU/bJ2JDY6p7Uc/s1600/GCalctool+-+Basic.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://1.bp.blogspot.com/_pzVKVDOIYcQ/S-cR5QJWHKI/AAAAAAAAFCU/bJ2JDY6p7Uc/s320/GCalctool+-+Basic.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5469359947749137570" /&gt;&lt;/a&gt;&lt;br /&gt;The most noticable change is the use of colour thanks to &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=157962"&gt;a tip from Chris Lord&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've also added memory operations and squares and square roots.  I'm not sure if this is too much (or too little) for "Basic" - feedback welcome.&lt;br /&gt;&lt;br /&gt;Advanced mode shows a lot more functions.  Also of note is the ability to see angles in degrees at any time:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_pzVKVDOIYcQ/S-cQlsaAg5I/AAAAAAAAFCA/LuM2sbSjd9g/s1600/GCalctool+-+Advanced.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="http://4.bp.blogspot.com/_pzVKVDOIYcQ/S-cQlsaAg5I/AAAAAAAAFCA/LuM2sbSjd9g/s320/GCalctool+-+Advanced.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5469358512226206610" /&gt;&lt;/a&gt;&lt;br /&gt;Programming and financial have similar changes but need more work.  Number bases are easier to work with than in 5.30.&lt;br /&gt;&lt;br /&gt;The internal changes that you can't see in a screenshot:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It now starts fast.  Really fast.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It's a well behaved GTK+ application.  This means that keyboard input and accessibility should work without any problems.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The code is modular.  The calculator widget could be split out and used in other applications.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Please try it out!  If you are using Ubuntu Lucid you can try it using the &lt;a href="https://launchpad.net/~robert-ancell/+archive/gcalctool"&gt;GCalctool PPA&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are a number of design issues that I don't yet have good solutions for, ideas and mockups welcome:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I'm not sure of a good label for the memory buttons, the current labels don't feel right.&lt;/li&gt; &lt;br /&gt;&lt;li&gt;There's not a good way to delete variables/add new ones.  I've been trying to integrate this into the popup menus (GTK+ is getting in my way).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The colours are done using primary colours and blending them with the GTK+ theme.  I tried using Tango colours but they looked worse to me.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;While removing the spacing between the buttons has reduced the &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=614412"&gt;optical illusion&lt;/a&gt; of the grid it still remains to some degree.  I'm not sure if I can get around this without making custom widget (I'd like there to be no space between groups of  buttons).  Note the buttons do not have to be in a grid so please do a mockup if you have a good idea.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The programming bit editor is too big.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3677896355279547413?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3677896355279547413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3677896355279547413' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3677896355279547413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3677896355279547413'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/05/gcalctool-5311.html' title='GCalctool 5.31.1'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pzVKVDOIYcQ/S-cR5QJWHKI/AAAAAAAAFCU/bJ2JDY6p7Uc/s72-c/GCalctool+-+Basic.png' height='72' width='72'/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2625036022567161241</id><published>2010-04-19T15:23:00.000+10:00</published><updated>2010-04-19T15:23:19.484+10:00</updated><title type='text'>Simple Scan 1.0</title><content type='html'>Last week I hit 1.0* for simple scan.  It's not perfect but it appears to be reliable and is an improvement on the existing scanning experience.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_pzVKVDOIYcQ/S8vmNuSsgKI/AAAAAAAAFBs/QR4tK3LaIyk/s1600/Screenshot-Simple+Scan.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 232px;" src="http://4.bp.blogspot.com/_pzVKVDOIYcQ/S8vmNuSsgKI/AAAAAAAAFBs/QR4tK3LaIyk/s320/Screenshot-Simple+Scan.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5461712096555991202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've &lt;a href="http://mail.gnome.org/archives/desktop-devel-list/2010-February/msg00034.html"&gt;prosed simple-scan for GNOME 3.0&lt;/a&gt; and will be following the &lt;a href="http://live.gnome.org/TwoPointThirtyone"&gt;GNOME release schedule&lt;/a&gt; from now on (next release will be 2.31.1).&lt;br /&gt;&lt;br /&gt;*Make that 1.0.2.  There's always a few last minute fixes :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2625036022567161241?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2625036022567161241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2625036022567161241' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2625036022567161241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2625036022567161241'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/03/simple-scan-10.html' title='Simple Scan 1.0'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_pzVKVDOIYcQ/S8vmNuSsgKI/AAAAAAAAFBs/QR4tK3LaIyk/s72-c/Screenshot-Simple+Scan.png' height='72' width='72'/><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4387081329914911357</id><published>2010-04-03T13:44:00.004+11:00</published><updated>2010-04-07T23:11:01.491+10:00</updated><title type='text'>GCalctool 5.28 in Ubuntu 10.04 LTS</title><content type='html'>I've made a PPA containing GCalctool 5.28 backported to Ubuntu 10.04 LTS.  To install use the following commands:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ sudo add-apt-repository ppa:robert-ancell/gcalctool-528&lt;br /&gt;$ sudo apt-get install gcalctool-528&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(Provided so you can run the Karmic gcalctool in Lucid if the interface is more useful to you).&lt;br /&gt;&lt;br /&gt;(UPDATE: We've decided to stick with GCalctool 5.28 for Lucid so this PPA is obsolete).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4387081329914911357?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4387081329914911357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4387081329914911357' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4387081329914911357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4387081329914911357'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/04/gcalctool-528-in-ubuntu-1004-lts.html' title='GCalctool 5.28 in Ubuntu 10.04 LTS'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6913288014738676517</id><published>2010-04-02T17:47:00.002+11:00</published><updated>2010-04-02T17:49:08.314+11:00</updated><title type='text'>SVG themes for glChess</title><content type='html'>Thanks to a &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=612849"&gt;a patch from Alexey Kryukov&lt;/a&gt; glChess now supports themes in SVG.  Thanks Alexey!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pzVKVDOIYcQ/S7WTCQHcxGI/AAAAAAAAFBI/28NyMdp72NU/s1600/Screenshot-Chess+-+Human+versus+Phalanx.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 309px; height: 320px;" src="http://1.bp.blogspot.com/_pzVKVDOIYcQ/S7WTCQHcxGI/AAAAAAAAFBI/28NyMdp72NU/s320/Screenshot-Chess+-+Human+versus+Phalanx.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5455428190524458082" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6913288014738676517?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6913288014738676517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6913288014738676517' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6913288014738676517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6913288014738676517'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/04/svg-themes-for-glchess.html' title='SVG themes for glChess'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pzVKVDOIYcQ/S7WTCQHcxGI/AAAAAAAAFBI/28NyMdp72NU/s72-c/Screenshot-Chess+-+Human+versus+Phalanx.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6648163924503580633</id><published>2010-04-02T14:46:00.004+11:00</published><updated>2010-04-02T21:31:53.740+11:00</updated><title type='text'>Embrace Change</title><content type='html'>This is a letter to all those who think change = bad.&lt;br /&gt;&lt;br /&gt;If you don't want your software to change then don't upgrade.&lt;br /&gt;&lt;br /&gt;If you want your software to improve then expect (and enjoy) change.&lt;br /&gt;&lt;br /&gt;If a feature is present in a version X, then that feature may not exist in version X+1.  This is not a regression - applications don't exist to provide features; they exist to serve the users that the application is targeted at.&lt;br /&gt;&lt;br /&gt;Default applications are there to serve the greatest number of users.  In both  the proprietary and open-source worlds there is often a "basic" and an "advanced" application for a given task.  This is a good thing - trying to please everyone isn't as good as focussing on one group.&lt;br /&gt;&lt;br /&gt;If there is an application that better serves your need then use it.  (If you are an advanced user then use an advanced application).&lt;br /&gt;&lt;br /&gt;I'm personally most interested in writing applications for the beginner to intermediate user.  I'll relate this to the applications that I develop:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://launchpad.net/simple-scan"&gt;Simple Scan&lt;/a&gt; is not a replacement for &lt;a href="http://www.xsane.org/"&gt;xsane&lt;/a&gt; or &lt;a href="http://gscan2pdf.sourceforge.net/"&gt;gscan2pdf&lt;/a&gt;.  But it is great if you have a picture you want to upload to Facebook.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://live.gnome.org/Gcalctool"&gt;GCalctool&lt;/a&gt; does not have the features of &lt;a href="http://qalculate.sourceforge.net/"&gt;Qalculate&lt;/a&gt; or &lt;a href="http://wxmaxima.sourceforge.net/wiki/index.php/Main_Page"&gt;wxMaxima&lt;/a&gt;.  But it does solve common equations.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://live.gnome.org/glChess"&gt;glChess&lt;/a&gt; would not be used by a experienced chess player like &lt;a href="http://www.tim-mann.org/xboard.html"&gt;xboard&lt;/a&gt;.  But it is a good introduction to the game of Chess.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6648163924503580633?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6648163924503580633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6648163924503580633' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6648163924503580633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6648163924503580633'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/04/change-is-good.html' title='Embrace Change'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5746036672680587538</id><published>2010-03-29T10:52:00.003+11:00</published><updated>2010-03-29T11:02:54.190+11:00</updated><title type='text'>GCalctool 5.30</title><content type='html'>&lt;p&gt;&lt;a href="http://live.gnome.org/Gcalctool"&gt;GCalctool&lt;/a&gt; 5.30 is now released.  Gcalctool is the default GNOME calculator and this is also the default in Ubuntu.&lt;/p&gt;&lt;p&gt;Both GNOME and Ubuntu use a synchronised six month release cycle.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The great thing about regular releases is... Predictability!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The bad things is... You may not get all the features you wanted done in one cycle...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here's my summary of what to expect in GCalctool 5.30.&lt;/p&gt;&lt;p&gt;The good:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The display now acts like a standard text entry (no obscure shortcut keys)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Equations look like correct mathematical syntax (π, |−4|, 6×10⁻², sin⁻¹ x, 2x²y, 3E₁₆)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Polynomials can be solved (x²+2x−4, (x+1)(x−2))&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There is no limit on the number of variables (x=55, value=21)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Bases can be mixed in the same calculation and any base between 2 and 16 can be used (120₃+3E₁₆)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Units can be converted (3 feet in centimeters, 3.22 EUR in AUD)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The help is now topic based (&lt;a href="http://projectmallard.org/"&gt;Mallard&lt;/a&gt; format)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The UI has less visual clutter:&lt;/li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S6_tnbtUGnI/AAAAAAAAFAU/J112D1Q-0HA/s1600/gcalctool-basic-compare.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 201px;" src="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S6_tnbtUGnI/AAAAAAAAFAU/J112D1Q-0HA/s320/gcalctool-basic-compare.png" alt="" id="BLOGGER_PHOTO_ID_5453838935477459570" border="0" /&gt;&lt;/a&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The bad:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Hexadecimal numbers are harder to enter (you need to explicitly add the base 16 suffix (Ctrl+H) to them).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Variables can't be removed (the workaround is to edit ~/.local/share/gcalctool/registers)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There is no support for functions (you should be able to enter f(x)=6x+2, f(3))&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There is no GUI for non-currency conversions (use the keyboard)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Complex numbers weren't working in time for release:&lt;/li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S6_njFHpPAI/AAAAAAAAE_8/fX7F1S7wrCM/s1600/gcalctool-complex.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 172px;" src="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S6_njFHpPAI/AAAAAAAAE_8/fX7F1S7wrCM/s320/gcalctool-complex.png" alt="" id="BLOGGER_PHOTO_ID_5453832263624637442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The ugly:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Converting between number bases is unintuitive (enter number then press base buttons to change)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Programming mode is a mess of buttons (needs complete redesign for GNOME 3.0):&lt;/li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_pzVKVDOIYcQ/S6_qXXG_zkI/AAAAAAAAFAE/hVH4NWyQp9I/s1600/Screenshot-Calculator+%E2%80%94+Programming.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 250px;" src="http://2.bp.blogspot.com/_pzVKVDOIYcQ/S6_qXXG_zkI/AAAAAAAAFAE/hVH4NWyQp9I/s320/Screenshot-Calculator+%E2%80%94+Programming.png" alt="" id="BLOGGER_PHOTO_ID_5453835360830213698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Financial mode is crying out for some graphs (it would be better to show financial models and adjust the values)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5746036672680587538?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5746036672680587538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5746036672680587538' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5746036672680587538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5746036672680587538'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/03/gcalctool-530.html' title='GCalctool 5.30'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_pzVKVDOIYcQ/S6_tnbtUGnI/AAAAAAAAFAU/J112D1Q-0HA/s72-c/gcalctool-basic-compare.png' height='72' width='72'/><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2646553473726196237</id><published>2010-03-05T22:36:00.003+11:00</published><updated>2010-03-08T18:26:01.882+11:00</updated><title type='text'>Simple Scan 0.9.6 (1.0 Release Candidate)</title><content type='html'>A few days ago I released simple-scan 0.9.6.  This version is the 1.0 release candidate.&lt;br /&gt;&lt;br /&gt;There are two things I'd like to fix before 1.0:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;There may be some issues with scanning from an automatic document feeder (ADF).  Please comment on &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/512553"&gt;bug 512553&lt;/a&gt; if you are having problems. (I don't have an ADF to test).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The generated PDF files do not JPEG compress the images.  This is because the Cairo renderer does not support it.  If you know of a C accessible library that can do this or even how to hard code this (the PDF files are just a single image per page) then please comment on &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/534122"&gt;bug 534122&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2646553473726196237?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2646553473726196237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2646553473726196237' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2646553473726196237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2646553473726196237'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/03/simple-scan-096-10-release-candidate.html' title='Simple Scan 0.9.6 (1.0 Release Candidate)'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4508034206612911835</id><published>2010-03-02T12:06:00.003+11:00</published><updated>2010-03-02T12:08:03.366+11:00</updated><title type='text'>GCalctool manual available online</title><content type='html'>You can now view &lt;a href="http://library.gnome.org/users/gcalctool/5.29/"&gt;GCalctool manual&lt;/a&gt; online in the awesome &lt;a href="http://library.gnome.org"&gt;GNOME Documentation Library&lt;/a&gt; (it automatically updates with each release).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4508034206612911835?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4508034206612911835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4508034206612911835' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4508034206612911835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4508034206612911835'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/03/gcalctool-manual-available-online.html' title='GCalctool manual available online'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8685244969967766955</id><published>2010-02-19T17:07:00.002+11:00</published><updated>2010-02-19T17:12:54.614+11:00</updated><title type='text'>Jobs at Canonical</title><content type='html'>If anyone is looking for an open source job at a great company, make sure you check out the &lt;a href="http://webapps.ubuntu.com/employment/"&gt;available jobs&lt;/a&gt; at &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt;.  There are 34 open at the time of writing.  I found about my job on &lt;a href="http://planet.gnome.org/"&gt;Planet GNOME&lt;/a&gt; a year ago and I'm glad I did!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8685244969967766955?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8685244969967766955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8685244969967766955' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8685244969967766955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8685244969967766955'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/02/jobs-at-canonical.html' title='Jobs at Canonical'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7512276437279992601</id><published>2010-02-19T16:41:00.003+11:00</published><updated>2010-02-19T17:06:56.677+11:00</updated><title type='text'>Mallard Documentation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_pzVKVDOIYcQ/S34mANMjqNI/AAAAAAAAE-8/dsMCQ6rCsr4/s1600-h/mallard-header.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 84px;" src="http://4.bp.blogspot.com/_pzVKVDOIYcQ/S34mANMjqNI/AAAAAAAAE-8/dsMCQ6rCsr4/s320/mallard-header.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5439827184894322898" /&gt;&lt;/a&gt;&lt;br /&gt;GCalctool now has a new help document in &lt;a href="http://projectmallard.org/"&gt;Mallard&lt;/a&gt; format.  This is my second Mallard document I've written, the first was the help for Simple Scan.&lt;br /&gt;&lt;br /&gt;Wow. Mallard is really, really easy to use!&lt;br /&gt;&lt;br /&gt;Mallard documents are &lt;em&gt;topic based&lt;/em&gt; which basically means writing a few paragraphs on each activity your readers can do with your application (like how to use trigonometric functions or an automatic document feeder).  I wrote the topics over a week with a text editor and marked them up at the end.&lt;br /&gt;&lt;br /&gt;Testing is great.  Just run &lt;a href="http://live.gnome.org/Yelp"&gt;yelp&lt;/a&gt; with the directory the files are in to browse the documents immediately.&lt;br /&gt;&lt;br /&gt;If you want to contribute, take the &lt;a href="http://projectmallard.org/about/learn/tenminutes.html"&gt;ten minute tour&lt;/a&gt;, pick your favourite GNOME application, ask if they've got documentation that needs updating and get writing!&lt;br /&gt;&lt;br /&gt;(I recommend starting by copying an existing document; I used the &lt;a href="http://git.gnome.org/browse/gbrainy/tree/help/C"&gt;gbrainy help&lt;/a&gt; as a basis for the &lt;a href="http://bazaar.launchpad.net/~robert-ancell/simple-scan/trunk/files/head%3A/help/C/"&gt;Simple Scan&lt;/a&gt; and &lt;a href="http://git.gnome.org/browse/gcalctool/tree/help/C"&gt;GCalctool help&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7512276437279992601?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7512276437279992601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7512276437279992601' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7512276437279992601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7512276437279992601'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/02/mallard-documentation.html' title='Mallard Documentation'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_pzVKVDOIYcQ/S34mANMjqNI/AAAAAAAAE-8/dsMCQ6rCsr4/s72-c/mallard-header.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4155806809192604452</id><published>2010-02-18T20:56:00.002+11:00</published><updated>2010-02-18T21:02:25.068+11:00</updated><title type='text'>AdWords Experiment</title><content type='html'>Google keeps bugging me to open an AdWords account (via &lt;a href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/a&gt;, which is a lot of fun).  So with my $75 free&lt;sup&gt;*&lt;/sup&gt; credit I am going to join the advertising game and advertise this blog!  It will be interesting to see how powerful advertising is...&lt;br /&gt;&lt;br /&gt;So, if you got here via a Google ad. leave a comment!&lt;br /&gt;&lt;br /&gt;Maybe I should have advertised a rickrolling site instead... :)&lt;br /&gt;&lt;br /&gt;&lt;sup&gt;*&lt;/sup&gt;Free if you include having to spend $20 to set up the account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4155806809192604452?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4155806809192604452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4155806809192604452' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4155806809192604452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4155806809192604452'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/02/adwords-experiment.html' title='AdWords Experiment'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8718326972420935247</id><published>2010-02-15T17:39:00.002+11:00</published><updated>2010-02-15T17:44:28.185+11:00</updated><title type='text'>gdm2setup</title><content type='html'>Tired of not being able to configure many settings for GDM in Karmic?  Two community members; Garth Johnson and Nick Glynn have developed a great tool called &lt;a href="https://edge.launchpad.net/gdm2setup"&gt;gdm2setup&lt;/a&gt; which gives you a lot more control:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S3jtEDDkkOI/AAAAAAAAE-0/mSCIrd_XxZM/s1600-h/Screenshot-Configure+Login+Settings.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S3jtEDDkkOI/AAAAAAAAE-0/mSCIrd_XxZM/s320/Screenshot-Configure+Login+Settings.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5438357203845419234" /&gt;&lt;/a&gt;&lt;br /&gt;Try it out from their &lt;a href="https://edge.launchpad.net/~gdm2setup/+archive/gdm2setup"&gt;PPA&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8718326972420935247?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8718326972420935247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8718326972420935247' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8718326972420935247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8718326972420935247'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/02/gdm2setup.html' title='gdm2setup'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_pzVKVDOIYcQ/S3jtEDDkkOI/AAAAAAAAE-0/mSCIrd_XxZM/s72-c/Screenshot-Configure+Login+Settings.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6848077979069646601</id><published>2010-02-13T19:59:00.002+11:00</published><updated>2010-02-13T20:12:36.244+11:00</updated><title type='text'>Simple Scan 0.9.0</title><content type='html'>Here it is; feature complete and just some minor bugfixes from 1.0:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S3ZqEnqMcxI/AAAAAAAAE-s/bErbtsPvts0/s1600-h/Screenshot-Simple+Scan.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 266px;" src="http://3.bp.blogspot.com/_pzVKVDOIYcQ/S3ZqEnqMcxI/AAAAAAAAE-s/bErbtsPvts0/s320/Screenshot-Simple+Scan.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5437650227694433042" /&gt;&lt;/a&gt;&lt;br /&gt;If you haven't tried it, it comes by default in Ubuntu 10.04 (Lucid), you can enable the PPA in Ubuntu 9.10 (Karmic) by going to System&gt;Administration&gt;Software Sources&gt;Other Software&gt;Add and adding &lt;b&gt;ppa:robert-ancell/simple-scan&lt;/b&gt; then installing the &lt;em&gt;simple-scan&lt;/em&gt; package.&lt;br /&gt;&lt;br /&gt;Any other GNOME system should be able to build it from &lt;a href="http://people.ubuntu.com/~robert-ancell/simple-scan/"&gt;source&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;From now to 1.0 I wont be adding any new features, just fixing bugs and polishing.&lt;br /&gt;&lt;br /&gt;Post 1.0 the major features I'm most interested in are &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/498029"&gt;colour management&lt;/a&gt;, &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/483391"&gt;optical character recognition&lt;/a&gt;, &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/483669"&gt;integration with gscan/gnomescan&lt;/a&gt;, &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/483397"&gt;integration with photo management software&lt;/a&gt; and &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/484616"&gt;storing density information in saved files&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please help if you can!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6848077979069646601?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6848077979069646601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6848077979069646601' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6848077979069646601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6848077979069646601'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/02/simple-scan-090.html' title='Simple Scan 0.9.0'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_pzVKVDOIYcQ/S3ZqEnqMcxI/AAAAAAAAE-s/bErbtsPvts0/s72-c/Screenshot-Simple+Scan.png' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8637863374347380947</id><published>2010-02-04T17:30:00.002+11:00</published><updated>2010-02-04T18:05:22.206+11:00</updated><title type='text'>Linux.conf.au 2010</title><content type='html'>Here is a summary of the interesting things I saw at &lt;a href="http://lca2010.org.nz"&gt;Linux.conf.au 2010&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;Interesting Projects&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.wetafx.co.nz/"&gt;Weta Digital&lt;/a&gt; (i.e. the New Zealand graphics company behind Lord of the Rings, Avatar) &lt;talked&gt; about their 35,000 core server farm all running Ubuntu!  And if you want to do some rendering with the old server farm &lt;a href="https://www.greenbutton.co.nz/"&gt;Green Button&lt;/a&gt; bought it any you can render directly from Blender at 1c US per CPU minute.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://ashs.school.nz/"&gt;Albany Senior High School&lt;/a&gt; is a New Zealand school who have successfully implemented an entirely open-source infrastructure running Ubuntu Desktop and Mandriva servers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href="http://www.villagetelco.org"&gt;Village Telco&lt;/a&gt; project showed off their Linux based VoIP mesh network solution for small villages.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There seemed to be a rocketry/Linux theme going on.  The &lt;a href="http://www.whitelabelspace.com/"&gt;White Label Space&lt;/a&gt; project talked about their ambitious space program funded by advertising and the &lt;a href="http://www.altusmetrum.org/TeleMetrum/"&gt;TeleMetrum project&lt;/a&gt; talked about using Linux and open hardware to make telemetry for amateur rocketry.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;FOSS and Proprietary Software&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Jeremy Allison from Samba talked about the elephant in the room (Microsoft) and how we shouldn't forget their threats against open-source, especially in the light of the recent &lt;a href="http://en.wikipedia.org/wiki/TomTom#Patent_infringement_lawsuit"&gt;Tom-Tom patent lawsuit&lt;/a&gt;.  However he also said that the best thing to do was keep making better software as not doing that is the more likely reason for us to fail.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Benjamin Mako-Hill talked about &lt;a href="http://mako.cc/copyrighteous/20091118-00"&gt;Antifeatures&lt;/a&gt; - in where he described how proprietary software often comes with features you don't want (e.g. digital rights management) and how you often have to pay to remove these features (for example paying extra money to Sony to get a computer without crapware).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I sat in on some government and open-source talks and the short answer seemed to be "policy was good but not seeing major uptake".&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Technology&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Python 3.0 looks really well managed.  There are a number of tools now available to transition from Python 2.0 to Python 3.0 and even tools to produce Python 2.0 compatible applications from a Python 3.0 codebase.  The improvements by Google in &lt;a href="http://code.google.com/p/unladen-swallow/"&gt;Unladen Swallow&lt;/a&gt; are planned to be integrated into the official Python 3.0.  There will be no syntax changes until Python 3.3 (a duration of two years) which will encourage Python 3.0 uptake.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href="http://codespeak.net/pypy/dist/pypy/doc/"&gt;PyPy&lt;/a&gt; project talked about what they do.  I thought they were a Python interpreter implemented in Python but in fact they are Python interpreter generator.  That can generate different types of interpreters (e.g. stackless)...  For different targets (e.g. C code, .NET, Java bytecode)... for different dynamic languages (e.g. Perl).  So a really interesting technology.  They see themselves as more of a research project at the current time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In graphics the &lt;a href="http://www.cairographics.org/"&gt;Cairo&lt;/a&gt; project talked about accelerating 2D on the GPU.  The &lt;a href="http://www.clutter-project.org/"&gt;Clutter&lt;/a&gt; project mentioned their release cycle is now synchronised with GNOME/Moblin.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href="https://launchpad.net/pandora-build"&gt;pandora-build&lt;/a&gt; project talked about how they'd made autotools easier to use.  A quick survey of the audience showed everyone uses autotools but no-one understands it.  By using pandora-build you can write less autotool magic (pandora sets up sane defaults and provides simple macros for common things) and are have a more portable build system (pandora handles multiple versions of autotools).&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Distributions&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Lucas Nussbaum talked about the &lt;a href="http://qa.debian.org/"&gt;Debian QA&lt;/a&gt; team and tools (e.g. &lt;a href="http://udd.debian.org/"&gt;Ultimate Debian Database&lt;/a&gt;, &lt;a href="http://qa.debian.org/debcheck.php"&gt;debcheck&lt;/a&gt;, &lt;a href="http://wiki.debian.org/piuparts"&gt;piuparts&lt;/a&gt;, &lt;a href="http://lintian.debian.org/"&gt;lintian&lt;/a&gt;, &lt;a href="http://dehs.alioth.debian.org/"&gt;DEHS&lt;/a&gt;, &lt;a href="http://wiki.debian.org/qa.debian.org/bapase"&gt;bapase&lt;/a&gt;, &lt;a href="http://wiki.debian.org/qa.debian.org/MIATeam"&gt;MIA team&lt;/a&gt;) they have produced to keep track of what is going on in Debian.  He also talked about the relationship between Debian and Ubuntu which seems to be in reasonable state.  There was some concern that Ubuntu did not provide many resources to help Debian and that Debian did not want to become Ubuntu's "package supermarket".&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href="http://vcs-pkg.org/"&gt;vcs-pkg&lt;/a&gt; project showed their aims in making moving patches between distributions easier.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The &lt;a href="https://launchpad.net"&gt;Launchpad&lt;/a&gt; developers talked about how they are improving integration with external bug trackers and translations.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;And finally; When the videos are available I highly recommend watching &lt;a href="http://opendotdotdot.blogspot.com/"&gt;Glyn Moody's&lt;/a&gt; keynote talk.  He talked about how open-source has influence other revolutions of sharing that have occurred in the last 30 years.  He skilfully shows how FOSS is more than just about software.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8637863374347380947?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8637863374347380947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8637863374347380947' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8637863374347380947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8637863374347380947'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/02/linuxconfau-2010.html' title='Linux.conf.au 2010'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3561910264572729359</id><published>2010-01-15T09:11:00.004+11:00</published><updated>2010-01-15T15:18:32.083+11:00</updated><title type='text'>gbrainy in Lucid</title><content type='html'>Ubuntu Lucid Alpha 2 has just &lt;a href="http://www.ubuntu.com/testing/lucid/alpha2"&gt;been released&lt;/a&gt; and a new addition is the mind puzzle game &lt;a href="http://live.gnome.org/gbrainy"&gt;gbrainy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_pzVKVDOIYcQ/S0_pR2mZ1gI/AAAAAAAAE-g/6Nar6qUnLy4/s1600-h/Screenshot-gbrainy-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 287px; height: 320px;" src="http://2.bp.blogspot.com/_pzVKVDOIYcQ/S0_pR2mZ1gI/AAAAAAAAE-g/6Nar6qUnLy4/s320/Screenshot-gbrainy-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5426812568928376322" /&gt;&lt;/a&gt;&lt;br /&gt;You can read more about the latest release in a &lt;a href="http://gent.softcatala.org/jmas/bloc/pivot/entry.php?id=439&amp;w=jordis_english_bloc"&gt;blog post&lt;/a&gt; by Jordi Mas (the author).&lt;br /&gt;&lt;br /&gt;gbrainy is a great game and we want to find any problems before final release so please try it out!  If you don't already have it installed then you can get it from the Ubuntu Software Centre (search for gbrainy).&lt;br /&gt;&lt;br /&gt;If you find a problem the best thing to do is &lt;a href="https://bugzilla.gnome.org/enter_bug.cgi?product=gbrainy"&gt;file a bug in GNOME&lt;/a&gt;.  If you don't have an account on GNOME Bugzilla but do have a Launchpad account you can &lt;a href="https://bugs.launchpad.net/ubuntu/+source/gbrainy/+filebug"&gt;file a bug against Ubuntu&lt;/a&gt;.  I am working on getting the "Report a Problem" menu entry into the help menu which will make this even easier!&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3561910264572729359?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3561910264572729359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3561910264572729359' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3561910264572729359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3561910264572729359'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2010/01/gbrainy-in-lucid.html' title='gbrainy in Lucid'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_pzVKVDOIYcQ/S0_pR2mZ1gI/AAAAAAAAE-g/6Nar6qUnLy4/s72-c/Screenshot-gbrainy-2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5924353568550288879</id><published>2009-12-21T16:41:00.004+11:00</published><updated>2009-12-21T16:52:30.405+11:00</updated><title type='text'>Translate Simple Scan</title><content type='html'>One of the great features of Launchpad is how easy it is to translate applications.  Make sure you have a Launchpad login and then you can &lt;a href="https://translations.launchpad.net/simple-scan"&gt;translate Simple Scan&lt;/a&gt; from your browser!&lt;br /&gt;&lt;br /&gt;Your translations need to be reviewed by the &lt;a href="https://translations.edge.launchpad.net/+groups/ubuntu-translators"&gt;Ubuntu Translators&lt;/a&gt; team, if you are a member please review any translations!&lt;br /&gt;&lt;br /&gt;Here is the UI for 0.7.6 in Romanian:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pzVKVDOIYcQ/Sy8NDHB_TKI/AAAAAAAAE9s/JGurSb6-8HY/s1600-h/Screenshot-Scanare+simpl%C4%83.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 291px;" src="http://1.bp.blogspot.com/_pzVKVDOIYcQ/Sy8NDHB_TKI/AAAAAAAAE9s/JGurSb6-8HY/s320/Screenshot-Scanare+simpl%C4%83.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5417563223828155554" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5924353568550288879?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5924353568550288879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5924353568550288879' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5924353568550288879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5924353568550288879'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2009/12/translate-simple-scan.html' title='Translate Simple Scan'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pzVKVDOIYcQ/Sy8NDHB_TKI/AAAAAAAAE9s/JGurSb6-8HY/s72-c/Screenshot-Scanare+simpl%C4%83.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1788567244636212081</id><published>2009-12-15T15:03:00.004+11:00</published><updated>2009-12-16T11:16:23.546+11:00</updated><title type='text'>The demise of the function key</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_pzVKVDOIYcQ/Sygl-JPEEMI/AAAAAAAAE9k/bkc4haMV16c/s1600-h/litl_keyboard.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 130px;" src="http://3.bp.blogspot.com/_pzVKVDOIYcQ/Sygl-JPEEMI/AAAAAAAAE9k/bkc4haMV16c/s320/litl_keyboard.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5415620301474238658" /&gt;&lt;/a&gt;&lt;br /&gt;I recently upgrade to a new Dell Studio 15 and retired my old Inspiron.  One thing I've noticed is the function keys are now secondary - these keys are now multimedia/system functions by default and you need to use the blue Fn key to activate the old F1-12 behaviour.  Other Dell and Apple laptops (at least) seem to be doing the same thing.&lt;br /&gt;&lt;br /&gt;Is this the end of the function key?  The &lt;a href="http://litl.com/essays/hardware.htm"&gt;Litl keyboard&lt;/a&gt; got rid of them entirely.  The key combination to use them on my laptop is sufficiently difficult that they might as well not exist for me.&lt;br /&gt;&lt;br /&gt;So this leads me to the conclusion:&lt;br /&gt;- I can never rely on function key shortcuts in any software I write.&lt;br /&gt;- The existing window management shortcuts (e.g. alt-F4 to close window) don't work anymore.  Now I understand when people complain how applications don't consistently bind the same key to close window (Ctrl+Q or Ctrl+W or something else or nothing?).&lt;br /&gt;- At the Lucid UDS we discussed &lt;a href="https://wiki.ubuntu.com/Lucid/CompizDefaults"&gt;Compiz keybindings&lt;/a&gt; - often these were bound to function keys.  I notice the macbook uses the old F3 key for "show all windows".  I hope some standard could emerge for these functions on PC keyboards.&lt;br /&gt;&lt;br /&gt;I can't say I'm going to miss them overly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1788567244636212081?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1788567244636212081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1788567244636212081' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1788567244636212081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1788567244636212081'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2009/12/demise-of-function-key.html' title='The demise of the function key'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_pzVKVDOIYcQ/Sygl-JPEEMI/AAAAAAAAE9k/bkc4haMV16c/s72-c/litl_keyboard.jpeg' height='72' width='72'/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7186964548932282175</id><published>2009-12-11T16:49:00.002+11:00</published><updated>2009-12-11T17:09:11.020+11:00</updated><title type='text'>Introducing Simple Scan</title><content type='html'>One of the goals I want to achieve for &lt;a href="https://wiki.ubuntu.com/LucidReleaseSchedule"&gt;Ubuntu 10.04 (Lucid Lynx)&lt;/a&gt; is to &lt;a href="https://wiki.ubuntu.com/DesktopTeam/Specs/Lucid/DocumentScanning"&gt;make scanning really easy&lt;/a&gt;.  So I've been working on &lt;a href="http://launchpad.net/simple-scan"&gt;Simple Scan&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pzVKVDOIYcQ/SyHd8Gdd9gI/AAAAAAAAE9c/s0XjWE1axmo/s1600-h/Simple+Scan+0.7.1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://1.bp.blogspot.com/_pzVKVDOIYcQ/SyHd8Gdd9gI/AAAAAAAAE9c/s0XjWE1axmo/s320/Simple+Scan+0.7.1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413852251672147458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please try it and &lt;a href="https://bugs.launchpad.net/simple-scan"&gt;report&lt;/a&gt; any problems you have.&lt;br /&gt;&lt;br /&gt;To install add the &lt;a href="https://launchpad.net/~robert-ancell/+archive/simple-scan"&gt;PPA&lt;/a&gt; and install the &lt;em&gt;simple-scan&lt;/em&gt; package or build from &lt;a href="http://people.ubuntu.com/~robert-ancell/simple-scan/"&gt;source&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The GUI is a mess&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Yes.  This is the first functional release.  The GUI is &lt;a href="https://bugs.edge.launchpad.net/simple-scan/+bug/489528"&gt;being redesigned&lt;/a&gt; for 0.8.  The 0.7 release should contain all the functionality required for 1.0.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Who is simple scan for?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This application is designed for the 95% of users who just want to connect their scanner and quickly have the image/document in an appropriate format.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How does this relate to GNOME scan?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Simple scan does not use the &lt;a href="http://projects.gnome.org/gnome-scan/"&gt;GNOME scan&lt;/a&gt; to get the scan data.  This is because Ubuntu 10.04 is a &lt;a href="https://wiki.ubuntu.com/LTS"&gt;Long Term Support&lt;/a&gt; release and bringing the whole GNOME scan stack into main is risky (it was previously proposed for 10.04 but was not found to be stable enough).  There is an open &lt;a href="https://bugs.launchpad.net/simple-scan/+bug/483669"&gt;bug&lt;/a&gt; to change to gnomescan when that is appropriate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7186964548932282175?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7186964548932282175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7186964548932282175' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7186964548932282175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7186964548932282175'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2009/12/introducing-simple-scan.html' title='Introducing Simple Scan'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pzVKVDOIYcQ/SyHd8Gdd9gI/AAAAAAAAE9c/s0XjWE1axmo/s72-c/Simple+Scan+0.7.1.png' height='72' width='72'/><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1055475681773061725</id><published>2009-07-29T16:16:00.002+10:00</published><updated>2009-07-29T16:58:34.791+10:00</updated><title type='text'>format not a string literal and no format arguments</title><content type='html'>Some time ago &lt;a href="http://gcc.gnu.org/"&gt;GCC&lt;/a&gt; started producing warnings like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;warning: format not a string literal and no format arguments&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;What does this mean?  GCC is saying that a function in printf style has a format string that it cannot check matches the format arguments.  Here is some common code GLib code that causes this error:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;GError *error = ...;&lt;br /&gt;g_error(error-&gt;message);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Why is this a problem?  As &lt;code&gt;error-&gt;message&lt;/code&gt; cannot be checked it may contain a printf flag sequence, e.g. &lt;code&gt;"Invalid data: 'g^y#%s'"&lt;/code&gt; (i.e. &lt;code&gt;%s&lt;/code&gt;) that would cause run-time to try and access a non-existent argument.  It could be worse and the format string could be user-input that is attempting to exploit your program.&lt;br /&gt;&lt;br /&gt;So the solution is to always use a string literal for formatting like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;g_error("%s", error-&gt;message);&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1055475681773061725?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1055475681773061725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1055475681773061725' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1055475681773061725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1055475681773061725'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2009/07/format-not-string-literal-and-no-format.html' title='format not a string literal and no format arguments'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3839429956025709145</id><published>2009-07-15T12:03:00.003+10:00</published><updated>2009-07-16T13:28:02.283+10:00</updated><title type='text'>Gran Canaria Desktop Summit 2009</title><content type='html'>This year I was able to attend the &lt;a href="http://www.grancanariadesktopsummit.org/"&gt;Gran Canaria Desktop Summit&lt;/a&gt; which was great as I hadn't been to a GNOME meetup before.&lt;br /&gt;&lt;br /&gt;Here are my impressions:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The community is very alive and active!  There are many companies and individuals working on improving GNOME.&lt;br /&gt;&lt;li&gt;The &lt;a href="http://foundation.gnome.org/"&gt;GNOME foundation&lt;/a&gt; is well organised and financially sound. &lt;a href="http://www.gnome.org/friends/"&gt;Donations&lt;/a&gt; are a big part of this success. If you contribute to GNOME in any way then become &lt;a href="http://foundation.gnome.org/membership/"&gt;member&lt;/a&gt; (it's easy to join!).&lt;br /&gt;&lt;li&gt;Really impressed with the quality of &lt;a href="http://www.pitivi.org"&gt;PiTiVi&lt;/a&gt; — it's now a very capable basic video editing program.  One thing the PiTiVi developers want though is a media manager...&lt;br /&gt;&lt;li&gt;...which may be getting closer.  Banshee is splitting it's backend out into &lt;a href="http://abock.org/2009/07/14/exciting-updates-on-the-road-to-banshee-2-0"&gt;Banshee Core&lt;/a&gt; which will be a database of music, video and photos on your computer.  Hopefully there will be some convergence between this and &lt;a href="http://projects.gnome.org/tracker/"&gt;tracker&lt;/a&gt;, &lt;a href="https://launchpad.net/zeitgeist"&gt;zeitgeist&lt;/a&gt; and &lt;a href="http://pim.kde.org/akonadi/"&gt;akonadi&lt;/a&gt; to provide a seamless user experience to your media.&lt;br /&gt;&lt;li&gt;&lt;a href="http://live.gnome.org/GnomeShell"&gt;GNOME Shell&lt;/a&gt; is still young but is showing some interesting breaks from the traditional desktop.&lt;br /&gt;&lt;li&gt;&lt;a href="http://live.gnome.org/ProjectMallard"&gt;Project Mallard&lt;/a&gt; is going to make the GNOME documentation much better.&lt;br /&gt;&lt;li&gt;Testing initiatives like &lt;a href="https://launchpad.net/mago"&gt;Mago&lt;/a&gt; and &lt;a href="http://ldtp.freedesktop.org/"&gt;LDTP&lt;/a&gt; should see an increase in the quality of software.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The future looks really good!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3839429956025709145?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3839429956025709145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3839429956025709145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3839429956025709145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3839429956025709145'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2009/07/gran-canaria-desktop-summit-2009.html' title='Gran Canaria Desktop Summit 2009'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3330775437104795093</id><published>2009-03-19T23:03:00.002+11:00</published><updated>2009-03-19T23:18:55.333+11:00</updated><title type='text'>New Job</title><content type='html'>So, tomorrow I finish my current job and move onto new things on Monday.  I'm joining &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; as a GNOME Desktop Engineer to work alongside well-known GNOMEers like &lt;a href="http://martinpitt.wordpress.com/"&gt;Martin Pitt&lt;/a&gt; and &lt;a href="http://blogs.gnome.org/seb128/"&gt;Sebastien Bacher&lt;/a&gt;.  A few years ago I hadn't seriously considered I could spend my day job working open-source so am very excited to get stuck in.  Watch this space...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3330775437104795093?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3330775437104795093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3330775437104795093' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3330775437104795093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3330775437104795093'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2009/03/new-job.html' title='New Job'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3169989158006386161</id><published>2008-07-29T18:06:00.002+10:00</published><updated>2008-07-29T18:12:32.279+10:00</updated><title type='text'>I'm Going To Scale My Foot Up Your Ass</title><content type='html'>A workmate pointed me to an article on the Register by &lt;a href="http://teddziuba.com"&gt;Ted Dziuba&lt;/a&gt; about threads (one of my personal hates) which made me laugh out loud. This guy can really poke some fun at the buzzwords that float around the blogosphere.&lt;br /&gt;&lt;br /&gt;So if you're not afraid of some fairly &lt;em&gt;strong&lt;/em&gt; languange then check out his abuse against &lt;a href="http://www.theregister.co.uk/2008/07/28/sun_dziuba_tm/"&gt;threading&lt;/a&gt;, &lt;a href="http://teddziuba.com/2008/04/im-going-to-scale-my-foot-up-y.html"&gt;scalability&lt;/a&gt; and &lt;a href="http://www.theregister.co.uk/2008/07/14/dziuba_google_protocol_buffer/"&gt;serialization&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3169989158006386161?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3169989158006386161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3169989158006386161' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3169989158006386161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3169989158006386161'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/07/im-going-to-scale-my-foot-up-your-ass.html' title='I&apos;m Going To Scale My Foot Up Your Ass'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8029148575375910577</id><published>2008-05-18T18:09:00.001+10:00</published><updated>2008-05-18T18:11:06.451+10:00</updated><title type='text'>Gcalctool 5.23.2</title><content type='html'>The GCalctool team is proud to announce the second release in the&lt;br /&gt;unstable GNOME series.&lt;br /&gt;&lt;br /&gt;The following changes have been made from 5.23.1:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The cursor now behaves correctly when editing numbers with thousands separators (Bug #527669)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Structural changes in preperation for full unicode support (Bug #530532)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Updated translations: es (Jorge González), gl (Ignacio Casal&lt;br /&gt;Quinteiro), nb (Kjartan Maraas), nl (Tino Meinen), pt_BR (Leonardo Ferreira Fontenelle), sl (Matej Urbančič)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The release is available from:&lt;br /&gt;&lt;a href="http://ftp.gnome.org/pub/GNOME/sources/gcalctool/5.23/"&gt;http://ftp.gnome.org/pub/GNOME/sources/gcalctool/5.23/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8029148575375910577?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8029148575375910577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8029148575375910577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8029148575375910577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8029148575375910577'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/05/gcalctool-5232.html' title='Gcalctool 5.23.2'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1728843964026562027</id><published>2008-05-14T15:44:00.009+10:00</published><updated>2008-05-14T18:06:37.858+10:00</updated><title type='text'>glChess on Win32</title><content type='html'>After a bit of hacking glChess can run on Windows. The only thing that would take major work is the AIs as they are forked off the main process (fork() is not supported in Windows). But aside from that with a few minor changes and running directly from the source leads to this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_pzVKVDOIYcQ/SCqVOJKtg9I/AAAAAAAAAIM/1kruYQxLH6U/s1600-h/glchess-win32.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:centre;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_pzVKVDOIYcQ/SCqVOJKtg9I/AAAAAAAAAIM/1kruYQxLH6U/s320/glchess-win32.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5200132789964211154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was very impressed with the quality of the Windows packages for the dependencies. When I tried this about a year ago it didn't appear they were all supported. They are now:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.python.org/download/"&gt;Python&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi"&gt;python-2.5.2.msi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pypi.python.org/pypi/setuptools#downloads"&gt;Setuptools&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c8.win32-py2.5.exe#md5=963088fdb1c7332b1cbd4885876e077a"&gt;setuptools-0.6c8.win32-py2.5.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gladewin32.sourceforge.net/"&gt;GTK&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://downloads.sourceforge.net/gladewin32/gtk-2.12.9-win32-2.exe?modtime=1208660109&amp;big_mirror=0"&gt;gtk-2.12.9-win32-2.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pygtk.org/downloads.html"&gt;PyGTK&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://downloads.sourceforge.net/gladewin32/gtk-2.12.9-win32-2.exe?modtime=1208660109&amp;big_mirror=0"&gt;gtk-2.12.9-win32-2.exe&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.1-1.win32-py2.5.exe"&gt;pygobject-2.14.1-1.win32-py2.5.exe&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.4/pycairo-1.4.12-1.win32-py2.5.exe"&gt;pycairo-1.4.12-1.win32-py2.5.exe&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-2.win32-py2.5.exe"&gt;pygtk-2.12.1-2.win32-py2.5.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pythonware.com/products/pil/"&gt;Python Imaging Library&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://effbot.org/downloads/PIL-1.1.6.win32-py2.5.exe"&gt;PIL-1.1.6.win32-py2.5.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=5988"&gt;PyOpenGL&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://downloads.sourceforge.net/pyopengl/PyOpenGL-3.0.0b1.win32.exe?modtime=1199051603&amp;big_mirror=0"&gt;PyOpenGL-3.0.0b1.win32.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.k-3d.org/gtkglext/Main_Page#Binaries"&gt;PyGtkGLExt&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.stephanebrunet.net/gtkglext/pygtkglext-1.1.0.win32-py2.5.exe"&gt;pygtkglext-1.1.0.win32-py2.5.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://live.gnome.org/GnomeGames/Download"&gt;Gnome Games&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://ftp.acc.umu.se/pub/GNOME/sources/gnome-games/2.23/gnome-games-2.23.1.tar.bz2"&gt;gnome-games-2.23.1.tar.bz2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1728843964026562027?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1728843964026562027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1728843964026562027' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1728843964026562027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1728843964026562027'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/05/glchess-on-win32.html' title='glChess on Win32'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_pzVKVDOIYcQ/SCqVOJKtg9I/AAAAAAAAAIM/1kruYQxLH6U/s72-c/glchess-win32.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8482943071280078298</id><published>2008-05-08T23:58:00.002+10:00</published><updated>2008-05-09T00:17:49.073+10:00</updated><title type='text'>Hello Planet</title><content type='html'>Since my posts are now being amplified by Planet Gnome I should take this time to introduce myself... Hi, my name is Robert Ancell and I am an open-source developer currently active in &lt;a href="http://live.gnome.org/GnomeGames"&gt;Gnome Games&lt;/a&gt; (particularly the chess game which I started many years ago and was merged into Gnome in 2.18) and I am the maintainer of &lt;a href="http://live.gnome.org/Gcalctool"&gt;GCalctool&lt;/a&gt; having taken over from &lt;a href="blogs.sun.com/richb/"&gt;Rich Burridge&lt;/a&gt; for the 2.22 release (I swear he sneaked that over to me when I wasn't watching ;) ).&lt;br /&gt;&lt;br /&gt;In my more pays-the-rent side of life I am a software engineer having come from an embedded background and now working for a large financial organisation in Sydney, Australia. I get into open-source code when I have some spare time which leads to fairly unpredictable progress on projects (actually I normally find I have time &lt;em&gt;after&lt;/em&gt; a release so I get a release worth of duplicates before the change is released - now that's Murphey's law!).&lt;br /&gt;&lt;br /&gt;My goals for Gnome currently is to get the code I'm working on simpler and more reliable. This goal will inevitable slip when I find some flashy feature to introduce :).&lt;br /&gt;&lt;br /&gt;p.s. I don't actually play chess so fear ye all who left me writing the Gnome version!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8482943071280078298?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8482943071280078298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8482943071280078298' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8482943071280078298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8482943071280078298'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/05/hello-planet.html' title='Hello Planet'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2611489824743764918</id><published>2008-05-08T23:36:00.003+10:00</published><updated>2008-05-08T23:57:36.965+10:00</updated><title type='text'>Apport/Bug Buddy disabled in Ubuntu 8.04?</title><content type='html'>After upgrading to Ubuntu 8.04 it appears my automatic bug reporting is disabled. Due to the number of Ubuntu sourced reports coming in for Gnome Games it can't be disabled on everyone's system... So a bit of investigation showed it might be &lt;a href="https://wiki.ubuntu.com/Apport"&gt;apport&lt;/a&gt;. Looking in &lt;code&gt;/etc/init.d/apport&lt;/code&gt; showed this was disabled so I enabled that by editing &lt;code&gt;/etc/default/apport&lt;/code&gt; and set &lt;code&gt;enabled=1&lt;/code&gt;. After &lt;code&gt;/etc/init.d/apport restart&lt;/code&gt; I could happily file away a &lt;a href="https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/228203"&gt;nautilus bug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But wait a minute... That report went to Launchpad, not Gnome Bugzilla! (Wouldn't it be a nice world in which Ubuntu got the &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=412690"&gt;flood of duplicates&lt;/a&gt; for the things we fix but they never update &amp;lt;/gripe&amp;gt;). It appears apport is only enabled during development so I shouldn't have had to enable it. I figure it is bug-buddy that normally catches bugs and sends to Gnome; is anyone else getting this/know how to tell if the crash catcher is running?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2611489824743764918?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2611489824743764918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2611489824743764918' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2611489824743764918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2611489824743764918'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/05/apportbug-buddy-disabled-in-ubuntu-804.html' title='Apport/Bug Buddy disabled in Ubuntu 8.04?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5377699182873374794</id><published>2008-04-20T18:49:00.001+10:00</published><updated>2008-04-20T18:51:16.957+10:00</updated><title type='text'>Gcalctool 5.23.1</title><content type='html'>The Gcalctool team is proud to annouce the release of Gcalctool 5.23.1.&lt;br /&gt;This release contains a number of bugfixes:&lt;br /&gt;   * Fixes a number of compiler warnings (Bugs #526976, #526702, #527318)&lt;br /&gt;   * Fixes incorrect negation precedence (Bug #526094)&lt;br /&gt;   * Fixes issues with thousands seperators and radix in non-english&lt;br /&gt;     locales (Bug #527669)&lt;br /&gt;   * Fixes regression in constant and function menus (Bug #527545)&lt;br /&gt;   * Fixes problem where display is invisible after solving equation&lt;br /&gt;     (Bug #524602)&lt;br /&gt;&lt;br /&gt;Get it from:&lt;br /&gt;&lt;a href="http://ftp.gnome.org/pub/GNOME/sources/gcalctool/5.23/"&gt;http://ftp.gnome.org/pub/GNOME/sources/gcalctool/5.23/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5377699182873374794?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5377699182873374794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5377699182873374794' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5377699182873374794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5377699182873374794'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/04/gcalctool-5231.html' title='Gcalctool 5.23.1'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-471842431282436702</id><published>2008-04-08T12:56:00.002+10:00</published><updated>2008-04-08T14:16:59.122+10:00</updated><title type='text'>Gcalctool 5.22.1</title><content type='html'>I was flicking through the GNOME reminders for the 2.22.1 release not really thinking then I realised for Gcalctool that means me... So on the last day I ran through the &lt;a href="http://live.gnome.org/MaintainersCorner/Releasing"&gt;release instructions&lt;/a&gt; (very well written). Got through all the steps except &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=526702"&gt;make distcheck isn't working&lt;/a&gt; and I didn't have the permissions to upload (got the outgoing maintainer &lt;a href="http://blogs.sun.com/richb/"&gt;Rich&lt;/a&gt; to do that step). &lt;br /&gt;&lt;br /&gt;Anyway; let the announcing begin!&lt;br /&gt;&lt;br /&gt;The Gcalctool team is proud to annouce the release of Gcalctool 5.22.1.&lt;br /&gt;This release contains the following changes:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Fix for bug where the initial zero in the display was not cleared (bug #520525)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Support bracket and multiply keys on non-english keyboards (bugs&lt;br /&gt;#521620 and #526671)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The replacement of sprintf() and strcpy() with the safer snprintf()&lt;br /&gt;and strncpy() (bug #520769)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Remove a .svn directory from the release tarball (bug #524025)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Updated translations bg(Yavor Doganov), en_GB(Philip Withnall),&lt;br /&gt;et(Ivar Smolin), pl(GNOME PL), sk(Marcel Telka).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;New maintainer; Robert Ancell takes the reins from Rich Burridge.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Get it from:&lt;br /&gt;http://ftp.gnome.org/pub/GNOME/sources/gcalctool/5.22/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-471842431282436702?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/471842431282436702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=471842431282436702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/471842431282436702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/471842431282436702'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/04/gcalctool-5221.html' title='Gcalctool 5.22.1'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2952055992076166387</id><published>2008-01-24T10:49:00.001+11:00</published><updated>2008-01-24T10:49:50.902+11:00</updated><title type='text'>A Field Guide to Free Software Supporters</title><content type='html'>Quite a good &lt;a href="http://itmanagement.earthweb.com/osrc/article.php/3723131"&gt;summary&lt;/a&gt; on what sort of people inhabit the free software world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2952055992076166387?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2952055992076166387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2952055992076166387' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2952055992076166387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2952055992076166387'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/01/field-guide-to-free-software-supporters.html' title='A Field Guide to Free Software Supporters'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2044168149357253824</id><published>2008-01-23T19:29:00.000+11:00</published><updated>2008-01-23T19:43:59.120+11:00</updated><title type='text'>Linux is just great</title><content type='html'>Got this email from my father the other day:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Just to let you know that I think Linux is just great.  I plugged in the old Cannon Printer and the HP 3300C Scanjet and they both worked without a hitch.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I think I installed 5.04 on my fathers laptop a few years ago. I upgraded him to 7.10 the other month (he would have been able to do it himself but I had to flash the bios to get rid of a password and enable CD-ROM booting). The only additional application he needs to add is &lt;a href="http://gramps-project.org/"&gt;Gramps&lt;/a&gt; (Genealogy). From the perspective of someone wanting things to "just work" each release has been definitely been getting better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2044168149357253824?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2044168149357253824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2044168149357253824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2044168149357253824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2044168149357253824'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/01/linux-is-just-great.html' title='Linux is just great'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5500379820220986238</id><published>2008-01-19T13:14:00.000+11:00</published><updated>2008-01-19T13:19:57.364+11:00</updated><title type='text'>The Gnome Foundation</title><content type='html'>Well I'm now a member of the &lt;a href="http://foundation.gnome.org"&gt;Gnome Foundation&lt;/a&gt; and I'm about to take over maintainership of gcalctool. Looks like my &lt;a href="http://bobthegnome.blogspot.com/2005/12/new-blog.html"&gt;plans&lt;/a&gt; to become more involved in Gnome is coming along nicely...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5500379820220986238?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5500379820220986238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5500379820220986238' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5500379820220986238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5500379820220986238'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2008/01/gnome-foundation.html' title='The Gnome Foundation'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7911554556851075122</id><published>2007-12-18T22:07:00.000+11:00</published><updated>2007-12-18T22:18:19.855+11:00</updated><title type='text'>Sharing media with Xbox 360</title><content type='html'>My flatmate has an &lt;a href="http://www.xbox.com"&gt;Xbox 360&lt;/a&gt; so I thought I should I should work out how to share my media from my Ubuntu laptop...&lt;br /&gt;&lt;br /&gt;Turns out to be pretty simple.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Install &lt;a href="http://ushare.geexbox.org"&gt;ushare&lt;/a&gt;. There is a ushare and libdlna package to install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Edit the config file in /etc/ushare.conf. Set USHARE_ENABLE_XBOX, USHARE_DIR and USHARE_IFACE&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Restart with /etc/init.d/ushare restart&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;&lt;br /&gt;You don't need to add any routes that they recommend (as long as your default route is OK and you're only using one network interface). Remember to set the appropriate interface (in my case my wireless is eth1) as the USHARE_IFACE option.&lt;br /&gt;&lt;br /&gt;The default config file in 1.1a had invalid config item names. All config items should start with USHARE_. The Xbox one did not in my default config file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7911554556851075122?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7911554556851075122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7911554556851075122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7911554556851075122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7911554556851075122'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/12/sharing-media-with-xbox-360.html' title='Sharing media with Xbox 360'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2755239371496493304</id><published>2007-12-09T21:06:00.000+11:00</published><updated>2007-12-09T21:26:48.100+11:00</updated><title type='text'>Ubuntu Python Upgrading</title><content type='html'>The other day I went to a &lt;a href="http://www.sypy.org"&gt;SyPy&lt;/a&gt;. One interesting thing I learnt from a &lt;a href="http://www.canonical.com"&gt;Canonical&lt;/a&gt; employee I was talking to there is what caused a much duplicated &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=412690"&gt;glChess bug&lt;/a&gt;. The symptoms of the bug are basically glChess crashes on startup while upgrading due to not being able to import the glchess module. Unfortunately as an Ubuntu upgrade can take some time users tend to be looking for some small task to amuse themselves; say, playing a game :)&lt;br /&gt;&lt;br /&gt;I'm not 100% sure of all the details but essential the following occurs when python files are upgraded in Ubuntu:&lt;br /&gt;At some point in the upgrade the site-packages Python directory (which contains all the python modules to import) is moved/symlinked out of the way. This is done to avoid binary incompatibilities between .pyc files between Python versions. The .pycs are rebuilt and then the directory returns.&lt;br /&gt;&lt;br /&gt;What this means for application developers like me... Files installed into bin/ directories remain so a user can launch the application but the libraries have dissappeared so the application will fail with an ImportError exception.&lt;br /&gt;&lt;br /&gt;I'm not convinced the upgrade needs to be this dramatic as .pyc files are only a load optimisation but this means that the ImportError should be caught at the top level and the user warned they have an invalid install (a good thing to report anyway) or they are upgrading and must wait for the upgrade to complete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2755239371496493304?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2755239371496493304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2755239371496493304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2755239371496493304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2755239371496493304'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/12/ubuntu-python-upgrading.html' title='Ubuntu Python Upgrading'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3802116558422872525</id><published>2007-11-19T16:20:00.000+11:00</published><updated>2007-11-19T16:33:07.074+11:00</updated><title type='text'>Confused about sound on Linux?</title><content type='html'>I know I am... With the arrival of &lt;a href="http://www.pulseaudio.org"&gt;PulseAudio&lt;/a&gt; to join &lt;a href="http://www.opensound.com/oss.html"&gt;OSS&lt;/a&gt;, &lt;a href="http://www.alsa-project.org/"&gt;ALSA&lt;/a&gt;, &lt;a href="http://gstreamer.freedesktop.org/"&gt;GStreamer&lt;/a&gt;, &lt;a href="http://www.arts-project.org/"&gt;aRts&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Enlightened_Sound_Daemon"&gt;ESOUND&lt;/a&gt;, &lt;a href="http://www.radscan.com/nas.html"&gt;NAS&lt;/a&gt;, &lt;a href="http://phonon.kde.org"&gt;Phonon&lt;/a&gt; etc etc it's a bit hard to see any clarity. A linux.com &lt;a href="http://www.linux.com/feature/119926"&gt;article&lt;/a&gt; clears up things a bit.&lt;br /&gt;&lt;br /&gt;I seems to me the "standard" way for Gnome will probably be:&lt;br /&gt;- Applications decode/generate audio using GStreamer&lt;br /&gt;- GStreamer sends the audio to PulseAudio which performs volume control and routing&lt;br /&gt;- ALSA drivers play the routed audio onto physical cards&lt;br /&gt;&lt;br /&gt;All three projects have some overlap and do not require any of the others to work. OSS was replaced by ALSA. ESOUND was replaced by PulseAudio.&lt;br /&gt;&lt;br /&gt;KDE is also using Phonon as a fourth layer for API stability and to allow applications an easy way to play sounds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3802116558422872525?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3802116558422872525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3802116558422872525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3802116558422872525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3802116558422872525'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/11/confused-about-sound-on-linux.html' title='Confused about sound on Linux?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1196638587640607638</id><published>2007-11-18T22:57:00.000+11:00</published><updated>2007-11-18T23:19:08.612+11:00</updated><title type='text'>OpenGL 2.0</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_pzVKVDOIYcQ/R0Ao7kgoxnI/AAAAAAAAAFo/xeB8lI-Jdfc/s1600-h/glchess-shader"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_pzVKVDOIYcQ/R0Ao7kgoxnI/AAAAAAAAAFo/xeB8lI-Jdfc/s200/glchess-shader" border="0" alt=""id="BLOGGER_PHOTO_ID_5134148579080324722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I noticed that since upgrading to Gutsy I appear to have OpenGL 2.0 support callable from Python... Since I've never done any OpenGL 2.0 and I have the &lt;a href="http://www.3dshaders.com/"&gt;Orange Book&lt;/a&gt; sitting beside my I should give it a try.&lt;br /&gt;&lt;br /&gt;After &lt;a href="https://bugs.launchpad.net/ubuntu/+source/python-opengl/+bug/163539"&gt;hacking&lt;/a&gt; the installed libraries I got the early result of the shaders in the picture which shows hemispherical lighting (not possible in OpenGL 1).&lt;br /&gt;&lt;br /&gt;It all seems to work quite well. I was working on some cell shading but changing shaders while drawing the scene makes everything go black. I hope it's not a driver/binding issue but something I'm doing wrong (can't work it out yet though). Hopefully sometime in the future there will be fluffy chess pieces too :)&lt;br /&gt;&lt;br /&gt;As for putting this into glChess I think this one will have to be handled very carefully. There is enough bugs from differing OpenGL setups (and broken drivers) that the code will have to be very robust. When things start working better I'll add a secret gconf key that turns on the shaders for those in the know...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1196638587640607638?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1196638587640607638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1196638587640607638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1196638587640607638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1196638587640607638'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/11/opengl-20.html' title='OpenGL 2.0'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_pzVKVDOIYcQ/R0Ao7kgoxnI/AAAAAAAAAFo/xeB8lI-Jdfc/s72-c/glchess-shader' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6701555923749508445</id><published>2007-10-29T23:59:00.000+11:00</published><updated>2007-10-30T00:01:44.205+11:00</updated><title type='text'>No more glchess.sourceforge.net</title><content type='html'>Well I finally got around to it and have removes glchess.sourceforge.net and the glChess launchpad account. They were very neglected and no longer appropriate with the work in Gnome. The sourceforge page now points to &lt;a href="http://live.gnome.org/glChess"&gt;live.gnome&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That is all; move along.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6701555923749508445?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6701555923749508445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6701555923749508445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6701555923749508445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6701555923749508445'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/10/no-more-glchesssourceforgenet.html' title='No more glchess.sourceforge.net'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5465711252834152733</id><published>2007-10-29T23:15:00.000+11:00</published><updated>2007-10-29T23:32:15.900+11:00</updated><title type='text'>Is Gnome for the 80%?</title><content type='html'>I work with Engineers with most of us running Ubuntu for day to day work. I however seem to be the only vocal supporter of Gnome. The loudest bunch of GUI users seem to be the KDE (Kubuntu) camp with  the general complaint being "it's too simple/dumbed down" (also heard outside of work). My complaint with KDE is "it's too complex". :) The question is:&lt;br /&gt;&lt;br /&gt;Is Gnome for the &lt;a href="http://blog.red-bean.com/sussman/?p=79"&gt;80% of users like subversion&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;I think that is the direction Gnome has been going in for some time and I think this is the direction Gnome &lt;em&gt;should&lt;/em&gt; be going. In saying that I don't think Gnome leaves a power user like me high and dry. I like how Gnome keeps my day to day problems simple and for power tasks I stay in Gnome Terminal and use the odd app like Firefox, Gedit, Gimp, Inkscape, Glade and &lt;a href="http://meld.sourceforge.net"&gt;Meld&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5465711252834152733?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5465711252834152733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5465711252834152733' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5465711252834152733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5465711252834152733'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/10/is-gnome-for-80.html' title='Is Gnome for the 80%?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2765481971723744636</id><published>2007-10-17T11:25:00.000+10:00</published><updated>2007-10-17T11:40:48.478+10:00</updated><title type='text'>Moving gcalctool UI to Glade</title><content type='html'>The another night the Gnome Calculator (another "core" open-source project without a website) was annoying me in how it has a separate memory register window. I'm a big fan of reducing the number of floating dialogs (unless there is a good reason to have them) so I made a patch to move this window inside the main window (&lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=485398"&gt;Bug 485398&lt;/a&gt;). I blind tested this on &lt;a href="http://comfortcode.blogspot.com/"&gt;Henry&lt;/a&gt; and he agreed it was better. Unfortunately it doesn't work when the numbers in the registers are huge (can't think of a good UI workaround) so it hasn't been accepted.&lt;br /&gt;&lt;br /&gt;However I was foolishly tempted to convert the ~3500 line gtk.c into using Glade (&lt;a href="" id="485919"&gt;Bug 485919&lt;/a&gt;). Which has been taking up all my glChess/GGZ development time but is nearly finished. But I think it's a useful addition for the future of gcalctool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2765481971723744636?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2765481971723744636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2765481971723744636' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2765481971723744636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2765481971723744636'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/10/moving-gcalctool-ui-to-glade.html' title='Moving gcalctool UI to Glade'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-169456749737807221</id><published>2007-08-25T19:13:00.000+10:00</published><updated>2007-08-25T19:17:17.729+10:00</updated><title type='text'>Seam Carving for Content-Aware Image Resizing</title><content type='html'>This is a very cool algorithm. Makes me a little keen to go back to and do a signal processing post-graduate degree at Uni...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vIFCV2spKtg"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vIFCV2spKtg" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Researchers are &lt;a href="http://www.merl.com/people/avidan/"&gt;Shai Avidan&lt;/a&gt; and &lt;a href="http://www.faculty.idc.ac.il/arik/"&gt;Ariel Shamir&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-169456749737807221?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/169456749737807221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=169456749737807221' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/169456749737807221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/169456749737807221'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/08/seam-carving-for-content-aware-image.html' title='Seam Carving for Content-Aware Image Resizing'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7424121880683320839</id><published>2007-08-03T16:26:00.000+10:00</published><updated>2007-08-03T16:29:40.014+10:00</updated><title type='text'>Got a spare computer lying around?</title><content type='html'>Quite a &lt;a href="http://www.maxivista.com"&gt;cool idea&lt;/a&gt;; load a display driver onto a spare computer and use it as more screen real estate for another. The &lt;a href="http://www.maxivista.com/demo.htm"&gt;video&lt;/a&gt; showing it in action is quite impressive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7424121880683320839?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7424121880683320839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7424121880683320839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7424121880683320839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7424121880683320839'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/08/got-spare-computer-lying-around.html' title='Got a spare computer lying around?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8576405510621633971</id><published>2007-08-03T15:35:00.000+10:00</published><updated>2007-08-03T15:51:14.907+10:00</updated><title type='text'>SSL in Java</title><content type='html'>Got SSL &lt;a href="http://bobthegnome.blogspot.com/2007/08/making-ssl-connection-in-python.html"&gt;working in Python&lt;/a&gt;, and for my next trick the Java end! As you may know I am no fan of Java and so this seemingly simple task took much longer than expected...&lt;br /&gt;&lt;br /&gt;The initial program is quite simple:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;import javax.net.ssl.SSLSocket;&lt;br /&gt;&lt;br /&gt;public class JVT&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void main(final String[] args) throws Throwable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SSLSocketFactory sslSocketFactory = (SSLSocketFactory)SSLSocketFactory.getDefault();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SSLSocket sslsocket = (SSLSocket)sslSocketFactory.createSocket("localhost", 12345);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sslsocket.getOutputStream().write("Hello from the world of Java\n".getBytes());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But when I connected I got:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Oh, what a readable exception... So it appears it doesn't like the certificate of my Python end and I should probably supply that to Java somehow. &lt;a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html"&gt;keytool&lt;/a&gt; is the tool for the job (a very cheap and nasty tool). I tried doing a:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ keytool -import cert&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Which did seem to import it (shows with &lt;code&gt;keytool -list&lt;/code&gt;) but still the exception.&lt;br /&gt;&lt;br /&gt;Tried some debugging:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -Djavax.net.debug=ssl&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;It showed the standard signing authority certificates but not my one... &lt;br /&gt;&lt;br /&gt;And that's when I give up and copy &lt;a href="http://www.caucho.com/support/hessian-interest/0503/0013.html"&gt;someone else's solution&lt;/a&gt; to the problem. This is how to replace the certificate checking with a null implementation:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;import javax.net.ssl.HostnameVerifier;&lt;br /&gt;import javax.net.ssl.TrustManager;&lt;br /&gt;import javax.net.ssl.X509TrustManager;&lt;br /&gt;import javax.net.ssl.SSLSession;&lt;br /&gt;import javax.net.ssl.SSLContext;&lt;br /&gt;import javax.net.ssl.SSLSocket;&lt;br /&gt;&lt;br /&gt;public class JVT&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void main(final String[] args) throws Throwable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create empty HostnameVerifier&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HostnameVerifier hv = new HostnameVerifier()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public boolean verify(String urlHostName, SSLSession session)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create a trust manager that does not validate certificate chains&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TrustManager[] trustAllCerts = new TrustManager[]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new X509TrustManager()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public java.security.cert.X509Certificate[] getAcceptedIssuers()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SSLContext sc = SSLContext.getInstance("SSL");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sc.init(null, trustAllCerts, new java.security.SecureRandom());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SSLSocketFactory sslSocketFactory = sc.getSocketFactory();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SSLSocket sslsocket = (SSLSocket)sslSocketFactory.createSocket("localhost", 12345);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sslsocket.getOutputStream().write("Hello from the world of Java\n".getBytes());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So now it works (for transport) but I must find out how to do the certificates properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8576405510621633971?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8576405510621633971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8576405510621633971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8576405510621633971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8576405510621633971'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/08/ssl-in-java.html' title='SSL in Java'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8957500801574363345</id><published>2007-08-03T13:50:00.000+10:00</published><updated>2007-08-03T14:04:21.633+10:00</updated><title type='text'>Making an SSL connection in Python</title><content type='html'>For a work project I want to make a secure point-to-point link between a Java application and a Python server. Here is the result of googling/tinkering to get the link working in Python...&lt;br /&gt;&lt;br /&gt;The client side is pretty simple. Python comes with built in SSL support for connecting sockets. Basically you just wrap a standard socket with an SSL socket:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import socket&lt;br /&gt;&lt;br /&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s.connect(('localhost', 12345))&lt;br /&gt;sslSocket = socket.ssl(s)&lt;br /&gt;print repr(sslSocket.server())&lt;br /&gt;print repr(sslSocket.issuer())&lt;br /&gt;sslSocket.write('Hello secure socket\n')&lt;br /&gt;s.close()&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The server is a bit more tricky, you need to install &lt;a href="http://pyopenssl.sourceforge.net/"&gt;pyopenssl&lt;/a&gt; (apt-get install python-pyopenssl) for more SSL features. The server needs a private key and certificate to identify itself with.&lt;br /&gt;&lt;br /&gt;The quick and dirty way to generate a test key+certificate is:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;openssl genrsa 1024 &gt; key&lt;br /&gt;openssl req -new -x509 -nodes -sha1 -days 365 -key key &gt; cert&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And the server wraps the sockets much like the client does:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import socket&lt;br /&gt;from OpenSSL import SSL&lt;br /&gt;&lt;br /&gt;context = SSL.Context(SSL.SSLv23_METHOD)&lt;br /&gt;context.use_privatekey_file('key')&lt;br /&gt;context.use_certificate_file('cert')&lt;br /&gt;&lt;br /&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s = SSL.Connection(context, s)&lt;br /&gt;s.bind(('', 12345))&lt;br /&gt;s.listen(5)&lt;br /&gt;&lt;br /&gt;(connection, address) = s.accept()&lt;br /&gt;while True:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print repr(connection.recv(65535))&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openssl.org"&gt;OpenSSL&lt;/a&gt; also provides a test SSL client/server in the style of  telnet/&lt;a href="http://netcat.sourceforge.net/"&gt;netcat&lt;/a&gt;, great for debugging:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;openssl s_server -accept 12345 -cert cert -key key&lt;br /&gt;openssl s_client -connect localhost:12345&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8957500801574363345?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8957500801574363345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8957500801574363345' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8957500801574363345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8957500801574363345'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/08/making-ssl-connection-in-python.html' title='Making an SSL connection in Python'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-118179601520012932</id><published>2007-07-27T13:00:00.000+10:00</published><updated>2007-07-27T13:14:03.756+10:00</updated><title type='text'>Tool for checking key events with curses</title><content type='html'>I'm doing a bit of curses programming at the moment. I've made a tool to check the keys entered are as expected. Do what you like with it.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/evn python&lt;br /&gt;import curses&lt;br /&gt;import curses.ascii&lt;br /&gt;&lt;br /&gt;keys = {}&lt;br /&gt;for name in dir(curses):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if name.startswith('KEY_'):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;keys[getattr(curses, name)] = name&lt;br /&gt;&lt;br /&gt;for name in dir(curses.ascii):&lt;br /&gt;&amp;nbsp;&amp;nbsp;if name.isupper():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;keys[getattr(curses.ascii, name)] = name&lt;br /&gt;&lt;br /&gt;for i in xrange(128):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if curses.ascii.isprint(i):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;keys[i] = "'%s'" % chr(i)&lt;br /&gt;&lt;br /&gt;s = curses.initscr()&lt;br /&gt;s.keypad(1)&lt;br /&gt;curses.noecho()&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while True:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c = s.getch()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.clear()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;key = keys[c]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except KeyError:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;key = '%d' % c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.addstr("Key = %s" % key)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.refresh()&lt;br /&gt;except:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;curses.endwin()&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-118179601520012932?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/118179601520012932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=118179601520012932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/118179601520012932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/118179601520012932'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/07/tool-for.html' title='Tool for checking key events with curses'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4820056461491192054</id><published>2007-06-13T13:25:00.000+10:00</published><updated>2007-06-13T13:32:56.741+10:00</updated><title type='text'>Google Analytics = WOW</title><content type='html'>Wow.&lt;br /&gt;&lt;br /&gt;I just went back to &lt;a href="http://google.com/analytics"&gt;Google Analytics&lt;/a&gt; for the first time in a while and their new interface is just amazing.&lt;br /&gt;&lt;br /&gt;Check it out:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_pzVKVDOIYcQ/Rm9lO0SbAeI/AAAAAAAAAEI/pgUhbuPk40A/s1600-h/google_analytics_new_ui.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_pzVKVDOIYcQ/Rm9lO0SbAeI/AAAAAAAAAEI/pgUhbuPk40A/s320/google_analytics_new_ui.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5075386610298323426" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4820056461491192054?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4820056461491192054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4820056461491192054' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4820056461491192054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4820056461491192054'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/06/google-analytics-wow.html' title='Google Analytics = WOW'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_pzVKVDOIYcQ/Rm9lO0SbAeI/AAAAAAAAAEI/pgUhbuPk40A/s72-c/google_analytics_new_ui.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3661123164989938707</id><published>2007-06-13T13:14:00.000+10:00</published><updated>2007-06-13T13:20:36.754+10:00</updated><title type='text'>Safari on Windows</title><content type='html'>So apparently you can get &lt;a href="http://www.apple.com/safari/"&gt;Safari&lt;/a&gt; for Windows.&lt;br /&gt;&lt;br /&gt;There are two possible reasons I can see Apple doing this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The want to improve website compatibility with Safari - by having a Windows version hopefully more page designers will check compatibility and thus their core OSX users will get better support.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;They want to use this as their iPhone development platform - Safari will have a mode for running iPhone applications in a browser window the same size and behaviour as the iPhone (which will be like Dashboard applications?).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;My gut instinct is that this started when the iTunes developers tried to see how easy it would be to port other apps. Apple must have a reasonable number of Windows savvy developers by now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3661123164989938707?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3661123164989938707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3661123164989938707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3661123164989938707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3661123164989938707'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/06/safari-on-windows.html' title='Safari on Windows'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-444344640822648005</id><published>2007-06-06T13:44:00.000+10:00</published><updated>2007-06-06T13:48:22.531+10:00</updated><title type='text'>Have you mooed today?</title><content type='html'>I notice that &lt;a href="https://launchpad.net/ubuntu/+source/apt/+bug/56125"&gt;&lt;code&gt;apt-get&lt;/code&gt;&lt;/a&gt; is not the only mooer in town. Try &lt;code&gt;ip moo&lt;/code&gt; (from iputils).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-444344640822648005?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/444344640822648005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=444344640822648005' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/444344640822648005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/444344640822648005'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/06/have-you-mooed-today.html' title='Have you mooed today?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-505321002037291495</id><published>2007-06-03T16:26:00.000+10:00</published><updated>2007-06-03T16:36:42.900+10:00</updated><title type='text'>The thin Gnome line</title><content type='html'>I'm finding recently I'm not making any significant progress on glChess. When I get around to some development after I've gone through the flood of incoming bugs there's no time to add new features! I really want to get the GGZ support into 2.20... I stopped spending time on the flood of &lt;a href="http://bugzilla.gnome.org/buglist.cgi?product=gnome-games&amp;bug_status=NEW&amp;bug_status=REOPENED&amp;bug_status=ASSIGNED&amp;bug_status=UNCONFIRMED&amp;component=gnome-sudoku"&gt;Sudoku&lt;/a&gt; bugs a while ago.&lt;br /&gt;&lt;br /&gt;It is interesting as more distributions change to Gnome 2.18 how many 1 in a million (or other appropriate large number) bugs turn up. I can only assume &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=442352"&gt;this user&lt;/a&gt; has somehow overwritten their gobject install... Weird *. There seem to be a &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=426461"&gt;lot&lt;/a&gt; &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=443344"&gt;of&lt;/a&gt; &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=435035"&gt;errors&lt;/a&gt; in peoples libraries. Hard to know what to do with these bugs as they're outside the scope of glchess but I'd prefer not to close them NOTGNOME too quickly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* It would be good from a maintainers point of view if the big distributions like Ubuntu had a background process that audited all installed files so corruption could be picked up (and the packages re-installed).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-505321002037291495?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/505321002037291495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=505321002037291495' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/505321002037291495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/505321002037291495'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/06/thin-gnome-line.html' title='The thin Gnome line'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4178878990563621023</id><published>2007-05-21T14:48:00.000+10:00</published><updated>2007-05-21T15:11:45.297+10:00</updated><title type='text'>Nouveau + Linux Graphics</title><content type='html'>One thing the &lt;a href="http://nouveau.freedesktop.org/"&gt;Nouveau project&lt;/a&gt; is doing well is to make open-source graphics more accessible. There are links to &lt;a href="http://nouveau.freedesktop.org/wiki/IntroductoryCourse"&gt;a bunch of articles&lt;/a&gt; which while still young give insights into what does what. Looking at the nouveau source code shows it really isn't overly complicated - that hard work has already been done by &lt;a href="http://mesa3d.org"&gt;Mesa&lt;/a&gt;. A DRI 3D driver basically requires a kernel module to do the IO and an X driver that can convert OpenGL to native card protocol. The difficulty is this protocol is not (publically) documented. But looking through the code and googling shows that a lot of the information is out there. It needs to be compiled into a "Missing Manual".&lt;br /&gt;&lt;br /&gt;If I had the time I would love to work on a project like this. Once past a critical point the value to the open-source world would be immense.&lt;br /&gt;&lt;br /&gt;As Dave Airlie and Ben Skeggs &lt;a href="http://www.skynet.ie/~airlied/talks/lca07/nouveau.odp"&gt;said&lt;/a&gt; at LinuxConf.au; "Graphics drivers are not that hard..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4178878990563621023?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4178878990563621023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4178878990563621023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4178878990563621023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4178878990563621023'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/05/nouveau-linux-graphics.html' title='Nouveau + Linux Graphics'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-116451795701954607</id><published>2007-05-20T16:03:00.000+10:00</published><updated>2007-05-20T16:24:35.675+10:00</updated><title type='text'>Gnome Games Icons</title><content type='html'>Gnome games now has new &lt;a href="http://tango.freedesktop.org"&gt;Tango&lt;/a&gt; icons in all resolutions:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_pzVKVDOIYcQ/Rk_lJbLJkXI/AAAAAAAAAD4/4wQ2SjgTqsE/s1600-h/gnome_games_icons_white.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_pzVKVDOIYcQ/Rk_lJbLJkXI/AAAAAAAAAD4/4wQ2SjgTqsE/s400/gnome_games_icons_white.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5066520055891202418" /&gt;&lt;/a&gt;&lt;br /&gt;These were made some time ago by (mostly) Daniel Derozier but only some of them were in use in 2.18. I found out about these icons from the Tango mailing list and found there was some complications getting these icons used (see &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=354507"&gt;bug 354507&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;What seemed to happen was an all too common situation in open-source where everyone wanted the change but it wasn't used due to confusion/politics/endless discussion. It seems very common with distributed development (with people you have never met) that feedback can come across as criticism. Without formal management it's very easy for issues like this to be missed and fall through the cracks.&lt;br /&gt;&lt;br /&gt;One thing that I think helps is to divide the change into smaller parts. For instance if a bug is opened with a change that is generally good then commit that change and aim to open more bugs to fix details with the change. If all the details must be fixed before committing then the change is in danger of never reaching completion or ending up in a design by committee situation.&lt;br /&gt;&lt;br /&gt;(note that this post is feedback and not criticism!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-116451795701954607?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/116451795701954607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=116451795701954607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/116451795701954607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/116451795701954607'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/05/gnome-games-icons.html' title='Gnome Games Icons'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_pzVKVDOIYcQ/Rk_lJbLJkXI/AAAAAAAAAD4/4wQ2SjgTqsE/s72-c/gnome_games_icons_white.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8382460011997153341</id><published>2007-05-13T00:02:00.000+10:00</published><updated>2007-05-13T00:05:45.265+10:00</updated><title type='text'>Too many parodies...</title><content type='html'>I've just watched too many &lt;a href="http://www.apple.com/getamac/"&gt;Get a Mac&lt;/a&gt; parodies... This one was quite good though:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qHO8l-Bd1O4"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/qHO8l-Bd1O4" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I use Macs a lot a work for point-of-sale and applications and have been generally impressed with them. They can be tricky locking down but I imagine the other OSs are similarly difficult.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8382460011997153341?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8382460011997153341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8382460011997153341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8382460011997153341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8382460011997153341'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/05/too-many-parodies.html' title='Too many parodies...'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3752271664506560443</id><published>2007-05-08T10:39:00.000+10:00</published><updated>2007-05-08T10:41:29.891+10:00</updated><title type='text'>I wonder what issue tracking tool is used...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://xkcd.com/c258.html"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://imgs.xkcd.com/comics/conspiracy_theories.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/20155916-3752271664506560443?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3752271664506560443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3752271664506560443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3752271664506560443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3752271664506560443'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/05/i-wonder-what-issue-tracking-tool-is.html' title='I wonder what issue tracking tool is used...'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8844348960715866830</id><published>2007-05-07T18:19:00.000+10:00</published><updated>2007-05-07T18:33:33.438+10:00</updated><title type='text'>GGZ</title><content type='html'>It got to 3pm today and I decided I just couldn't be bothered battling Java all afternoon when I'd really prefer to be working on glChess. So I just went home and did that (I love being a contractor!).&lt;br /&gt;&lt;br /&gt;So glChess is getting closer to having &lt;a href="http://www.ggzgamingzone.org/"&gt;GGZ&lt;/a&gt; support...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_pzVKVDOIYcQ/Rj7jd1MB9AI/AAAAAAAAADo/8SS1Sbi7zDQ/s1600-h/glchess-ggz.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_pzVKVDOIYcQ/Rj7jd1MB9AI/AAAAAAAAADo/8SS1Sbi7zDQ/s320/glchess-ggz.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5061733132844266498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Oh, and it really is wonderful to work on a &lt;a href="http://www.ggzgamingzone.org/docs/design/html/"&gt;well designed protocol&lt;/a&gt; like GGZ. &lt;a href="http://www.freechess.org/"&gt;ICS&lt;/a&gt; is OK if you're a human but a nightmare for a computer!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8844348960715866830?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8844348960715866830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8844348960715866830' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8844348960715866830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8844348960715866830'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/05/ggz.html' title='GGZ'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_pzVKVDOIYcQ/Rj7jd1MB9AI/AAAAAAAAADo/8SS1Sbi7zDQ/s72-c/glchess-ggz.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4369855123004676045</id><published>2007-05-01T23:16:00.000+10:00</published><updated>2007-05-01T23:23:36.820+10:00</updated><title type='text'>Poisonous People</title><content type='html'>I finally got around to watching my first Google Tech Talk, &lt;em&gt;How Open Source Projects Survive Poisonous People (And You Can Too)&lt;/em&gt;. It's a really good watch as it both shows how to spot and avoid trouble makers but also how to give good feedback as a project member (hopefully so you're not poisonous too!).&lt;br /&gt;&lt;br /&gt;One point of particular interest was their recommendation not to put your name in files - by doing this you are  implicitly claiming "ownership" of the code which will discourage potential developers.  From looking at other peoples code I think I agree with this idea and plan to remove my name from code in the future.&lt;br /&gt;&lt;br /&gt;&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-4216011961522818645&amp;hl=en" flashvars=""&gt; &lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4369855123004676045?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4369855123004676045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4369855123004676045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4369855123004676045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4369855123004676045'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/05/poisonous-people.html' title='Poisonous People'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1352317014894824904</id><published>2007-04-28T18:14:00.000+10:00</published><updated>2007-04-28T18:26:01.007+10:00</updated><title type='text'>Gnome bug triaging</title><content type='html'>We're getting a lot of bug reports flowing in for Gnome games. I try and knock off a few each weekend but progress is still slow. Most are coming from the automated reports from Feisty users.&lt;br /&gt;&lt;br /&gt;So here's my top 3 bugs that need to be fixed asap:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=409172"&gt;#409172&lt;/a&gt; - Sudoku crashes when loading. Haven't looked into this at all but we probably get a few reports each day&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=418427"&gt;#418427&lt;/a&gt; and &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=412690"&gt;#412690&lt;/a&gt; - Both Sudoku and chess can't find their libraries on Feisty - I suspect this is an upgrade issue only but none of the many reports have any information on how to reproduce&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=428560"&gt;#428560&lt;/a&gt; - Some dubious Sudoku code that extracts an integer from label text. Doesn't work when the label is translated. (I've been bugging &lt;a href="http://blog.ferrouswheel.info/"&gt;Joel&lt;/a&gt; to fix this).&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;We need your help!&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1352317014894824904?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1352317014894824904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1352317014894824904' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1352317014894824904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1352317014894824904'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/gnome-bug-triaging.html' title='Gnome bug triaging'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6354849970748955228</id><published>2007-04-21T11:36:00.000+10:00</published><updated>2007-04-21T11:54:27.850+10:00</updated><title type='text'>Upgrade complete</title><content type='html'>I've now &lt;a href="http://bobthegnome.blogspot.com/2007/04/upgrading-to-feisty.html"&gt;completed&lt;/a&gt; the Edgy-&gt;Feisty upgrade. I went to sleep at 1:30 am and continued this morning. I did an network upgrade and it took and estimated 5-6 hours. And the result is? I think I've gone slightly backwards.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The installer failed to complete due to the poor quality of the &lt;a href="http://bobthegnome.blogspot.com/2007/03/damn-broken-vmware.html"&gt;VMWare&lt;/a&gt; packages. They've now been removed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;fglrx acceleration still does not work. I've changed to the "radeon" driver which runs but is unreliable. I can get the desktop effects working (wobbly windows got annoying after one minute) but playing video stops working when the window looses focus. I noticed glChess renders both the 2D and 3D at the same time, I'll see if this is a driver or glChess at fault.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;And most annoyingly the US keyboard layout has stopped working for my second keybord. I can't type '/' or '|' which is &lt;em&gt;very&lt;/em&gt; annoying in the shell&lt;/li&gt; (the keyboard configuration shows the correct layout though).&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;For me both the &lt;a href="http://bobthegnome.blogspot.com/2006/10/upgrading-to-edgy-eft.html"&gt;Edgy&lt;/a&gt; and Feisty upgrades have been disappointing for me. I have a Dell Inspiron 6000 which I think is fairly common and I hope support gets better if Dell starts distributing Linux!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6354849970748955228?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6354849970748955228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6354849970748955228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6354849970748955228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6354849970748955228'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/upgrade-complete.html' title='Upgrade complete'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7795957083593047274</id><published>2007-04-20T21:53:00.000+10:00</published><updated>2007-04-20T21:54:23.495+10:00</updated><title type='text'>Upgrading to Feisty...</title><content type='html'>..be back in four hours hopefully with 3D support again!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7795957083593047274?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7795957083593047274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7795957083593047274' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7795957083593047274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7795957083593047274'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/upgrading-to-feisty.html' title='Upgrading to Feisty...'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5694600037446777886</id><published>2007-04-15T17:52:00.000+10:00</published><updated>2007-04-15T17:56:23.655+10:00</updated><title type='text'></title><content type='html'>I've been running &lt;a href="http://google.com/analytics"&gt;Google Analytics&lt;/a&gt; on the &lt;a href="http://glchess.sourceforge.net"&gt;glChess homepage&lt;/a&gt;. Looking at statistics over this period shows the visitors are dominated by the French and Italian:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_pzVKVDOIYcQ/RiHZ21dPSOI/AAAAAAAAADg/pfojMcoMkn8/s1600-h/glchess-visitors.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_pzVKVDOIYcQ/RiHZ21dPSOI/AAAAAAAAADg/pfojMcoMkn8/s320/glchess-visitors.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5053559792972286178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Are Europeans big chess players or big open-source users or both?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5694600037446777886?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5694600037446777886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5694600037446777886' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5694600037446777886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5694600037446777886'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/ive-been-running-google-analytics-on.html' title=''/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_pzVKVDOIYcQ/RiHZ21dPSOI/AAAAAAAAADg/pfojMcoMkn8/s72-c/glchess-visitors.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7985330310887317518</id><published>2007-04-13T11:28:00.000+10:00</published><updated>2007-04-13T11:29:45.900+10:00</updated><title type='text'>Xeyes in real life</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Xeyes"&gt;Xeyes&lt;/a&gt; in &lt;a href="http://hunz.geekheim.de/?p=47"&gt;real life&lt;/a&gt;. Cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7985330310887317518?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7985330310887317518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7985330310887317518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7985330310887317518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7985330310887317518'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/xeyes-in-real-life.html' title='Xeyes in real life'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3216475590288416236</id><published>2007-04-13T11:01:00.000+10:00</published><updated>2007-04-13T11:05:29.702+10:00</updated><title type='text'>glChess spam poetry</title><content type='html'>Seems glChess is now a sufficiently well know term to be &lt;a href="http://renapmnogies.blogspot.com/2007/04/tim-krabbe.html"&gt;included in spam poetry&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The Commission has concluded that " safeguards schachclub are imposed by federal skakcomputer law and forensic science is webchess &lt;b&gt;glchess&lt;/b&gt; practiced go chessboard schachcomputer far less efficient than openings tim krabe rochade ...&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I don't know whether to be flattered or annoyed.&lt;br /&gt;&lt;br /&gt;p.s. I found this from a feed from &lt;a href="http://blogsearch.google.com/"&gt;Google Blog Search&lt;/a&gt; - this is a great way to keep track on what people are saying about your project. Most people don't write to you, they just write about you...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3216475590288416236?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3216475590288416236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3216475590288416236' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3216475590288416236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3216475590288416236'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/glchess-spam-poetry.html' title='glChess spam poetry'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4604686035927065955</id><published>2007-04-09T18:39:00.000+10:00</published><updated>2007-04-13T11:30:55.656+10:00</updated><title type='text'>glChess 1.0.5</title><content type='html'>So here it is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_pzVKVDOIYcQ/Rhn8K2sSYYI/AAAAAAAAADY/jlQkZT6wlvA/s1600-h/glchess-1.0.5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_pzVKVDOIYcQ/Rhn8K2sSYYI/AAAAAAAAADY/jlQkZT6wlvA/s320/glchess-1.0.5.png" alt="" id="BLOGGER_PHOTO_ID_5051345720482881922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Yes, it has (simple) timed play support. It needs some cleaning up in the code but due to limited development time I thought it best to "release early".&lt;br /&gt;&lt;br /&gt;Notice the navigation buttons are now on the left. I liked the symmetry of them on either side but as a user pointed out when you are in high resolution it takes too much mouse motion to move between them.&lt;br /&gt;&lt;br /&gt;The other notable change is the 2D board now rotates and you can choose (from the menu) which side of the board to view.&lt;br /&gt;&lt;br /&gt;These changes will be in the Gnome 2.20 release.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4604686035927065955?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4604686035927065955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4604686035927065955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4604686035927065955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4604686035927065955'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/glchess-105.html' title='glChess 1.0.5'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_pzVKVDOIYcQ/Rhn8K2sSYYI/AAAAAAAAADY/jlQkZT6wlvA/s72-c/glchess-1.0.5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8974239534394855096</id><published>2007-04-08T16:08:00.000+10:00</published><updated>2007-04-08T17:38:24.032+10:00</updated><title type='text'>Beginners guide to Gnome Python games</title><content type='html'>In Gnome games we &lt;a href="http://mail.gnome.org/archives/games-list/2007-February/msg00011.html"&gt;need more help&lt;/a&gt; to &lt;a href="http://bugzilla.gnome.org/browse.cgi?product=gnome-games"&gt;squash some bugs&lt;/a&gt;. I've been bogged down squashing Sudoku bugs which aren't too difficult - just time consuming. It's a great opportunity for &lt;em&gt;you&lt;/em&gt; to get involved. I think it's hard to jump into development so here is a step by step entry guide to fixing bugs. Note the following instructions work fine for glChess too.&lt;br /&gt;&lt;br /&gt;First install &lt;a href="http://www.gnome.org/projects/gnome-games/"&gt;Gnome games&lt;/a&gt;. You can install this anywhere but I usually make a subversion directory:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ mkdir svn&lt;br /&gt;$ cd svn&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Check out the development version:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ svn co http://svn.gnome.org/svn/gnome-games/trunk gnome-games&lt;br /&gt;$ cd gnome-games&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Configure the package:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ ./autogen.sh --prefix=/tmp&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This will get the software installed in &lt;code&gt;/tmp&lt;/code&gt;, you might want to use &lt;code&gt;~/build&lt;/code&gt; or something similar instead.&lt;br /&gt;&lt;br /&gt;For the above you will need the appropriate development tools installed. This will be distribution specific so unfortunately you're on your own here... If I remember which ones I installed on Ubuntu I'll state it here. Oh and on Ubuntu Edgy edit &lt;code&gt;configure.in&lt;/code&gt; and change &lt;code&gt;GNOME_PYTHON_DESKTOP_REQUIRED=2.17.3&lt;/code&gt; to &lt;code&gt;2.16.0&lt;/code&gt; because it works fine with the old (installable) version.&lt;br /&gt;&lt;br /&gt;Install Sudoku:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ cd gnome-sudoku&lt;br /&gt;$ make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To run:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ PYTHONPATH=/tmp/lib/python2.4/site-packages/ /tmp/bin/gnome-sudoku&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Now here's the cool part - because Sudoku is written in Python you don't need to recompile to make changes... What I do is edit the files in &lt;code&gt;/tmp/lib/python2.4/site-packages/gnome-sudoku&lt;/code&gt; and run again. You can add print statements, make radical changes, whatever you like. And if things get too broken overwrite the install with another &lt;code&gt;make install&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;When you've fixed the change you need to make a patch to attach to a &lt;a href="http://bugzilla.gnome.org/browse.cgi?product=gnome-games"&gt;bug report&lt;/a&gt;. To do this you need to update the files in &lt;code&gt;~/svn/gnome-games&lt;/code&gt;. What I use is &lt;a href="http://meld.sourceforge.net/"&gt;Meld&lt;/a&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ meld ~/svn/gnome-games/gnome-sudoku /tmp/lib/python2.4/site-packages/gnome-sudoku&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Once you've got the changes merged into the checked out copy make a patch:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ cd ~/svn/gnome-games/gnome-sudoku&lt;br /&gt;$ svn diff &gt; your_changes_description.patch&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And send that in.&lt;br /&gt;&lt;br /&gt;Don't worry about the patch being perfect, the developers who know the codebase better will look it over and modify/suggest changes to you. It may take time to get a response because we're all volunteers but we do appreciate the work - We need more help and you're the right person for the job! The first patch is always the hardest too :)&lt;br /&gt;&lt;br /&gt;Feedback very welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8974239534394855096?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8974239534394855096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8974239534394855096' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8974239534394855096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8974239534394855096'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/04/beginners-guide-to-gnome-python-games.html' title='Beginners guide to Gnome Python games'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2410146860775319569</id><published>2007-03-30T13:08:00.000+10:00</published><updated>2007-03-30T13:42:13.835+10:00</updated><title type='text'>Working with Java</title><content type='html'>Or should that be &lt;em&gt;Working against Java&lt;/em&gt;...&lt;br /&gt;&lt;br /&gt;I've more-or-less come to the end of a project refactoring a large Java GUI application for my company and I now feel I can justifiably have a practical opinion on Java. This was my first commercial work with Java and I'll compare it to C/Python/GTK+ which I have used both commercially and in open-source projects.&lt;br /&gt;&lt;br /&gt;Java is far more complicated than it should be. Count the number of methods each class has when &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/"&gt;browsing&lt;/a&gt; the documentation. The complexity of the standard library exceeds the complexity of the problems you solve with it. Compare it to the Python or even C library. Instead of containing the basic tools and tools that you use frequently it's full of cruft. I think the programmer should either build up more complex functions themselves or use higher level functions from a different namespace (compare GL and GLU libraries in OpenGL).&lt;br /&gt;&lt;br /&gt;AWT and Swing are just a complete mess. Sure this is for historical reasons but Java needs a serious replacement. Maybe SWT is it but if some leadership is not taken to make a "standard" GUI that works I cannot see vanilla Java surviving compared to something like .NET. Case in point, &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Component.html"&gt;&lt;code&gt;java.awt.Component&lt;/code&gt;&lt;/a&gt; has four variations on getting keyboard focus. And reading the documentation on each is just worring... You may not get focus, you should use the requestFocusInWindow() because it is more cross-platform. I used to work with a commercial Java developer and he described the cross-platform support as write once; test n times. I now understand.&lt;br /&gt;&lt;br /&gt;Packing in AWT/Swing is just too difficult. The simple packing models are too simple for most cases and the complex ones create too much code. While the GTK+ model is more complex to start with I'm always surprised how my windows "just work" (try shrinking a Java window and see everything get messed up). Java needs a universally accepted equivalent of &lt;a href="http://glade.gnome.org/"&gt;Glade&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language"&gt;XAML&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Connecting signals takes too much code. Using Listeners requires you to write loads of empty methods to catch signals you want to and Adapters can't be inherited if you're already extending another class. I hate inline classes with a passion (so much code for so little behaviour!). Using SwingUtilities.invokeLater() (which is a really practical method that should be more central to Java) to create a runnable class every time you want to access one method later? Overkill. Why not just &lt;code&gt;gobject.idle_add(method)&lt;/code&gt;?&lt;br /&gt;&lt;br /&gt;Threading... All I can say is threading is an &lt;em&gt;optimisation&lt;/em&gt;. I've seen too much excessively threaded code that is very hard to maintain. Java seems to implicitly encourage you to thread which I do not like. I don't like that a lot of the Graphics operations don't seem to have an easy way of doing them synchronously. Threading is an &lt;em&gt;optimisation&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Really it's the library that lets Java down. The language is a &lt;b&gt;huge&lt;/b&gt; improvement over C. It lacks a little in low level access (I have not really done this in Java but from a first glance it may be missing something like Pythons &lt;a href="http://docs.python.org/lib/module-struct.html"&gt;struct module&lt;/a&gt;). I dislike the lack of flexibility over Java but I do like the compile time checking for catching bugs. I must try a .NET project to see if .NET doesn't have the baggage Java does. I get the impression the dominant members of the Java community have the opinion "Don't change anything, we've got too much code" as opposed to "Keep version X stable as we have lots of code, but make version X+1 fix the big problems in X".&lt;br /&gt;&lt;br /&gt;My opinion of Java? Not ready for the enterprise :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2410146860775319569?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2410146860775319569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2410146860775319569' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2410146860775319569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2410146860775319569'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/working-with-java.html' title='Working with Java'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2092793171264720065</id><published>2007-03-20T22:02:00.000+11:00</published><updated>2007-03-20T22:12:28.466+11:00</updated><title type='text'>Damn broken VMWare</title><content type='html'>Why are the Ubuntu VMWare packages so flaky? Every time I've upgraded the kernel (i.e. standard updates) VMWare player ceases to work. This has happened in both Dapper and Edgy and I'm surprised it hasn't been fixed as the way to reproduce is:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install Ubuntu from a CD&lt;/li&gt;&lt;li&gt;Install VMWare player&lt;/li&gt;&lt;li&gt;Use VMWare player. Works (fairly - see below) well&lt;/li&gt;&lt;li&gt;Perform a security update&lt;/li&gt;&lt;li&gt;Pretty much broken from now on...&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I was trying to find some bugs in the mess of launchpad.net and there doesn't seem to be any bug collection (?). Googling seems to show others on the forums etc have the same sort of problems...&lt;br /&gt;&lt;br /&gt;Some clues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The kernel modules are not loaded on startup. If you try and use modprobe they're not found. If you use insmod they load OK.&lt;/li&gt;&lt;li&gt;Running /etc/init.d/vmware-player start says neither vmmon or . I think this is because it is trying to use modprobe&lt;/li&gt;&lt;li&gt;If you run the player after insmodding then it runs but networking doesn't seem to work. In general the networking seems very flaky.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;And the last time I ran it it didn't want to quit and had to be killed. I wonder what state my image will be in next time I get it working (based on experience the first time I install Feisty!).&lt;br /&gt;&lt;br /&gt;And why is the performance of the player so poor? Applications inside the player often pause inexplicably for a minute or more (I think it may be related to networking, for example try ifup with DHCP). Sure it's virtualised so I could understand if there was a resource problem but both CPU and IO are not active. So I just don't know what's going on.&lt;br /&gt;&lt;br /&gt;So if anyone is wondering why there aren't any glChess packages from me for non-Ubuntu Dapper systems, now you know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2092793171264720065?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2092793171264720065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2092793171264720065' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2092793171264720065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2092793171264720065'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/damn-broken-vmware.html' title='Damn broken VMWare'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2280948348122294458</id><published>2007-03-17T02:29:00.000+11:00</published><updated>2007-03-17T02:33:47.788+11:00</updated><title type='text'>Slashdotted!</title><content type='html'>Seems like glchess.sourceforge.net got slashdotted:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_pzVKVDOIYcQ/Rfq39mIpSPI/AAAAAAAAADI/E9udz4vKpAI/s1600-h/slashdotted.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_pzVKVDOIYcQ/Rfq39mIpSPI/AAAAAAAAADI/E9udz4vKpAI/s320/slashdotted.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5042545001631402226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Good to see the quality of the &lt;a href="http://slashdot.org/article.pl?sid=07/03/14/2225202"&gt;comments&lt;/a&gt; were absolutely rubbish. Why actually try/investigate something when you can rush and post about it! :)&lt;br /&gt;&lt;br /&gt;Bonus points if anyone can actually confirm the dialog has bad grammar as some of the comments say.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2280948348122294458?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2280948348122294458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2280948348122294458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2280948348122294458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2280948348122294458'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/slashdotted.html' title='Slashdotted!'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_pzVKVDOIYcQ/Rfq39mIpSPI/AAAAAAAAADI/E9udz4vKpAI/s72-c/slashdotted.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7952620500548229609</id><published>2007-03-17T01:52:00.000+11:00</published><updated>2007-03-17T01:54:16.563+11:00</updated><title type='text'>Another sneak peak...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_pzVKVDOIYcQ/RfqvZmIpSOI/AAAAAAAAADA/l7TViSwkFuc/s1600-h/glchess-1.0.5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_pzVKVDOIYcQ/RfqvZmIpSOI/AAAAAAAAADA/l7TViSwkFuc/s320/glchess-1.0.5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5042535587063089378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As usual no promises on getting this past the screenshot stage at any particular time...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7952620500548229609?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7952620500548229609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7952620500548229609' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7952620500548229609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7952620500548229609'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/another-sneak-peak.html' title='Another sneak peak...'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_pzVKVDOIYcQ/RfqvZmIpSOI/AAAAAAAAADA/l7TViSwkFuc/s72-c/glchess-1.0.5.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-8219320787304973525</id><published>2007-03-16T13:04:00.000+11:00</published><updated>2007-03-16T15:38:40.053+11:00</updated><title type='text'>Sick today...</title><content type='html'>...but every cloud has a silver lining! I have time for open-source. In an attempt to reduce the millions of Gnome Sudoku bug reports flowing into my inbox I've had a crack at some of the worst offenders. I think I've knocked about five on the head so things should be more stable now.&lt;br /&gt;&lt;br /&gt;Unfortunately a lot of the bugs are due to a save file being corrupted. Once this has occurred Sudoku will always crash on startup. So we'll have to wait until a month or so until 2.18.1 is released to get some relief from bugbuddy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-8219320787304973525?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/8219320787304973525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=8219320787304973525' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8219320787304973525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/8219320787304973525'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/sick-today.html' title='Sick today...'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6762411276482896974</id><published>2007-03-05T18:37:00.000+11:00</published><updated>2007-03-05T18:39:36.738+11:00</updated><title type='text'>Java + keyboard bindings</title><content type='html'>= Insanity.&lt;br /&gt;&lt;br /&gt;I want to connect all input keys to a single widget. And I don't want to have to use 16 classes in the process. And I want all the Java library developers to get their come-uppance.&lt;br /&gt;&lt;br /&gt;*sigh*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6762411276482896974?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6762411276482896974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6762411276482896974' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6762411276482896974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6762411276482896974'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/java-keyboard-bindings.html' title='Java + keyboard bindings'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-5651800902118949419</id><published>2007-03-05T18:34:00.000+11:00</published><updated>2007-03-05T18:37:49.558+11:00</updated><title type='text'>Python GtkGLExt</title><content type='html'>...is now &lt;a href="http://packages.debian.org/unstable/python/python-gtkglext1"&gt;in Debian Unstable&lt;/a&gt;. This works for me (I get to be lazy and eventually stop providing anything for Ubuntu) and good for you (it's available in all the architectures that Debian builds for). Big thanks Thierry Randrianiriana for maintaining this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-5651800902118949419?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/5651800902118949419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=5651800902118949419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5651800902118949419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/5651800902118949419'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/python-gtkglext.html' title='Python GtkGLExt'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1269508602908960948</id><published>2007-03-04T16:02:00.000+11:00</published><updated>2007-03-04T16:06:55.867+11:00</updated><title type='text'>Boo's chess engine</title><content type='html'>I've just packaged &lt;a href="http://wiki.bowron.us/index.php/BCE"&gt;Boo's Chess Engine&lt;/a&gt; (or BCE, or BACE, or ddlchess as it is known...) for Debian/Ubuntu adding another easily installed AI that works with glChess. I think I have some sort of addiction finding open source chess engines and packaging them :)&lt;br /&gt;&lt;br /&gt;p.s. I found it &lt;a href="http://bobthegnome.blogspot.com/2007/02/secrets-of-ascii-table.html"&gt;quite&lt;/a&gt; &lt;a href="http://bobthegnome.blogspot.com/2007/03/ascii.html"&gt;funny&lt;/a&gt; posting the same article twice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1269508602908960948?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1269508602908960948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1269508602908960948' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1269508602908960948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1269508602908960948'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/boos-chess-engine.html' title='Boo&apos;s chess engine'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-6677278457477948828</id><published>2007-03-03T13:14:00.000+11:00</published><updated>2007-03-03T13:27:14.988+11:00</updated><title type='text'>ASCII</title><content type='html'>The other day I happened to look at the &lt;a href="http://en.wikipedia.org/wiki/ASCII"&gt;ASCII table&lt;/a&gt; and was surprised that I had never read and understood the C0 control characters! For something I've used for so long I thought that was pretty funny :) Way, way back when I started programming with QBasic I remember looking at the table but all the non-printable stuff looked "too complicated" so I just ignored them. I suppose I should have looked again when they weren't too complicated any more.&lt;br /&gt;&lt;br /&gt;In my previous job there were a number of ASCII/Binary protocols that used STX (02) and ETX (03) for framing transmission. This now makes a whole lot more sense...&lt;br /&gt;&lt;br /&gt;Oh and software flow control seems quite simple now. I'd assumed there was some sort of escape sequences to do this but hey, there's the characters right there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-6677278457477948828?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/6677278457477948828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=6677278457477948828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6677278457477948828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/6677278457477948828'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/03/ascii.html' title='ASCII'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-4481321742341684149</id><published>2007-02-25T03:23:00.000+11:00</published><updated>2007-02-25T03:29:56.484+11:00</updated><title type='text'>Secrets of the ASCII table</title><content type='html'>The other day I actually &lt;span style="font-style: italic;"&gt;read&lt;/span&gt; the &lt;a href="http://en.wikipedia.org/wiki/ASCII"&gt;ASCII&lt;/a&gt; table. Seems odd as I've dealt with this for probably more that seven years but I've never really looked at the special characters. I remember when I started programming with QBasic/Visual Basic I first looked at the table - I ignored the non-printable characters as they looked too complicated. And for some reason I've never really looked at them again.&lt;br /&gt;&lt;br /&gt;In my last job there were a number of ASCII protocols using STX and ETX but even then I never looked at anything outside of tab and carriage return (don't get me started on this character...). So yeah it's a bit of a surprise and now I plan to make better use (or ignore) these characters in my future code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-4481321742341684149?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/4481321742341684149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=4481321742341684149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4481321742341684149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/4481321742341684149'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/02/secrets-of-ascii-table.html' title='Secrets of the ASCII table'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-9075819332374577875</id><published>2007-02-13T10:41:00.000+11:00</published><updated>2007-02-10T16:26:01.101+11:00</updated><title type='text'>Shake-up in the Glade world?</title><content type='html'>I recently found a &lt;a href="http://glade.gnome.org/"&gt;Glade&lt;/a&gt; replacement: &lt;a href="http://gazpacho.sicem.biz/"&gt;Gazpacho&lt;/a&gt;. It's basically a Glade rewrite in Python (for ease of development and maintenance). My previous experiences with Glade 3 have been a bit variable and Glade 2 has a number of annoyances so it will be good to try Gazpacho.&lt;br /&gt;&lt;br /&gt;Also it looks like Nokia has been building a &lt;a href="http://mail.gnome.org/archives/gtk-devel-list/2006-May/msg00087.html"&gt;libglade replacement&lt;/a&gt;. Interesting times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-9075819332374577875?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/9075819332374577875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=9075819332374577875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/9075819332374577875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/9075819332374577875'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/02/shake-up-in-glade-world.html' title='Shake-up in the Glade world?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1104197844721590550</id><published>2007-02-10T16:18:00.000+11:00</published><updated>2007-02-08T10:17:39.769+11:00</updated><title type='text'>Great strides in usability</title><content type='html'>Just made some really nice improvements to glChess:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_pzVKVDOIYcQ/Rc1V6jRxiLI/AAAAAAAAACU/QsqD5KsU54w/s1600-h/glchess-end-game.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_pzVKVDOIYcQ/Rc1V6jRxiLI/AAAAAAAAACU/QsqD5KsU54w/s320/glchess-end-game.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5029770823233276082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;a) The move descriptions now default to a human readable form. You can choose to change these to either SAN or LAN using the menus.&lt;br /&gt;b) Sexy, sexy Gedit/tooltip style message areas instead of pop-ups and many status bars.&lt;br /&gt;&lt;br /&gt;Unfortunately none of this will be in the Gnome 2.18 release. I plan on making a sf.net release today (but sneak some other goodies in first) and all this stuff can get merged into Gnome 2.18.1. Oh and I'll have to disable the "Join Game" button for this release - it's still not quite all there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1104197844721590550?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1104197844721590550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1104197844721590550' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1104197844721590550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1104197844721590550'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/02/great-strides-in-usability.html' title='Great strides in usability'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_pzVKVDOIYcQ/Rc1V6jRxiLI/AAAAAAAAACU/QsqD5KsU54w/s72-c/glchess-end-game.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2627437643727362217</id><published>2007-02-08T10:14:00.000+11:00</published><updated>2007-02-08T10:17:39.953+11:00</updated><title type='text'>What's this ACPI thing?</title><content type='html'>Here's a simple &lt;a href="http://www.advogato.org/article/913.html"&gt;article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2627437643727362217?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2627437643727362217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2627437643727362217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2627437643727362217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2627437643727362217'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/02/whats-this-acpi-thing.html' title='What&apos;s this ACPI thing?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1586230930714174112</id><published>2007-01-26T15:57:00.000+11:00</published><updated>2007-01-26T16:00:10.135+11:00</updated><title type='text'>Sneak peek...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_pzVKVDOIYcQ/RbmKnI2aioI/AAAAAAAAACI/i1UksrAbrXc/s1600-h/glchess-fics.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_pzVKVDOIYcQ/RbmKnI2aioI/AAAAAAAAACI/i1UksrAbrXc/s400/glchess-fics.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5024199264303745666" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1586230930714174112?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1586230930714174112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1586230930714174112' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1586230930714174112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1586230930714174112'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/01/sneak-peak.html' title='Sneak peek...'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_pzVKVDOIYcQ/RbmKnI2aioI/AAAAAAAAACI/i1UksrAbrXc/s72-c/glchess-fics.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-7492876584334700678</id><published>2007-01-24T21:34:00.000+11:00</published><updated>2007-01-24T21:45:48.450+11:00</updated><title type='text'>My Bad</title><content type='html'>A last minute change of mine caused glChess &lt;a href="http://mail.gnome.org/archives/games-list/2007-January/msg00022.html"&gt;to fail in Gnome Games&lt;/a&gt;. Whoops... I must get put some unit tests in for the PGN code.&lt;br /&gt;&lt;br /&gt;What would be great in the future is to have these unit tests showing up in &lt;a href="http://progress.gnome.org/"&gt;Damned Lies about Gnome&lt;/a&gt;. Python has such a great test framework and this would be so useful.&lt;br /&gt;&lt;br /&gt;Unfortunately my time is currently traded off between new features (FICS support is coming along in the sf.net version and will aim to have it in Gnome 2.18.1), and refactoring and testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-7492876584334700678?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/7492876584334700678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=7492876584334700678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7492876584334700678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/7492876584334700678'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/01/my-bad.html' title='My Bad'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-3972926087971029250</id><published>2007-01-24T10:52:00.000+11:00</published><updated>2007-01-24T10:57:37.974+11:00</updated><title type='text'>Click 'N Run for major Linux distributions</title><content type='html'>Linspires' Click 'N Run service will soon be &lt;a href="http://www.linspire.com/linspire_letter_archives.php?id=38"&gt;available for multiple distributions&lt;/a&gt;. I think this is going to be really really good for Linux. Ubuntu has already mostly solved this with "Add/remove" in the Gnome menus but this is going to make life simple for the "average" user. Only good things can come of this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-3972926087971029250?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/3972926087971029250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=3972926087971029250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3972926087971029250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/3972926087971029250'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/01/click-n-run-for-major-linux.html' title='Click &apos;N Run for major Linux distributions'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1033088671350962814</id><published>2007-01-19T20:23:00.000+11:00</published><updated>2007-01-19T20:27:01.946+11:00</updated><title type='text'>Better Bash Autocomplete</title><content type='html'>Found a &lt;a href="http://www.burtonini.com/blog/computers/bash-2007-01-18-10-30"&gt;positing&lt;/a&gt; on how to stop bash autocompleting all the hidden files. This had been bugging me for a while...&lt;br /&gt;&lt;br /&gt;Simply edit &lt;code&gt;~/.inputrc&lt;/code&gt; and add:&lt;br /&gt;&lt;code&gt;set match-hidden-files Off&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Hidden files are only matched if you explicitly type in the period.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1033088671350962814?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1033088671350962814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1033088671350962814' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1033088671350962814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1033088671350962814'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/01/better-bash-autocomplete.html' title='Better Bash Autocomplete'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-1041805667298233665</id><published>2007-01-09T11:03:00.000+11:00</published><updated>2007-01-09T11:10:01.536+11:00</updated><title type='text'>Why is Gmail search so crap?</title><content type='html'>Why is Gmail search so crap? I can never find anything with it... For example today I was looking for my sisters phone number which is in an email conversation that is fairly unambiguous. So I search for "sarah phone", "sarah number", "sarah phone number" etc. These all come up with a few or no results but not the conversation that actually has the number. Finally I found it with "sarah's phone number".&lt;br /&gt;&lt;br /&gt;I really expect Google to be a lot smarter with search - an apostrophe shouldn't stop it from matching a word! And ideally the search would be fuzzy so I could at least look through a list of conversations to find this one (thus training their search algorithm). I would even expect GMail to know/learn that "phone" and "number" should match conversations with long numbers in them. Perhaps the GMail team needs some of the core search guys to really spice things up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-1041805667298233665?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/1041805667298233665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=1041805667298233665' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1041805667298233665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/1041805667298233665'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/01/why-is-gmail-search-so-crap.html' title='Why is Gmail search so crap?'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20155916.post-2172583976459483898</id><published>2007-01-01T23:09:00.000+11:00</published><updated>2007-01-01T23:16:37.759+11:00</updated><title type='text'>#97</title><content type='html'>glChess has broken the top 100 in sourceforge.net! Looks like it may be another &lt;a href="http://bobthegnome.blogspot.com/2006/02/its-glchess-new-years.html"&gt;glChess new years&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;There's been a lot of polishing progress in the last month. There seems to be enough people using it and generating a constant amount of feedback. Should be a lot more when Gnome 2.18 is released in March.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20155916-2172583976459483898?l=bobthegnome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bobthegnome.blogspot.com/feeds/2172583976459483898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20155916&amp;postID=2172583976459483898' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2172583976459483898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20155916/posts/default/2172583976459483898'/><link rel='alternate' type='text/html' href='http://bobthegnome.blogspot.com/2007/01/97.html' title='#97'/><author><name>Robert Ancell</name><uri>http://www.blogger.com/profile/06377999550703204187</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://lh5.google.com/image/robert.ancell/RbDTmsrWnfI/AAAAAAAAAB8/KPZBuiZLIJI/mytie.JPG?imgmax=512'/></author><thr:total>2</thr:total></entry></feed>
