Viewed feeds of : Django Web Framework


      view feed content Django tip: Caching and two-phased template rendering (Adrian Holovaty's Blog - Creator of Django Web Framework)    [1 views, last view 16 d and 0 h ago]

We've launched user accounts at EveryBlock, and we faced the interesting problem of needing to cache entire pages except for the "You're logged in as [username]" bit at the top of the page. For example, the Chicago homepage takes a nontrivial amount of time to generate and doesn't change often -- which means we want to cache it -- but at the same time, we need to display the dynamic bit in the upper right:

One solution would be to pull in the username info dynamically via Ajax. This way, you could cache the entire page and rely on the client to pull in the username bits. The downsides are that it relies on JavaScript and it requires two hits to the application for each page view.

Another solution would be to use Django's low-level cache API to cache the results of the queries directly in our view function. The downsides are that it's kind of messy to manage all of that caching, plus each page view still incurs the overhead of template rendering (which isn't horrible, but it's unnecessary overhead).

The solution we ended up using is two-phased template rendering. Credit for this concept goes to my friend Honza Kral, who suggested the idea to me during PyCon earlier this year.

The way it works is to split the page rendering into two steps:

It's a clever solution because you end up defining what doesn't get cached instead of what does get cached. It's a sideways way of looking at the problem -- sort of like how Django's template inheritance system defines which parts of the page change instead of defining server-side includes of the common bits.

In order to make this work, we had to write two parts of infrastructure: a template tag and a middleware class that does the cache-checking and rendering. The template tag looks like this:

# Copyright 2009, EveryBlock # This code is released under the GPL. from django import template register = template.Library() def raw(parser, token): # Whatever is between {% raw %} and {% endraw %} will be preserved as # raw, unrendered template code. text = [] parse_until = 'endraw' tag_mapping = { template.TOKEN_TEXT: ('', ''), template.TOKEN_VAR: ('{{', '}}'), template.TOKEN_BLOCK: ('{%', '%}'), template.TOKEN_COMMENT: ('{#', '#}'), } # By the time this template tag is called, the template system has already # lexed the template into tokens. Here, we loop over the tokens until # {% endraw %} and parse them to TextNodes. We have to add the start and # end bits (e.g. "{{" for variables) because those have already been # stripped off in a previous part of the template-parsing process. while parser.tokens: token = parser.next_token() if token.token_type == template.TOKEN_BLOCK and token.contents == parse_until: return template.TextNode(u''.join(text)) start, end = tag_mapping[token.token_type] text.append(u'%s%s%s' % (start, token.contents, end)) parser.unclosed_block_tag(parse_until) raw = register.tag(raw)

This template tag merely treats everything between {% raw %} and {% endraw %} as unrendered template code.

Then, in our base EveryBlock template, we wrap the appropriate bit of code in the {% raw %} tag, like this:

{% raw %} {% if USER %} <p>Logged in as {{ USER.email }}</p> {% else %} <p>Sign in / register.</p> {% endif %} {% endraw %}

The final part is to write some middleware that renders every text/html response through the template system:

# Copyright 2009, EveryBlock # This code is released under the GPL. from django.core.cache import cache from django.template import Template from django.template.context import RequestContext import urllib class CachedTemplateMiddleware(object): def process_view(self, request, view_func, view_args, view_kwargs): response = None if request.method == 'GET' and 'magicflag' not in request.GET: cache_key = urllib.quote(request.path) response = cache.get(cache_key, None) if response is None: response = view_func(request, *view_args, **view_kwargs) if 'magicflag' not in request.GET and response['content-type'].startswith('text/html'): t = Template(response.content) response.content = t.render(RequestContext(request)) return response

One thing to note here is that there's a backdoor for an external process (say, our script that resets the cache) to retrieve the halfway-rendered template code for any page -- magicflag in the query string. (We actually use something different on EveryBlock; I've changed this example.) So that means the only thing the cache-resetting script has to do is make a request to the appropriate page, with that query string, and save the result in the cache. Pretty slick.

There's also a potential gotcha/limitation here: anything within {% raw %} and {% endraw %} will only have access to a template context with the default RequestContext stuff -- which, in our case, will be user-specific stuff.

Thanks again to Honza for telling me about this concept. It's a great idea, and it's serving us well.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Request: Headless HTML rendering engine? (Adrian Holovaty's Blog - Creator of Django Web Framework)    [35 views, last view 5 months ago]

Warning: Seriously geeky request ahead!

I'm looking for a way to render arbitrary Web pages -- including CSS and JavaScript -- and access the resulting DOM tree programatically, i.e., in an automated/headless fashion. I want to be able to ask the following questions of the resulting DOM tree:

The rendering must be state-of-the-art, handling advanced CSS that Firefox, Safari and IE handle. It should work on Linux. Bonus points if there's a Python API for this magical DOM tree.

This is all stuff that standard in-page JavaScript could accomplish, but the catch with me is that I need to be able to do it in a completely automated way, on arbitrary pages, on a headless server.

I know Gecko and Webkit provide this, but I'm not sure where to start with them. The docs and articles I've read seem to be focused more on embedding the full browser window in a GUI application than embedding the rendering engine itself and manipulating the resulting pages.

Help! If you have any clues, I'd be grateful if you left a comment or got in touch with me.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content A couple of EveryBlock interviews (Adrian Holovaty's Blog - Creator of Django Web Framework)    [8 views, last view 6 months ago]
<!--djangofeed--> <!--pythonfeed-->

Back in 2006, I had a very enjoyable interview with Robert Niles at Online Journalism Review. Now, Robert and I have gotten back together for another e-mail conversation about my latest project, EveryBlock: check it out.

And there's more! Earlier today, Rex Sorgatz published an interview with me about EveryBlock, with more of a technology focus.

Thanks to both Robert and Rex for the great questions.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Springtime for Django (Django)    [7 views, last view 7 months ago]

Spring has returned to the northern hemisphere, and everything's coming up Django. Here's a rundown of what's going on in the wide world of Django:

PyCon 2008 (March 14-16, with sprints the following week) in Chicago had a healthy Django contingent; the official "Birds of a Feather" session was packed, as were the two Django tutorials held the day before the conference and the four Django-related talks during the main conference session:

Slides from the two three-hour Django tutorial sessions are also available:

After the conference proper, the week-long sprint session yielded a lot of development activity; though there was plenty of code checked in during the sprint, the big win at a conference like PyCon is the ability to get developers together in a room to talk about features and hold design discussions that might otherwise involves weeks of back-and-forth posts on the developers' mailing list. Some highlights of the sprint were discussions for newforms-admin and for model-level validation to complement and improve the validation Django's form library offers for web-based input.

In addition to the fun of PyCon, there's been a flurry of interesting Django-related activity in the past few months:

And, of course, Google announced App Engine, a massively-scalable application hosting service which debuted with support for developing and hosting Python applications on Google's distributed infrastructure, taking advantage of the same BigTable database engine that powers Google's own web services. And Django is available right out of the box.

Meanwhile, Michael Trier has revived the tradition of weekly Django roundups, and launched This Week in Django, a podcast which has regular interviews with interesting folks from the community, useful tips for application developers and weekly summaries of Django development activity.

And if you prefer your Django in dead-tree format, there are two books already on the shelves:

And two more have been announced:

Both are scheduled to be published this summer.

Also this summer, O'Reilly will be holding OSCON 2008 in Portland, Oregon; as always, expect to see a contingent of Django developers and users hanging out, meeting up and talking Django.

In the meantime, Django development will keep on rolling; if you'd like to help out, check out the documentation on contributing, hop onto the django-developers mailing list or the development IRC channel, and join the fun.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content The definitive, two-part answer to "is data journalism?" (Adrian Holovaty's Blog - Creator of Django Web Framework)    [1 views, last view 8 months ago]

It's a hot topic among journalists right now: Is data journalism? Is it journalism to publish a raw database? Here, at last, is the definitive, two-part answer:

1. Who cares?

2. I hope my competitors waste their time arguing about this as long as possible.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.1 released (Django)    [1 views, last view 10 months ago]

After nearly a year of development, lots of new features and thousands of other improvements, Django 1.1 is here and ready for prime time!

For a full rundown of what's new and what's changed, consult the release notes; to grab a copy, swing by the Django download page. And for the security-conscious, signed checksums for the release tarball are available.

This release also contains the security update rolled out earlier tonight for older release series.

Django 1.1 is the result of hard work by hundreds of people who've contributed code to Django and many more who've donated their time to reporting, triaging, tracking down and helping to fix bugs and develop new features. Django literally would not be able to happen without all of you, so stop and give yourselves (and any other contributors you know) a pat on the back.

Thanks once again to everyone who's helped out, and we hope to see you all at DjangoCon 2009 in Portland, Oregon, and all along the path to Django 1.2.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content DjangoCon 2009 (Django)    [2 views, last view 10 months ago]

Has it really been a year since DjangoCon 2008? Apparently so: registration for DjangoCon 2009 is now open! I'll let the conference chair, Robert Lofthouse, take over from here:

DjangoCon '09 will be in Portland, Oregon at the DoubleTree Green Hotel between 8th and 12th September. The first 3 days are conference days and the last 2 days are sprint days.

The keynote speakers will be:

Registration is now open, and early bird rates are available through this Sunday, July 19th. The call for talk submissions is open through the 1st of August. You can keep up to date with the latest news at djangocon.org.

DjangoCon '08 was a success at Google HQ in Mountain View (see videos from DjangoCon '08) and I'm sure we're going to have a lot of fun this time around as well.

Hope to see you there!

— Robert Lofthouse, DjangoCon Chairman



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Looking toward EveryBlock’s future (Adrian Holovaty's Blog - Creator of Django Web Framework)    [1 views, last view more than one year ago]


View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django roundup: October 7 (Django)    [5 views, last view more than one year ago]

After a short hiatus, the Django Roundups are back! Lets not waste any time and dive in:

Django news: The Django Sprint that took place last month looks as if it went off without a hitch. Adrian Holovaty documented on the Google Code Blog the tremendous level of activity that took place over the course of a single weekend: “The sprint was intensely productive, with more than 400 tickets closed in the Django issue-tracking system, 300 new patches/ticket attachments and more than 200 commits to the Django code base. All told, there were more than 2,440 changes, including wiki changes, ticket changes, patch uploads and code check-ins.” Simon Willison has published another set of slides in his Advanced Django series. This version is nearly identical to the previous with a new section on newforms. Siddhi Govindaraj has created a second Django tutorial in screencast format. Siddhi’s second video expands on the wiki application from his first video by adding wikkiwords and search capabilities. Projects of note: Django Gigs has launched and serves as a single place to find work as a Django developer, and for employers to find highly-qualified programmers who are proficient with Django. James Bennett has updated his excellent django-registration application to version 0.3. This update adds a more customizable email subject line, configurable form classes, configurable templates, a maintenance script to clean out expired user accounts, expanded documentation, unicode updates, and locale support. Django on Jython work has continued over the past month or so with additional strides made toward total compatibility. Leonardo Soto Muñoz provides a roundup of advancements as of September 13, 2007. Frank Wierzbicki, lead developer of Jython, is also maintaining a document of the current gaps between Django and Jython. What The Form is an extension for Django’s newforms that allows a developer to design how the form will be displayed to the user. Meta attributes like fieldsets and columns can be defined by the developer within their models and can be nested as much as necessary. Björn Kempén has launched a Django-powered BitTorrent tracker he calls Geektorrent. Code snippets and tutorials: Ryan Kanno has produced a templatetag that formats decimal values of a certain range into image-based ” star-style ratings. Ryan’s tag deals with rounding, and can be configured to handle star values down to 0.25 of a star. James Bennett describes, in detail, several solid procedures for using your Django projects in standalone scripts and from the command line in general. Pedro Vale Lima shows how you can use your Django project’s MEDIA_URL value in your JavaScript files. James Bennett shows how you can set up Django to properly send email from your Joyent Connector. Peter Nixon shows how to authenticate Django against FreeRADIUS New user groups and other miscellaneous news: Several new non-English language Django user groups have sprung up over the past month: Django Catalan Django Russian Django Greece The team at Rails Envy produced an entertaining and good-natured video aimed at Django last month.

If you have any tips, project announcements, or generally interesting Django news, email me at clintecker+djangotips@gmail.com.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Join us for our second worldwide sprint (Django)    [3 views, last view more than one year ago]

We had such a great time doing that last sprint, so we're doing it again!

We'll hold the sprint Saturday, December 1st here in Lawrence, KS, and virtually around the world. We'll run things much the same as we did last time around.

We plan to devote at least 24 hours of focused work to get some of this done in an organized fashion, and also to encourage new people to contribute. If all goes well on Saturday, we'll probably continue to Sunday.

Anybody can participate and contribute, and there's no obligation or expectation. If you've never contributed to Django before, this is the perfect chance for you to chip in.

More information is available on the wiki.

Most participants will likely be working from their own homes/offices in their respective countries, but if you'd like to come hang out with us in Lawrence, email jacob -at- jacobian -dot- org. We can provide transportation to/from the Kansas City airport (MCI) and can recommend a good hotel in town. Also, a limited amount of free lodging (i.e. our couches) is available.

All participants -- not just those meeting in person -- should feel free to add their names to the wiki page.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0 alpha 2 released! (Django)    [3 views, last view more than one year ago]

In accordance with the Django 1.0 release roadmap, tonight we've released the second "alpha" testing version of Django 1.0.

To grab a copy of 1.0 alpha 2, head over to the Django downloads page, and be sure to read the release notes. Please keep in mind, though, that this release is not meant for production use, and is intended primarily for developers who are interested in checking out the new features in 1.0 and helping to identify and resolve bugs prior to the final release. The 1.0 alpha releases will not receive long-term support and will not be updated with security fixes, since their main purpose is to serve as a stepping-stone on the path to the final Django 1.0 release.

The next step on that path will be the Django 1.0 beta release, currently scheduled for August 14. If you'd like to help out, please review our documentation for contributors and feel free to join in one of the development sprints scheduled for the run up to 1.0; the full schedule is available in the Django 1.0 release roadmap.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0 beta 1 released! (Django)    [2 views, last view more than one year ago]

In accordance with the Django 1.0 release roadmap, tonight we've released the first "beta" testing version of Django 1.0.

To grab a copy of 1.0 beta 1, head over to the Django downloads page, and be sure to read the release notes. Please keep in mind, though, that this release is not meant for production use, and is intended primarily for developers who are interested in checking out the new features in 1.0 and helping to identify and resolve bugs prior to the final release. The 1.0 alpha and beta releases will not receive long-term support and will not be updated with security fixes, since their main purpose is to serve as a stepping-stone on the path to the final Django 1.0 release.

The next step on that path will be the first Django 1.0 release candidate, currently scheduled for August 21. If you'd like to help out, please review our documentation for contributors and feel free to join in one of the development sprints scheduled for the run up to 1.0; the full schedule is available in the Django 1.0 release roadmap.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0 released! (Django)    [2 views, last view more than one year ago]

No, you??re not hallucinating, it??s really here.

Around three years ago, Adrian, Simon, Wilson and I released some code to the world. Our plan was to hack quietly on it for a bit, release a solid 1.0 release, and then really get the ball rolling.

Well.

What happened, of course, was that an amazing community sprung up literally overnight ?? our IRC channel had over a hundred people in it the day after release, and it??s never been that ??empty? since.

I really can??t stress enough how amazing our community of users and developers are. About half of the code that??s gone into Django over the past three years has been contributed by someone other than a core committer. Since our last stable release, we??ve made over 4,000 code commits, fixed more than 2,000 bugs, and edited, added, or removed around 350,000 lines of code. We??ve also added 40,000 lines of new documentation, and greatly improved what was already there.

Django 1.0 represents a the largest milestone in Django??s development to date: a web framework that a group of perfectionists can truly be proud of. Without this amazing community, though, it would have never happened.

You can download Django 1.0 on the Django downloads page, and read the complete release notes.

For distributors and for verification purposes, a file containing the MD5 and SHA1 checksums of the 1.0 package has been placed on the djangoproject.com server. This file is PGP-signed with the Django release manager??s public key. This key has the ID 0x8C8B2AE1 and can be obtained from, e.g., the MIT PGP keyserver.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Upcoming Django releases (Django)    [2 views, last view more than one year ago]

With Django 1.0 out the door and a successful inaugural DjangoCon behind us, it's time to look ahead to the future, which includes two releases:

Both of these releases, of course, will follow our policy of maintaining compatibility in the 1.0 release series.

Django 1.1 timeline

At the moment, we're aiming to release Django 1.1 on or around March 16, 2009, or roughly six months following the release of Django 1.0. As covered in our release process documentation, the 1.1 release cycle will consist of three phases: feature proposal, feature work and bugfixing/polishing. Since Django 1.1 is happening on a six-month schedule, that means two months for each phase of development; the relevant dates for 1.1 have already been discussed on the django-developers mailing list, but here's the quick breakdown (these dates are still rough estimates, and may change as needed):

March is still quite a ways off, of course, but keep in mind that the feature-proposal window will be closing in a couple of weeks; if there's something you'd really like to see in Django 1.1 and you haven't already started a discussion of it on the django-developers list, you'll want to do so quickly.

Django 1.0.1 timeline

In the much more immediate future, we're preparing to release Django 1.0.1, which will consist solely of bugfixes and similar improvements to the Django 1.0 codebase. Django 1.0.1 will be a recommended upgrade for anyone who's currently using or migrating to Django 1.0.

Because 1.0.1 will only involve bugfixes, with no feature additions to propose or test, the release process for it will be somewhat abbreviated. Here are the key dates:

From an administrative perspective, the 1.0.1 release will not involve any special categorization or milestones in the ticket tracker; with a release of this type, administrivia in Trac is far less important than simple working code, and any bug is a candidate for fixing up until the day of the release. So if there's a particular issue you'd like to see solved for 1.0.1, the best way to ensure the fix makes it into the release is to provide a working patch. As always, preferential treatment will be given to patches which match our contribution guidelines, especially to patches which include unit tests that both demonstrate the bug and demonstrate the success of the solution. Also, remember that patches for 1.0.1 should be created against the 1.0.X release branch, rather than against trunk.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content In memory of chicagocrime.org (Adrian Holovaty's Blog - Creator of Django Web Framework)    [7 views, last view more than one year ago]
<!--pythonfeed--><!--djangofeed-->

It's with mixed feelings that I announce the end of one of my projects, chicagocrime.org. This site has been serving Chicago residents since May 2005. I hope you'll indulge me in a brief retrospective.

Chicagocrime.org was one of the original map mashups, combining crime data from the Chicago Police Department with Google Maps. It offered a page and RSS feed for every city block in Chicago and a multitude of ways to browse crime data — by type, by location type (e.g., sidewalk or apartment), by ZIP code, by street/address, by date, and even by an arbitrary route. The New York Times Magazine featured it in its 2005 "Year in Ideas" issue, and it won the 2005 Batten Award for Innovations in Journalism.

It's been a fun ride. When I launched the site, Google Maps hadn't yet released the mapping API that's so common — even passé? — today. I can't help but feel like an old-timer: "Back in my day, we had to reverse-engineer Google's obfuscated JavaScript just to get maps embedded on our own sites!" Now it seems like every other Web site finds an excuse to use those familiar, bubbly, yellow-white-blue-pastel map tiles.

Chicagocrime.org wasn't the first Google Maps mashup. That honor belongs to Paul Rademacher's HousingMaps, which, at that time, was modestly titled "Craigslist + Google Maps." The straightforwardness of that original title illustrates the excitement of it all: just the mere fact that somebody had mixed Craigslist data with Google's maps was new and remarkable. Kudos to Paul for keeping the site up and running for all these years. Not only was it a groundbreaking technical achievement; it remains genuinely useful.

A lot of good has come out of chicagocrime.org. At the local level, countless Chicago residents have contacted me to express their thanks for the public service. Community groups have brought print-outs of the site to their police-beat meetings, and passionate citizens have taken the site's reports to their aldermen to point out troublesome intersections where the city might consider installing brighter street lights.

It's done some good on a larger scale, too. The site helped influence Google to open up its mapping API for all to use. It inspired at least a dozen "spin-off" sites in other cities, from Berkeley to New Haven to Houston — most of whose designs were very similar to Wilson's beautiful chicagocrime.org design. And the site's slashdotting forced me to write parts of Django's cache system. (Django itself was released open-source two months later; chicagocrime.org was the first public Django-powered site not run by the Lawrence Journal-World.)

A few weeks ago, I received an e-mail from the folks at Amazon EC2, where the crime site is hosted, saying the server instance that houses the site will be terminated on February 15 — and that it will no longer be accessible after January 31. This is happening because I was an early user of EC2 and their network has gone through some changes that require all customers of a certain tenure to rebuild their servers. Instead of going through the hassle of upgrading my server instance, I'll let the Amazon staff shut it down on Thursday. All pages will redirect to the appropriate pages on my newest project, EveryBlock.

In many ways, EveryBlock is the next generation of chicagocrime.org. I've often described it to people as "chicagocrime.org on steroids — more than just crime, and more than just Chicago." It's brought to you by the same people (Wilson and me from chicagocrime.org, plus Paul and Dan, who've worked on similar projects), and it has the same philosophies. As we developed EveryBlock, we kept chicagocrime.org firmly in our minds — this new thing we were making had to be a superset, an expansion, a significant step forward. So there's almost nothing you could do on the old chicagocrime.org that you can't do on EveryBlock. And, unlike chicagocrime.org, which was always a side project, EveryBlock has a team of four people improving it full-time, meaning we have the resources to add features, such as e-mail alerts (just added yesterday), that chicagocrime.org never had. We hope EveryBlock is a worthy successor.

This story has a fitting epilogue. In just a few weeks after chicagocrime.org goes offline, the site will be featured in an exhibition at New York's Museum of Modern Art, called Design and the Elastic Mind. Chicagocrime.org will have ended its life and become a museum piece.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0 release party (Django)    [7 views, last view more than one year ago]

Come help us celebrate the release of Django 1.0!

Next week is going to be huge. We??ll be releasing Django 1.0 early in the week, and then the first DjangoCon kicks next Friday.

To celebrate the release of Django 1.0, we??ll be holding a dinner party at the Tied House in Mountain View on Saturday, September 6th at 7pm. The date and time are designed to tie in with DjangoCon, but anyone is invited ?? especially those who can??t attend DjangoCon.

We??ve reserved the whole restaurant for Django friends and fans. Dinner starts at 7pm, and the festivities should continue until about 10:30 or so. The party??s free, though the dinner and drinks aren??t. Tied House has good food and great beer; come hungry!

To make the night extra fun, we??ll be holding ??lightning talks? at the party ?? five minute presentations on various Django-related topics. We??ll be asking speakers at the conference to present vastly twimmed-down versions of their conference talks, and we??ll be opening the floor up to anyone to present their own cool shit.

Tied House is located in downtown Mountain View (map). For DjangoCon attendees, that??s about 15 minutes away from the conference venue; we??ll caravan over (and provide transportation for folks without cars) right after the day??s talks end.

If you??ll be coming, please RSVP so that we can get an accurate headcount.

We??re also looking for sponsors for the party, so if you??re interested please contact us.

We hope to see you all there!



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0 beta 2 released! (Django)    [3 views, last view more than one year ago]

In accordance with the (updated) Django 1.0 release roadmap, tonight we've released the second "beta" testing version of Django 1.0.

To grab a copy of 1.0 beta 2, head over to the Django downloads page, and be sure to read the release notes. Please keep in mind, though, that this release is not meant for production use, and is intended primarily for developers who are interested in checking out the new features in 1.0 and helping to identify and resolve bugs prior to the final release. The 1.0 alpha and beta releases will not receive long-term support and will not be updated with security fixes, since their main purpose is to serve as a stepping-stone on the path to the final Django 1.0, due to be released on September 2, 2008.

As of this release, Django is officially in a feature freeze for 1.0; from here on out, we'll only be working on bugs and stability before the final 1.0 release. If you'd like to help out, please review our documentation for contributors and feel free to join in one of the development sprints scheduled for the run up to 1.0.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0.1 released! (Django)    [2 views, last view more than one year ago]

Following the previously-announced schedule, today the Django team has released Django 1.0.1. This is a bugfix-only release containing fixes and improvements to the Django 1.0 codebase, and is a recommended upgrade for anyone using or targeting Django 1.0.

For full details, check out the 1.0.1 release notes, and to grab a copy of Django 1.0.1, visit the downloads page. For the security-conscious, a file containing checksums of the 1.0.1 package, signed with the release manager's key, is available.

And with Thanksgiving coming up in the US, your friendly local release manager would like to pause for a moment and express thanks, on behalf of myself and the Django development team, for all the work put in by all the members of our community to help keep the releases coming, the tickets triaged and the bugs fixed. We wouldn't be able to do it without all of you, so give yourselves a big pat on the back and see if you can't sneak an extra slice of pie come Thanksgiving dinner.

We'll see you again in a few months, for either Django 1.0.2 or Django 1.1. Happy holidays!



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0.2 released (Django)    [4 views, last view more than one year ago]

Shortly after last week's Django 1.0.1 release, several people noted that the packaging script used to produce the release omitted several directories from the Django source tree; mostly this affected some unit tests, but at least one of the omitted directories affected the use of Django itself (specifically, of django.contrib.gis). So tonight we're issuing Django 1.0.2, which is built around an updated packaging script and should resolve these problems.

This is a recommended upgrade for anyone using or targeting Django 1.0 or Django 1.0.1; to obtain a copy, swing by the downloads page, and don't forget to read the release notes. For the security conscious, a signed file containing the package's checksums is, as always, available.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content EveryBlock launched (Adrian Holovaty's Blog - Creator of Django Web Framework)    [5 views, last view more than one year ago]

It's here: EveryBlock. Check out our launch announcement for the details.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django at PyCon (Django)    [6 views, last view more than one year ago]

Ah, Spring... that wonderful time of year when flowers bloom, birds and bees provide useful euphemisms for tongue-tied parents, and Python hackers everywhere converge for the annual Python Conference

That's right: PyCon 2008 is only two short months away! This year's conference will be held in Chicago, and features a fantastic line-up of talks about everything Python. PyCon really is a wonderful conference, and early-bird registration is only $225 ($125 for students). I can't recommend the conference highly enough.

Of course, Django will be very well represented at PyCon, with activities for Djangonauts of all skill levels:

I'll be teaching a Beginning Django tutorial aimed at folks just getting started with Django. In past years this tutorial has filled up rapidly, so if you'd like to attend I recommend signing up soon.

Also on the tutorial day will be a Django "Code Lab" designed for people with some Django projects already under their belts. We've got a great panel of experts lined up to critique and improve your code: Adrian Holovaty, James Bennett, and yours truly.

[I should point out by way of disclaimer that I get a bit of money for teaching the tutorials. I'd promote them here anyway, of course, but I mention the compensation by way of full disclosure.]

The conference proper will feature a number of Django sessions:

Adrian will also deliver a "State of the Django" talk to discuss where the project is, and where it's going.

Finally, after all the talks end, we'll hold a four-day development sprint. Anyone interested in working on Django is encouraged to attend, and note that the sprints at PyCon are open to anyone, not just PyCon attendees. So, if you're in Chicago feel free to stop on by!

I hope to see a bunch of Djangonauts at the conference. I've been to PyCon for the last few years, and it's always been fantastic. I can see from the line-up of talks that this year will be no exception.

Remember to register before Feb. 20th to take advantage of the early-bird rates!



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Me at the Green Mill (Adrian Holovaty's Blog - Creator of Django Web Framework)    [3 views, last view more than one year ago]

My life is complete. I have performed jazz on the stage of the Green Mill.

And here's the photo to prove it!

Thanks to Alfonso Ponticelli and Swing Gitan for allowing me to sit in for two songs ("Out of Nowhere" and a gypsy-jazz version of the Beatles' "When I'm 64"). If you're in Chicago, you really should see these guys live. Often.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django 1.0 release candidate now available (Django)    [4 views, last view more than one year ago]

In accordance with the (updated) Django 1.0 release roadmap, today we've released the first release candidate for Django 1.0.

To grab a copy of the release candidate, head over to the Django downloads page, and be sure to read the release notes. Please keep in mind, though, that this release is not meant for production use, and is intended primarily for developers who are interested in checking out the new features in 1.0 and helping to identify and resolve bugs prior to the final release. The 1.0 alpha and beta releases and release candidates will not receive long-term support and will not be updated with security fixes, since their main purpose is to serve as a stepping-stone on the path to the final Django 1.0, due to be released as soon as possible..

For distributors and for verification purposes, a file containing the MD5 and SHA1 checksums of the release candidate package has been placed on the djangoproject.com server. This file is PGP-signed with the Django release manager's public key. This key has the ID 0x8C8B2AE1 and can be obtained from, e.g., the MIT PGP keyserver.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content Django, still amazing me after all these years (Adrian Holovaty's Blog - Creator of Django Web Framework)    [2 views, last view more than one year ago]

Django, a project I have helped nurture for more than four years (including some time as a proprietary project when I worked at the Lawrence Journal-World) has today reached a milestone: we've given it a "1.0" status. In the world of open-source programming, this means it's stable, well-tested and generally a strong piece of software that its developers are proud of.

Given the milestone, I was reminded of an early Django memory that has stayed with me for years. Soon after we casually open-sourced the framework in July 2005, a Web developer, somewhere many time zones away from Chicago, posted a screenshot of his Django-powered Web site. It was the Django admin login page, and I remember feeling a strong sense of astonishment.

What? Some random guy halfway across the planet, whom I'll most likely never meet, actually took the time to learn and use this software that we'd built? And, what's more, he actually found it useful?

I was quite struck by that. Obviously, we'd intended this to happen -- the whole point of releasing code under an open-source license is to make it available to as many people as possible -- but it was an amazing feeling, nonetheless.

Over time, I've grown accustomed to the fact that, yes, people use Django -- so seeing a screenshot of the Django admin doesn't faze me much anymore. But the cool thing is: Bigger and bigger things are happening, and I still get amazed, time and time again.

A print version of a Django book that I cowrote is actually sitting on the shelf in the bookstore down the street from my house? And, what's more, readers actually pay money for it, given that we released a free version online? People take the time to record a weekly podcast devoted to our community? We formed a non-profit foundation? Google supports Django in its App Engine product? And there's a Django conference this weekend?

It all continues to amaze me, and it all continues to inspire me. Here's to a fantastic community and a great piece of software. Thanks for the experience so far.



View original post | Add to del.icio.us| Updated more than one year ago | Share

      view feed content The Django Book is done. (Django)    [7 views, last view more than one year ago]

The Django Book started shipping last week, and we've put the full text online for free.

We put a draft of the book up about a year ago for comments, and were amazed by the quality (and quantity!) of responses. We read each of the comments (around 2500) as we revised the book towards a final print release. That print release has been available in stores for about a week, and we've put the text up for you to read for free.

As with the draft, we're soliciting comments which we'll use as we continue to revise the online text. We're also collecting errata from the print edition if you notice mistakes there.

We're immensely grateful to everyone who helped make this book happen.

Thanks also to Media Temple: we're now hosting the book site on machine they donated to the project a few months ago. Thanks, guys -- you rock!

PS: If you're not seeing the new book, it's probably because the DNS change hasn't propagated yet. Try new.djangobook.com in the meantime.



View original post | Add to del.icio.us| Updated more than one year ago | Share