Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
PyCon 2007 pictures
I published first day pictures from PyCon 2007. They are raw, unedited, I didn’t put descriptions yet. You can recognize Django guys, people from multiple Python web frameworks, and, of course, the BDFL with OLPC. But why wait for pictures to be prepped? Dig in while they are raw and fresh: Yes, this is Steve Holden sporting a Django t-shirt. Update: I added pictures from the 2nd day. Update #2: I added pictures from the 3rd day. Now I can go and put some names and descriptions like I did last year. -
Overheard at PyCon
Overheard at PyCon: James Tauber: “Reinventing the wheel is great if you’re trying to learn more about wheels.” Adrian Holovaty: “Having Python produce JavaScript is like using a motorized wheelchair because you’re too lazy to walk.” Titus Brown: “I don’t do test driven development. I do stupidity driven testing… I wait until I do something stupid, and then write tests to avoid doing it again.” Simon Burton (introducing RPython): “Who here would like your Python code to run thirty to forty times faster? -
Building a manageable jumpstart infrastructure using the Solaris Security Toolkit
Luke Kanies has been stirring the hornet's nest lately about why system administration isn't evolving despite the huge growth in the development communities around the applications we manage and use every day. The tools system administrators use get nowhere near the attention, if any, that the applications do. Nor do system administrators often publish the tools they use because they feel they -
I don't care whose is bigger
Lately there’s been a big flare-up of web geek dick waving. This happens from time to time, and every time it just pisses me off to no end. All this arguing over “glue” versus “decoupled”, “full-stack” versus “NIH”… it reminds me of the ridiculous “surge”/“escalation” frenzy flaring up over in D.C. And like politics, these dick waving contents only really succeed because the sane people get too disgusted to participate. All that’s left are the people who are pedantic or insane enough to keep shouting back and forth. -
Quick Django Benching
Today I did an unscientific benchmark to see which was quickest between Apache's mod_python, Lighttpd's FastCGI and Nginx's FastCGI. The ... -
Implementing Tagging in a Django Application
Although I've used many Web based applications that employ tagging, I've yet to create an application of my own with this feature. But now, I have two potential projects on the horizon that could benefit from tagging, and I'm thinking about how to best implement this, both in the database and user interface layers. So, I thought I would explore how to implement tagging in my own applications, from scratch, and write about them on this blog. Therefore, I won't pretend I have all the answers--or even necessarily any good answers--but I will simply be trying to think through how to approach implementing tagging, and I will welcome any constructive feedback on those thoughts. -
The power of Zero
So I've been on this minimalism kick for a couple weeks. Basically applying a "less is more" philospophy to software. This time I'm building a site that has no content of its own, no network configuration of its own, no database, etc. I'm trying to build it completely out of reusable components that themselves use sensible defaults allowing for zero-configuration deployments with the flexibility to allow them to be controlled in cases requiring advanced control. You can see it at homes.knoxzilla.com. In fact you can see it at anything.knoxzilla.com,too. You can use any word you like and add .knoxzilla.com to the end and get the site. Behind the scenes it will use your word to fetch headlines from knoxnews.com. Business listings and photos come from within a 15 mile radius of the 37922 zipcode. I built it all using django and yahoo APIs. The latin text is random and supplied via a nice library I'm building called mockup and loremipsum. The components I'm building allow me do things as simple as {% loremipsum %} and poof -- you get one to six random passages from Cicero's De finibus bonorum et malorum, "On the ends of the good and the evil." … -
Benching Lighttpd vs Nginx (static files)
As it stands, the Django development team recommends mod_python to deploy your Django applications. With that in mind, they recommend ... -
LDAP: a Gentle Introduction
The perception of LDAP (Lightweight Directory Access Protocol) is pretty ambivalent. On the one hand, most software supports it and many people talk about it. On the other hand, there is only one serious open source LDAP server (OpenLDAP), whose qualities are openly discussed. There’s also very little and poor documentation that is mostly targeted towards a special case (e.g. replacing NIS by LDAP). Although being mainly a developer, I’ve been lately heavily exposed to LDAP and would like to give a very gentle introduction into this field, to make the first step easier to others who have to grok this technology. Introduction So what is LDAP? I’m going to spare you the details of its history, which is a fundamental part of each LDAP-covering text I’ve been criticizing. So right ahead: An LDAP server is a database. A database with some special attributes which make it a directory. One of the most fundamental is: It is (or should be) highly optimized for reading. Writing is also needed, but essentially it’s about reading. Therefore it’s perfect for any kind of “white pages” or configurations. Accordingly, it’s mostly known for the usage as a centralized address book or for authenticating. So … -
LDAP – A Gentle Introduction
The perception of LDAP (Lightweight Directory Access Protocol) is pretty ambivalent. On the one hand, most software supports it and many people talk about it. On the other hand, there is only one serious open source LDAP server (OpenLDAP), whose qualities are openly discussed. There’s also very few and poor documentation, which is mostly targeted towards a special case (e.g. replacing NIS by LDAP). Although being mainly a developer, I’ve been lately heavily exposed to LDAP and would like to give a very gentle introduction into this field, to make the first step easier to others who have to grok this technology. Introduction So what is LDAP? I’m going to spare you the details of its history, which is a fundamental part of each LDAP-covering text I’ve been criticizing. So right ahead: A LDAP server is a database. A database with some special attributes which make it a directory. One of the most fundamental is: It is (or should be) highly optimized for reading. Writing is also needed, but essentially it’s about reading. Therefore it’s perfect for any kind of “white pages” or configurations. Accordingly, it’s mostly known for the usage as a centralized address book or for authenticating. So … -
Django Quick Tips #1: Managers
This post is the first in a series of "Quick Tips" for Django, short bits of information not meant to ... -
Manipulating IPv4 and IPv6 addresses in python
Eighteen months ago, after many years of programming in perl for most of my systems programming needs, I decided to give python a go after much coaxing by a colleague, Alec Thomas. At the time I had started developing an IP address management system, designed for ISPs/Telcos who need to manage hundreds of address blocks and allocations to customers and internal infrastructure. I did a quick -
Awesome Talk by Adrian Holovaty at Vancouver Python User Group
Adrian Holovaty gave a talk to the Vancouver Python User's Group tonight. Really nice, funny presentation. His plane was late so while we waited for him we watched his talk at Snakes and Rubies. He showed us some of the new features coming in Django. The neatest thing for me was this new thing he's been working on called "databrowse". It's really awesome. Also the forms stuff is a lot nicer now in the newforms library. Someone asked about migration with Django and how to modify the schema once your app is up and running. It was neat to watch him add a column to his database and watch how he did it. It's unbelievable how many apps this guy has written and with Django it is so fast. Some of the stuff he has been doing for the Washington Post is pretty cool. -
Awesome Talk by Adrian Holovaty at Vancouver Python User Group
Adrian Holovaty gave a talk to the Vancouver Python User's Group tonight. Really nice, funny presentation. His plane was late so while we waited for him we watched his talk at Snakes and Rubies. He showed us some of the new features coming in Django. The neatest thing for me was this new thing he's been working on called "databrowse". It's really awesome. Also the forms stuff is a lot nicer now in the newforms library. Someone asked about migration with Django and how to modify the schema once your app is up and running. It was neat to watch him add a column to his database and watch how he did it. It's unbelievable how many apps this guy has written and with Django it is so fast. Some of the stuff he has been doing for the Washington Post is pretty cool. -
Improving performance of Dojo-based web applications
Introduction Web 2.0 brought on us an onslaught of new server-side web frameworks, and made it OK to put some code on the client side as well. Yes, I am talking about Ajax. While elements of Ajax were available (and used) for a long time now, 2005 was the crucial year for this relatively old technology fueled by proliferation of modern browsers with proper support of JavaScript and HTML DOM, which, in turn, gave a rise to numerous Ajax toolkits. As always new exciting technology polarizes people — you can find ardent supporters of Ajax and a booing horde of naysayers. The latter crowd points out real and imaginary problems with Ajax. Some problems are real enough but stem from a misuse of the technology. One of them is a performance of a web application. In this article I will show how to improve a performance of a web application with Ajax and how to optimize an Ajax web application. Specifically I will show how to optimize a Dojo-based high-performance web application. I will use Django and Apache as examples of a server environment. Design of a modern web application In order to improve the overall performance of a web … -
Improving performance of Dojo-based web applications
Introduction Web 2.0 brought on us an onslaught of new server-side web frameworks, and made it OK to put some code on the client side as well. Yes, I am talking about Ajax. While elements of Ajax were available (and used) for a long time now, 2005 was the crucial year for this relatively old technology fueled by proliferation of modern browsers with proper support of JavaScript and HTML DOM, which, in turn, gave a rise to numerous Ajax toolkits. As always new exciting technology polarizes people — you can find ardent supporters of Ajax and a booing horde of naysayers. The latter crowd points out real and imaginary problems with Ajax. Some problems are real enough but stem from a misuse of the technology. One of them is a performance of a web application. In this article I will show how to improve a performance of a web application with Ajax and how to optimize an Ajax web application. Specifically I will show how to optimize a Dojo-based high-performance web application. I will use Django and Apache as examples of a server environment. Design of a modern web application In order to improve the overall performance of a web … -
Adrian Holovaty Talk and Django Jam in Vancouver
This Sunday, the Vancouver/Zope User's Group (maybe the Zope part should be removed? sorry guys) is having a "Django Jam", a hands-on session where you can see how to create some simple applications or perhaps here some people talk about things they have developed in Django. Unfortunately the two applications I am working on are immature right now and I don't have a laptop, but I'll be there checking out what other people have done. Tuesday is even more exciting as Adrian Holovaty, the lead Django developer/founder is going to give a talk to the Python User's group while he is in town for another conference. If you are interested in web frameworks (especially simple ones done in a cool language) come and check it out. Vancouver DjangoJam. Full invite text follows: Django is the Python-based web framework used at companies like Google, the Washington Post and St. Joseph Media (publishers of Canadian Life magazine). "Vandjangojam" is a great opportunity to learn Django or learn more about it. In addition to a quick introduction to Django, the jam will feature a Q&A; session with the lead programmer of it. ---- Introduction to The Django Web Framework : Sunday, February 4, … -
Adrian Holovaty Talk and Django Jam in Vancouver
This Sunday, the Vancouver/Zope User's Group (maybe the Zope part should be removed? sorry guys) is having a "Django Jam", a hands-on session where you can see how to create some simple applications or perhaps here some people talk about things they have developed in Django. Unfortunately the two applications I am working on are immature right now and I don't have a laptop, but I'll be there checking out what other people have done. Tuesday is even more exciting as Adrian Holovaty, the lead Django developer/founder is going to give a talk to the Python User's group while he is in town for another conference. If you are interested in web frameworks (especially simple ones done in a cool language) come and check it out. Vancouver DjangoJam. Full invite text follows: Django is the Python-based web framework used at companies like Google, the Washington Post and St. Joseph Media (publishers of Canadian Life magazine). "Vandjangojam" is a great opportunity to learn Django or learn more about it. In addition to a quick introduction to Django, the jam will feature a Q&A; session with the lead programmer of it. ---- Introduction to The Django Web Framework : Sunday, February 4, … -
Mount an SSH Connection in OS X
Google’s Amit Singh released MacFUSE, a Mac-centric interpretation of FUSE. From the project website: MacFUSE implements a mechanism that makes ... -
Fried Chicken
I’ve been trying to make outstanding fried chicken for about four years, and I think I’ve finally got it. I don’t mean to toot my own horn, but I just made the best damn fried chicken I’ve ever had, and it wasn’t even all that hard. If you like the crispy stuff and aren’t afraid of phrases like “heat a quart of oil to 375°”, read on… Hardware You’ll need some gadgets to pull this off: -
Django on Accelerators
We’ve setup two clients plus ourselves on TextDrive Accelerators. For those not in the know, TextDrive Accelerators are Sun Solaris ... -
All I want to do is convert my schema!
I’m working on a django in which I want to store GPS track information in GPX format. The bests way to store that in django is with an XMLField. An XMLField is basically just a TextField with validation via a RELAX NG Compact schema. There is a schema for GPX. Great! The schema is an XSD though, but that’s okay, it’s a schema for XML so it should be pretty easy to just convert that to RELAX NG compact, right? Wrong. I pulled out my handy dandy schema swiss army knife, Trang but was shocked to find out that while it can handle Relax NG (both verbose and compact), DTD, and an XML file as input and even XSD as an output, there was just no way that I was going to be able to coax it to read an XSD. Trang is one of those things (much like Jing that I rely on pretty heavily that hasn’t been updated in years. That scares me a bit, but I keep on using ‘em. With Trang out of the picture, I struck out with various google searches (which doesn’t happen very often). Jacob was kind enough to point me at the … -
Blog Spam Protection
I currently manually review and delete comment spam every few days. It doesn't take long, it's just frustrating. When you regularly repeat an action over a long period of time, you begin to notice patterns of action. What I've noticed is that most comment spam is being posted to older … -
Blog Spam Protection
I currently manually review and delete comment spam every few days. It doesn't take long, it's just frustrating. When you regularly repeat an action over a long period of time, you begin to notice patterns of action. What I've noticed is that most comment spam is being posted to older blog posts - most likely due to their higher number of in-links, and I'm guessing higher google page rank. To this end, what I've done is add a method to my blog Post model, which checks the post date and, if it's within the defined timeframe, will return 'True'. My Post detail template now checks this method and only displays the form when appropriate. The first file to change is your blog applications models.py. At the top of the file add this import statement to bring in the 'datetime' module and required tools: from datetime import datetime, timedelta Next, in the same file, add the following method to your 'Post' class (just after the 'body' field is fine): def allow_comments(self): return (self.date + timedelta(21)) > datetime.now() Lastly, open up your blog detail template and replace the existing call to {% free_comment_form ... %} with: {% if object.allow_comments %} {% free_comment_form … -
Small Django tips from one newbie to another
I am a Django newbie: I have gotten my feet wet exploring Django and have started building my first serious application with it. I am having more fun with Django than I have had with any other software tool in a long time, and I would like to share a few things I have learned along the way so far, that might help other newbies. If you are a more experienced Django-neer reading this and notice areas for improvement or outright mistakes, I would be very grateful for the feedback.