<?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>chrisjrn&#039;s site &#187; Python</title>
	<atom:link href="http://chris.neugebauer.id.au/tags/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://chris.neugebauer.id.au</link>
	<description>Indeed it is.</description>
	<lastBuildDate>Tue, 24 Jan 2012 23:06:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>PyCon Australia 2012 starts here</title>
		<link>http://chris.neugebauer.id.au/2012/01/10/pycon-australia-2012-starts-here/</link>
		<comments>http://chris.neugebauer.id.au/2012/01/10/pycon-australia-2012-starts-here/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 03:00:08 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pyconau]]></category>
		<category><![CDATA[pyconau 2012]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/?p=1550</guid>
		<description><![CDATA[So one thing I forgot to mention on this blog is that I&#8217;ve taken over the reins of PyCon Australia for the 2012 and 2013 conferences. After spending two formative years in Sydney, under the direction of Tim Ansell, Richard &#8230; <a href="http://chris.neugebauer.id.au/2012/01/10/pycon-australia-2012-starts-here/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://chris.neugebauer.id.au/~chrisjrn/fruit/python-logo-inkscape-small-2.png" alt="PyCon Australia" class="alignright size-medium" style="width: 200px;" /><br />
So one thing I forgot to mention on this blog is that I&#8217;ve taken over the reins of <a href="http://www.pycon-au.org">PyCon Australia</a> for the 2012 and 2013 conferences.  After spending two formative years in Sydney, under the direction of Tim Ansell, Richard Jones <em>et al.</em>, we&#8217;re taking the conference south to Hobart, Tasmania.  We&#8217;ve got a great team, consisting of myself, Joshua Hesketh and Matthew D&#8217;Orazio, and our papers committee is being led up once again by Richard Jones.</p>
<p>So, what can you look forward to? Well, here&#8217;s what we know so far.</p>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Wrest_Point_Casino.jpg/359px-Wrest_Point_Casino.jpg" alt="Wrest Point" class="alignleft size-small" style="width: 200px;" /></p>
<p>We&#8217;re holding PyCon Australia around the weekend of August 18 and 19 2012.  Our venue is the <a href="http://www.wrestpoint.com.au">Wrest Point Convention centre</a> in Sandy Bay.  We&#8217;re really excited about our choice of venue &#8212; as well as offering us perfectly-sized rooms for our conference, the wide variety of spaces in the complex allow us to bring all of the traditional PyCon Australia events &#8212; CodeWars, the sprints and the conference itself &#8212; under the same roof for the first time.</p>
<p>Wrest Point is situated on the shoreline of the River Derwent, and this not only admits excellent views from the conference venue, but will also enable us to run some truly memorable social events, including the conference dinner, which we hope to share more details about shortly.</p>
<p>Our venue also lets us offer accommodation across a very wide range of budgets (starting around $124/room/night) to our delegates &#8212; this is not just a nominated conference hotel, it&#8217;s in the same building complex as the conference venue.  This means that delegates can stay on-site for the entirety of the conference.  We think this will prove very popular, especially amongst delegates sticking around for the conference sprints.</p>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Hobart_CBD.JPG/320px-Hobart_CBD.JPG" alt="Hobart &#038; Wrest Point" class="alignright size-medium" style="width: 320px;" /></p>
<p>For students and those travelling on a budget &#8212; we plan on keeping the conference affordable: there&#8217;ll still be heavily discounted student tickets, and we&#8217;ll announce budget accommodation options when registration opens.</p>
<p>Finally, you might be wondering how you can help make PyCon Australia the perfect conference for you? Well, in the coming week, we&#8217;ll be opening a <em>Call for Topics</em>.  This is an opportunity for you, as a potential PyCon Australia delegate, to nominate both topics and presenters that you&#8217;d like to see at the conference.  By nominating presentations, you can help ensure that PyCon Australia can help you enhance your skills and increase your knowledge of Python.</p>
<p>Of course, if you have something that you could present at PyCon Australia, we&#8217;d love to hear from you as well.  We&#8217;ll be opening a traditional call for presentations during February.</p>
<p>So, that&#8217;s it for now.  I&#8217;ll be sure to keep you up-to-date on our progress as we seek to put on the best Python Conference that Australia can offer.  If you&#8217;ve got something to ask, feel free to drop a comment, either here, on <a href="http://twitter.com/pyconau">Twitter</a>, or on our <a href="https://plus.google.com/u/0/b/111912018132970584323/">Google+ page</a> &#8212; we&#8217;ll get back to you as quickly as possible!</p>
<p>(Photos: &#8220;Wrest Point&#8221; by JJ Harrison, CC-BY-SA; &#8220;View of Hobart CBD&#8221; by Aaroncrick, CC-BY-SA)</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2012/01/10/pycon-australia-2012-starts-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AUC /dev/world/2010 &#8212; I&#8217;m Presenting!</title>
		<link>http://chris.neugebauer.id.au/2010/08/20/auc-devworld2010-im-presenting/</link>
		<comments>http://chris.neugebauer.id.au/2010/08/20/auc-devworld2010-im-presenting/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 10:34:57 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[auc]]></category>
		<category><![CDATA[devworld]]></category>
		<category><![CDATA[devworld2010]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/?p=1405</guid>
		<description><![CDATA[AUC /dev/world/2010, the Apple University Consortium&#8217;s conference for developers working on or with Mac or iOS devices is on again this year, on the 28th and 29th of September, in Melbourne.  Last year I presented a talk, and ran the &#8230; <a href="http://chris.neugebauer.id.au/2010/08/20/auc-devworld2010-im-presenting/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.auc.edu.au/DevWorld+2010">AUC /dev/world/2010</a>, the Apple University Consortium&#8217;s conference for developers working on or with Mac or iOS devices is on again this year, on the 28th and 29th of September, in Melbourne.  Last year I presented a talk, and ran the conference&#8217;s lightning talks; the conference was fanstastic: the content was easily-accessible to staff and students from across the country, and catered to a very wide range of skill levels and familiarity with  Apple frameworks.</p>
<p>This year, I&#8217;ll be presenting <a href="http://www.auc.edu.au/DevWorld+Sessions"><em>Awesome Things You&#8217;ve Missed in Python</em></a>, a fast-paced, code-heavy recap of interesting features to hit the Python Programming language in the past few years.  My talk is not specific to Apple development, but will have a strong focus on techniques which are applicable to development with the PyObjC library.</p>
<p>If you&#8217;re on staff or are a student of an AUC member university (most Australian Universities are, as are a few Kiwi ones), registration is cheap ($100 for students), and all flights and accommodation are subsidised (to a generous limit).  If a fun two days of meeting interesting people and learning about development techniques with the latest technology available on Apple devices interests you, get in contact with <a href="http://www.auc.edu.au/AUCDF+Contacts">your local AUCDF coordinator </a>to register!</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2010/08/20/auc-devworld2010-im-presenting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pythonic UIs</title>
		<link>http://chris.neugebauer.id.au/2009/08/13/pythonic-uis/</link>
		<comments>http://chris.neugebauer.id.au/2009/08/13/pythonic-uis/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 06:57:18 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2009/08/13/pythonic-uis/</guid>
		<description><![CDATA[I&#8217;ve just been reading Richard Jones&#8217; current project, where he&#8217;s implementing a very Pythonic way of creating GUIs (for example, managing gui contexts using Python&#8217;s context managers). I&#8217;m very very excited, and I hope this sample code shows why: with &#8230; <a href="http://chris.neugebauer.id.au/2009/08/13/pythonic-uis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just been reading <a href="http://www.mechanicalcat.net/richard/log/Python/Something_I_m_working_on.4">Richard Jones&#8217; current project</a>, where he&#8217;s implementing a very Pythonic way of creating GUIs (for example, managing gui contexts using Python&#8217;s <a href="http://www.python.org/dev/peps/pep-0343/">context managers</a>).  I&#8217;m very very excited, and I hope this sample code shows why:</p>
<pre>with gui.form() as form: name = gui.row('Name', gui.text()) skill = gui.row('Skill level', gui.selection(['Awesome', 'Radical', 'Understated'])) @gui.submit('OK') def on_click(button): print 'Got name=%r'%name.value print 'Got skill=%r'%form['skill'].value gui.stop(0) @gui.cancel('Cancel') def on_click(button): gui.stop(1) </pre>
<p>Take a look at what this code does at <a href="http://www.mechanicalcat.net/richard/log/Python/Something_I_m_working_on.4">Richard Jones&#8217; weblog.</a>  It&#8217;s pretty awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2009/08/13/pythonic-uis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cocomo: An experiment in metaprogramming in python</title>
		<link>http://chris.neugebauer.id.au/2009/06/01/cocomo-an-experiment-in-metaprogramming-in-python/</link>
		<comments>http://chris.neugebauer.id.au/2009/06/01/cocomo-an-experiment-in-metaprogramming-in-python/#comments</comments>
		<pubDate>Sun, 31 May 2009 23:16:40 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[cocomo]]></category>
		<category><![CDATA[lightning talks]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[tucs]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2009/06/01/cocomo-an-experiment-in-metaprogramming-in-python/</guid>
		<description><![CDATA[Friday saw the second edition of the UTAS Computing Society Lightning Talks, if you haven&#8217;t seen them already, I highly recommend that you check them out &#8212; this semester&#8217;s were at a very high standard indeed, and I wish I&#8217;d &#8230; <a href="http://chris.neugebauer.id.au/2009/06/01/cocomo-an-experiment-in-metaprogramming-in-python/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Friday saw the second edition of the <a href="http://blip.tv/file/2177007">UTAS Computing Society Lightning Talks</a>, if you haven&#8217;t seen them already, I highly recommend that you check them out &#8212; this semester&#8217;s were at a very high standard indeed, and I wish I&#8217;d printed out more certificates for good talks <img src='http://chris.neugebauer.id.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .  My talk was a demonstration of using metaprogramming in Python, though that&#8217;s not what it seemed to be about.</p>
<h4>An introduction</h4>
<p>I went to the <a href="http://www.auc.edu.au">Apple University Consortium&#8217;s</a> Cocoa Workshop at the University of New South Wales in February of this year, it was a heap of fun, and we learnt heaps whilst there.  One of the key distinguising features of Cocoa is its use of verbose English method and attribute names, the idea being that each line of code should make a reasonable amount of sense when read aloud, hence:</p>
<pre>NSString *str = [[NSString alloc] initWithString @"Hello World!"]</pre>
<p>does indeed allocate memory to hold a string object, and initialises the newly-allocated memory with a string containing &#8220;Hello World!&#8221; (this code is highly redundant!).  Supposedly such a naming scheme allows coders to write code that is easily maintainable by the original coder, and easily learnable by people who pick up the code for the first time.</p>
<p>On the other hand, my friends, collectively known as <a href="http://planetmaclab.com">Maclab</a> (named after the room at UTAS we inhabit) have developed a rather unique vocabularly, which in particular involves replacing as many words as possible with either &#8216;thrust&#8217; or &#8216;fork&#8217;, so &#8220;Thrustingly thrust the forking forker&#8221; is not an uncommon utterance amongst my friends.  If this is indeed their usual mode of conversation, then Cocoa&#8217;s way of identifying methods and attributes is not necessarily going to be a particularly intiuitive one.  So, clearly, we need a version of cocoa that meets their needs.</p>
<h4>The setup</h4>
<p>So, conveniently, Apple provide a comprehensive version of the Cocoa API, thanks to the PyObjC project.  We can therefore use the Python bindings for Cocoa facilitate our new version of Cocoa.  Since Cocoa has a very consistent naming scheme, we can simply perform string replacement to translate from our maclab language to the standard cocoa language, using a routine somewhat like this:</p>
<pre> def translate(inp): ''' Translates an input string from key language to value language ''' for i in LANGUAGE: if i[0].islower(): inp = inp.replace(i, LANGUAGE[i]) inp = inp.replace(rtitle(i), rtitle(LANGUAGE[i])) else: inp = inp.replace(i, LANGUAGE[i]) return inp def rtitle(i): return i[0].upper() + i[1:] </pre>
<p>Here, <tt>LANGUAGE</tt> is a dictionary, with keys in the language code will be written in and values being the target language (in this case, Cocoa).  There&#8217;s not all that much of a sophisticated nature going on in here.  Now that we have a method by which we can translate our attribute accesses, we can get to the meat of the the code.</p>
<h4>The implementation</h4>
<p>To achieve the new API, we need to use a technique that I will call proxying.  This involves the use of objects whose sole purpose is to intercept attribute accesses and calls to an underlying object.  In this case, the point of intercepting the calls and accesses is to perform translation from our new objects to standard Cocoa objects.  In Python we can do this by overriding the standard attribute access and call methods.</p>
<p>First up is <tt>__getattr__</tt>, the attribute accessor method &#8212; for this, we are passed a string; the name of the attribute that we&#8217;re looking for, which we translate, and then attempt to access upon the method on the underlying object (in this case, <tt>self.__u__</tt>).  There is one slight hitch: in certain cases, we may not want to translate the attribute name.  This is true, in particular, of the attribute that represents the underlying object.  Hence we provide a <tt>REAL_ATTRS</tt> list, for which we use the default <tt>__getattr__</tt> method for.  This results in code that looks something like this:</p>
<pre> def __getattribute__(self,name): if name in REAL_ATTRS: return object.__getattribute__(self,name) else: new_objectname = "self.__u__.%s" % translate(name) new_object = eval(new_objectname) return CocomoProxy(new_object) </pre>
<p>Notice that we use <tt>eval</tt> to perform the lookup? It turns out that <tt>__getattr__</tt> doesn&#8217;t work universally, whereas . notation does &#8212; so we use that for less failover.</p>
<p>Being able to call methods on the objects is important, but slightly more difficult &#8212; we want behaviour to be maintained, so we need to make sure that proper Cocoa objects are passed as arguments, rather than the Proxy objects that you may have originally dealt with.  We can do this with Python&#8217;s argument unpacking &#8212; we build up a list of arguments, and unproxy them as necessary:</p>
<pre> def __call__(self,*a, **k): new_a = [i.__u__ if type(i) == CocomoProxy else i for i in a] new_k = dict( (translate(i), k[i].__u__ if type(k[i]) == CocomoProxy else k[i]) for i in k) return CocomoProxy(self.__u__(*new_a,**new_k)) </pre>
<p>We may also need to deal with iterators.  This can be done using a standard generator function, thusly:</p>
<pre> def __iter__(self): for i in self.__u__: yield CocomoProxy(i) </pre>
<p>Finally, there may be legitimate reasons for extracting Cocoa objects, these include printing strings, so we provide an accessor method called <tt>no_really</tt>:</p>
<pre> def no_really(self): return self.__u__ </pre>
<p>And that&#8217;s the entire implementation!  The final thing we need to do is provide a pre-proxied version of the base module for Cocoa.  Let&#8217;s call it <tt>GypsyMagic</tt>.</p>
<h4>The payoff</h4>
<p>So now that we have a working bridge from Maclab English to Cocoa English, we can take this sample code that puts some stuff into an array, and then prints it:</p>
<pre> import AppKit hworld = AppKit.NSString.alloc().initWithString_("Hello, World!") arr = AppKit.NSMutableArray.alloc().init() arr.addObject_(hworld) arr.addObject_("Boop!") for i in arr: print i </pre>
<p>And write it in the far more palatable:</p>
<pre> from cocomo import GypsyMagic hworld = GypsyMagic.OGMouthWords.subsume().makeGogoWithMouthWords_("Hello, World!") arr = GypsyMagic.OGForkableTrinketHolder.subsume().makeGogo() arr.thrustinglyThrustForker_(hworld) arr.thrustinglyThrustForker_("Boop!") for i in arr: print i.no_really() </pre>
<p>If you&#8217;re interested in seeing how it all fits together, see <a href="http://noogz.net/cocomo">Cocomo&#8217;s website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2009/06/01/cocomo-an-experiment-in-metaprogramming-in-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python 3000</title>
		<link>http://chris.neugebauer.id.au/2008/12/04/python-3000/</link>
		<comments>http://chris.neugebauer.id.au/2008/12/04/python-3000/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 00:51:25 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2008/12/04/python-3000/</guid>
		<description><![CDATA[Python 3000 (aka Python v3.0) has just been released! Grab your source tarballs whilst they&#8217;re hot!]]></description>
			<content:encoded><![CDATA[<p>Python 3000 (aka Python v3.0) has <a href='http://www.python.org/download/releases/3.0/'>just been released</a>!  Grab your source tarballs whilst they&#8217;re hot!</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2008/12/04/python-3000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with Sockets</title>
		<link>http://chris.neugebauer.id.au/2008/10/28/fun-with-sockets/</link>
		<comments>http://chris.neugebauer.id.au/2008/10/28/fun-with-sockets/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 10:06:00 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[sockets]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2008/10/28/fun-with-sockets/</guid>
		<description><![CDATA[Whilst doing some coding today for my semester research project I found a need to check for incoming data on a socket without taking any data out of the stream. Here&#8217;s the code I came up with: cp.sock.setblocking(False) try: cp.sock.recv(0) &#8230; <a href="http://chris.neugebauer.id.au/2008/10/28/fun-with-sockets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Whilst doing some coding today for my semester research project I found a need to check for incoming data on a socket without taking any data out of the stream.  Here&#8217;s the code I came up with:</p>
<pre> cp.sock.setblocking(False) try: cp.sock.recv(0) stuffwaiting = True except socket.error: stuffwaiting = False cp.sock.setblocking(True) </pre>
<p>This code works finely on Linux &#8212; you can only receive data if there is data to be received (even if you want to receive no data).  Unfortunately, the code doesn&#8217;t port to Mac OS &#8212; you may receive as many bytes as there are in the socket&#8217;s buffer &#8212; if there are no bytes in the buffer, you can receive 0 bytes.  Therefore, the following fix is necessary:</p>
<pre> cp.sock.setblocking(False) try: cp.sock.recv(1, socket.MSG_PEEK) stuffwaiting = True except socket.error: stuffwaiting = False cp.sock.setblocking(True) </pre>
<p>So, my question for Lazyweb is: is there a better way to do this?</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2008/10/28/fun-with-sockets/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Code Jam</title>
		<link>http://chris.neugebauer.id.au/2008/07/17/google-code-jam/</link>
		<comments>http://chris.neugebauer.id.au/2008/07/17/google-code-jam/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 21:40:35 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[codejam]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2008/07/17/google-code-jam/</guid>
		<description><![CDATA[Just a friendly reminder to you all that Google Code Jam 2008&#8216;s qualifying round opens today. Code Jam is an individual programming competition, which lets you compete with a number of languages. Qualifying opens at 9AM Australian time, and you &#8230; <a href="http://chris.neugebauer.id.au/2008/07/17/google-code-jam/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a friendly reminder to you all that <a href="http://code.google.com/codejam/">Google Code Jam 2008</a>&#8216;s qualifying round opens today.  Code Jam is an individual programming competition, which lets you compete with a number of languages.  Qualifying opens at 9AM Australian time, and you have until that time tomorrow to qualify.  Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2008/07/17/google-code-jam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LCA2009: Python Miniconf Proposal</title>
		<link>http://chris.neugebauer.id.au/2008/07/16/lca2009-python-miniconf-proposal/</link>
		<comments>http://chris.neugebauer.id.au/2008/07/16/lca2009-python-miniconf-proposal/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 05:20:25 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[lca]]></category>
		<category><![CDATA[lca2009]]></category>
		<category><![CDATA[minipycon]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2008/07/16/lca2009-python-miniconf-proposal/</guid>
		<description><![CDATA[I just posted the following announcement of my proposal for a Python Miniconf to be held at linux.conf.au 2009 to Australian Python mailing lists. I&#8217;m posting it here in case anyone has missed it: Linux.conf.au 2009 is to be held &#8230; <a href="http://chris.neugebauer.id.au/2008/07/16/lca2009-python-miniconf-proposal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just posted the following announcement of my proposal for a Python Miniconf to be held at <a href="http://marchsouth.org">linux.conf.au 2009</a> to Australian Python mailing lists.  I&#8217;m posting it here in case anyone has missed it:</p>
<pre>Linux.conf.au 2009 is to be held at the University of Tasmania's Sandy Bay campus in Hobart, Tasmania over the week of January 19-24; and the call for presentations [1] and mini-confs [2] is now open. I am currently in the process of producing a proposal for a Python Miniconf to be held at LCA, so I thought I should detail my plans to a greater audience for the purpose of feedback/suggestions. The miniconf would be a single-day conference on the broad topic of Python programming.  Broadly speaking, the topics I would like to see presented would range through: - Recent developments on Python core (presented to a more Python-oriented audience than may happen at LCA proper) - Frameworks and libraries (e.g. Django, which I believe is hitting 1.0 this year) - Techniques of Python programming (e.g. using advanced/new/etc features of Python effectively) - Discussions of Python use in the "real world" (e.g. Industry use, education, etc, etc, etc). - Anything else Python-related: please make suggestions! [3] The intention is that there would be 5 "organised" talks of ~45 minutes length (although if there is sufficient interest/free space, I could split blocks into 2x25 minute talks), with a 50-minute block of lightning talks to conclude the event, with the possibilty of some loosely-organised get-together of pythoners after the day's proceedings have finished. If you are interested in participating in the Python miniconf (which requires you to also be interested in attending Linux.conf.au), please e-mail me [3].  I would particularly like topics of talks that people would be able to give (vague/general is fine at this early stage in preparation), so that I can include them in the miniconf proposal (so the earlier I receive them the better!). Thanks in advance for any help that you may be able to offer me. -- Christopher Neugebauer P.S. if I have missed any user groups/potentially interested parties, could you please forward this message on -- I've already dealt with most relevant mailing lists in Australia, but international lists may also be interested, due to the nature of LCA as an international conference. [1] http://marchsouth.org/media/news/6 [2] http://marchsouth.org/media/news/15 [3] for the benefit of google groups users: chrisjrn [ a t ] gmail.com </pre>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2008/07/16/lca2009-python-miniconf-proposal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TUCS Tech Talk Photos</title>
		<link>http://chris.neugebauer.id.au/2008/05/05/tucs-tech-talk-photos/</link>
		<comments>http://chris.neugebauer.id.au/2008/05/05/tucs-tech-talk-photos/#comments</comments>
		<pubDate>Mon, 05 May 2008 01:43:23 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[photographs]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tech Talk]]></category>
		<category><![CDATA[tucs]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2008/05/05/tucs-tech-talk-photos/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; }.flickr-yourcomment { }.flickr-frame { text-align: left; padding: 3px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; } TUCS Tech Talk #1, originally uploaded by Christopher Neugebauer. As I mentioned previously, TUCS had its first tech talk &#8230; <a href="http://chris.neugebauer.id.au/2008/05/05/tucs-tech-talk-photos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">.flickr-photo { border: solid 2px #000000; }.flickr-yourcomment { }.flickr-frame { text-align: left; padding: 3px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }</style>
<div class="flickr-frame"> <a href="http://www.flickr.com/photos/chrisjrn/2461546258/" title="photo sharing"> <img src="http://farm4.static.flickr.com/3029/2461546258_ca0d9704d8.jpg" class="flickr-photo" alt="" /></a> <br /> <span class="flickr-caption"> <a href="http://www.flickr.com/photos/chrisjrn/2461546258/">TUCS Tech Talk #1</a>, originally uploaded by <a href="http://www.flickr.com/people/chrisjrn/">Christopher Neugebauer</a>. </span></div>
<p class="flickr-yourcomment">	As I mentioned <a href="/website/blog/life/20080503-TucsLaunch.html">previously,</a> TUCS had its first tech talk on Friday (delivered by myself, on the topic of Introductory Python), this is the first opportunity to show off photos from it.  I was rather impressed by the turnout (there are a few people off to the side that can&#8217;t be seen in the frame).</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2008/05/05/tucs-tech-talk-photos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TUCS Launch (Tech Talk etc)</title>
		<link>http://chris.neugebauer.id.au/2008/05/03/tucs-launch-tech-talk-etc/</link>
		<comments>http://chris.neugebauer.id.au/2008/05/03/tucs-launch-tech-talk-etc/#comments</comments>
		<pubDate>Sat, 03 May 2008 09:52:51 +0000</pubDate>
		<dc:creator>Christopher Neugebauer</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tech Talk]]></category>
		<category><![CDATA[tucs]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://chris.neugebauer.id.au/2008/05/03/tucs-launch-tech-talk-etc/</guid>
		<description><![CDATA[TUCS had its launch event yesterday, which consisted of a Barbecue, membership drive, and tech talk. The Membership front was fairly successful, given that we managed to sign up somewhere in the order of 7 new members (which is not &#8230; <a href="http://chris.neugebauer.id.au/2008/05/03/tucs-launch-tech-talk-etc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tucs.org.au/">TUCS</a> had its launch event yesterday, which consisted of a Barbecue, membership drive, and tech talk.</p>
<p>The Membership front was fairly successful, given that we managed to sign up somewhere in the order of 7 new members (which is not bad given how late in the semester it is, and that we weren&#8217;t offering Alcohol at the event <img src='http://chris.neugebauer.id.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), hopefully we can get a few more before the end of the semester, as it would be nice to get some people who aren&#8217;t part of the &#8220;usual crowd&#8221; to join in.</p>
<p>The main reason for this post was that I delivered the tech talk, on the topic of Introductory Python.  Overall, I think it went fairly well, although I mistimed the talk such that I had to completely miss one section of the talk (which is a reminder of my debating days&#8230; but let&#8217;s not get into that).  Anyone who wants to comment on my talk (except for the sections where Bruce crashes &#8212; I already know about this) is quite welcome to &#8212; it&#8217;s available in its entirety at <a href="http://video.google.com/videoplay?docid=2129832886753561201&#038;hl=en">Google Video</a></p>
<p>The day was quite successful.  Here&#8217;s hoping that TUCS can keep getting stronger!</p>
]]></content:encoded>
			<wfw:commentRss>http://chris.neugebauer.id.au/2008/05/03/tucs-launch-tech-talk-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

