<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Moderate Realism</title>
	<link>http://ramblings.timgolden.me.uk</link>
	<description>The ramblings of Tim Golden</description>
	<pubDate>Mon, 09 Apr 2012 14:58:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>
	<language>en</language>
			<item>
		<title>PEP8 it is, then</title>
		<link>http://ramblings.timgolden.me.uk/2012/04/09/pep8-it-is-then/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/04/09/pep8-it-is-then/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 13:58:01 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/04/09/pep8-it-is-then/</guid>
		<description><![CDATA[Thanks to everyone who commented on my previous PEP8-related posts. It&#8217;s been quite an eye-opener for me to see how many people felt strongly that PEP8-compliance was a real must-have, not just for core Python itself but for any Python project. My own use of Python just about predates PEP8 itself, and certainly predates its [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who commented on my previous PEP8-related posts. It&#8217;s been quite an eye-opener for me to see how many people felt strongly that PEP8-compliance was a real must-have, not just for core Python itself but for any Python project. My own use of Python just about predates PEP8 itself, and certainly predates its more widespread adoption within the community. And, while I was aware that it was a default recommendation for someone seeking style guidelines, I don&#8217;t think I&#8217;d appreciated just how wide and strong its uptake was.</p>
<p>Of the comments made to my previous posts, only one outright dismissed PEP8; several spoke neutrally, more or less echoing the sentiments I&#8217;d expressed; but the majority which expressed a clear opinion made it strongly advisable, not to say mandatory, to follow PEP8 for one&#8217;s own (published) work.</p>
<p>So I&#8217;ve decided to switch to near-PEP8 style. (Note that pretty much everyone and every project varies a little, most commonly on the line length issue). The two key points which seemed &#8212; startlingly, from my perspective &#8212; to bother people the most were the two-space indents and the space-before-brackets. If you cared to peruse my <a href="https://github.com/tjguk/winshell">winshell</a> &#038; <a href="https://github.com/tjguk/active_directory">active_directory</a> github repos, you&#8217;ll note that those are now in line with PEP8. Others will follow as and when.</p>
<p>You&#8217;re probably <em>not</em> surprised to hear me say that, having made the switch, I can&#8217;t understand how anyone can prefer the PEP8 style. If I&#8217;ve switched, it&#8217;s not because I&#8217;ve had a sudden aesthetic revelation which makes me wonder why I wasn&#8217;t using 4-space indents all along. Quite the reverse: for the life of me I can&#8217;t see why anyone would prefer it. Rather, it&#8217;s because I recognise the value of a commonly-held standard within a community. And because, when I weighed it up, there was no reason &#8212; beyond my own preferences &#8212; not to switch.</p>
<p>I&#8217;ve tweaked my SciTE options and added the PEP8 module to my test scripts, turning off certain of the checks and allowing for slightly longer lines. Let&#8217;s see what I feel about this in a month or so&#8217;s time.</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/04/09/pep8-it-is-then/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More on PEP8</title>
		<link>http://ramblings.timgolden.me.uk/2012/03/29/more-on-pep8/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/03/29/more-on-pep8/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 19:39:44 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/03/29/more-on-pep8/</guid>
		<description><![CDATA[Well I certainly got some robust comments on my previous PEP8 post. A few people chimed on my side, so to speak. Someone else found it &#8220;discouraging&#8221; when faced with &#8220;non-compliant code&#8221;. But it was Luke who obviously felt most strongly about the matter, and it&#8217;s his points that I&#8217;m really addressing here.
First of all, [...]]]></description>
			<content:encoded><![CDATA[<p>Well I certainly got some robust comments on my previous PEP8 post. A few people chimed on my side, so to speak. Someone else found it &#8220;discouraging&#8221; when faced with &#8220;non-compliant code&#8221;. But it was Luke who obviously felt most strongly about the matter, and it&#8217;s his points that I&#8217;m really addressing here.</p>
<p>First of all, it seems that you&#8217;ve got me coming and going: on the one hand, I&#8217;m unreasonable to expect people to adopt my project&#8217;s style when contributing to it; but on the other I&#8217;m unreasonable if I expect to program the same way in every environment. Let me say again what I said in the previous post: if I contribute to, say, core Python, then I *do* expect to have to change my style to match the project guidelines. Likewise, if I contribute to Pyro &#8212; a fairly well-known Python project &#8212; then I use camelCase method names, because that&#8217;s what its maintainer uses. I don&#8217;t find that so very difficult and I doubt it anyone else does either. (Of course my &#8220;anyone else does&#8221; here is as anecdotal as the generalisations in Luke&#8217;s comments and can be treated the same way).</p>
<p>Luke&#8217;s basic point seems to be that all Python code *should* look the same, regardless of any other consideration, and that to do otherwise is not to be a team player, to indicate that you don&#8217;t care, and to leave open the suspicion that your code is of as poor quality as&#8230; well, your PEP8-ness. And I find that position far beyond what I consider reasonable. If that leaves me turning people away at the door then please write and tell me. Perhaps I&#8217;m being a single-minded curmudgeon on this issue, but I am honestly bemused at the idea that *all* Python code should follow what is, basically, one person&#8217;s preferences.</p>
<p>In short, I would be genuinely interested to hear from other people if they think that publishing Python code which follows a consistent style but which is not PEP8-compliant is that much of an issue. For them, for would-be contributors, or for the image of Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/03/29/more-on-pep8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PEP8? Or not?</title>
		<link>http://ramblings.timgolden.me.uk/2012/03/27/pep8-or-not/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/03/27/pep8-or-not/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 12:21:26 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/03/27/pep8-or-not/</guid>
		<description><![CDATA[From time to time someone comments on some code example I&#8217;ve produced (or, indeed, one of my published modules) and makes the point that the code is not PEP8-compliant. The most common complaints are that I use spaces before function-call brackets &#8212; spam (&#8221;foo&#8221;) rather than spam(&#8221;foo&#8221;) &#8212; and that I use 2-space indents rather [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time someone comments on some code example I&#8217;ve produced (or, indeed, one of my published modules) and makes the point that the code is not <a href="http://www.python.org/dev/peps/pep-0008/">PEP8</a>-compliant. The most common complaints are that I use spaces before function-call brackets &#8212; spam (&#8221;foo&#8221;) rather than spam(&#8221;foo&#8221;) &#8212; and that I use 2-space indents rather than 4.</p>
<p>Since I&#8217;ve written pretty much the same answer whenever this has been raised, I thought I might as well write it here and then point people towards it.</p>
<p>PEP 8 is the Python project&#8217;s code style guideline. I quote from the opening paragraph: &#8220;This document gives coding conventions for the Python code comprising the standard library in the main Python distribution.&#8221;. It is <em>not</em> a guideline for every piece of Python code ever written by anyone. On the odd occasion that I contribute code to the Python core I naturally ensure that my code complies with PEPs 7 &#038; 8 for C &#038; Python code respectively.</p>
<p>I&#8217;ve been using the format described above for well over 25 years of coding on different platforms &#038; languages. Along with other aspects, it constitutes my personal &#8220;house style&#8221;. If anyone wished to contribute to any of my projects I would ask them to follow the same guidelines (or at least, not to complain when I reformatted their code to match my own).</p>
<p>FWIW I find the spam(&#8221;foo&#8221;) style cramped; no doubt some people find my spam (&#8221;foo&#8221;) style too loose. So be it. I&#8217;m genuinely astonished when people advocate 8-space indents (and I&#8217;d be a bit startled by 1-space indents). I find 4 spaces push the relevant code too far away too easily so I use 2 spaces. Barring manifest absurdities, such things are largely subjective.</p>
<p>So now you know: if you see code examples of mine, or are perusing <a href="https://github.com/tjguk">my source code</a>, be prepared for (gasp) non-PEP8 compliance!</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/03/27/pep8-or-not/feed/</wfw:commentRss>
		</item>
		<item>
		<title>winshell 0.6.1</title>
		<link>http://ramblings.timgolden.me.uk/2012/03/26/winshell-061/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/03/26/winshell-061/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 10:49:08 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/03/26/winshell-061/</guid>
		<description><![CDATA[In a fit of energy over the weekend, I added some basic Recycle Bin functionality to the winshell module. (And thanks to Steve Reiss for the suggestion and for ideas about convenience functions). As of version 0.6.1 you can now:

Iterate over items in the recycle bin
Determine what versions of a file there are in the [...]]]></description>
			<content:encoded><![CDATA[<p>In a fit of energy over the weekend, I added some basic Recycle Bin functionality to the <a href="http://pypi.python.org/pypi/winshell">winshell</a> module. (And thanks to Steve Reiss for the suggestion and for ideas about convenience functions). As of version 0.6.1 you can now:</p>
<ul>
<li>Iterate over items in the recycle bin</li>
<li>Determine what versions of a file there are in the recycle bin</li>
<li>Undelete the latest or a specific version of a file</li>
<li>Empty all recycle bins</li>
</ul>
<p>You could already delete <em>to</em> the Recycle Bin (via delete_file). Now you can undelete as well!</p>
<ul>
<li>pip install winshell</li>
<li>github: <a href="http://github.com/tjguk/winshell">http://github.com/tjguk/winshell</a></li>
<li>PyPI: <a href="http://pypi.python.org/pypi/winshell">http://pypi.python.org/pypi/winshell</a></li>
<li>readthedocs.org: <a href="http://readthedocs.org/docs/winshell/">http://readthedocs.org/docs/winshell/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/03/26/winshell-061/feed/</wfw:commentRss>
		</item>
		<item>
		<title>winshell 0.5.4</title>
		<link>http://ramblings.timgolden.me.uk/2012/03/23/winshell-054/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/03/23/winshell-054/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 09:56:42 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/03/23/winshell-054/</guid>
		<description><![CDATA[Ahem. I promise I did test it, but then testing on developers&#8217; machines is notoriously untrustworthy. In short, I failed to include the versioning module in the winshell sdist. Several fumbled attempts and struggles with PyPI later, I bring you: winshell 0.5.4 whose sole purpose is to fix this problem.
Many thanks to Steve Reiss who [...]]]></description>
			<content:encoded><![CDATA[<p>Ahem. I promise I did test it, but then testing on developers&#8217; machines is notoriously untrustworthy. In short, I failed to include the versioning module in the winshell sdist. Several fumbled attempts and struggles with PyPI later, I bring you: <a href="http://pypi.python.org/pypi/winshell/0.5.4">winshell 0.5.4</a> whose sole purpose is to fix this problem.</p>
<p>Many thanks to Steve Reiss who took the trouble to let me know it was failing to install</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/03/23/winshell-054/feed/</wfw:commentRss>
		</item>
		<item>
		<title>winshell 0.5.1</title>
		<link>http://ramblings.timgolden.me.uk/2012/03/21/winshell-051/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/03/21/winshell-051/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 13:45:32 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/03/21/winshell-051/</guid>
		<description><![CDATA[Just a quickie to say that I&#8217;ve had a small flurry of work on my tiny winshell module. A combination of doc updates, cookbook examples, and some more general-purpose shortcut handling. It&#8217;s up to v0.5.1 on PyPI, github, and readthedocs.
]]></description>
			<content:encoded><![CDATA[<p>Just a quickie to say that I&#8217;ve had a small flurry of work on my tiny winshell module. A combination of doc updates, cookbook examples, and some more general-purpose shortcut handling. It&#8217;s up to v0.5.1 on <a href="http://pypi.python.org/pypi/winshell/">PyPI</a>, <a href="https://github.com/tjguk/winshell">github</a>, and <a href="http://readthedocs.org/docs/winshell/">readthedocs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/03/21/winshell-051/feed/</wfw:commentRss>
		</item>
		<item>
		<title>github, ReadTheDocs &#038; the kindness of strangers</title>
		<link>http://ramblings.timgolden.me.uk/2012/03/13/github-readthedocs-the-kindness-of-strangers/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/03/13/github-readthedocs-the-kindness-of-strangers/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 20:46:08 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/03/13/github-readthedocs-the-kindness-of-strangers/</guid>
		<description><![CDATA[Three times, within the space of a few weeks, I&#8217;ve had complete strangers drop me an email to tell me that they&#8217;ve been making fruitful use of some module of mine and that they&#8217;ve got it to work on Python3. They&#8217;ve either attached an updated version or indicated what would need to happen. 
Spurred on [...]]]></description>
			<content:encoded><![CDATA[<p>Three times, within the space of a few weeks, I&#8217;ve had complete strangers drop me an email to tell me that they&#8217;ve been making fruitful use of some module of mine and that they&#8217;ve got it to work on Python3. They&#8217;ve either attached an updated version or indicated what would need to happen. </p>
<p>Spurred on by this, I got my act together and shifted a bunch of my code over to <a href="https://github.com/tjguk">github</a> where it is a little more public and where it&#8217;s easier for others to contribute. I&#8217;ve also made moves to incorporate the changes &#038; patches supplied. At the same time I&#8217;ve done a bit of tidying up around the projects and have made use of the wonderful <a href="http://readthedocs.org">readthedocs.org</a>.</p>
<p>There&#8217;s still work to do, but now <a href="http://pypi.python.org/pypi/winshell">winshell</a> &#8212; one of those tiny helps-you-a-bit modules I wrote <em>eight years ago</em> and which remains basically unchanged &#8212; has just seen a 0.4.1 release which has docs and tests and which runs against everything between Python 2.4 and 3.2 (and possibly more besides). The code is <a href="https://github.com/tjguk/winshell">hosted at github</a>, the docs are hosted at <a href="http://winshell.readthedocs.org/en/latest/index.html">readthedocs.org</a> and it&#8217;s available on PyPI and pip-installable. Thanks to Steve Peck and Roman Luks for patches &#038; suggestions.</p>
<p>My software development tends to go in bursts when the available time, energy &#038; motivation coincide, so lets hope that I can keep this particular ball rolling. My active_directory module is also <a href="https://github.com/tjguk/active_directory">available on github</a> and has a py3k branch kindly supplied by Ken Gillett. The complication there is that it&#8217;s (naturally) against the last released version, which is a few versions behind my private version. If you&#8217;re interested, you can fetch it from the <a href="https://github.com/tjguk/active_directory/tree/py3k">py3k branch</a>. My aim is to re-apply the coresponding diffs from the main branch and then look at merging or splitting or something.</p>
<p>I mean to write an entry on the requirement tensions between github, PyPI, pip and the various recommended practices, especially with respect to the README files, but that&#8217;ll have to wait for another moment.</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/03/13/github-readthedocs-the-kindness-of-strangers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We survived! A London Python Dojo without @ntoll</title>
		<link>http://ramblings.timgolden.me.uk/2012/02/03/we-survived-a-london-python-dojo-without-ntoll/</link>
		<comments>http://ramblings.timgolden.me.uk/2012/02/03/we-survived-a-london-python-dojo-without-ntoll/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 11:09:02 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Dojo]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2012/02/03/we-survived-a-london-python-dojo-without-ntoll/</guid>
		<description><![CDATA[[Note to self: blog about things other than the London Dojo&#8230;]
Nicholas &#8220;@ntoll&#8221; Tollervey has been the London Python Dojo&#8217;s parent for all its young life. Once it achieved toddler status, he felt confident enough to start letting other people look after his baby, so over the past few Dojos various other people have run things [...]]]></description>
			<content:encoded><![CDATA[<p>[Note to self: blog about things other than the London Dojo&#8230;]</p>
<p>Nicholas &#8220;@ntoll&#8221; Tollervey has been the London Python Dojo&#8217;s parent for all its young life. Once it achieved toddler status, he felt confident enough to start letting other people look after his baby, so over the past few Dojos various other people have run things on the day, always with @ntoll in attendance. Yesterday was the first day on which he felt confident enough not to be there, leaving things in the hands of @tomviner (who could be seen consulting a trusty checklist throughout the evening).</p>
<p>As I re-read, I realise that it looks as though I&#8217;m accusing @ntoll of being over-possessive, which I most definitely am not. He&#8217;s done &#8212; and continues to do &#8212; a fantastic job at organising the Dojo and making it happen even when he&#8217;s not the evening&#8217;s MC. We&#8217;re just delighted, as Tom said last night, that he doesn&#8217;t feel that he needs to attend it every first Thursday for the rest of his life. (A little secret: the day before this month&#8217;s Dojo he was still sending mother-like emails to the rest of the organisers: don&#8217;t forget to &#8230; remember that &#8230; have you &#8230;?)</p>
<p>Last night&#8217;s Dojo was fun as usual: we were doing the famous <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Game of Life</a> &#8212; probably a text book example of a text book example! Uniquely in my experience, every team had a working version to show after just an hour and a half. The team I was in managed to get something working while @john_chandler and I were still chatting in the background. We fiddled about with it a bit, adding a few preset forms to seed the board etc.</p>
<p>An unexpected visitor was @JohnPinner (of PyConUK fame). He was in London for a meeting and timed things so he could come along for the start of the Dojo, altho&#8217; he had to dash after about an hour to catch his train home. He gave a lightning talk at the beginning outlining various Python-related conferences and training sessions which in the offing. Including this year&#8217;s <a href="http://pyuk2012.pyconuk.org/">PyConUK</a>, once again in Coventry.</p>
<p>@tomviner&#8217;s novelty for this Dojo was the favourite-module question on the sign-up form, which was also used as part of the introduction session. Perhaps unsurprisingly, Kenneth Reitz&#8217;s <a href="http://docs.python-requests.org/en/latest/index.html">requests</a> module was the clear winner (the only one with more than one vote!). Other unsurprising entries included itertools and collections, but there was a variety of others. I was chatting with John Pinner about the line-up for PyConUK this year, and he pointed out that there&#8217;s some mileage for simple talks about a particular module, eg logging or itertools. I&#8217;m thinking of proposing such a thing for future Dojos&#8230;</p>
<p>There&#8217;s also been <a href="http://mail.python.org/pipermail/python-uk/2012-January/002399.html">talk on the python-uk mailing list</a> of a second London-based Dojo, or other Python event, on a Sunday. That might suit some people who can&#8217;t make a weekday evening in London but who could manage a weekend. And the more Python events in London the better!</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2012/02/03/we-survived-a-london-python-dojo-without-ntoll/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Boggle at the London Python Dojo</title>
		<link>http://ramblings.timgolden.me.uk/2011/12/02/boggle-at-the-london-python-dojo/</link>
		<comments>http://ramblings.timgolden.me.uk/2011/12/02/boggle-at-the-london-python-dojo/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 13:55:18 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Dojo]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2011/12/02/boggle-at-the-london-python-dojo/</guid>
		<description><![CDATA[(Yes, that is a deliberately ambiguous title offering two possible interpretations: as a description of what the programming challenge was at last night&#8217;s Dojo; or as an imperative to be awed at the might and wonder that is the London Python Dojo. You choose).
Last night was the first time I&#8217;ve actually run the London Dojo. [...]]]></description>
			<content:encoded><![CDATA[<p>(Yes, that is a deliberately ambiguous title offering two possible interpretations: as a description of what the programming challenge was at last night&#8217;s Dojo; or as an imperative to be awed at the might and wonder that is the London Python Dojo. You choose).</p>
<p>Last night was the first time I&#8217;ve actually run the London Dojo. For the two and more years since its inception, Nicholas Tollervey (<a href="http://twitter.com/ntoll">@ntoll</a> to his Twitter friends &#038; acquaintances) has indefatigably turned up every first Thursday to clear up the Fry-IT offices, order the pizza, buy the beer, put up signs, leave out sticky labels, request free books from O&#8217;Reilly and then drum up support, keep everyone happy and actually run the show, finishing off by organising everyone to clear up, move chairs, dump the rubbish outside, and finally catch the last train home to Sticksville, Northants. where his wife and children have long ago fallen asleep over their sheet music, having gone da Capo al Segno one time too many waiting for him to return home.</p>
<p>A few months ago, Nicholas asked for volunteers to help out, and a small group of us got together to share the burden. Since then, <a href="http://twitter.com/otfrom">Bruce</a>, <a href="http://twitter.com/tartley">Jonathan</a>, <a href="http://twitter.com/tomviner">Tom</a> and finally <a href="http://twitter.com/tjguk">I</a> have taken a turn at organising. And of course it&#8217;s not until you have to do it yourself that you realise how much work is involved&#8230; I was fortunate because Gautier (who actually works there) and Nicholas himself were both at Fry-IT for the day and were able to do some of the less proximate preparation, including ordering a dozen pizzas and buying three dozen bottles of beer. I was able to make a small contribution in the shape of a pack of sticky labels.</p>
<p>The Dojo itself was very slightly quieter than usual: just under 20 rather than just under 30. That&#8217;s not a bad thing in Fry&#8217;s offices which are not huge. There was a bit of an introduce-yourself session (which was made even more primary-school-like by the presence of big sticky labels on everyone&#8217;s chest with their names or cognomens). And then we had a lightning talk from Martin who has a sort of <a href="http://amon.cx/">cut-down Nagios for app developers</a>. (I hope I haven&#8217;t done it an injustice). And then a surprisingly straightforward vote on the evening&#8217;s programming challenge which gave us&#8230; Boggle. (Word game; 8&#215;8 grid of random letters; form words by moving like a chess king).</p>
<p>Four teams; four solutions, all more or less different. Only one team ended up with a working solution at the end of 90 minutes (and they appeared to be optimising by removing all vertical whitespace; or maybe that was an aesthetic choice - who knows?). Our team had visible activity (which is more than Team 1 managed!) but no solution. It&#8217;s up to each team how they want to manage their collaboration. We&#8217;d gone for the split-team approach, dividing the problem into its eminently decoupled parts: a mechanism to read in a dictionary of words and provide efficient searchability (using a Trie, in case you&#8217;re interested); and a structure to hold the board (a dictionary, keyed on coordinates), generate the letters into the grid, and search for all possible words, relying on the dictionary code to indicate success, failure, partial success, or success with more possibilities.</p>
<p>The tweets were still flying this morning as people tried to tweak their solution (or, indeed, get it to work at all) on the train, on their phone or at home overnight. A friend of mine who&#8217;s a C++ coder came along mainly because I&#8217;d talked so much about the Dojo. He&#8217;s not really into Python - in fact he&#8217;s not really a programmer: he does medical image analysis. But he enjoyed the atmosphere and made a few small suggestions before simply sitting back and watching the teams get to work.</p>
<p>Look out for the next Dojo at the beginning of January. It&#8217;ll be announced on the python-uk mailing list and we&#8217;ll tweet about it when we&#8217;ve fixed a date.</p>
<p><b>UPDATE</b> Dirk&#8217;s added a blog post of his own:<br />
<a href="http://elazungu.wordpress.com/2011/12/02/solving-boggle-with-python/">http://elazungu.wordpress.com/2011/12/02/solving-boggle-with-python/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2011/12/02/boggle-at-the-london-python-dojo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New place, new time, same great Dojo</title>
		<link>http://ramblings.timgolden.me.uk/2011/11/04/new-place-new-time-same-great-dojo/</link>
		<comments>http://ramblings.timgolden.me.uk/2011/11/04/new-place-new-time-same-great-dojo/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 08:42:09 +0000</pubDate>
		<dc:creator>tim</dc:creator>
		
		<category><![CDATA[Dojo]]></category>

		<category><![CDATA[London]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://ramblings.timgolden.me.uk/2011/11/04/new-place-new-time-same-great-dojo/</guid>
		<description><![CDATA[Last night, the London Python Dojo were the guests of Mendeley on the Clerkenwell Road. I was pleased to discover while chatting over the pizza and beer that I wasn&#8217;t the only one to have wandered round the area a few times before hitting on the right spot. Although I had a map of some [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, the London Python Dojo were the guests of <a href="http://www.mendeley.com/">Mendeley</a> on the Clerkenwell Road. I was pleased to discover while chatting over the pizza and beer that I wasn&#8217;t the only one to have wandered round the area a few times before hitting on the right spot. Although I had a map of some sort, I&#8217;d forgotten just how cluttered central London is: how many passageways, tucked-away building and unlabelled streets.</p>
<p>But it was worth it. Mendeley have larger offices than our usual host, <a href="http://fry-it.com">Fry-IT</a>. And while there were slightly fewer of us than normal (low 20s as opposed to the usual high 20s) it was still great to have a bit of breathing space. Thanks very much to the guys at Mendeley for hosting us (and providing pizza, drinks &#038; snacks).</p>
<p><a href="http://twitter.com/#!/tartley">Jonathan Hartley</a> was making his debut as compere and managed very effectively. Well&#8230; fairly effectively. (I shouldn&#8217;t laugh: it&#8217;s my turn next month). He&#8217;d lined up three &#8220;lightning&#8221; talks to kick off with. First up was Ian &#8212; who&#8217;d arranged for us to use the place. He explained what Mendeley does (a sort of social network for research students) and how they use Python (mostly as a scripting API) and demo-ed some fairly nifty visualisations and tools which people had built on top of their product. Jonathan himself spoke last to ask for help with a Django concurrency issue. Which he promptly got. In between was Robert Rees who showed-and-told very effectively the recently-added <a href="http://www.heroku.com/">Heroku</a> support for Python. This enlarged into a wider discussion of Heroku itself and of its competitors in the Django/Python world.</p>
<p>Then the Dojo itself. As usual, we had a whiteboard available beforehand for people to propose ideas which were then voted on. The Roman Numeral Calculator remained top of the list of unchosen ideas, but the surprising winner was Robert&#8217;s suggestion of an ASCII Art Streetfighter clone. (Chosen only after a second round of voting with a Multiple Transferrable Vote). Once this was settled, it was a simple matter of dividing into teams and hitting the editor.</p>
<p>Or almost. We initially failed to be able to count up to 5 in order to divide into teams. Having finally achieved this intellectual feat, we encountered the opposite problem to the one we normally face at Fry IT. There, the office is so small that you&#8217;re squeezing into space. At Mendeley, there&#8217;s so much space that you&#8217;re wandering around for ages trying to find the best spot. And then you&#8217;ve got to find the WiFi (which Ian had considerately explained about). And then you&#8217;ve got to manually set your DNS Servers to something (as the DHCP wasn&#8217;t handing out DNS). Slightly geekily, the WiFi password is mathematical making it easy to remember but still quite long.</p>
<p>And then, in our case, you had to find the <a href="http://inventwithpython.com/pygcurse/">Pygame curses emulation</a> which someone knows exists but can&#8217;t quite remember the name of. Having got there (with about 20 minutes left now to do the actual coding) you basically scramble your way through a stunted version of Streetfighter (whatever that is; I have no idea), getting a basic solution on which you layer colour and fonts in the manner of lipstick and pigs :)</p>
<p>Finally, the endgame; and it&#8217;s the usual hilarious collection of imaginative approaches, stylishly-designed code, and desperate hackery. We saw: elegant ASCII art; flying bullets; gratuitous use of decorators; and many entertaining attempts to achieve an equilibrium between using classy and best-practice code and actually coming up with a solution within the timeframe!</p>
<p>I don&#8217;t know where we&#8217;ll be next month, but stay tuned to the <a href="http://mail.python.org/mailman/listinfo/python-uk">python-uk</a> list where stuff is announced.</p>
]]></content:encoded>
			<wfw:commentRss>http://ramblings.timgolden.me.uk/2011/11/04/new-place-new-time-same-great-dojo/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

