Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
.NET magazine features expert article by Mercurytide
The article focuses on our experiences of moving to Django from an older framework and how it affected our business. -
.NET magazine features expert article by Mercurytide
The article focuses on our experiences of moving to Django from an older framework and how it affected our business. -
.NET magazine features expert article by Mercurytide
The article focuses on our experiences of moving to Django from an older framework and how it affected our business. -
Creant Bits, el déjà vu
Em complau anunciar una segona edició de Creant Bits destinada a tots aquells i aquelles que no poguéreu assistir a la primera. Els contingut seran bàsicament els mateixos, en tot cas mirarem de resoldre algunes mancances de la primera presentació, però en un 99% serà tot el mateix: Introducció bàsica al llenguatge Python, amb exercicis. Introducció a Django: arquitectura i possibilitats Instal·lació d'una aplicació Django a Apache. La sala serà la mateixa que a la presentació anterior. Creant Bits, el déjà vu 29 de gener de les 16:00 a les 21:00 Sala de Formació - Parc Bit Pensau a dur el portàtil carregat amb el Python instal·lat. Hi ha connexió inhalàmbrica a la sala i el Parc Bit ens deixa un projector. La sala té una capacitat per a 20 persones màxim. Per apuntar-vos deixau un comentari a aquest apunt. Per cert, aquesta vegada tampoc hi ha catering! :) 23 comentaris, 0 trackbacks (URL) Automatic translations of this post by Apertium -
django-forum
twitter ready version: We have released a Django forum application, with some cool features not in any other Django based forum. You can get it here or see it in action. blog version There are quite a few Django based forum applications, so why another? Its a bit of a rhetorical question, as the answer [...] No related posts. -
Dynamic Translation Apps for Django
When I needed multi-language flatpages and flatblocks for telvee I searched for available Django apps that do dynamic translation. By dynamic translation, I mean translations are entered and stored in the database. As I said I needed to be able to translate both full pages and chunks of text that I can include into another [...] -
What a difference a year makes
The end of the year makes me reminisce about all that happened in the past 12 months. Web development at The Washington Times has changed dramatically, both in technology and process. Here are just a few things that have changed: From To Django 0.91 Django 1.1 mod_python mod_wsgi No virtualenv usage using virtualenv One site 8+ internal/external sites 5-6 content servers 1 content server + Varnish (and a backup for each and without hardware upgrades) Just servers Heavy usage of virtual machines Painful and manual deployment process Quick deployment process with Fabric Tightly integrated apps and a monolithic site More modular site with apps in separate repositories One private svn repository 50+ public and private svn and git repositories Five team members Six team members PostgreSQL 8.1 PostgreSQL 8.3 Subversion Git Python 2.3 Python 2.6 There were also some new improvements: Created a new framework for starting and deploying sites and creating apps Dramatically improved the monitoring of our infrastructure Released 30 apps under an open source license Began mirroring our public repositories on Git Hub Created a web site for our department with a blog and showing our open sourced projects Increased our focus on tests and documentation Converted an external PHP website to internal Django site, … -
Django 1.2 alpha 1 lançado
Django 1.2 alpha 1 lançado -
Django 1.2 alpha 1 lançado
Django 1.2 alpha 1 lançado -
Send someone from a charity to DjangoSki
Thanks to sponsorship from the Python Software Foundation we've got some free tickets to give away to people from charities or non-profits. Do you know someone who uses Django in a charity? Or are you at a charity? Do you use Django or want to learn about it? Like skiing, snowboarding or just hanging out in Whistler? Then nominate someone, or yourself. We've got a limited number of tickets and time is short - so hop to it. Fill out the form here. Note: the image isn't relevant, but was one of the first hits on Flickr for ticket. It's much colder in Whistler. Update: people chosen and contacted. -
Sechstes Treffen der Django-UserGroup Hamburg
Das sechste Treffen der Django-UserGroup Hamburg findet am Dienstag, den 12.01.2010 um 19:30 statt. Wie bei den letzten Malen treffen wir uns wieder in den Räumen der CoreMedia AG in der Ludwig-Erhard-Straße 18 in 20459 Hamburg. Eine Anfahrtsbeschreibung gibt es via Google Maps. Bitte am Eingang Ludwig-Erhard-Straße 18 bei CoreMedia AG klingeln, in den 3. Stock fahren und oben am Empfang nach der Django-UserGroup fragen. Da wir in den Räumlichkeiten einen Beamer zur Verfügung haben hat jeder Teilnehmer die Möglichkeit einen kurzen Vortrag (Format: Lightning Talks oder etwas länger) zu halten. Ich werde diesmal ein bisschen über den neu gegründeten Deutschen Django-Verein erzählen und bei Interesse einen Überblick über die Änderungen im Django-Trunk der letzten Tage/Wochen geben, da sich in Vorbereitung auf das 1.2 Release bereits einige Interessante Änderungen ergeben haben. Weitere Vorträge von anderen Teilnehmern ergeben sich erfahrungsgemäß vor Ort. Eingeladen ist wie immer jeder der Interesse hat sich mit anderen Djangonauten auszutauschen. Eine Anmeldung ist nicht erforderlich. Weitere Informationen über die UserGroup gibt es in unserem Git Repository unter www.dughh.de und im Wiki des Deutschen Django-Vereins. -
Getting Django + MySQL running again on Snow Leopard
Previously… Install the latest Xcode Tools from your Snow Leopard installation DVD Re symlink things to /Library/Python/2.6/site-packages (Leopard used 2.5) Django Any other thing you had symlink’d in 2.5 MySQL + Python Install MySQL from source like Dan says but use the latest version of MySQL (5.1.42 in my case) instead of the version he [...] -
An App Engine limitation you didn't know about
You probably know all of App Engine's documented datastore limitations. An important one is that a single entity can't have more than 5000 index entries. Usually this means that you have to be careful with queries that have multiple filters on a ListProperty (or StringListProperty, of course). If the query needs a composite index (in index.yaml) this can lead to an exploding index. Basically, when filtering on a ListProperty you should neither order() your query nor use inequality filters on any properties. In other words, you're safe when you only use equality filters and no ordering. Right? Wrong, unfortunately. And this leads us to a limitation most people don't know about. In some cases you need a composite (and possibly exploding) datastore index even if you follow that rule! In fact, this is also true if you don't work with a ListProperty. It's just much less likely. What are the circumstances that lead to this misery? This is the problem. There's no simple rule that you could follow. I'll try to explain it as well as I can. Merge-join When you run a query that only has equality filters the datastore (normally) doesn't need a composite index. Instead, it tries … -
Si House fos programador ...
Ahir estava mirant la presentació de James Bennet a la DjangoCon anomenada "UR DOIN IT WRONG" i me'n vaig adonar que feia referència a una sèrie de màximes tipus: #11919 No. You must believe the ERROR MESSAGE. You MUST believe the error message. La conferència és molt bona, us la recoman. El cas, però, és que em va picar la curiositat i vaig seguir l'enllaç fins a arribar a una entrada de comp.lang.perl.misc del març del 2002 on Mark Jason Dominus feia una relació de consells que ell tenia a un arxiu anomenat File of Good Advice. Les màximes, encara que plenes de sentit comú, tenen una mala llet considerable, i m'han recordat al nostre metge de la tele favorit. Supòs que no desapareixeran de la xarxa, però per si un cas les torn a escriure aquí. Ha passat temps, però la majoria són perfectament aplicables! Esper que les disfruteu tant com jo ho he fet. #11900 You cannot just paste code with no understanding of what is going on and expect it to work. #11901 You can't just make shit up and expect the computer to know what you mean, Retardo! #11902 You said it didn't work, but you … -
ESI using varnish and django
In my previous post [2] I wrote that Varnish [1] has much more to offer than upstream cache. I have decided to explore its ESI supports [3].ESI : Edge Side Includes (ESI) is an XML-based markup language that provides a means to assemble resources in HTTP clients. Unlike other in-markup languages, ESI is designed to leverage client tools like caches to improve end-user perceived performance, reduce processing overhead on the origin server, and enhanced availability. ESI allows for dynamic content assembly at the edge of the network.On of the most common difficulties that leads you to not cache a page for a logged in user is that you want to display some custom information for that user. For example you want to be able to display: * " welcome joes, [ link to his profile ] "However the rest of the page will be common for all the users. The diagram below explains the composition of the page : The yellow part of the page is common for all the users where the green part of the page should be customized for every user.This is a very common pattern, you can also have a header, footer and a navigation block that don't change very often and the rest of the … -
New Year, New Site
It's a new year and time to roll out a new site over at http://gregnewman.org. This is something I've been trying to get done for a long time now and just haven't been able to find the time or inspiration to get it done. I even failed at sitesprint twice in this endeavor. Then came along Anton Peck with this bright idea to do a post per week for a year, hence Project 52. I couldn't resist. It's a doable goal in my opinion and apparently over 500 other people think so too. hello!newman One of the things I have wanted to do was write and post more of my personal artwork. I haven't done it in the past for many reasons but one that stands out for me is the fact that I didn't want to flood the developers with art and didn't want to flood the artists with code. So I wrote this engine dubbed `hello!newman` using Django to help segregate the content a little better and each journal has it's own feeds. hello!newman is up on github and will be an ongoing project for me as this site evolves. Please feel free to comment here or create … -
Питонячьи библиотеки для CouchDB
По большому счету кроме urllib2 больше ничего и не надо. Но если хочется каких-то более удобных оберток над CouchDB REST API то есть из чего выбрать. Мне на глаза попадались три азличные реализации и в начале разработки проекта пришлось потратить время на то чтобы выбрать подходящую. Сразу оговорюсь, что все они очень похожи и делают одинаковые вещи - оборачивают в объекты основные сущности, которые предоставляет API -- сервер, база, документ и вьюха. Все совместимы с последним релизом самого CouchDB -- 0.10. Первая из библиотек -- couchdb-python. Самая старая из появившихся. Можно сказать референсная реализаци. Имеет все полезные абстракции и даже чуть боьлше. Это "больше" заключается в возможности задать схему документа в декларативном Django-like стиле и реализация питонячьего view-сервера. Первое нужно чтобы как-то структурировать документы и работу с ними, а второе для того чтобы использовать python как язык для map/reduce обработчиков вместо штатного JavaScript. Умеет работать как с simplejson так и с быстрой cjson библиотекой. Так же хочет чтобы балы httplib2. Следующий кандидат это couchdbkit. Умеет практически всё тоже самое, но имеет чуть больше хелперов и экстеншенов с адаптерами к популярными библиотекам вроде Django. Тянет за собой в зависимостях restkit (как видно из названия -- REST-клиент библиотека от того же автора) … -
Facebook Page Syncronisation
This is going to be a rather technical post, coupled with a smattering of rants about Facebook so those of you uninterested in such things might just wanna skip this one. As part of my work on my new company, I'm building a syncroniser for status updates between Twitter, Facebook, and our site. Eventually, it'll probably include additional services like Flickr, but for now, I'm just focusing on these two external systems. A Special Case Reading this far, you might think that this isn't really all that difficult for either Twitter or Facebook. After all, both have rather well-documented and heavily used APIs for pushing and pulling data to and from a user's stream, so why bother writing about it? Well for those with my special requirements, I found that Facebook has constructed a tiny, private hell, one in which I was trapped for four days over the Christmas break. In an effort to save others from this pain, I'm posting my experiences here. If you have questions regarding this setup, or feel that I've missed something, feel free to comment here and I'll see what I can do for you. So, lets start with my special requirements. The first … -
DjangoSki change of hotel
Over the Christmas holidays the DjangoSki changed location from one hotel in Whistler to another. This was the reason for the registration and hotel information going offline over the Christmas holidays. We've got a new hotel sorted out and the conference will be at the new location, a few minutes down the road. So we went for plan B, one of the other hotels. It's a good hotel with other benefits for example: they don't mind external food coming in, a kitchenette in the room, washer and dryer etc. In fact this hotel is directly on the Creekside chair. You can go directly from the conference room, walk to the hot tub, past the barbeque to the chair lift (or some combination of that). The reason? During the process of sorting out the contract with the original hotel the contract changed quite dramatically against us. We proceeded hoping that the pre-registration numbers would solve that problem. As it turned out it wasn't enough and the amount of money that we were putting up for the conference was so large to be a really, really big concern for us. A conference is a risk, but we are a small company and … -
Eclipse, PyDev, Django and virtualenv
How I set up Eclipse to work with an existing project using virtualenv -
Response time optimisation with Varnish
This blog post shows you how to optimize the tools chain on your server to improve its performance by an order of magnetude with out changing a single line in your django project. In order to do so I will use again django-cms [1] as guinea pig because there is a fair amount for processing to display a page but it is still easy to install. Note: django-cms example has the cache middleware activated by default.Then I will run ab testing on a particular page and compare the results. These tests are being performed on my laptop hp dv6-1030. The important information is not the figures but by them self but rather the variation of the response time.Before starting my test I have moved django-cms to be mounted under "/". In order to do this you will need to change the configuration into the file called example_uwsgi.py.import osimport django.core.handlers.wsgi# Set the django settings and define the wsgi appos.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'application = django.core.handlers.wsgi.WSGIHandler()# Mount the application to the urlapplications = {'/':application, }Then you need to change the rule behavior in cherokee admin to reflect this change. Cheorkee admin makes this task a breeze.Before diving head first into the the meat of this article here it is a diagram of the architecture … -
flup vs uWSGI with cherokee
Cherokee is one of this many web servers that supports both deployment strategies. Since I have recently blogs about uwsgi Several people asked me how do they compare performance wise. Up to now my answer was I don't know and I don't really care because this is not the most critical aspect in my opinion.However since this question keep comming I have decided to give it a more accurate answer. This blog post takes you on how to setup cherokee with both alternatives and compare their performance. The guinea pig application I have chosen to do this comparison is django-cms because I think it represents fairly well the overhead introduced by the dynamic generation of the page.Note : in this example django-cms will not be mounted under "/" this will cause all sort of issues if you try to do this but none of them impact the particular page that we try to access.One of the nice Cherokee's feature is its documentation, here it is the 2 pages related to this blog post :* flup [1]* uswgi [2]In this blog post I will assume that django-cms is installed, its example project properly configured and that you have added a page to test test against it. I will aslo assume … -
Add bpython to django's shell management command
Like many of us I am spending a lot of time in the REPL loop to develop django code and this bug in readline cost me an extra backspace each time I hit "tab" in ipython.This blog post capture my attention so I have decided to give bpython a try and so far I have been impressed by what I have seen. Here it is a management command that adds the support for bpython to django's shell management command.import osfrom django.core.management.base import NoArgsCommandfrom optparse import make_optionfrom IPython.Shell import IPShelldef start_plain_shell(): import code # Set up a dictionary to serve as the environment for the shell, so # that tab completion works on objects that are imported at runtime. # See ticket 5082. imported_objects = {} try: # Try activating rlcompleter, because it's handy. import readline except ImportError: pass else: # We don't have to wrap the following import in a 'try', because # we already know 'readline' was imported successfully. import rlcompleter readline.set_completer(rlcompleter.Completer(imported_objects).complete) readline.parse_and_bind("tab:complete") # We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system # conventions and get $PYTHONSTARTUP first then import user. if not use_plain: pythonrc = os.environ.get("PYTHONSTARTUP") if pythonrc and os.path.isfile(pythonrc): try: execfile(pythonrc) except NameError: pass # This will import … -
django-rest or Reviving django-rest-interface
I have taken it upon myself (which is probably more than I can handle!) to revive the django-rest-interface project. The new project is called simply django-rest and you can find it on Google code here: http://code.google.com/p/django-rest/ Currently the project is a shameful clone of django-rest-interface, which unfortunately seems to have been inactive for some time. I even ripped the Wiki pages! If you never heard what django-rest-interface is, than I recommend you check it out. It provides an easy way of creating RESTful layer on top of your models, treating them as resource, but also allows you to define a non-model resources. Why clone? There are a few reasons why I chose to copy the project instead of contributing to existing one: can't contribute :-) author is non-responsive django-rest-interface project was inactive for the last year it was hosted on subversion, whereas I am using Mercurial, which allows for much easier cloning and contributions It's fun! I like REST architecture style and I think this project is worthwile working on. How to contribute It would be great to know if anyone else if interested in contributing. Currently you can do it in a few ways: Try it out! Just by trying it you … -
Vim taglist and Django
Inspired by the graphical cheat sheet here, I've recently moved over to Vim as my main development environment. After installing a whole range of plugins, I found that one of them, taglist, no longer worked with my Django code. The reason was that something was changing the filetype of Django modules to 'python.django', and taglist - unlike most other plugins - was trying to match against the whole filetype, rather than just a part of it. My solution is to hack taglist so that it does a partial match on the filetype. In the Tlist_Get_Buffer_Filetype function (line 984), change let buf_ft = getbufvar(a:bnum, '&filetype') to let buf_ft = split(getbufvar(a:bnum, '&filetype'), '\.')[0]