<?xml version="1.0" encoding="utf-8"?><feed version="0.3" xmlns="http://purl.org/atom/ns#" xml:lang="en"><title>creosote: daily python links</title><tagline>it's wafer thin</tagline><link rel="alternate" type="text/html" href="http://philmccluskey.com/creosote/"/><modified>2005-11-11T02:32:06Z</modified><author>  <name>Phil McCluskey</name>  <url>http://philmccluskey.com</url></author><entry><title>Syntext Python Coding Conventions</title><link rel="alternate" type="text/html" href="http://www.syntext.com/books/syntext-py-conventions.htm"/><id>http://www.syntext.com/books/syntext-py-conventions.htm</id><issued>2005-11-11T01:53:11Z</issued><modified>2005-11-11T01:53:11Z</modified><summary>An example of a team&apos;s coding conventions document for Python</summary></entry><entry><title>Beautiful Soup: We called him Tortoise because he taught us.</title><link rel="alternate" type="text/html" href="http://www.crummy.com/software/BeautifulSoup/index.html#Download"/><id>http://www.crummy.com/software/BeautifulSoup/index.html#Download</id><issued>2005-11-11T01:12:22Z</issued><modified>2005-11-11T01:12:22Z</modified><summary>Python html parser</summary></entry><entry><title>Second p0st - Phillip Pearson: 11:11am 2005-11-11</title><link rel="alternate" type="text/html" href="http://www.myelin.co.nz/post/2005/11/11/#200511111"/><id>http://www.myelin.co.nz/post/2005/11/11/#200511111</id><issued>2005-11-10T22:11:11Z</issued><modified>2005-11-10T22:11:11Z</modified><summary>Lots o&apos; ones in that date.


Comment</summary></entry><entry><title>Max Khesin: del.icio.us popularity is mine!</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/PythonAndTheWeb?m=78"/><id>tag:blogger.com,1999:blog-11120941.post-113165402930603880</id><issued>2005-11-10T20:17:00Z</issued><modified>2005-11-10T20:17:00Z</modified><summary>Hey, my SICP podcast made it to the http://del.icio.us/popular/ipod/ page! Thank you, my tagging minions. More video goodness to come, I promise!&amp;#xD;
Next Goal:http://del.icio.us/popular/smart&amp;#xD;
;)</summary></entry><entry><title>Ned Batchelder: Finding Windows error messages</title><link rel="alternate" type="text/html" href="http://www.nedbatchelder.com/blog/200511.html#e20051110T155530"/><id>http://www.nedbatchelder.com/blog/200511.html#e20051110T155530</id><issued>2005-11-10T19:55:30Z</issued><modified>2005-11-10T19:55:30Z</modified><summary>One of the difficult things about programming in Windows, and especially with COM,
is that when you receive an error code, it can be difficult to find the message that
goes with it.
I was writing some new LDAP code today against Active Directory, and got this message:
 (more..)</summary></entry><entry><title>Alvaro Lopez Ortega: It grants you three wishes</title><link rel="alternate" type="text/html" href="http://www.alobbs.com/news/1048"/><id>http://www.alobbs.com/news/1048</id><issued>2005-11-10T19:02:21Z</issued><modified>2005-11-10T19:02:21Z</modified><summary>We have released Cherokee &quot;It grants you three wishes&quot; 0.4.29.  It includes some really interesting
changes over the previous versions. These are the most important:


It adds a new configuration entry called &quot;Request&quot;. </summary></entry><entry><title>Ian Bicking: Best of the web app test frameworks?</title><link rel="alternate" type="text/html" href="http://blog.ianbicking.org/best-of-the-web-app-test-frameworks.html"/><id>http://blog.ianbicking.org/best-of-the-web-app-test-frameworks.html</id><issued>2005-11-10T18:30:40Z</issued><modified>2005-11-10T18:30:40Z</modified><summary>
What are the best web application test frameworks people have seen?
Any language, though I&apos;m thinking more about unit tests, not as much
about through-HTTP acceptance testing.
I&apos;m curious mostly because I want to see other useful features for me
to borrow.  Right now the test framework in Paste is pretty simple,
but IMHO in a good way.
There&apos;s some other features I&apos;ve seen that I&apos;m unsure of.  For
instance, the ibofobi framework for Django uses
Beautiful Soup for
extracting response strings for testing. </summary></entry><entry><title>Efectos Especiales: Red paperclip</title><link rel="alternate" type="text/html" href="http://zephyrfalcon.org/weblog2/arch_e10_00840.html#e848"/><id>http://zephyrfalcon.org/weblog2/arch_e10_00840.html#e848</id><issued>2005-11-10T18:27:11Z</issued><modified>2005-11-10T18:27:11Z</modified><summary>This is a really great idea. But I&apos;ve seen it somewhere before. Look at this Donald Duck story from 1947: The boys pull of the same trick again later in the story, going from a piece of pencil to a medallion, to a minah bird, to binoculars, until they end up with a cart with 500 pounds of cat food. </summary></entry><entry><title>online.effbot.org - Fredrik Lundh: observationer</title><link rel="alternate" type="text/html" href="http://online.effbot.org#20051110"/><id>http://online.effbot.org/2005_11_01_archive.htm#20051110</id><issued>2005-11-10T15:00:00Z</issued><modified>2005-11-10T15:00:00Z</modified><summary>* Hurra! (Nä, vänta, jag bor väl inte i Saltsjöbaden. Och Sudoku är faktiskt skittråkigt...)</summary></entry><entry><title>Ned Batchelder: CSS Hacks table</title><link rel="alternate" type="text/html" href="http://www.nedbatchelder.com/blog/200511.html#e20051110T080602"/><id>http://www.nedbatchelder.com/blog/200511.html#e20051110T080602</id><issued>2005-11-10T12:06:02Z</issued><modified>2005-11-10T12:06:02Z</modified><summary>An awesome table of all of the known
CSS Hacks, and which browsers see which.
If you don&apos;t know what I&apos;m talking about: CSS Hacks are the dirty underbelly of Cascading Style Sheets,
where the differences in CSS implementation in the different browsers are worked around by exploiting
differences in the parsers to have certain rules exposed only to certain browsers.  Yuk!</summary></entry><entry><title>Ned Batchelder: Structured wikis</title><link rel="alternate" type="text/html" href="http://www.nedbatchelder.com/blog/200511.html#e20051110T073719"/><id>http://www.nedbatchelder.com/blog/200511.html#e20051110T073719</id><issued>2005-11-10T11:37:19Z</issued><modified>2005-11-10T11:37:19Z</modified><summary>Dan Bricklin has announced his next Software Garden product:
WikiCalc.
I haven&apos;t tried it, but it looks like a client-side wiki thing with embedded spreadsheet
behaviour.  I&apos;m fascinated by the addition of structured to wikis.
At work, I installed TWiki, which has a wide array of
features for dealing with wiki pages in organized ways. It reminded me a little bit of
Notes, the way documents carry structured information, and the system provides ways to add
little bits of &quot;code&quot; to pages to build applications. </summary></entry><entry><title>Peter Bengtsson: &quot;Clever&quot; date formatting accessibility</title><link rel="alternate" type="text/html" href="http://www.peterbe.com/plog/clever-date-formatting"/><id>http://www.peterbe.com/plog/clever-date-formatting</id><issued>2005-11-10T10:00:00Z</issued><modified>2005-11-10T10:00:00Z</modified><summary>Last night I wrote a little function that tries to show dates cleverly by comparing the date with todays date, it formats the date differently. 
If the date is today is just says &quot;Today 10:00&quot; and for yesterday it says &quot;Yesterday 10:00&quot;. If it&apos;s within a week it shows is like this &quot;Thursday 10:00&quot;. </summary></entry><entry><title>Ian Bicking: DRM Explained</title><link rel="alternate" type="text/html" href="http://blog.ianbicking.org/drm-explained.html"/><id>http://blog.ianbicking.org/drm-explained.html</id><issued>2005-11-10T08:28:40Z</issued><modified>2005-11-10T08:28:40Z</modified><summary>
It&apos;s useful for more technical people to consider how we can help
explain ideas to the general populous.  Often it&apos;s helpful to come up
with a metaphor that people will be familiar with.  With that in mind,
here&apos;s how I would explain DRM:
DRM (Digital Restrictions Management) is like the anti-shoplifting
scanners in stores (the ones that beep if you try to take something
out the door). </summary></entry><entry><title>Ted Leung on the Air: Early morning spider web</title><link rel="alternate" type="text/html" href="http://www.sauria.com/blog/2005/11/09#1425"/><id>http://www.sauria.com/blog/2005/11/09#1425</id><issued>2005-11-10T07:37:38Z</issued><modified>2005-11-10T07:37:38Z</modified><summary>

</summary></entry><entry><title>Andrew Channels Dexter Pinion - Andy Todd: String manipulation in PL/SQL</title><link rel="alternate" type="text/html" href="http://www.halfcooked.com/mt/archives/000991.html"/><id>http://www.planetpython.org/991@http://www.halfcooked.com/mt/</id><issued>2005-11-10T06:06:16Z</issued><modified>2005-11-10T06:06:16Z</modified><summary>I&apos;ve had to put my managerial hat to one side for a while. There&apos;s some very broken code in our system and I find myself the only person with the skills and time to fix it. It&apos;s the most serious PL/SQL programming I&apos;ve done in a while and I&apos;m beginning to remember why. </summary></entry><entry><title>Cheese Shop: funkload 1.3.1</title><link rel="alternate" type="text/html" href="http://cheeseshop.python.org/pypi/funkload/1.3.1"/><id>http://www.pythonware.com/daily/index.htm#113163413636511000</id><issued>2005-11-10T06:48:56Z</issued><modified>2005-11-10T06:48:56Z</modified><summary>&amp;laquo;Functional and load web tester.&amp;raquo;</summary></entry><entry><title>Cheese Shop: P(x) 0.2</title><link rel="alternate" type="text/html" href="http://cheeseshop.python.org/pypi/P%28x%29/0.2"/><id>http://www.pythonware.com/daily/index.htm#113163413164193713</id><issued>2005-11-10T06:48:51Z</issued><modified>2005-11-10T06:48:51Z</modified><summary>&amp;laquo;An applet programming language&amp;raquo;</summary></entry><entry><title>Cheese Shop: interval 1.0.0</title><link rel="alternate" type="text/html" href="http://cheeseshop.python.org/pypi/interval/1.0.0"/><id>http://www.pythonware.com/daily/index.htm#113163412602859446</id><issued>2005-11-10T06:48:46Z</issued><modified>2005-11-10T06:48:46Z</modified><summary>&amp;laquo;Python interval and interval set implementation&amp;raquo;</summary></entry><entry><title>Cheese Shop: PyZenity 0.1</title><link rel="alternate" type="text/html" href="http://cheeseshop.python.org/pypi/PyZenity/0.1"/><id>http://www.pythonware.com/daily/index.htm#113163412440849005</id><issued>2005-11-10T06:48:44Z</issued><modified>2005-11-10T06:48:44Z</modified><summary>&amp;laquo;An easy to use frontend to Zenity.&amp;raquo;</summary></entry><entry><title>Cheese Shop: pygraphviz 0.2</title><link rel="alternate" type="text/html" href="http://cheeseshop.python.org/pypi/pygraphviz/0.2"/><id>http://www.pythonware.com/daily/index.htm#113163412042245886</id><issued>2005-11-10T06:48:40Z</issued><modified>2005-11-10T06:48:40Z</modified><summary>&amp;laquo;A python interface to graphviz&amp;raquo;</summary></entry><entry><title>Jp Calderone: How To Create A Mantissa Server</title><link rel="alternate" type="text/html" href="http://www.livejournal.com/users/jcalderone/15217.html"/><id>http://www.pythonware.com/daily/index.htm#113163368953699863</id><issued>2005-11-10T06:41:29Z</issued><modified>2005-11-10T06:41:29Z</modified><summary>&amp;laquo;So a guy comes up to me and wants to know what the absolute minimum effort to get a Mantissa server running is.&amp;raquo;</summary></entry><entry><title>Carlos de la Guardia: Zope 3 Project Starter</title><link rel="alternate" type="text/html" href="http://cguardia.blogspot.com/2005/11/zope-3-project-starter.html"/><id>http://www.pythonware.com/daily/index.htm#113163362271289497</id><issued>2005-11-10T06:40:22Z</issued><modified>2005-11-10T06:40:22Z</modified><summary>&amp;laquo;I recently posted a comment about the need for a Zope 3 structure generator that allows new users to quickly set up a working project instead of having to create a number of files and directories by hand. Well, Duncan McGreggor has just announced z3 Project Starter , which is a Python script that automatically generates a Zope 3 project structure. Good work, Duncan! Now hoping for the other part of my wish: could something like this be part of the official Zope 3 distribution?&amp;raquo;</summary></entry><entry><title>James Tauber: Relational Python: Basic class for relations</title><link rel="alternate" type="text/html" href="http://jtauber.com/blog/2005/11/10/relational_python%3A_basic_class_for_relations"/><id>http://www.pythonware.com/daily/index.htm#113163359002479294</id><issued>2005-11-10T06:39:50Z</issued><modified>2005-11-10T06:39:50Z</modified><summary>&amp;laquo;A relation is basically a set of dictionaries (called tuples) where each dictionary has identical keys (called attributes). While, as you&apos;ll see in the next couple of posts in this series, my display routine and the initial relational operators work on iterations over plain Python dictionaries, I found it useful to implement a relation, at least in these preliminary stages, using a different internal structure (something Date is clear in his book he has no problem with).&amp;raquo;</summary></entry><entry><title>Max Khesin: SICP feed fixed</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/PythonAndTheWeb?m=76"/><id>tag:blogger.com,1999:blog-11120941.post-113159978186803775</id><issued>2005-11-10T05:05:00Z</issued><modified>2005-11-10T05:05:00Z</modified><summary>A few people noticed that I managed to mislabel the files in the recent posting of iPod-compatible version of Structure and Interpretation of Computer Programs. This reminds me of high school math: I was quite good at all the steps, but invariably managed to screw up a minus sign somewhere... Sigh.I took care of this last night. </summary></entry><entry><title>Max Khesin: Acronymizer in Python (and why does sort have to suck?)</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/PythonAndTheWeb?m=77"/><id>tag:blogger.com,1999:blog-11120941.post-113159913172403373</id><issued>2005-11-10T04:08:00Z</issued><modified>2005-11-10T04:08:00Z</modified><summary>When I am not wearing a cape and protecting the Universe from super-villans I mostly code a Windoze GUI for backoffice processing at a (albeit a very cool) financial company.A lot of our GUI is just a specific view of the database. We have some functionality where the user has to type in a column name. As DATABASE_COLUMN_NAMES_ARE_WAY_TOO_LONG_AND_UGLY I hardcoded 2-letter acronyms for some of them.Today the question came up whether this approach will scale to tables with a lot of columns.I immediately thought that 22^2 is quite enough possibilities, but then you have to take into account that acronyms have to actually sound a bit like the original, at the very least be composed of two letters of the original in ascending order.I figured that writing a script to do this would be faster than theorizing, so here is the result:http://fluidobjects.com/static/acronyms.py. </summary></entry><entry><title>Django Weblog: Authentication docs</title><link rel="alternate" type="text/html" href="http://www.djangoproject.com/weblog/2005/nov/09/authdocs/"/><id>http://www.djangoproject.com/weblog/2005/nov/09/authdocs/</id><issued>2005-11-10T02:48:01Z</issued><modified>2005-11-10T02:48:01Z</modified><summary>We&apos;ve added docs on Django&apos;s authentication system -- users, groups, permissions and messages.

It includes information on how to require user-login for a particular page, or pages, of your Django-powered site.

This has been a frequently requested piece of documentation, so we&apos;re happy to have made it available.

Of course, just like our code, we&apos;re always trying to make our documentation better. So, if you have questions, find errors or want to contribute tips/advice that you think were left out, just post a comment to the bottom of the document.</summary></entry><entry><title>Nuxeo: Object event dispatching in Zope</title><link rel="alternate" type="text/html" href="http://blogs.nuxeo.com/sections/blogs/florent_guillaume/2005_11_10_object-event-dispatching"/><id>http://blogs.nuxeo.com/sections/blogs/florent_guillaume/2005_11_10_object-event-dispatching</id><issued>2005-11-10T00:54:23Z</issued><modified>2005-11-10T00:54:23Z</modified><summary>Here are some explanations about what happens in Zope 3.2 (and Zope 2.9
when using Five) when an event notification is sent by some code, up to
a specific subscriber. It focuses more specifically on object events,
which go through some additional hoops. All this is complex because
there are many simple components that are linked together.
Let&apos;s start with some framework code that sends an event after an object
has been added (similar to what zope.app.container.contained
actually does):

event = ObjectAddedEvent(ob, container, name)
zope.event.notify(event)

In zope.event we have the definition for this function:

subscribers = [] # registered subscribers
def notify(event):
    for subscriber in subscribers:
        subscriber(event)

During initialization, zope.app.event.dispatching has registered a
subscriber:

def dispatch(*event):
    # Iterating over subscribers assures they get executed.
    for ignored in zope.component.subscribers(event, None):
        pass
zope.event.subscribers.append(dispatch)

The function zope.component.subscribers will then call all matching
subscribers.
During initialization, zope/app/event/configure.zcml has registered
a subscriber for zope.app.event.interfaces.IObjectEvent with the
handler zope.app.event.objectevent.objectEventNotify:

&lt;subscriber
    for=&quot;zope.app.event.interfaces.IObjectEvent&quot;
    handler=&quot;zope.app.event.objectevent.objectEventNotify&quot;
    /&gt;

This handler does:

def objectEventNotify(event):
    adapters = zope.component.subscribers((event.object, event), None)
    for adapter in adapters:
        pass # Getting them does the work.

This means that the event will be redispatched, but this time a
subscriber can match using multi-adaptation on both the object and the
event interfaces, which gives much more flexibility and filtering
possibilities.
During initialization, zope/app/container/configure.zcml has
registered a multi-subscriber:

&lt;subscriber
    for=&quot;zope.app.location.interfaces.ILocation
         zope.app.container.interfaces.IObjectMovedEvent&quot;
    handler=&quot;zope.app.container.contained.dispatchToSublocations&quot;
    /&gt;

Note that IContained, a base interface for most content objects,
derives from ILocation, so this subscriber will match most content
objects. </summary></entry></feed>
