<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: fredrik-lundh</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/fredrik-lundh.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-07-23T09:28:15+00:00</updated><author><name>Simon Willison</name></author><entry><title>Quoting Fredrik Lundh</title><link href="https://simonwillison.net/2008/Jul/23/springer/" rel="alternate"/><published>2008-07-23T09:28:15+00:00</published><updated>2008-07-23T09:28:15+00:00</updated><id>https://simonwillison.net/2008/Jul/23/springer/</id><summary type="html">
    &lt;blockquote cite="http://groups.google.com/group/django-developers/msg/7eb5cd51a9fa0ac4"&gt;&lt;p&gt;(It's probably just me, but every time I stumble upon some thread involving people from the so-called "security community", it's like watching a Jerry Springer episode.)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://groups.google.com/group/django-developers/msg/7eb5cd51a9fa0ac4"&gt;Fredrik Lundh&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/fredrik-lundh"&gt;fredrik-lundh&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jerryspringer"&gt;jerryspringer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="fredrik-lundh"/><category term="jerryspringer"/><category term="security"/></entry><entry><title>Simple Top-Down Parsing in Python</title><link href="https://simonwillison.net/2008/Jul/19/simple/" 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/</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/" 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/</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>A Django Cache Status</title><link href="https://simonwillison.net/2007/Aug/25/django/" rel="alternate"/><published>2007-08-25T14:08:56+00:00</published><updated>2007-08-25T14:08:56+00:00</updated><id>https://simonwillison.net/2007/Aug/25/django/</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://effbot.org/zone/django-memcached-view.htm"&gt;A Django Cache Status&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Django view to display stats pulled from your memcached server.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&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/memcached"&gt;memcached&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="fredrik-lundh"/><category term="memcached"/></entry><entry><title>Quoting Fredrik Lundh</title><link href="https://simonwillison.net/2007/Aug/7/data/" rel="alternate"/><published>2007-08-07T10:52:19+00:00</published><updated>2007-08-07T10:52:19+00:00</updated><id>https://simonwillison.net/2007/Aug/7/data/</id><summary type="html">
    &lt;blockquote cite="http://effbot.org/zone/zone-django-notes.htm"&gt;&lt;p&gt;Inline images are stored as data URI:s in the intermediate format (and usually also in the source documents), but since not all browsers support this format, the renderer replaces the data URI:s with HTTP pointers to an image cache directory.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://effbot.org/zone/zone-django-notes.htm"&gt;Fredrik Lundh&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/data-urls"&gt;data-urls&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&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/http"&gt;http&lt;/a&gt;&lt;/p&gt;



</summary><category term="data-urls"/><category term="django"/><category term="fredrik-lundh"/><category term="http"/></entry><entry><title>Thread Synchronization Mechanisms in Python</title><link href="https://simonwillison.net/2007/Jul/29/thread/" 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/</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>Python and micropayments</title><link href="https://simonwillison.net/2003/Mar/13/pythonAndMicropayments/" rel="alternate"/><published>2003-03-13T18:25:17+00:00</published><updated>2003-03-13T18:25:17+00:00</updated><id>https://simonwillison.net/2003/Mar/13/pythonAndMicropayments/</id><summary type="html">
    &lt;p&gt;Fredrik Lundh has &lt;a href="http://effbot.org/zone/librarybook-index.htm" title="(the eff-bot guide to) The Standard Python Library (Redux)"&gt;started posting&lt;/a&gt; his book &lt;cite&gt;The Standard Python Library&lt;/cite&gt; online, &lt;a href="http://online.effbot.org/2003_03_01_archive.htm#librarybook" title="python standard library, live from effbot.org"&gt;in response to&lt;/a&gt; O'Reilly's decision not to publish a second edition of the book. I'd never read it before, but having sampled the first two chapters I'm hooked. It works a bit like a "cookbook", with a plethora of code samples explained in detail accompanied by tips and tricks relating to the language. The Lazy Import class, which loads a module only when an attribute of the module is called for the first time, is a classic example:&lt;/p&gt;
&lt;blockquote cite="http://effbot.org/books/librarybook/core-modules.pdf"&gt;&lt;pre&gt;
class LazyImport:
    def __init__(self, module_name):
        self.module_name = module_name
        self.module = None
    def __getattr__(self, name):
        if self.module is None:
            self.module = __import__(self.module_name)
        return getattr(self.module, name)

string = LazyImport("string")
print string.lowercase
&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Frederick plans to release a chapter every Friday until the whole book has been posted. Alernatively, you can &lt;a href="http://effbot.org/zone/librarybook-order.htm" title="Buy (the eff-bot guide to) The Standard Python Library, First Edition"&gt;buy the whole 1999 edition&lt;/a&gt; from him as a &lt;acronym title="Portable Document Format"&gt;PDF&lt;/acronym&gt; file for the princely sum of $5.00, which works out at £3.18 in &lt;acronym title="Great British Pounds"&gt;GBP&lt;/acronym&gt; via PayPal.&lt;/p&gt;

&lt;p&gt;I think that was my first ever micropayment.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/fredrik-lundh"&gt;fredrik-lundh&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="fredrik-lundh"/><category term="python"/></entry></feed>