<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: monkeypatching</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/monkeypatching.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2010-04-11T22:03:39+00:00</updated><author><name>Simon Willison</name></author><entry><title>What's wrong with extending the DOM</title><link href="https://simonwillison.net/2010/Apr/11/extending/#atom-tag" rel="alternate"/><published>2010-04-11T22:03:39+00:00</published><updated>2010-04-11T22:03:39+00:00</updated><id>https://simonwillison.net/2010/Apr/11/extending/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://perfectionkills.com/whats-wrong-with-extending-the-dom/"&gt;What&amp;#x27;s wrong with extending the DOM&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Detailed explanation of the problems that crop up from extending built-in DOM objects using JavaScript, from Prototype developer kangax. Prototype 2.0 will be dropping this technique entirely—will MooTools follow suit?


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/kangax"&gt;kangax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkeypatching"&gt;monkeypatching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mootools"&gt;mootools&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototype-js"&gt;prototype-js&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="kangax"/><category term="monkeypatching"/><category term="mootools"/><category term="prototype-js"/></entry><entry><title>Quoting Adam Kennedy</title><link href="https://simonwillison.net/2008/Mar/22/octarine/#atom-tag" rel="alternate"/><published>2008-03-22T00:28:50+00:00</published><updated>2008-03-22T00:28:50+00:00</updated><id>https://simonwillison.net/2008/Mar/22/octarine/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/#comment-11"&gt;&lt;p&gt;The Perl community has a long-standing love/hate-affair with making changes that impose "spooky action at a distance". They call it "black magic" and it is generally considered it a last resort. Black Magic that makes GLOBAL changes to things like inheritance is often characterised as being "Octarine" (see disk world novels), because it tends to work ok when there's only one person doing it, but start to mix a few together and KABOOM!&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/#comment-11"&gt;Adam Kennedy&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/adam-kennedy"&gt;adam-kennedy&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/blackmagic"&gt;blackmagic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/magic"&gt;magic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkeypatching"&gt;monkeypatching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/perl"&gt;perl&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ruby"&gt;ruby&lt;/a&gt;&lt;/p&gt;



</summary><category term="adam-kennedy"/><category term="blackmagic"/><category term="magic"/><category term="monkeypatching"/><category term="perl"/><category term="ruby"/></entry><entry><title>Monkeypatching is Destroying Ruby</title><link href="https://simonwillison.net/2008/Mar/22/virtuous/#atom-tag" rel="alternate"/><published>2008-03-22T00:27:02+00:00</published><updated>2008-03-22T00:27:02+00:00</updated><id>https://simonwillison.net/2008/Mar/22/virtuous/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/"&gt;Monkeypatching is Destroying Ruby&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Deliberately provocative title, but makes a well considered case for restrained use of monkey patching in Ruby. Cultural norms around monkey patching seem to me to be one of the core differences between the Ruby and Python communities.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://blog.ianbicking.org/2008/03/21/monkeypatching-and-dead-ends/"&gt;Ian Bicking&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ian-bicking"&gt;ian-bicking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkeypatching"&gt;monkeypatching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ruby"&gt;ruby&lt;/a&gt;&lt;/p&gt;



</summary><category term="ian-bicking"/><category term="monkeypatching"/><category term="python"/><category term="ruby"/></entry><entry><title>Hacking Contributed Models</title><link href="https://simonwillison.net/2008/Mar/11/djangotricks/#atom-tag" rel="alternate"/><published>2008-03-11T05:51:00+00:00</published><updated>2008-03-11T05:51:00+00:00</updated><id>https://simonwillison.net/2008/Mar/11/djangotricks/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://djangotricks.blogspot.com/2008/03/hacking-contributed-models.html"&gt;Hacking Contributed Models&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neat Django trick using monkeypatching to make some minor tweaks to built-in contributed models such as auth or flatpages.


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



</summary><category term="contrib"/><category term="django"/><category term="monkeypatching"/><category term="python"/></entry><entry><title>Monkeypatching idioms - elegant or ugly?</title><link href="https://simonwillison.net/2008/Jan/30/monkeypatching/#atom-tag" rel="alternate"/><published>2008-01-30T00:39:36+00:00</published><updated>2008-01-30T00:39:36+00:00</updated><id>https://simonwillison.net/2008/Jan/30/monkeypatching/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://mail.python.org/pipermail/python-dev/2008-January/076194.html"&gt;Monkeypatching idioms - elegant or ugly?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Guido offers a decorator and a metaclass as syntactic sugar for monkeypatching existing Python classes.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/decorators"&gt;decorators&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/guido-van-rossum"&gt;guido-van-rossum&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/idioms"&gt;idioms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/metaclasses"&gt;metaclasses&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkeypatching"&gt;monkeypatching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="decorators"/><category term="guido-van-rossum"/><category term="idioms"/><category term="metaclasses"/><category term="monkeypatching"/><category term="python"/></entry><entry><title>Test stubbing httplib2</title><link href="https://simonwillison.net/2007/May/10/joe/#atom-tag" rel="alternate"/><published>2007-05-10T23:24:09+00:00</published><updated>2007-05-10T23:24:09+00:00</updated><id>https://simonwillison.net/2007/May/10/joe/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bitworking.org/news/172/Test-stubbing-httplib2"&gt;Test stubbing httplib2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Nice demonstration of monkey-patching as part of unit testing in Python.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/httplib2"&gt;httplib2&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/joe-gregorio"&gt;joe-gregorio&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkeypatching"&gt;monkeypatching&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;/p&gt;



</summary><category term="httplib2"/><category term="joe-gregorio"/><category term="monkeypatching"/><category term="python"/><category term="testing"/></entry></feed>