May 6th, 2015
Optimizing for performance often comes with a bunch of headaches and hard problems, but it doesn’t always have to be that way.
Below are four simple things you can do to quickly and easily improve the performance of your sites. They’re so simple you should make them part of your standard setup.
Persistent database connections
New in Django 1.6 Django has built-in database connection persistence. Most everyone uses PostgreSQL for their production ...
May 1st, 2012
As I've said in a few talks, the best way to improve your systems is by first not doing "dumb things". I don't mean you or your development staff is "dumb", it's easy to overlook the implications of these types of decisions and not realize how bad they are for maintainability let alone scaling. As a consultant I see this stuff all of the time and I have yet to ever see ...
April 7th, 2011
UPDATE: I completely forgot to update this post until now, but we have filled this position.
We're looking for a full time developer. If you're reading this you probably know what we do, so you'll obviously need to know Django pretty well. Knowledge of PostgreSQL and devops skills are a big plus. We would prefer if you lived in Lawrence, Kansas, obviously, but a few visits here may be fine. Only because ...
February 7th, 2011
With the official press release out the door, I can finally start talking about the project that has been consuming most of my time for the last several months!
StoryMarket is an online system for making finding, buying, selling and sharing content a la carte easy. It's primarily focused towards journalists and the news industry, but we expect there to be a large contingent of bloggers and other new media content creators from all ...
November 2nd, 2010
We've been wanting to try this for awhile, but have been too busy to actually try it out until now. Jacob Kaplan-Moss and I will be holding open "office hours" this Friday November 5th between 1-3 PM CDT in IRC. Come join us in #revsys on freenode and pick our brains. Or just come to listen and learn.
The concept is pretty simple, Jacob and I (and likely many other knowledgeable Djangonauts) will be ...
March 30th, 2009
It's been a busy and exciting week for us. Jacob has been at PyCon in Chicago where he is participating in a number of panel discussions and giving quite a few talks as well. Right now I imagine he's neck deep in code in the Django sprint helping to finish up the upcoming 1.1 release. If you're running a production site built with Django you should absolutely check out ...
March 5th, 2009
I'm very pleased to announce that Jacob Kaplan-Moss has joined Revolution Systems to head up a new line of services around the ever growing Django web development framework. First up are commercial Django Support Plans, but look for more Django related offerings in the near future.
Jacob has been a good friend of mine since before Django was even released. It was a pleasure to work with him at our previous day jobs and ...
February 3rd, 2009
I was luck enough to be invited to attend ORD Camp this last weekend in blisteringly cold Chicago. ORD Camp is an invite only, FooCamp style unconference targeted at geeks living in the Midwest. Having never attended a FooCamp style event I wasn't sure what to expect. I can now say if you ever have the opportunity to attend an event like this it is well worth your time.
As you can see ...
December 29th, 2008
I hope everyone had a great holiday this year. For the past few months I've been working on an online resume site ResumeBucket.com and I need your help taking it for a test drive. Our goal with this site is to create a site where you can upload your current resume in Word form, build a new resume using our online resume creation tool, or even just type in what you ...
September 16th, 2008
This is a common question I see from PostgreSQL users. In fact, someone was just in IRC asking it and it prompted this post. The exchange usually goes:
Steve: I have this column foo and I have an index on it, but when I do SELECT * FROM table WHERE foo = X, EXPLAIN doesn't use the index. What am I doing wrong?
90% of the time the answer is unfortunately "Because the ...
August 20th, 2008
LinuxPro Magazine just released my latest article, an introduction to Django and some discussion about the newly created Django Software Foundation. Being a life long Perl user, I didn't think I would enjoy Django at all. I have to admit that it is a VERY polished system. It has great PostgreSQL support, in fact the core developers smartly prefer it over MySQL for their own systems.
You can download a PDF copy of ...
February 4th, 2008
I just got word that version 8.3 of PostgreSQL has been released. Along with the usual amount of improvements there are some new features in 8.3 that should be of interest to PostgreSQL admins and developers such as:
- Integrated TSearch
- ENUM and UUID data types
- Faster sorting technique used for LIMIT operations
- Faster LIKE and ILIKE operations
- Lazy XID assignment which will make many read only operations much faster
Check out the ...
January 24th, 2008
My friend and former co-worker Adrian Holovaty and his team just launched their new project EveryBlock.com. EveryBlock takes the term hyperlocal to a whole new level. They aggregate tons of public data sources by geo location so you can for example find all of the recent crime around a particular address, neighborhood, zip code, etc. Or maybe you might be interested in the building code violations of where you live or work ...
October 5th, 2007
Welcome to the 65th edition of Log Buffer, the weekly survey of database related blogs.
First let's start with some miscellaneous entries that could be of interest to any DBA. Crazy DBA has an interesting post about how attending conferences helped to grow his professional network, which in turn has made him a better DBA. And Thomas Kyte has a great post about why it's the data, not the application itself ...
July 30th, 2007
Someone asked me how to determine which PostgreSQL backend a particular client was connected to. Everyone's first thought is to do a ps aux | grep postgres which will show you the IP and user, but if you have different processes connecting from the same IP with the same usernames, how do you know which is which?
One way to tell would be to see which queries are being executed by which backend and ...
July 9th, 2007
Josh Berkus and Sun have put together the first real PostgreSQL performance benchmark. I run into people often who are still working under dubious performance comparisons done years ago against against competition like MySQL and Oracle. Hopefully this in depth comparison will put some of these arguments to rest.
If you're just interested in the conclusions, PostgreSQL is as fast or faster than MySQL and nearly as fast as Oracle. I know ...
May 23rd, 2007
In the spirit of my blog post last week, I've created a new page that shows a couple of the more common error messages that confuse newer PostgreSQL users. It is my intention to expand this over time as I see people having trouble.
If you have any error messages you feel should be included or you find any technical inaccuracies please post a comment and I'll include it on the page. ...
May 16th, 2007
I see this problem pop up in the #postgresql IRC channel so often I felt it was necessary to blog about it. This problem trips up so many new users it might even be worth changing the default error message to indicate what is going on. The error message happens when the user tries to run psql for the first time:
psql: FATAL: database "root" does not exist
Where "root" is the current Unix username ...
November 22nd, 2006
I think most geeks are already aware of this. What I found interesting is the quote:
"Eighty per cent of the applications typically use only 30 per cent of the features found in commercial databases," Yuhanna told vnunet.com. "The open source databases deliver those features today."
In my experience ...
August 4th, 2006
One of the great things about modern databases is you can let your database automate some of what used to only happen in application logic. The example I love to show people is automatically updating a "last modified time" timestamp column in a table.
This is easily accomplished if you always use the same name for those types of columns. I like to use 'created' for the creation timestamp and 'modified' for ...
March 9th, 2006
I've noticed a trend with software businesses that I think is wonderful. It may not be very new, but I sure haven't seen it before. The trend is to donate money to a charity or Open Source project for each product purchased.
For example, there is a company out there with a product that retails for around $500 for I believe a 25 user license. They setup a promotion only linked to ...
January 17th, 2006
I recently came across this article Materialized Views In PostgreSQL which shows different ways of using this technique.
For example it shows techniques much like the one I used in my previous blog entry on the subject along with going into depth on how techniques for tables whose data changes frequently.
January 6th, 2006
Several months ago I wrote an article on tuning your PostgreSQL database for performance that has gained a lot of attention. While I think the article covers most of the basic to intermediate level options you can use to better tune your database server, it is by no means all you're ever going to need to know. If you use PostgreSQL often I strongly suggest you at least scan the posts on the ...
January 3rd, 2006
A materialized view is defined as a table which is actually physically stored on disk, but is really just a view of other database tables. In PostgreSQL, like many database systems, when data is retrieved from a traditional view it is really executing the underlying query or queries that build that view. This is great for better representation of data for users, but does not do anything to help performance.
Materialized views are different in ...