Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Finding Data: Often harder than using it
One of the hardest parts of doing geo projects is getting the data you need to do it in the first place. In the US at least there are mountains of data at the federal level, some at the state level and who knows what at the local level. There isn’t a single place I can go to for anything outside of census-type stuff. Which school for a given grade level would a child at this point attend? Maybe it’s published, maybe it’s not. Most cities or counties will have a GIS department. Some of them will be great, and helpful towards your goal as a developer. Others won’t. Our world of the tools and technologies are leapfrogging traditional methods. So here’s some of my favorite sources of different kinds of data, worth looking at for your next project. TIGER/LINE: Gigabytes of shapefiles of things the US Federal government collects. I tend to look here first if I need basic location data. SimpleGeo Places DB: SimpleGeo put a dataset of 21 million places (12ish million in the US) into the public domain last summer, and links to the file here. I have played with the data some and it’s pretty … -
Django Suite II: Configurando nuestro proyecto de manera correcta.
En esta entrada abordaremos un tema importante: la configuracióndel proyecto. Como dije en la entrada anterior, en configuraciones tampoco hay una manera definitiva de hacer las cosas ya que la flexibilidad de Django nos lo permite. Django usa archivos Python para guardar configuraciones, aprovecha la manera de trabajar del lenguaje para hacer archivos de configuración fáciles de leer, extender y utilizar dentro de nuestros proyectos. Normalmente al iniciar una aplicación creamos un proyecto en blanco con el comando startproject que nos crea una carpeta con los archivos necesarios para iniciar. Por defecto estas configuracionestienen ciertos valores de los cuales normalmente nos molestaremos en cambiar sólo algunas, como configuración de bases de datos, ubicación de archivos estáticos y servidor de correo. Acá algunos trucos para hacer estas configuraciones de manera dinámica y distribuibles para usarse en sistemas de control de versiones: Separación del archivo settings.py Este archivo contiene muchas veces datos sensibles que no pueden ser publicados o simplemente varían de una estación de trabajo a otra, por lo que conviene separarlo con un archivo extra que por convención lo llamamos"settings_local.py" acá deberán ir estas configuraciones: DATABASES ADMINS DEBUG TEMPLATE_DEBUG SECRET_KEY (si lo vas a hacer código libre y público) Claves … -
Django Suite II: Configurando nuestro proyecto de manera correcta.
En esta entrada abordaremos un tema importante la configuración del proyecto, a como dije en la entrada anterior en configuraciones tampoco hay una manera definitiva de hacer las cosas, ya que la flexibilidad de Django nos lo permite. Django usa … Continue reading → -
Google loves LFS
After just two weeks online, the LFS based summerhouse-shop reached for the search tearm "Bearcounty Gartenhaus" the first page at Google: Moreover there are already 119 pages indexed: In large part with nice titles, meaningful descriptions and the LFS typical flat and well formed URLs: -
Second shop is online
The second online shop based on LFS is online: http://www.gartenmoebel-bearcounty.de/ The garten furniture shop is driven by Demmelhuber Holz und Raum Vertriebs GmbH, which runs already a german top 500 shop based on EasyShop: http://demmelhuber.net/shop. Demmelhuber is already gone online with the first LFS based shop recently. iqpluplus works now very closely with Demmelhuber Holz und Raum Vertriebs GmbH in order to optimize the three shops continuously. We thank Demmelhuber for the confidence and wish good luck and lots of success with the new online shop! We are also working on a further shop now, which will go online with a brand new design soon (2 - 4 weeks). Stay tuned! -
New Shop is online
Another shop based on LFS is online: http://www.terrassenueberdachung-bearcounty.de/ The terrace shop is driven by Demmelhuber Holz und Raum Vertriebs GmbH, which runs already a german top 500 shop based on EasyShop (http://demmelhuber.net/shop) - and serveral other shops based on LFS. This time the good people of Demmelhuber installed and customized the shop completely inpedendent, which hopefully proves that LFS is easy to use. We are working on several other shops. So stay tuned for more ... -
Another shop is online
Another shop based on LFS is online: http://www.swimmingpool-bearcounty.de/ The swimmingpool shop is driven by Demmelhuber Holz und Raum Vertriebs GmbH, which runs already a german top 500 shop based on EasyShop: http://demmelhuber.net/shop. Demmelhuber is already gone online with the first LFS based shop recently. The special thing on this shop is that we are using variants the first time in production. Check this example out. -
First shop is online
The first online shop based on LFS is online: http://www.gartenhaus-bearcounty.de/ The summerhous shop is driven by Demmelhuber Holz und Raum Vertriebs GmbH, which runs already a german top 500 shop based on EasyShop: http://demmelhuber.net/shop Demmelhuber has very high requirements on its webshops and we are very pleased that they decided to take LFS after an intense evaluation phase. The LFS-Team works now very close with Demmelhuber Holz und Raum Vertriebs GmbH in order to optimize the shop continuously. We thank Demmelhuber for the confidence and wish good luck and lots of success with the new online shop! -
Released 0.6 beta 1
Update: We also have a public Jenkins instance for continues integration on shiningpanda After more of six months we are happy to announce that we have released LFS 0.6 beta 1. Kudos to Michael Thornhill (of http://www.maithu.com/) who did a lot of work. So what's new? Using Django 1.3 Added country dependent addresses Added pluggable price calculation Added supplier management Massively improved management interface Improved static file handling (Django's staticfiles) Improved properties management Removed SWFUpload (Flash) in favour of jquery.fileupload (Javascript) Using Python's locale to display currencies New contact form Migration Starting with this release we provide a migration command (lfs_migrate, based on South) to upgrade your existing LFS instances. Please refer to the documentation for further information. Further Information You can find more information and help on following places: Official page Documentation on PyPI Demo Releases on PyPI Source code on bitbucket.org Google Group lfsproject on Twitter IRC -
Reflexions
Reflexionant Aprofitant que avui és una jornada de reflexió me pareix que aprofitaré per repassar un poc l'anecdotaria personal d'aquestes darreres setmanes, a veure si en puc treure també algunes conclusions. No sé el que vull Donc així ens va venir una persona a veure'ns i d'entrada em va amollar aquesta frase. Bé, res a dir, això és bastant típic quan es comença un projecte. El client no sap massa bé què vol, i la meva feina sovint consisteix en anar fer preguntes, clarificant el que el client vol. Al final, després d'hores de conversa vaig definint el que podria ser el projecte: gran, molt gran. El client resulta que nos sap què vol, però sap que ho vol tot! Paralant parlant ens diu que ja té un altre pressupost. Diu que ens ho enviarà per a que li poguem pressupostar el mateix. Fantàstic, al manco hi ha un punt de partida. Al dia següent em pos a repassar les notes i començar a fer el pressupost. Quan m'arriba l'e-mail del client jo ja duc com a 8 fulles del pressupost, explicant què tindrà el programa d'acord amb les especificacions del client. El pressupost que reb em deixa de pedra. … -
Scrubbing your Django database
This is the second in a series of posts, focusing on issues around open sourcing your Django site and data privacy in Django. You’ll end up with production data in your Django database and that will likely contain different kinds of data such as: configuration data, required basic data (categories for example), collected data and personal user data. There’s a couple of reasons for taking that production data and copying it off your production servers: for developers and contributors you want a sample copy of the app with some key data in. for testing or staging servers, you might want to copy down the database from the production server so you can test certain scenarios or load. Extracting parts of your database For the first case, it’s nice to prepare a minimal copy of the database that contains key data. For example, for those wanting to develop or contribute to addons.mozilla.org we have Landfill by Wil Clouser. Django comes with a nice facility for loading data, fixture dumping and loading. This can be used to pull data out of your database and then reload it. However the built in Django dumpdata dumps all the records for your model (depending upon … -
Scrubbing your Django database
This is the second in a series of posts, focusing on issues around open sourcing your Django site and data privacy in Django. You’ll end up with production data in your Django database and that will likely contain different kinds of data such as: configuration data, required basic data (categories for example), collected data and [...] -
Returning HTTP responses with django-tastypie
Here at MutualMind, we’ve built our REST developer API using the excellent django-tastypie framework. Once you understand the basic request/response cycle as mentioned in the documentation, it takes hardly any time get a full featured REST API up running. However, the documentation is missing one piece of information: What is the proper way to return [...] -
Django unicodedecodeerror in a models' __unicode__
-
Getting Started with VirtualEnv
VirtualEnv is a great tool to allow you to create multiple distinct environments to prevent versioning issues of your dependencies, or to even use different versions of python by default for that environment. This screen cast walks you through the very basics of getting it going, and a bit of how it works.Watch Now... -
Getting Started with VirtualEnv
VirtualEnv is a great tool to allow you to create multiple distinct environments to prevent versioning issues of your dependencies, or to even use different versions of python by default for that environment. This screen cast walks you through the very basics of getting it going, and a bit of how it works.Watch Now... -
Polygons and overlays with Google Maps v3 API
I stopped short of displaying an equivalent overlay in Google Maps v3 yesterday, but wanted to circle back and show that it’s doable as well. It’s far more verbose than the magic-y “pass it a polygon and it does the rest”, but you have more control too. View, pretty much just like the one we used for points only with a model that has a polygon: def gmap3_poly(request): states = State.objects.filter(mpoly__distance_lte=(Point((-94, 37)), D(mi=100))) return render_to_response('gmap3.html', { 'object_list': states, }, context_instance=RequestContext(request)) For the template, I actually modified yesterday’s to auto-detect the geometry coming through and just do the right thing. {% extends "gmap3base.html" %} {% block page-title %}Requested Items{% endblock %} {% block head_override %} <script type="text/javascript"> var bounds = new google.maps.LatLngBounds(); function buildMarker(map, latitude, longitude, name, color) { var latlng = new google.maps.LatLng(latitude, longitude); var marker = new google.maps.Marker({ position: latlng, map: map, title:name, }); marker.setIcon('http://maps.google.com/mapfiles/ms/icons/' + color + '-dot.png'); bounds.extend(latlng); return marker } function mapInitialize() { var myOptions = { zoom: 6, center: new google.maps.LatLng(0, 0), mapTypeId: google.maps.MapTypeId.SATELLITE }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); {% for object in object_list %} {% if object.point %}marker{{ object.pk }} = buildMarker(map, {{ object.point.y }}, {{ object.point.x }}, "{{ object }}", 'red'); … -
Easy Django on Windows with CherryPy
A while back I had the pleasure of integrating a Django project with a SharePoint site on IIS. I’ll say this: It works. Getting isapi-wsgi working with all the crazy application pool permissions, as well as other issues, was a royal pain. I also had to switch to a standalone MySQL instance instead of SQL Server because django-mssql was causing all kinds of problems. It was also practically impossible to replicate the environment for local development. I had a trial Windows Server VM set up but would constantly run into issues in production that I hadn’t seen in development (mostly related to permissions). So, the next time I had the pleasure of working with a Windows server, I decided to bypass IIS completely and instead use CherryPy. I should note that this was for a small internal business application. There are several packages out there that do this, including one I made a while back for development. The problem is that they were mostly intended to run on *nix or in development and none of them handle static media (except mine, but it’s outdated and doesn’t work with contrib.staticfiles). So I decided to steal the best parts of my previous … -
LittleBrownieBakers.com Launches
Little Brownie Bakers are the bakers that make Girl Scout Cookies. They required a custom CMS where they could enter info about cookies, post selling tips for parents, kids and volunteers; and generally update the world on the latest cookie news. And now they have it... The site was created in Python by myself and the team at Blenderbox using Django 1.3, South .7, Haystack (with Whoosh), django-page-cms, django-paging and django-tagging among others. This was also the first project we used django-grappelli on and it worked quite well. We'll probably use it for future projects. -
Easy Django on Windows with CherryPy
A while back I had the pleasure of integrating a Django project with a SharePoint site on IIS. I'll say this: It works. Getting isapi-wsgi working with all the crazy application pool permissions, as well as other issues, was a royal pain. I also had to switch to a standalone MySQL instance instead of SQL Server because django-mssql was causing all kinds of problems. It was also practically impossible to replicate the environment for local development. I had a trial Windows Server VM set up but would constantly run into issues in production that I hadn't seen in development (mostly related to permissions). So, the next time I had the pleasure of working with a Windows server, I decided to bypass IIS completely and instead use CherryPy. I should note that this was for a small internal business application. There are several packages out there that do this, including one I made a while back for development. The problem is that they were mostly intended to run on *nix or in development and none of them handle static media (except mine, but it's outdated and doesn't work with contrib.staticfiles). So I decided to steal the best parts of my previous … -
Mapping better – Google Maps API v3
I tend to do my Google v3 work purely in my templates. For this example I’ve got a view that will return the objects to be displayed in `object_list` in the context – same dataset as last time, only instead … Continue reading → -
Easy Django on Windows with CherryPy
A while back I had the pleasure of integrating a Django project with a SharePoint site on IIS. I’ll say this: It works. Getting isapi-wsgi working with all the crazy application pool permissions, as well as other issues, was a royal pain. I also had to switch to a standalone MySQL instance instead of SQL Server because django-mssql was causing all kinds of problems. It was also practically impossible to replicate the environment for local development. I had a trial Windows Server VM set up but would constantly run into issues in production that I hadn’t seen in development (mostly related to permissions). So, the next time I had the pleasure of working with a Windows server, I decided to bypass IIS completely and instead use CherryPy. I should note that this was for a small internal business application. There are several packages out there that do this, including one I made a while back for development. The problem is that they were mostly intended to run on *nix or in development and none of them handle static media (except mine, but it’s outdated and doesn’t work with contrib.staticfiles). So I decided to steal the best parts of my previous … -
Django in Production: Part 1 - The Stack
Everyone has their preferred way of doing things, and this is more and more true when there are many options available. In the Django world, this translates to everyone having their favourite web server, database, proxy, and so on. In spite of this, I'm going to spend some time over the next few posts describing how I deploy Django applications in production from a high-level perspective. In the first part of this series, I'll talk about the core stack which serves as the basis of the application. Gunicorn Python-based web applications have traditionally been run under Apache, using a module such as mod_python or mod_wsgi. Apache, however, can be somewhat of a resource-hog, particularly on virtual servers which often have limited memory. Also, as I'll discuss in detail later in this series, deploying code frequently to an Apache-hosted application can be troublesome. A new solution is in order. There is quite a choice of Python-based web servers for us "cool kids" to use, many of which are tested in this detailed (if a little old) benchmark by Nicholas Piël. Gunicorn offer super simple configuration, an extremely small footprint, and it's pure Python - so you can install it with a … -
Why You Need a Git Pre-Commit Hook and Why Most Are Wrong
A pre-commit hook is a piece of code that runs before every commit and determines whether or not the commit should be accepted. Think of it as the gatekeeper to your codebase. Want to ensure you didn’t accidentally leave any PDBs in your code? Pre-commit hook. Want to make sure your javascript is JSHint approved? Pre-commit hook. Want to guarantee clean, readable PEP8-compliant code? Pre-commit hook. Want to pipe all of the comments in your codebase through Strunk & White? Please don’t. The pre-commit hook is just an executable file that runs before every commit. If it exits with zero status, the commit is accepted. If it exits with a non-zero status, the commit is rejected. (Note: A pre-commit hook can be bypassed by passing the --no-verify argument.) Along with the pre-commit hook there are numerous other git hooks that are available: post-commit, post-merge, pre-receive, and others that can be found here. Why Most Pre-Commit Hooks are Wrong Be wary of the above’s example as the majority of pre-commit hooks you’ll see on the web are wrong. Most test against whatever files are currently on disk, not what is in the staging area (the files actually being committed). We avoid … -
On the Map
So far we’ve done all kinds of wearying and information – but never left a Python console. I suppose it’s time we fall into the web mapping world and look at our options. On the left of the easy-to-hard scale … Continue reading →