<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: eric-holscher</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/eric-holscher.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-07-25T20:02:25+00:00</updated><author><name>Simon Willison</name></author><entry><title>AI crawlers need to be more respectful</title><link href="https://simonwillison.net/2024/Jul/25/ai-crawlers-need-to-be-more-respectful/#atom-tag" rel="alternate"/><published>2024-07-25T20:02:25+00:00</published><updated>2024-07-25T20:02:25+00:00</updated><id>https://simonwillison.net/2024/Jul/25/ai-crawlers-need-to-be-more-respectful/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://about.readthedocs.com/blog/2024/07/ai-crawlers-abuse/"&gt;AI crawlers need to be more respectful&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Eric Holscher:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;At Read the Docs, we host documentation for many projects and are generally bot friendly, but the behavior of AI crawlers is currently causing us problems. We have noticed AI crawlers aggressively pulling content, seemingly without basic checks against abuse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One crawler downloaded 73 TB of zipped HTML files just in Month, racking up $5,000 in bandwidth charges!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=41072549"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/crawling"&gt;crawling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ethics"&gt;ethics&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/read-the-docs"&gt;read-the-docs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-ethics"&gt;ai-ethics&lt;/a&gt;&lt;/p&gt;



</summary><category term="crawling"/><category term="eric-holscher"/><category term="ethics"/><category term="ai"/><category term="read-the-docs"/><category term="ai-ethics"/></entry><entry><title>Breaking Cliques at Events</title><link href="https://simonwillison.net/2017/Dec/3/breaking-cliques-at-events/#atom-tag" rel="alternate"/><published>2017-12-03T01:51:13+00:00</published><updated>2017-12-03T01:51:13+00:00</updated><id>https://simonwillison.net/2017/Dec/3/breaking-cliques-at-events/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2017/dec/2/breaking-cliques-at-events/"&gt;Breaking Cliques at Events&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Eric proposes a new guideline for long-running conferences, which have a tendency to form somewhat insular cliques of the attendees who have been going the longest: “For every year you have attended the event, you should try to meet that many new people each day.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;&lt;/p&gt;



</summary><category term="conferences"/><category term="eric-holscher"/></entry><entry><title>The Pac-Man Rule at Conferences</title><link href="https://simonwillison.net/2017/Nov/17/the-pac-man-rule-at-conferences/#atom-tag" rel="alternate"/><published>2017-11-17T02:34:34+00:00</published><updated>2017-11-17T02:34:34+00:00</updated><id>https://simonwillison.net/2017/Nov/17/the-pac-man-rule-at-conferences/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2017/aug/2/pacman-rule-conferences/"&gt;The Pac-Man Rule at Conferences&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This is such a good idea from Eric Holscher: at the conferences he organizes he tells his attendees “When standing as a group of people, always leave room for 1 person to join your group”—to encourage networking and inclusive converations.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;&lt;/p&gt;



</summary><category term="conferences"/><category term="eric-holscher"/></entry><entry><title>Announcing Kong: A server description and deployment testing tool</title><link href="https://simonwillison.net/2009/Nov/18/kong/#atom-tag" rel="alternate"/><published>2009-11-18T12:47:42+00:00</published><updated>2009-11-18T12:47:42+00:00</updated><id>https://simonwillison.net/2009/Nov/18/kong/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2009/nov/17/announcing-kong-server-description-and-deployment-/"&gt;Announcing Kong: A server description and deployment testing tool&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
An ultra simple website monitoring tool written in Django which makes it easy to manage a list of Twill scripts for testing different sites. It was developed at the Lawrence Journal-World—Eric showed me a demo if this a year or so ago and I’ve been hoping they would open source it.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/kong"&gt;kong&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monitoring"&gt;monitoring&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ops"&gt;ops&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="eric-holscher"/><category term="kong"/><category term="monitoring"/><category term="open-source"/><category term="ops"/></entry><entry><title>Correct way to handle mobile browsers</title><link href="https://simonwillison.net/2009/Nov/10/mobile/#atom-tag" rel="alternate"/><published>2009-11-10T08:57:10+00:00</published><updated>2009-11-10T08:57:10+00:00</updated><id>https://simonwillison.net/2009/Nov/10/mobile/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2009/nov/9/correct-way-handle-mobile-browsers/"&gt;Correct way to handle mobile browsers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
If your site has an equivalent “mobile” version running on a different subdomain, how and when should you redirect mobile users to it and how should you let them opt in or opt out?


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mobile"&gt;mobile&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/redirect"&gt;redirect&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/usability"&gt;usability&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="eric-holscher"/><category term="mobile"/><category term="redirect"/><category term="usability"/></entry><entry><title>Large Problems in Django, Mostly Solved: Search</title><link href="https://simonwillison.net/2009/Nov/3/search/#atom-tag" rel="alternate"/><published>2009-11-03T10:42:33+00:00</published><updated>2009-11-03T10:42:33+00:00</updated><id>https://simonwillison.net/2009/Nov/3/search/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2009/nov/2/large-problems-django-mostly-solved/"&gt;Large Problems in Django, Mostly Solved: Search&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Eric Holscher shows how Haystack uses a number of common Django patterns (object registration, pluggable backends, QuerySet-style chaining and class-based views) to great effect in creating a powerful search application for Django. Makes me wonder if more of those patterns should be promoted to first class concepts within Django.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/classbasedviews"&gt;classbasedviews&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/haystack"&gt;haystack&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/patterns"&gt;patterns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;&lt;/p&gt;



</summary><category term="classbasedviews"/><category term="django"/><category term="eric-holscher"/><category term="haystack"/><category term="patterns"/><category term="python"/><category term="search"/></entry><entry><title>Debugging Django in Production Revisited</title><link href="https://simonwillison.net/2009/Sep/7/debugging/#atom-tag" rel="alternate"/><published>2009-09-07T05:21:04+00:00</published><updated>2009-09-07T05:21:04+00:00</updated><id>https://simonwillison.net/2009/Sep/7/debugging/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2009/sep/5/debugging-django-production-revisited/"&gt;Debugging Django in Production Revisited&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Eric Holscher expands his show-technical-errors-to-superusers middleware to only show them to users in the group named “Technical Errors”.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/debugging"&gt;debugging&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/middleware"&gt;middleware&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="debugging"/><category term="django"/><category term="eric-holscher"/><category term="middleware"/><category term="python"/></entry><entry><title>Django now has fast tests</title><link href="https://simonwillison.net/2009/Jan/16/fast/#atom-tag" rel="alternate"/><published>2009-01-16T11:40:20+00:00</published><updated>2009-01-16T11:40:20+00:00</updated><id>https://simonwillison.net/2009/Jan/16/fast/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2009/jan/15/django-now-has-fast-tests/"&gt;Django now has fast tests&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Changeset 9756 switched Django’s TestCase class to running tests inside a transaction and rolling back at the end (instead of doing a full dump and reload). “Ellington’s test suite, which was taking around 1.5-2 hours to run on Postgres, has been reduced to 10 minutes.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ellington"&gt;ellington&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/testing"&gt;testing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/transactions"&gt;transactions&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="ellington"/><category term="eric-holscher"/><category term="python"/><category term="testing"/><category term="transactions"/></entry><entry><title>Python gems of my own</title><link href="https://simonwillison.net/2008/Nov/3/python/#atom-tag" rel="alternate"/><published>2008-11-03T11:59:48+00:00</published><updated>2008-11-03T11:59:48+00:00</updated><id>https://simonwillison.net/2008/Nov/3/python/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ericholscher.com/blog/2008/nov/3/python-gems-my-own/"&gt;Python gems of my own&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Did you know you can pass 128 as a flag to Python’s re.compile() function to spit out a parse tree? I didn’t. re.compile(“pattern”, 128)

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.eflorenzano.com/blog/post/gems-python/"&gt;Eric Florenzano&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/eric-holscher"&gt;eric-holscher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/regular-expressions"&gt;regular-expressions&lt;/a&gt;&lt;/p&gt;



</summary><category term="eric-holscher"/><category term="python"/><category term="regular-expressions"/></entry></feed>