<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>JustCramer</title>
    <link href="http://justcramer.com/atom.xml" rel="self"/>
    <updated>2012-01-13T01:49:20-08:00</updated>
    <id>http://justcramer.com/</id>

    
        
            <entry>
                <title>Scaling Schema Changes</title>
                <link href="http://justcramer.com/2011/11/10/scaling-schema-changes"/>
                <updated>2011-11-10T16:06:00-08:00</updated>
                <id>http://justcramer.com/2011/11/10/scaling-schema-changes</id>
                <content type="html">I frequently get asked how Disqus deals with schema changes. It&amp;#8217;s a fair question, since we operate a fairly large amount of servers, but I also tend to think the answer is somewhat obvious. So let&amp;#8217;s start with the problem of schema changes at scale (in PostgreSQL).

Generally you have &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Integrating Django with Nose at DISQUS</title>
                <link href="http://justcramer.com/2011/08/05/extending-django-nose"/>
                <updated>2011-08-05T00:00:00-07:00</updated>
                <id>http://justcramer.com/2011/08/05/extending-django-nose</id>
                <content type="html">About a month ago we decided to make the transition off of Django&amp;#8217;s test suite over to the Nose runners. Our main selling point was the extensibility, and the existing ecosystem of plugins. Four weeks later I&amp;#8217;m happy to say we&amp;#8217;re running (basically) Nose with some minor extensions &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Python and OS X Lion</title>
                <link href="http://justcramer.com/2011/07/20/python-and-os-x-lion"/>
                <updated>2011-07-20T00:00:00-07:00</updated>
                <id>http://justcramer.com/2011/07/20/python-and-os-x-lion</id>
                <content type="html">Just a few quick tips that I&amp;#8217;ve had to run through and discover today while upgrading to Lion.

Start by installing Xcode 4, which is available via the App Store (for free now). This will fix your missing distutils package (which probably fixes a majority of your issues). You&amp;#8217;ll also &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>EuroPython</title>
                <link href="http://justcramer.com/2011/06/24/europython"/>
                <updated>2011-06-24T00:00:00-07:00</updated>
                <id>http://justcramer.com/2011/06/24/europython</id>
                <content type="html">This last week I&amp;#8217;ve been attending EuroPython over here in Firenze (or as we Americans know it, Florence), Italy. It&amp;#8217;s been a pretty amazing time, visiting the beautiful city, putting faces to names, and seeing some great presentations. More importantly, and the main reason for my trip &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Setting Up Your Own PyPi Server</title>
                <link href="http://justcramer.com/2011/04/04/setting-up-your-own-pypi-server"/>
                <updated>2011-04-04T00:00:00-07:00</updated>
                <id>http://justcramer.com/2011/04/04/setting-up-your-own-pypi-server</id>
                <content type="html">Ever had problems with PyPi being unreachable? Dislike dealing with requirement.txt files just to support a git repository? For a low low price of FREE, and an hour of labor, get your very own PyPi server and solve all of your worries!

Set up Chishop

We&amp;#8217;re going to jump right into this one &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Building Cursors for the Disqus API</title>
                <link href="http://justcramer.com/2011/03/08/building-cursors-for-the-disqus-api"/>
                <updated>2011-03-08T00:00:00-08:00</updated>
                <id>http://justcramer.com/2011/03/08/building-cursors-for-the-disqus-api</id>
                <content type="html">This last week we&amp;#8217;ve been implementing cursors for the Disqus API (3.0). If you&amp;#8217;re not familiar, the concept is like cursors in your database: create a marker for where you are with your result set so you can iterate through a large set of results efficiently. Think of it like a &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Error Tracing in Sentry</title>
                <link href="http://justcramer.com/2011/01/25/error-tracing-in-sentry"/>
                <updated>2011-01-25T00:00:00-08:00</updated>
                <id>http://justcramer.com/2011/01/25/error-tracing-in-sentry</id>
                <content type="html">A few weeks ago we pushed out an update to Sentry, bumping it&amp;#8217;s version to 1.6.0. Among the changes was a new &amp;#8220;Sentry ID&amp;#8221; value which is created by the client, rather than relying on the server. This seems like something insignificant, but it allows you to do something very &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Settings in Django</title>
                <link href="http://justcramer.com/2011/01/13/settings-in-django"/>
                <updated>2011-01-13T00:00:00-08:00</updated>
                <id>http://justcramer.com/2011/01/13/settings-in-django</id>
                <content type="html">I want to talk a bit about how we handle our large amounts of application configuration over at DISQUS. Every app has it, and it seems like theres a hundred different ways that you can manage it. While I&amp;#8217;m not going to say ours is the best way, it has allowed us a very flexible application &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>Database Routers in Django</title>
                <link href="http://justcramer.com/2010/12/30/database-routers-in-django"/>
                <updated>2010-12-30T00:00:00-08:00</updated>
                <id>http://justcramer.com/2010/12/30/database-routers-in-django</id>
                <content type="html">Whether you&amp;#8217;re doing master / slave, or partitioning data, when your product gets large enough you&amp;#8217;ll need the ability to route data to various nodes in your database. Django (as of 1.2) out of the box provides a pretty cool solution called a Database Router. Here at DISQUS we have a &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
        
            <entry>
                <title>BitField&#8217;s in Django</title>
                <link href="http://justcramer.com/2010/12/27/django-bitfield"/>
                <updated>2010-12-27T00:00:00-08:00</updated>
                <id>http://justcramer.com/2010/12/27/django-bitfield</id>
                <content type="html">Today we&amp;#8217;re releasing another heavily used component from the DISQUS code base, our BitField class. While not a true BIT field (it uses a BIGINT), it still allows you the convenience of accessing the values as if they were bit flags.

When I joined DISQUS about 7 months ago, we were using a Q &amp;hellip;</content>
                <author>
                    <name>David Cramer</name>
                    <url>http://justcramer.com/</url>
                </author>
            </entry>
        
    
</feed>
