<?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>Python &#8211; James Lin&#039;s Blog</title>
	<atom:link href="https://james.lin.net.nz/category/technology/programming/python/feed/" rel="self" type="application/rss+xml" />
	<link>https://james.lin.net.nz</link>
	<description>Just bits and pieces of my life</description>
	<lastBuildDate>Fri, 19 Jan 2018 22:42:50 +0000</lastBuildDate>
	<language>en-NZ</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.2</generator>
<site xmlns="com-wordpress:feed-additions:1">22801464</site>	<item>
		<title>Django Rest Framework QuerySet</title>
		<link>https://james.lin.net.nz/2016/06/24/django-rest-framework-queryset/</link>
		<comments>https://james.lin.net.nz/2016/06/24/django-rest-framework-queryset/#respond</comments>
		<pubDate>Thu, 23 Jun 2016 22:42:24 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3794</guid>
		<description><![CDATA[I have just created this python library so that you can query the remote api just like the Django queryset. It is particularly usefully when used in Django ListView with pagination. https://github.com/variable/django-rest-framework-queryset ]]></description>
				<content:encoded><![CDATA[<p>I have just created this python library so that you can query the remote api just like the Django queryset. It is particularly usefully when used in Django ListView with pagination.</p>
<p><a href="https://github.com/variable/django-rest-framework-queryset">https://github.com/variable/django-rest-framework-queryset </a></p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2016/06/24/django-rest-framework-queryset/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3794</post-id>	</item>
		<item>
		<title>Posting image to thumbor using requests package</title>
		<link>https://james.lin.net.nz/2016/05/13/posting-image-to-thumbor-using-requests-package/</link>
		<comments>https://james.lin.net.nz/2016/05/13/posting-image-to-thumbor-using-requests-package/#respond</comments>
		<pubDate>Fri, 13 May 2016 03:48:46 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[thumbor]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3783</guid>
		<description><![CDATA[Seems like there are not many code sample there, and the requests documentation was giving the wrong hint to use files={'file': open('image.jpg')} which you will end up getting 415 response code. I think I will just share my working sample code here to save someone&#8217;s time [crayon-5a65c8b455e4b330793746/] &#160;]]></description>
				<content:encoded><![CDATA[<p>Seems like there are not many code sample there, and the requests documentation was giving the wrong hint to use <code>files={'file': open('image.jpg')}</code> which you will end up getting 415 response code.</p>
<p>I think I will just share my working sample code here to save someone&#8217;s time</p><pre class="crayon-plain-tag">import requests

# local file
with open('image.jpg', 'rb') as file:
    resp = requests.post('http://localhost:8888/image', data=file.read())
    url = resp.headers['Location']

# remote file
remote_resp = requests.get(image_url, stream=True)
resp = requests.post('http://localhost:8888/image', data=remote_resp.content)
url = resp.headers['Location']</pre><p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2016/05/13/posting-image-to-thumbor-using-requests-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3783</post-id>	</item>
		<item>
		<title>Suppressing imported but unused warnings from flake</title>
		<link>https://james.lin.net.nz/2016/04/28/suppressing-imported-but-unused-warnings-from-flake/</link>
		<comments>https://james.lin.net.nz/2016/04/28/suppressing-imported-but-unused-warnings-from-flake/#respond</comments>
		<pubDate>Wed, 27 Apr 2016 21:12:09 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Life In General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[flake]]></category>
		<category><![CDATA[pep8]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3780</guid>
		<description><![CDATA[If you are a good python dev, surely you follow PEP8 coding style guidelines, and surely you have installed the flake8 plugin to constantly reminding yourself to format your code properly, and surely you have valid cases that you import stuff but not used, eg. __init__.py and surely your IDE will annoy the fuck out of… <span class="read-more"><a href="https://james.lin.net.nz/2016/04/28/suppressing-imported-but-unused-warnings-from-flake/">Read More &#187;</a></span>]]></description>
				<content:encoded><![CDATA[<p>If you are a good python dev, surely you follow PEP8 coding style guidelines, and surely you have installed the flake8 plugin to constantly reminding yourself to format your code properly, and surely you have valid cases that you import stuff but not used, eg. <code>__init__.py</code> and surely your IDE will annoy the fuck out of you for not using the stuff you imported, here is how you tell your IDE to &#8220;shut the fuck up and I did it on purpose&#8221;:</p><pre class="crayon-plain-tag">from .your_module import unused_stuff  # noqa</pre><p>Peace.</p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2016/04/28/suppressing-imported-but-unused-warnings-from-flake/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3780</post-id>	</item>
		<item>
		<title>Writing static typed style code in dynamic type language</title>
		<link>https://james.lin.net.nz/2016/02/22/writing-static-typed-style-code-in-dynamic-type-language/</link>
		<comments>https://james.lin.net.nz/2016/02/22/writing-static-typed-style-code-in-dynamic-type-language/#respond</comments>
		<pubDate>Sun, 21 Feb 2016 20:15:25 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3755</guid>
		<description><![CDATA[I am not sure who else is doing this but I have a static typed language background and I tend to write code in static type style. Don&#8217;t assign different value types to the same variable Let&#8217;s see what dynamic type in the simplest form in Python: [crayon-5a65c8b4571f2447172161/] While this is perfectly legitimate, but it&#8217;s… <span class="read-more"><a href="https://james.lin.net.nz/2016/02/22/writing-static-typed-style-code-in-dynamic-type-language/">Read More &#187;</a></span>]]></description>
				<content:encoded><![CDATA[<p>I am not sure who else is doing this but I have a static typed language background and I tend to write code in static type style.</p>
<h3>Don&#8217;t assign different value types to the same variable</h3>
<p>Let&#8217;s see what dynamic type in the simplest form in Python:</p><pre class="crayon-plain-tag">variable_a = True
if variable_a:
    variable_a = 'Result'</pre><p>While this is perfectly legitimate, but it&#8217;s perfectly unacceptable, the rule of thumb is, you never assign a different type of value to a already defined variable.</p><pre class="crayon-plain-tag">variable_a = True
if variable_a:
    result = 'Result'</pre><p>This way, when someone reads your code, one can safely assume result is always a &#8216;String&#8217; type, seriously this will help a lot.</p>
<h3>Don&#8217;t return different types of value in a function</h3>
<p>Consider the following example, one would need to understand your condition in order to determine the type of result, also makes it difficult to consume this function.</p><pre class="crayon-plain-tag">def work():
    result = None
    variable_a = True
    if variable_a:
        result = 'Result'
    else
        result = 123</pre><p></p>
<h3>Define your class members at the top of the class</h3>
<p>While this is perfectly legitimate:</p><pre class="crayon-plain-tag">class A(object):
    def work(self):
        self.member = 'abc'</pre><p>But it&#8217;s difficult to work out what class members at a glance, please define them.</p><pre class="crayon-plain-tag">class A(object):
    def __init__(self):
        self.member = None

    def work(self):
        self.member = 'abc'</pre><p>Now you know this class has a class member without reading the work function.</p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2016/02/22/writing-static-typed-style-code-in-dynamic-type-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3755</post-id>	</item>
		<item>
		<title>PHP developers should try Python.</title>
		<link>https://james.lin.net.nz/2016/02/21/php-developers-should-try-python/</link>
		<comments>https://james.lin.net.nz/2016/02/21/php-developers-should-try-python/#respond</comments>
		<pubDate>Sun, 21 Feb 2016 03:26:51 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3745</guid>
		<description><![CDATA[PHP and Python both are dynamic typed language, so there is no point the discuss anything related in this aspect. Exception is first class citizen [crayon-5a65c8b457795638311321/] Prints &#8216;Caught&#8217; Let&#8217;s look at PHP: [crayon-5a65c8b4577a1347957262/] Better functions Imagine you can write functions like this [crayon-5a65c8b4577a6071870706/] Short-lived vs Long-lived Almost all PHP scripts are short-lived, including most frameworks, which… <span class="read-more"><a href="https://james.lin.net.nz/2016/02/21/php-developers-should-try-python/">Read More &#187;</a></span>]]></description>
				<content:encoded><![CDATA[<p>PHP and Python both are dynamic typed language, so there is no point the discuss anything related in this aspect.</p>
<h3>Exception is first class citizen</h3>
<p></p><pre class="crayon-plain-tag">try:
    a = 1 / 0
except:
    print 'Caught'</pre><p>Prints &#8216;Caught&#8217;</p>
<p>Let&#8217;s look at PHP:</p><pre class="crayon-plain-tag">try{ 
    $a = 1 / 0; 
}catch (Exception $e){ 
    print &quot;Caught&quot;; 
} 
I cannot believe by default this still gives me PHP Warning:  Division by zero</pre><p></p>
<h3>Better functions</h3>
<p>Imagine you can write functions like this</p><pre class="crayon-plain-tag">def marry(man, woman):
    ...

marry('John', 'Julie')
marry(woman='Julie', man='John')

def party(*args):
    for person in args:
      print person

party('John')
party('John', 'Ben', ...)

def save(name, *kwargs):
    data = {'name': name}
    data.update(kwargs)
    write_to_db(data)

save('John')
save('John', gender='male', birthday='01/01/1970')</pre><p></p>
<h3>Short-lived vs Long-lived</h3>
<p>Almost all PHP scripts are short-lived, including most frameworks, which means to serve a request, your PHP application will run from start to finish. However, Python can run as processes to serve requests, for example, A Django application runs as a process, so initiation code only runs once, serve a request, then wait for the next request to serve.</p>
<h3>Imports Properly</h3>
<p>Since 5.3, PHP introduced namespace, since they used .&#8221;dot&#8221; for concatenation, so they had to use the \&#8221;slash&#8221;, looks like this</p><pre class="crayon-plain-tag">namespace NZ\NET\LIN\Test</pre><p>And use like this</p><pre class="crayon-plain-tag">use NZ\NET\LIN\Test</pre><p></p>
<p>But it doesn&#8217;t actually import the Test class! Unless you use __autoload!</p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2016/02/21/php-developers-should-try-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3745</post-id>	</item>
		<item>
		<title>A simple architecture to consolidate the realestate websites in NZ</title>
		<link>https://james.lin.net.nz/2015/12/07/a-simple-architecture-to-consolidate-the-realestate-websites-in-nz/</link>
		<comments>https://james.lin.net.nz/2015/12/07/a-simple-architecture-to-consolidate-the-realestate-websites-in-nz/#respond</comments>
		<pubDate>Mon, 07 Dec 2015 03:17:48 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3607</guid>
		<description><![CDATA[Just a business idea, while I am browsing all these real estate websites, they pretty much give the same types of information, it could be reasonable profitable to consolidate the online platform, and even cheaper option for RE companies. I am not a sales person so I don&#8217;t know how to sell it, but it&#8217;s not… <span class="read-more"><a href="https://james.lin.net.nz/2015/12/07/a-simple-architecture-to-consolidate-the-realestate-websites-in-nz/">Read More &#187;</a></span>]]></description>
				<content:encoded><![CDATA[<p>Just a business idea, while I am browsing all these real estate websites, they pretty much give the same types of information, it could be reasonable profitable to consolidate the online platform, and even cheaper option for RE companies.</p>
<p>I am not a sales person so I don&#8217;t know how to sell it, but it&#8217;s not hard from a technical perspective to, let&#8217;s say consolidate all real estate websites in NZ into a platform.</p>
<p>If we look at all these real estate listings, they basically consisted with 2 models, the &#8220;listing&#8221; and &#8220;agent&#8221;. Having those 2 models stores 90% of the information needed. Surely we are not stopping at those 2 models, we will normalise the repetitive fields into models defined such as &#8220;location&#8221; , &#8220;company&#8221;(if we e want to have just one installation to serve multiple company websites&#8221;, etc etc. I think for implementing this is using Django, creating models is a breeze and using Django Rest Framework serving as APIs.</p>
<p>Slapping on a comprehensive search function using ElasticSearch, easy.</p>
<p>Since now we have a backend and communicating via API calls, then implementing the frontends is rather a freedom of choice for different companies. Lots of options (Django, NodeJS etc etc)</p>
<p>Side note:</p>
<p>These real estate companies will most probably have their own CRM systems, might be a bit of pain the implement the integration and probably having each installation for every company is a better choice.</p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2015/12/07/a-simple-architecture-to-consolidate-the-realestate-websites-in-nz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3607</post-id>	</item>
		<item>
		<title>What&#8217;s wrong with this statement?</title>
		<link>https://james.lin.net.nz/2014/04/17/whats-wrong-with-this-statement/</link>
		<comments>https://james.lin.net.nz/2014/04/17/whats-wrong-with-this-statement/#respond</comments>
		<pubDate>Thu, 17 Apr 2014 04:08:10 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3517</guid>
		<description><![CDATA[This morning I made a code change to log some stuff in a core package and created a pull request, the change was very simple: from [crayon-5a65c8b457d04406287067/] to [crayon-5a65c8b457d10276995623/] One of the team lead pointed out the statement has a problem, and it was a life saver, but I won&#8217;t tell you why just yet,… <span class="read-more"><a href="https://james.lin.net.nz/2014/04/17/whats-wrong-with-this-statement/">Read More &#187;</a></span>]]></description>
				<content:encoded><![CDATA[<p>This morning I made a code change to log some stuff in a core package and created a pull request, the change was very simple:</p>
<p>from</p>
<p></p><pre class="crayon-plain-tag">self.execute_command(command, cwd=os.path.dirname(infile))</pre><p></p>
<p>to</p>
<p></p><pre class="crayon-plain-tag">logger.debug(self.execute_command(command, cwd=os.path.dirname(infile)))</pre><p></p>
<p>One of the team lead pointed out the statement has a problem, and it was a life saver, but I won&#8217;t tell you why just yet, see if you can spot it.</p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2014/04/17/whats-wrong-with-this-statement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3517</post-id>	</item>
		<item>
		<title>Python OpenCV Facial Detection On OSX</title>
		<link>https://james.lin.net.nz/2014/03/06/python-opencv-facial-detection/</link>
		<comments>https://james.lin.net.nz/2014/03/06/python-opencv-facial-detection/#respond</comments>
		<pubDate>Wed, 05 Mar 2014 20:17:57 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[opencv]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3495</guid>
		<description><![CDATA[Just a code snippet to demo Python script using OpenCV [crayon-5a65c8b458147211409686/] Installation: pip install numpy (sometimes you might need to run as sudo) brew tap homebrew/science brew install opencv export PYTHONPATH=/usr/local/Cellar/opencv/2.4.7.1/lib/python2.7/site-packages/ download the xml file https://warai.googlecode.com/files/haarcascade_frontalface_alt.xml and place it in the same folder.]]></description>
				<content:encoded><![CDATA[<p><strong>Just a code snippet to demo Python script using OpenCV</strong></p><pre class="crayon-plain-tag">import cv2, time

cap = cv2.VideoCapture(0)
time.sleep(1)
cascade = cv2.CascadeClassifier(&quot;haarcascade_frontalface_alt.xml&quot;)

def detect(image):
    #faces = cascade.detectMultiScale(img, 1.1, 2, cv2.cv.CV_HAAR_SCALE_IMAGE, (20,20), (200,200))
    faces = cascade.detectMultiScale(image)
    for _face in faces:
        cv2.rectangle(image, (_face[0], _face[1]), (_face[0]+_face[2], _face[1]+_face[3]), (255,255,255))

def repeat():
    ret, image = cap.read()
    detect(image)
    cv2.imshow(&quot;w1&quot;, image)
    cv2.waitKey(1)

while True:
    repeat()</pre><p><strong>Installation:</strong></p>
<ol>
<li>pip install numpy (sometimes you might need to run as sudo)</li>
<li>brew tap homebrew/science</li>
<li>brew install opencv</li>
<li>export PYTHONPATH=/usr/local/Cellar/opencv/2.4.7.1/lib/python2.7/site-packages/</li>
<li>download the xml file https://warai.googlecode.com/files/haarcascade_frontalface_alt.xml and place it in the same folder.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2014/03/06/python-opencv-facial-detection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3495</post-id>	</item>
		<item>
		<title>Django CMS Haystack 2.0 Search Index</title>
		<link>https://james.lin.net.nz/2013/11/06/django-cms-haystack-2-0-search-index/</link>
		<comments>https://james.lin.net.nz/2013/11/06/django-cms-haystack-2-0-search-index/#comments</comments>
		<pubDate>Wed, 06 Nov 2013 07:13:43 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[django-cms]]></category>
		<category><![CDATA[haystack]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3448</guid>
		<description><![CDATA[Currently django-cms-search doesn&#8217;t support haystack 2.0 yet, so here is my modified version to work on haystack 2.0 based on [crayon-5a65c8b45866f575379226/]]]></description>
				<content:encoded><![CDATA[<p>Currently django-cms-search doesn&#8217;t support haystack 2.0 yet, so here is my modified version to work on haystack 2.0 based on <a href="http://django-cms.readthedocs.org/en/2.1.3/extending_cms/searchdocs.html#id1" title="django cms documentation" target="_blank"></a></p>
<p></p><pre class="crayon-plain-tag">import datetime
from haystack import indexes   
from cms.models.managers import PageManager
from cms.models.pagemodel import Page
from cms.models.pluginmodel import CMSPlugin


class PageIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=False)
    pub_date = indexes.DateTimeField(model_attr='publication_date', null=True)
    login_required = indexes.BooleanField(model_attr='login_required')
    url = indexes.CharField(model_attr='get_absolute_url')
    title = indexes.CharField(model_attr='get_title')

    def prepare(self, obj):    
        self.prepared_data = super(PageIndex, self).prepare(obj)
        plugins = CMSPlugin.objects.filter(placeholder__in=obj.placeholders.all())
        text = ''              
        for plugin in plugins: 
            instance, _ = plugin.get_plugin_instance()
            if hasattr(instance, 'search_fields'):
                text += ''.join(getattr(instance, field) for field in instance.search_fields)
        text += obj.get_meta_description() or u''
        text += obj.get_title() or u''
        text += obj.get_meta_keywords() if hasattr(obj, 'get_meta_keywords') and obj.get_meta_keywords() else u''
        self.prepared_data['text'] = text
        return self.prepared_data       

    def get_model(self):
        return Page

    def index_queryset(self, using=None):
        return Page.objects.published().filter(publisher_is_draft=False).distinct()</pre><p></p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2013/11/06/django-cms-haystack-2-0-search-index/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3448</post-id>	</item>
		<item>
		<title>Pretty Good Insight On GIL In Python</title>
		<link>https://james.lin.net.nz/2013/08/19/pretty-good-insight-on-gil-in-python/</link>
		<comments>https://james.lin.net.nz/2013/08/19/pretty-good-insight-on-gil-in-python/#respond</comments>
		<pubDate>Mon, 19 Aug 2013 09:19:23 +0000</pubDate>
		<dc:creator><![CDATA[James Lin]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://james.lin.net.nz/?p=3421</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><iframe src="http://blip.tv/play/g4VigcfoPgI.x?p=1" width="720" height="433" frameborder="0" allowfullscreen></iframe><embed type="application/x-shockwave-flash" src="http://a.blip.tv/api.swf#g4VigcfoPgI" style="display:none"></embed></p>
]]></content:encoded>
			<wfw:commentRss>https://james.lin.net.nz/2013/08/19/pretty-good-insight-on-gil-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<post-id xmlns="com-wordpress:feed-additions:1">3421</post-id>	</item>
	</channel>
</rss>
