<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: effbot</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/effbot.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-07-19T23:37:59+00:00</updated><author><name>Simon Willison</name></author><entry><title>Simple Top-Down Parsing in Python</title><link href="https://simonwillison.net/2008/Jul/19/simple/#atom-tag" rel="alternate"/><published>2008-07-19T23:37:59+00:00</published><updated>2008-07-19T23:37:59+00:00</updated><id>https://simonwillison.net/2008/Jul/19/simple/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://effbot.org/zone/simple-top-down-parsing.htm"&gt;Simple Top-Down Parsing in Python&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Eye-opening tutorial on building a recursive descent parser for Python, in Python that uses top-down operator precedence.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/compilers"&gt;compilers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/effbot"&gt;effbot&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fredrik-lundh"&gt;fredrik-lundh&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/parsing"&gt;parsing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recursivedescent"&gt;recursivedescent&lt;/a&gt;&lt;/p&gt;



</summary><category term="compilers"/><category term="effbot"/><category term="fredrik-lundh"/><category term="parsing"/><category term="python"/><category term="recursivedescent"/></entry><entry><title>Some Notes on Tim Bray's Wide Finder Benchmark</title><link href="https://simonwillison.net/2007/Oct/7/python/#atom-tag" rel="alternate"/><published>2007-10-07T01:06:05+00:00</published><updated>2007-10-07T01:06:05+00:00</updated><id>https://simonwillison.net/2007/Oct/7/python/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://effbot.org/zone/wide-finder.htm"&gt;Some Notes on Tim Bray&amp;#x27;s Wide Finder Benchmark&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fredrik Lundh demonstrates some Python ninja techniques for parsing log files using multiple cores (and eventually memory mapping).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/benchmarks"&gt;benchmarks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/effbot"&gt;effbot&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fredrik-lundh"&gt;fredrik-lundh&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mmap"&gt;mmap&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/multicore"&gt;multicore&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tim-bray"&gt;tim-bray&lt;/a&gt;&lt;/p&gt;



</summary><category term="benchmarks"/><category term="effbot"/><category term="fredrik-lundh"/><category term="mmap"/><category term="multicore"/><category term="python"/><category term="tim-bray"/></entry><entry><title>Thread Synchronization Mechanisms in Python</title><link href="https://simonwillison.net/2007/Jul/29/thread/#atom-tag" rel="alternate"/><published>2007-07-29T21:32:01+00:00</published><updated>2007-07-29T21:32:01+00:00</updated><id>https://simonwillison.net/2007/Jul/29/thread/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://effbot.org/zone/thread-synchronization.htm"&gt;Thread Synchronization Mechanisms in Python&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Locks, RLocks, Semaphores, Events and Conditions as explained by Fredrik Lundh.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conditions"&gt;conditions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/effbot"&gt;effbot&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/events"&gt;events&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fredrik-lundh"&gt;fredrik-lundh&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/locks"&gt;locks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rlocks"&gt;rlocks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/semaphores"&gt;semaphores&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/threads"&gt;threads&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tutorial"&gt;tutorial&lt;/a&gt;&lt;/p&gt;



</summary><category term="conditions"/><category term="effbot"/><category term="events"/><category term="fredrik-lundh"/><category term="locks"/><category term="python"/><category term="rlocks"/><category term="semaphores"/><category term="threads"/><category term="tutorial"/></entry><entry><title>The Daily Python-URL</title><link href="https://simonwillison.net/2006/Dec/22/daily/#atom-tag" rel="alternate"/><published>2006-12-22T23:39:50+00:00</published><updated>2006-12-22T23:39:50+00:00</updated><id>https://simonwillison.net/2006/Dec/22/daily/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pythonware.com/daily/"&gt;The Daily Python-URL&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Python’s number one news source, now powered by Django.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/effbot"&gt;effbot&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="effbot"/><category term="python"/></entry></feed>