December 29, 2007

Django Tree Traversal

Utilities for implementing Modified Preorder Tree Traversal (MPTT) with your Django Model classes and working with trees of Model instances.
Posted by Tim at 12:49 PM | TrackBack

December 28, 2007

ThruDB: faster and cheaper than SimpleDB

After some brainstorming, and a few late-night chats Jake created a Disk+S3 backend which gives us all the benefits of the Disk-only model, and the hassle free approach of the S3 engine. In this implementation, the data is persisted on local disk, which gives us an incredible throughput capacity, and a slave thread quietly replays all of the commands to the S3 backend as well, thus giving us a hassle free persistence and recovery model for virtual environments such as EC2! Let's take a look at the request cycles:
Posted by Tim at 09:14 PM | TrackBack

December 25, 2007

Web 2.0 caching

URL Templating enables you to dynamically rewrite URLs in your HTML content, using an easy-to-understand templating langauge.
Posted by Tim at 01:50 PM | TrackBack

CrossTab Queris in Postgresql using TableFunc Contrib

The generic way of doing cross tabs (sometimes called PIVOT queries) in an ANSI-SQL database such as PostgreSQL is to use CASE statements which we have documented in the article What is a crosstab query and how do you create one using a relational database?

In this particular issue, we will introduce creating crosstab queries using PostgreSQL tablefunc contrib.

Posted by Tim at 01:09 PM | TrackBack

December 23, 2007

Zipskinny: Demographic Data

Enter your zipcode to see demographic data
Posted by Tim at 09:17 PM | TrackBack

Fuel Economy Math: 15mpg -> 18mpg

You save more fuel switching from a 15 to 18 mpg car than switching from a 50 to 100 mpg car.
Posted by Tim at 09:07 PM | TrackBack

December 22, 2007

Python: Speeding up dateutil with heapq

This is an anecdote describing the process of creating a patch I came up with for the python-dateutil module which resulted in significant performance gains. It’s a good demonstration of the heapq module included with Python.
Posted by Tim at 09:04 AM | TrackBack

December 15, 2007

Google and the Wisdom of Clouds

One simple question. That's all it took for Christophe Bisciglia to bewilder confident job applicants at Google (GOOG). Bisciglia, an angular 27-year-old senior software engineer with long wavy hair, wanted to see if these undergrads were ready to think like Googlers. "Tell me," he'd say, "what would you do if you had 1,000 times more data?"

Bisciglia adores MapReduce, the software at the heart of Google computing. While the company's famous search algorithms provide the intelligence for each search, MapReduce delivers the speed and industrial heft. It divides each task into hundreds, or even thousands, of tasks, and distributes them to legions of computers. In a fraction of a second, as each one comes back with its nugget of information, MapReduce quickly assembles the responses into an answer. Other programs do the same job. But MapReduce is faster and appears able to handle near limitless work. When the subject comes up, Bisciglia rhapsodizes. "I remember graduating, coming to Google, learning about MapReduce, and really just changing the way I thought about computer science and everything," he says.

Posted by Tim at 07:45 PM | TrackBack

Python LDAP Applications

This article mini-series by Matt Butcher will look at the Python application programmers interface (API) for the LDAP libraries, and using this API, we will connect to our OpenLDAP server and manipulate the directory information tree.

Related

Posted by Tim at 10:34 AM | TrackBack

December 12, 2007

Python Google Chart

A complete Python wrapper for the Google Chart API.
Posted by Tim at 12:05 AM | TrackBack

Sort In AlphaNumeric Order

Look at most sorted list of filenames, product names, or any other text that contains alphanumeric characters - both letters and numbers. Traditional sorting algorithms use ASCII comparisons to sort these items, which means the end-user sees an unfortunately ordered list that does not consider the numeric values within the strings.

For example, in a sorted list of files, "z100.html" is sorted before "z2.html". But obviously, 2 comes before 100!

Python source code included

z1.doc
z10.doc
z100.doc
z101.doc
z102.doc
Posted by Tim at 12:03 AM | TrackBack

December 09, 2007

A quick stroll through DTrace

DTrace has been getting a lot more press recently, since Apple has ported it to Leopard, it’s also been getting a lot of mentions in the Ruby community since Apple has included the DTrace providers for it. Yet, surprisingly few seem to actually use DTrace much (yours truly included really). So here’s a short intro to DTrace and D..
Posted by Tim at 08:42 PM | TrackBack

CSS Text Wrap

The CSS Text Wrapper allows you to easily make HTML text wrap in shapes other than just a rectangle. You can make text wrap around curves, zig-zags, or whatever you want. All you have to do is draw the left and right edges below and then copy the generated code to your website. Get to it!
Posted by Tim at 08:34 PM | TrackBack

December 08, 2007

Facebook Apps Stats & Valuations

Adonomics is your source for Facebook analytics. By providing a stock-market-style analysis of the Facebook platform we enable developers and investors to track application growth, activity, and valuation.
Posted by Tim at 06:34 PM | TrackBack

December 06, 2007

Larry Wall: Postmodern Computer Languages

Perl is a postmodern language, and a lot of conservative folks feel like Postmodernism is a rather liberal notion. So it's rather ironic that my views on Postmodernism were primarily informed by studying linguistics and translation as taught by missionaries, specifically, the Wycliffe Bible Translators. One of the things they hammered home is that there's really no such thing as a primitive human language.
Posted by Tim at 07:24 PM | TrackBack

December 05, 2007

Dowd: President Bush and Psychology

At the White House news conference yesterday, The Chicago Tribune’s Mark Silva gingerly snuck up on a state-of-mind question.

“I can’t help but read your body language this morning, Mr. President,” he said. “You seem somehow dispirited, somewhat dispirited.”

W. did look like a kid who’d just had his toys taken away. But he acted humorously exasperated, as he always does when the talk turns introspective.

“This is like, all of a sudden, it’s like Psychology 101, you know?” he said, as reporters laughed.

.. W. loves to act as though psychology is voodoo even though his whole misbegotten foreign policy has been conducted from his gut, by checking the body language of his inner circle and looking into the hearts and souls of dictatorial leaders.

Posted by Tim at 06:24 PM | TrackBack

December 04, 2007

Ext 2.0 Javascript Framework Samples

Grids, Tabs, Dynamic Forms
Posted by Tim at 10:37 PM | TrackBack

December 01, 2007