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

<channel>
	<title>FND's Blag &#187; events</title>
	<atom:link href="http://fnd.lewcid.org/blog/archive/tag/events/feed" rel="self" type="application/rss+xml" />
	<link>http://fnd.lewcid.org/blog</link>
	<description>Just Another Personal Wobsite</description>
	<lastBuildDate>Thu, 11 Mar 2010 15:19:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Where Python Sucks</title>
		<link>http://fnd.lewcid.org/blog/archive/92</link>
		<comments>http://fnd.lewcid.org/blog/archive/92#comments</comments>
		<pubDate>Sun, 05 Jul 2009 09:32:42 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[EuroPython]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=92</guid>
		<description><![CDATA[More raw notes from EuroPython 2009 &#8211; this time from the entertaining and informative Python Sucks[1] session: programming languages do matter; choice can hugely affect the end result whitespace enforcement the &#8220;best worst feature&#8221; (other languages&#8217; worst features are much more severe) Unicode handling is a pain lambdas should just be called functions (increases acceptance) [...]]]></description>
			<content:encoded><![CDATA[<p>More <a href="http://fnd.lewcid.org/blog/archive/80">raw notes</a> from <a href="http://wiki.europython.eu/After">EuroPython 2009</a> &#8211; this time from the entertaining and informative <a href="http://www.europython.eu/talks/talk_abstracts/index.html#talk21">Python Sucks</a><sup>[1]</sup> session:<br />
<span id="more-92"></span></p>
<ul>
<li>programming languages <em>do</em> matter; choice can hugely affect the end result</li>
<li>whitespace enforcement the &#8220;best worst feature&#8221; (other languages&#8217; worst features are much more severe)</li>
<li>Unicode handling is a pain</li>
<li>lambdas
<ul>
<li>should just be called functions (increases acceptance)</li>
<li>cannot contain statements</li>
<li>binding issues in loops</li>
</ul>
</li>
<li>threading is haphazard (GIL is evil) &mdash; however: CPython <em>implementation</em> issue, addressed in v2.6 &#8211; &#8220;it&#8217;s <em>different</em>, not necessarily insufficient (e.g. using underlying OS)&#8221;</li>
<li>confusing packaging situation (setuptools, Easy Install, distutils, eggs, buildout, PyPI, virtualenv) &#8211; &#8220;solved, but people disagree&#8221; &#8211; &#8220;Easy Install sucks, too magic&#8221; &#8211; &#8220;not a Python-specific, but OS-level task&#8221; &#8211; problem is hard to solve, as there&#8217;s a variety of different usage scenarios</li>
<li>infinity, NaN support (<a href="http://en.wikipedia.org/wiki/IEEE_floating-point">IEEE 754</a>)</li>
<li>floating point printing (0.1 becomes 0.10000000000000001) &mdash; fixed in v3.1</li>
<li>division &mdash; fixed in v3.0</li>
<li>decorators (&#8220;<code>@</code> is scary, unfamiliar syntax&#8221;)</li>
<li>argument list splicing (e.g. <code>zip(*l)</code>) &#8211; &#8220;unfamiliar syntax&#8221;</li>
<li>some modules only exist on certain platforms</li>
<li>positive aspects
<ul>
<li>everything is an object</li>
<li>object instantiation (no <code>new</code> keyword &#8211; i.e. just like calling a function)</li>
<li>generator expressions (from Haskell)</li>
<li>chained comparisons (<code>0 < = x < n</code>) - though largely unknown, and allows </code><code>0 < x > a</code> or <code>0 < x in L</code></code></li>
<li>Iverson&#8217;s convention (<code>x < y</code> evaluates to 0/False or 1/True) - "open to abuse"</code></li>
<li>access control (public, private etc.) &#8211; not enforced (&#8220;advisory [bicycle] locks&#8221;) &#8211; likely more a social than a technical problem</li>
<li>fractions (from v2.6)</li>
<li>power (<code>x**2</code>)</li>
<li>explicit > implicit (unlike <code>this</code> in JavaScript, for example)</li>
</ul>
</li>
<li>&#8220;Python sucks because sometimes it has to run on Windows&#8221;</li>
</ul>
<p><a href="http://wiki.europython.eu/TalkMaterials">slides available</a></p>
<p>Obviously some points were quite controversial (whitespace FTW!) &#8211; which is what made the session so interesting.</p>
<ol class="footnotes"><li id="footnote_0_92" class="footnote">retitled <i>What Sucks About Python</i> in the official program</li></ol>]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/92/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rapid Testing with py.test</title>
		<link>http://fnd.lewcid.org/blog/archive/80</link>
		<comments>http://fnd.lewcid.org/blog/archive/80#comments</comments>
		<pubDate>Mon, 29 Jun 2009 20:56:36 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[EuroPython]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=80</guid>
		<description><![CDATA[Somewhat unexpectedly, I attended a tutorial on py.test at EuroPython today &#8212; which turned out to be very useful. Below are my raw (i.e. imperfect and likely inadequate) notes from that session. minimal, no-API approach; no need for boilerplates however, a lot of optional framework-y functionality is provided convention over configuration (automatic discovery of test_*.py, [...]]]></description>
			<content:encoded><![CDATA[<p>Somewhat <a href="http://twitter.com/FND/status/2385511283">unexpectedly</a>, I attended a tutorial on <a href="http://pytest.org">py.test</a> at EuroPython today &mdash; which turned out to be <a href="http://twitter.com/FND/status/2387884483">very useful</a>.<br />
<span id="more-80"></span><br />
Below are my raw (i.e. imperfect and likely inadequate) notes from that session.</p>
<ul>
<li>
		minimal, no-API approach; no need for boilerplates<br />
		however, a lot of optional framework-y functionality is provided
	</li>
<li>convention over configuration (automatic discovery of <code>test_*.py</code>, <code>def test_*</code>, <code>class Test*</code>)</li>
<li><i>py.test</i> overrides <code>AssertionError</code> built-in, then re-runs statement to provide details &mdash; avoid assertions with side-effects!</li>
<li>skip tests only for platform and dependency issues; use <code>@py.test.mark.xfail</code> for &#8220;expected to fail&#8221;</li>
<li><i>funcargs</i> introduced in v1.0 to replace traditional setup methods for fixtures (user &#038; provider, loose coupling); allows for more flexible grouping</li>
<li><code>print</code> captured by default, only shown on failure</li>
<li>internally makes use of its own hook architecture (i.e. many features implemented as plugins)</li>
<li><code>yield</code>ed tests are deprecated (due to internal ambiguity); recommended to use <code>pytest_generate_tests</code> instead</li>
<li>interesting <a href="http://codespeak.net/svn/py/trunk/py/test/plugin/">plugins</a>: coverage and PyLint integration</li>
<li>can be used to run non-Python tests (e.g. <a href="http://bitbucket.org/pedronis/js-infrastructure/">for JavaScript</a>)</li>
<li>supports distributed testing (load balancing with multiple CPUs or remote machines, testing on multiple platforms)</li>
<li>might be renamed (&#8220;I wish I&#8217;d named it differently&#8221;)</li>
</ul>
<p><a href="http://tetamap.wordpress.com">Holger Krekel</a> has also published his <a href="http://codespeak.net/~hpk/rapid-testing.pdf">slides</a> (PDF), which are well worth a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/80/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mozilla Bespin Meetup</title>
		<link>http://fnd.lewcid.org/blog/archive/53</link>
		<comments>http://fnd.lewcid.org/blog/archive/53#comments</comments>
		<pubDate>Wed, 11 Mar 2009 08:53:42 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=53</guid>
		<description><![CDATA[Last night, some of my colleagues and I attended the Bespin meetup. It was great hearing Ben, Dion and Joe &#8211; quite obviously very smart hackers &#8211; speak, and later getting a chance to join various discussions with them. As before, I&#8217;ll settle for a few quick notes: name When asked about about the name [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, <a href="http://softwareas.com">some</a> of <a href="http://hawksworx.com">my</a> <a href="http://jaybyjayfresh.com">colleagues</a> and I attended the <a href="http://en.wikipedia.org/wiki/Mozilla_Bespin">Bespin</a> <a href="http://upcoming.yahoo.com/event/2114472/">meetup</a>.<br />
It was great hearing <a href="http://www.galbraiths.org">Ben</a>, <a href="http://almaer.com">Dion</a> and <a href="http://directwebremoting.org/blog/joe">Joe</a> &#8211; quite obviously very smart hackers &#8211; speak, and later getting a chance to join various discussions with them.<br />
<span id="more-53"></span><br />
As <a href="http://fnd.lewcid.org/blog/archive/40">before</a>, I&#8217;ll settle for a few quick notes:</p>
<ul>
<li>
		name<br />
		When asked about about the name (which had <a href="http://twitter.com/mahemoff/status/1306439271">confused</a> us),  humorously dodged the question multiple times. Not entirely sure why&#8230;
	</li>
<li>
		reinventing the wheel<br />
		Bespin makes heavy use of <a href="http://en.wikipedia.org/wiki/Canvas_(HTML_element)">canvas</a>, essentially reinventing the rendering of text and layout (using their <a href="http://benzilla.galbraiths.org/2009/02/18/bespin-and-canvas-part-2/">Thunderhead</a> toolkit).<br />
		While contentious with regards to accessibility and web standards, this is necessary due to performance reasons.<br />
		(Note: Not JavaScript is the bottleneck here, but the DOM is.)
	</li>
<li>
		offline capability<br />
		Currently Bespin should be considered a &#8220;hosted application&#8221;, requiring a server-side component.<br />
		Personally, I don&#8217;t like the idea of relying on the &#8220;<a href="http://en.wikipedia.org/wiki/Cloud_computing">cloud</a>&#8221; for my <a href="http://twitter.com/FND/status/1240554276">primary</a> <a href="http://twitter.com/FND/status/1304799547">editor</a>.<br />
		While the Bespin team is planning to use <a href="http://titaniumapp.com">Titanium</a> eventually, <a href="http://twitter.com/joewalker">Joe</a> said it shouldn&#8217;t be too hard to integrate <a href="http://tiddlywiki.com">TiddlyWiki</a>&#8216;s <a href="http://trac.tiddlywiki.org/browser/Trunk/core/jquery/plugins/jquery.file.load.js">file</a>-<a href="http://trac.tiddlywiki.org/browser/Trunk/core/jquery/plugins/jquery.file.save.js">saving</a> code (similar to the <a href="http://jerome.myxwiki.org/xwiki/bin/view/Main/ASaturdayHackICouldNotResistTo">XWiki integration</a>), essentially creating a stand-alone HTML application.
	</li>
<li>
		tools integration<br />
		Since Bespin runs in the browser, it might be hard to integrate external tools (e.g. <a href="http://www.logilab.org/project/name/pylint">PyLint</a>).<br />
		I&#8217;m concerned that this might mean the respective server must support such applications, stripping away another bit of developer independence&#8230;
	</li>
<li>
		active community<br />
		There&#8217;s already an <a href="http://labs.mozilla.com/2009/02/thanks-for-the-bespin-contributions-eclipse-xwiki-and-more/">active</a> <a href="http://groups.google.com/group/bespin">community</a> of hackers making use of and contributing to the project.<br />
		(We&#8217;re also considering <a href="http://trac.tiddlywiki.org/ticket/961">using Bespin as a front-end</a> for <a href="http://tiddlywiki.org/wiki/TiddlyWeb">TiddlyWeb</a>.)
	</li>
<li>
		Ubiquity as Firefox extension API<br />
		On a slightly unrelated note, it has been suggested that <a href="http://en.wikipedia.org/wiki/Ubiquity_(Firefox)">Ubiquity</a> might be integrated into Firefox, which in turn could lead to a pure-JavaScript API for extensions (currently writing Firefox extensions involves a lot of overhead, e.g. creating XML documents). That would of course be <a href="http://softwareas.com/for-browser-extensions-grease-is-the-word">most welcome</a>!
	</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/53/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>London Geek Nights: Game Programming</title>
		<link>http://fnd.lewcid.org/blog/archive/40</link>
		<comments>http://fnd.lewcid.org/blog/archive/40#comments</comments>
		<pubDate>Sat, 22 Nov 2008 09:55:15 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=40</guid>
		<description><![CDATA[I really enjoyed yesterday&#8217;s Geek Night on game development. Instead of writing an elaborate draft that ends up never getting published, I&#8217;ve decided to simply post a few quick notes (personal and non-authoritative): XNA (Microsoft&#8217;s game development toolkit for Windows and Xbox 360) live demo was fun, and it seemed fairly easy to get started [...]]]></description>
			<content:encoded><![CDATA[<p>I really enjoyed yesterday&#8217;s <a href="http://upcoming.yahoo.com/event/1076776">Geek Night</a> on <a href="http://londongeeknights.wetpaint.com/page/Developing+Games">game development</a>.<br />
Instead of writing an elaborate draft that ends up never getting published, I&#8217;ve decided to simply post a few quick notes (personal and non-authoritative):<br />
<span id="more-40"></span></p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Microsoft_XNA">XNA</a> (Microsoft&#8217;s game development toolkit for Windows and Xbox 360) live demo was fun, and it seemed fairly easy to get started</li>
<li>Python is suitable for game development (e.g. OpenGL with <a href="http://www.pyglet.org">pyglet</a>), though with obvious performance limitations</li>
<li><a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile</a> methodologies would be even more suitable in game development than in traditional IT, but apathy and lacking/flawed feedback loops (publishers and retailers are harmful intermediaries) seem to prevent widespread adoption<sup>[1]</sup></li>
<li>Open Source is mostly shunned in game development, often due to apathy and ignorance (there are a few positive examples though, like <a href="http://en.wikipedia.org/wiki/Lua_(programming_language)#Games">Lua</a>); extreme short-term thinking prevents the realization of FOSS&#8217;s long-term benefits; standardization is actively subverted by platform vendors<sup>[2]</sup></li>
<li>my overall impression is that the gaming industry is pretty messed up, largely because it&#8217;s dominated by vendors rather than consumer interests</li>
</ul>
<ol class="footnotes"><li id="footnote_0_40" class="footnote">apparently, the gaming industry doesn&#8217;t perceive itself as part of the IT industry &#8211; while it sits somewhere between traditional IT and the movie/entertainment business, it tends to prefer the latter (which is also reflected in the semantics, e.g. &#8220;game studio&#8221;) </li><li id="footnote_1_40" class="footnote">instead of licensing game engines (e.g. Epic Games&#8217; <a href="http://en.wikipedia.org/wiki/Unreal_Engine">Unreal Engine</a>), why are there no collaborative development efforts &#8211; similar to the way <a href="http://en.wikipedia.org/wiki/Apache_HTTP_Server">Apache</a> now provides a superior alternative to <a href="http://en.wikipedia.org/wiki/Internet_Information_Services">IIS</a></li></ol>]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/40/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
