Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Code Month: Mid-Point
So, upon working on Code Month, I've realized some things I don't have in my toolkit that would have made things much, much easier. Fab scripts I already had a fab script to set up my server, which was awesome. Within a few minutes I had a patched Ubuntu server ... -
Faking it: Geospatial search without the prereqs or infrastructure
First, a public service announcement: tomorrow, Nov. 16th, is “GIS Day” which means universities all over will be holding day lectures, in most cases for free. Many of them will be over our heads since we’re but neogeographers, but inspiration can … Continue reading → -
Satchmo installation
Been playing with Satchmo today. One issue I ran into, is I installed the Trunk version of Django, which Satchmo apparently isn’t compatible with; it apparently expects Django 1.3. The easiest way to get started with a very fresh install of Satchmo is to go through the following steps. Setup and activate virtual environment: ~/projects$ virtualenv test ~/projects$ cd test ~/projects/test$ source bin/activate Make sure you have PIL installed: sudo apt-get install python-imaging Install Satchmo: ~/projects/test$ hg clone https://chris1610@bitbucket.org/chris1610/satchmo ~/projects/test$ cd satchmo ~/projects/test/satchmo$ python setup.py install Install all the other requirements: ~/projects/test/satchmo$ pip install -r scripts/requirements.txt Setup sample store /projects/test$ python source/satchmo/scripts/clonesatchmo.py /projects/test$ cd store /projects/test/store$ python manage.py runserver Then just shoot your browser to: http://localhost:8000 -
Django Suite I: Iniciar con Django.
Esta es una parte de una serie de post semanales que estaré dedicando a distintos temas de Django. El titulo Django Suitees un pequeño juego de palabras ya que el nombre del framework fue inspirado por el gran guitarrista de jazz Django Reinhardt y suite que se define como un tipo de pieza musical compuesta por varios movimientos breves. Para el primer movimiento empezaré con lo básico el inicio,no voy a realizar un tutorial de como iniciar en Django por que hay muchos ya en internet que son útiles pero debido a que muchas personas me preguntan cual es la mejor manera de iniciar con Django hago este post para guiarlos un poco sobre lo que las guías dan por hecho pero que nos pueden hacer perder algo de tiempo buscando por ahí. Sinceramente no hay bala de plata para lograr cabalgar al pony sino por que el proceso de aprendizaje varía de quien en quien, lo que si puedo decir es que Django es uno de los proyectos mejor documentadosque existen, casi todo el framework menos algunas funciones internas muy poco usadas están descritas en https://docs.djangoproject.com/ en la dirección anterior puedes navegar fácilmente todos los temas. La documentación es … -
Django Suite I: Iniciar con Django.
Esta es una parte de una serie de post semanales que estaré dedicando a distintos temas de Django. El titulo Django Suite es un pequeño juego de palabras ya que el nombre del framework fue inspirado por el gran guitarrista … Continue reading → -
Gunicorn --preload helps with non-pure-python libraries
-
Where is my user? Part 2, Browser Geolocation
As we saw last week GeoIP can be pretty inaccurate for mobile users – the exact audience we may be trying hardest to serve with a geographically aware website. But the W3C saw, or was made to see, the writing … Continue reading → -
Django CMS, Haystack, and Custom Plugins
When you need a full-text search for Django-CMS-based website, you can use Haystack and django-cms-search. The latter module ensures that all CMS Pages get indexed. One important thing to mention is that if you use any custom Plugins, search_fields need to be defined for them, so that the Pages using them are indexed properly. For example, here is an Overview plugin which makes its title and description searchable: from django.db import models from django.utils.translation import ugettext_lazy as _ from cms.models import CMSPlugin class Overview(CMSPlugin): title = models.CharField(_('Title'), max_length=200) description = models.TextField(_('Description')) url = models.URLField(_('url'), max_length=200, blank=True) search_fields = ("title", "description") def __unicode__(self): return self.title For more information check the documentation online: Haystack Django CMS django-cms-search -
Where is my user? Part 1, GeoIP
There are a a few techniques we can use to make our apps more “magical” for our end users – showing them things that we have reason to believe may be spatially relevant to them. The most reliable but least … Continue reading → -
Scaling Schema Changes
I frequently get asked how Disqus deals with schema changes. It’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’s start with the problem of schema changes at scale (in PostgreSQL). Generally you have … -
Radius limited searching with the ORM | Neogeo ramblings with a Python twist
Radius limited searching with the ORM | Neogeo ramblings with a Python twist. Wenn ich mir das so angucke, da sind schon wirklich nette Features in GeoDjango drin. Leider habe ich derzeit kein Projekt bei dem ich es gebrauchen könnte, also nur mal für später geblogmarkt. Auf dem Blog gibts auch weitere interessante Artikel rund um GeoDjango. -
Radius limited searching with the ORM
A handy abstraction inside GeoDjango is the D object. It converts from more units than you knew existed into other units. (complete list) We’ll be using it quite a bit as we do various queries. >>> from django.contrib.gis.measure import D … Continue reading → -
How Yipit Deploys Django
If you’re managing your own servers, and you don’t use a tool like Chef, you’re crazy. It’s just that simple. We’ve been using Chef here at Yipit for about 6 months, and when I think about provisioning a new server with our old load book, I cringe. There were some pretty high upfront costs to learning Chef, especially since no one here had any real Ruby experience (Chef is written in Ruby), but the time we invested into getting set up with Chef has been 100% worth it. I’m hoping this post will help people get up and running with Django and Chef as quickly as possible. Opscode has their own django-quick-start repository, but I think it’s too complex if you’re not familiar with Chef. This tutorial will cover: Getting set up with Opscode, a hosted chef-server Installing Ruby, Chef, and some knife plugins Setting up your chef-repo and installing a Django/github quickstart cookbook Using a Python script to deploy to ec2 If you don’t understand what any of those things mean, Opscode maintains a pretty good wiki. Before We Start This tutorial makes the following assumptions about your systems: Locally, you run a Mac. Remotely, you want to use … -
Coming to DC?
Coming to DC? -
Finding the nearest with the ORM
We have data, we know how to take what our user is providing us, it’s time to stitch the two together and find things nearby. The easiest option is to simply let the database order them. >>> from django.contrib.gis.geos import … Continue reading → -
Stack Overflow a boon to stuck developers
Developing web applications is a little like learning how to ollie a skateboard. You try, and try, and try. Then you try again. And then something clicks. You land the trick. But you don't understand why. This has been my experience writing code. I know what I want to do, and through brute force I hammer away at a solution until something works. But why does it work? That's where Stack Overflow and it's wonderful community comes in. Let me be clear: I'm no computer scientist. I have a diverse background that includes public relations and journalism in addition to web development. But I know HTML, CSS and JavaScript very well. This trifecta led me into higher-level development languages like Python, and the wonderful framework Django a few years ago. Perhaps it's my tenacious journalist attitude that keeps my head beating against the wall in an attempt to solve problems. Whatever it is, I'm thankful there exists helpful communities on the web. Stack Overflow is a question and answer website where developers of any language can pose a mud-pit scenario from which they can't seem to escape. If the question is well-crafted, and tagged appropriately, answers glom like flies on … -
One step too many, or how to mess up your library
Say, you’re writing an open-source package which is going to do some pile of common tasks in applications of many developers (probably including you). For example, something for REST servers, just because my last frustration on the subject was due to a REST framework. Okay, so you’re writing these functions useful for REST: handling serialization, authentication, routing, headers, versions, et cetera. There really are lots of things you have to care about in REST, because REST is easy to get wrong, so your collection of functions and classes would come handy. Now you have some modules: one with a couple of classes for Authentication, and another with functions to serialize everything to any format out there and back, and another with whatever else REST needs to be proper. The library really seems comprehensive. You’re writing some docs, and the library slowly transforms from comprehensive to awesome. You’re enjoying pleasant thoughts about how everyone will like the library after it gets released. Finally, you’re taking a good look on your library as a whole and think: hey, it handles, like, everything you need in REST! With this thought in mind, you’re writing a function which (as you think) will save everyone … -
Good ol' SSH
I’ve recently started using a Mac as my primary computer. It’s been a fairly easy transition as most everything I work on is already *nix based and the majority of the software I use is cross-platform. One thing I did miss was PuTTY. Mostly because I could easily save sessions and invoke them with “putty -load whatever”. Meanwhile, invoking SSH manually in Terminal was a pain. Well, that turned out to be quite an easy fix. How is it that I never knew about ssh-config? Merely create a “~/.ssh/config” file and put in: Host whatever HostName whatever.wherever.com User myuser Now you can just “ssh whatever” from a Terminal window. What a relief! Next, I used to make use of “plink” as a local proxy command in PuTTY to create a tunnel through a firewall for work. How do you do this with regular SSH? Well, Google returns lots of results on how to use the ProxyCommand ssh-config option along with netcat, but that didn’t work for me. Netcat wasn’t installed on the firewall. As it turns out, and I don’t know why this was so hard to find, SSH has netcat built in. So instead of doing something like this: … -
Good ol' SSH
I've recently started using a Mac as my primary computer. It's been a fairly easy transition as most everything I work on is already *nix based and the majority of the software I use is cross-platform. One thing I did miss was PuTTY. Mostly because I could easily save sessions and invoke them with "putty -load whatever". Meanwhile, invoking SSH manually in Terminal was a pain. Well, that turned out to be quite an easy fix. How is it that I never knew about ssh-config? Merely create a "~/.ssh/config" file and put in: Host whatever HostName whatever.wherever.com User myuser Now you can just "ssh whatever" from a Terminal window. What a relief! Next, I used to make use of "plink" as a local proxy command in PuTTY to create a tunnel through a firewall for work. How do you do this with regular SSH? Well, Google returns lots of results on how to use the ProxyCommand ssh-config option along with netcat, but that didn't work for me. Netcat wasn't installed on the firewall. As it turns out, and I don't know why this was so hard to find, SSH has netcat built in. So instead of doing something like this: … -
Geocoding: Turning text into numbers
One of my favorite libraries for doing geo in Python is GeoPY. It’s able to do one of the next tools we need in our toolbox, plus a few others. What is this new tool? Geocoding. Geocoding is the process … Continue reading → -
Good ol' SSH
I’ve recently started using a Mac as my primary computer. It’s been a fairly easy transition as most everything I work on is already *nix based and the majority of the software I use is cross-platform. One thing I did miss was PuTTY. Mostly because I could easily save sessions and invoke them with “putty -load whatever”. Meanwhile, invoking SSH manually in Terminal was a pain. Well, that turned out to be quite an easy fix. How is it that I never knew about ssh-config? Merely create a “~/.ssh/config” file and put in: 1 2 3 Host whatever HostName whatever.wherever.com User myuser Now you can just “ssh whatever” from a Terminal window. What a relief! Next, I used to make use of “plink” as a local proxy command in PuTTY to create a tunnel through a firewall for work. How do you do this with regular SSH? Well, Google returns lots of results on how to use the ProxyCommand ssh-config option along with netcat, but that didn’t work for me. Netcat wasn’t installed on the firewall. As it turns out, and I don’t know why this was so hard to find, SSH has netcat built in. So instead of doing … -
Using a jQuery plugin in Django admin and getting a “$().foo is not a function” or “Object ... has no method foo” error?
Are you using a jQuery plugin, for instance jQuery UI, to spice up the Django admin site? Then you might get either an error like “foo is not a function” (Firebug) or “Object ... has no method foo” (Chrome Developer Tools). Are you confused because foo should be defined in the plugin? Don’t worry, the solution is simple. Actually, the reason and solution are in the Django admin site documentation if you know where to look. The reason is this: Django’s jQuery is namespaced as django.jQuery This prevents collisions with other scripts or libraries. It also prevents you from blindly using code you find on the internet. ;-) Possible solutions are: Include your own copy of jQuery which does ‘pollute’ the global namespace. Make sure your plugin/code uses django.jQuery instead of just $ or jQuery. Create a jQuery (or $) variable yourself. As the documentation says, the benefit of the first option is that you can use a different (newer) version of jQuery, if you want or need to. The second option might mean that you’ll have to download the development version of the plugin, change the code, and minify it yourself. I found the third option as an answer … -
Pinax
Pinax. Und wieder mal was das ich glaube ich schon hatte. Aber aus aktuellem Grund nochmal auf den Radar gekommen und daher werde ich mir das etwas näher angucken. Sowas wie ein Bauchladen für Django-Projekte mit Fokus auf Social Networks und Community Sites. Klingt auf jeden Fall sehr interessant – ein bischen wirkt es wie Drupal mit Python und auf Django (also eher nicht fertige Sites sondern Bausteine und Framework zur Erstellung derselben). -
Basic poly/point spatial queries using the Django ORM
Now that we have a couple sources of information in our database, we’ll look at mashing up the data. If I need to determine all of the campgrounds available during a trip to Kansas, I can do that with the … Continue reading → -
Small open-source release: django-menu
Many moons ago on this blog I wrote about a simple menuing system for Django. For the sake of convenience, I've just packaged up that code (plus a few minor improvements) into a package named django-menu which is also available via PyPi with pip install django-menu. Basic documentation is included in the package and in the git repository.