Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Keynote by Catherine Bracy (PyCon 2015 Must-See Talk: 4/6)
Part four of six in our PyCon 2015 Must-See Series, a weekly highlight of talks our staff enjoyed at PyCon. My recommendation would be Catherine Bracy’s Keynote about Code for America. Cakti should be familiar with Code for America. Colin Copeland, Caktus CTO, is the founder of Code for Durham and many of us are members. Her talk made it clear how important this work is. She was funny, straight-talking, and inspirational. For a long time before I joined Caktus, I was a “hobbyist” programmer. I often had time to program, but wasn’t sure what to build or make. Code for America is a great opportunity for people to contribute to something that will benefit all of us. I have joined Code for America and hope to contribute locally soon through Code for Durham. -
PyCon Sweden 2015
In a few words PyCon Sweden 2015 was awesome. Honestly, this was my first Python conference ever but I really hope it won't be the last. Outside the awesome talks and great organisation it was really nice to spend some time with similar minded people and talk about technology, the universe and everything else. I have met some old friends and made some new ones but lets get back to the talk. Unfortunately I was not able to see all of them but here is a brief about those I saw and found really interesting: It all started with Ian Ozsvald and his awesome talk about "Data Science Deployed" (slides). The most important point here were: log everything think about data quality, don't use everything just what you need think about turning data into business values start using your data Then Rebecca Meritz talked about "From Explicitness to Convention: A Journey from Django to Rails" (slides). Whether the title sounds a bit contradictive this was not the usual Django vs Rails talk. At least to me it was more like a comparison between the two frameworks, showing their differences, weak and strong sides. Whether I am a Django user, I … -
Django second AutoField
Sometimes, your ORM just seems to be out to get you. For instance, I've been investigating a technique for the most important data structure in a system to be essentially immuatable. That is, instead of updating an existing instance of the object, we always create a new instance. This requires a handful of things to be useful (and useful for querying). * We probably want to have a self-relation so we can see which object supersedes another. A series of objects that supersede one another is called a lifecycle. * We want to have a timestamp on each object, so we can view a snapshot at a given time: that is, which phase of the lifecycle was active at that point. * We should have a column that unique per-lifecycle: this makes for querying all objects of a lifecycle much simpler (although we can use a recursive query for that). * There must be a facility to prevent multiple heads on a lifecycle: that is, at most one phase of a lifecycle may be non-superseded. * The lifecycle phases needn't be in the same order, or really have any differentiating features (like status). In practice they may, but for the … -
Building a better DatabaseCache for Django on MySQL
I recently released version 0.1.10 of my library django-mysql, for which the main new feature was a backend for Django’s cache framework called MySQLCache. This post covers some of the inspiration and improvements it has, as well as a basic benchmark against Django’s built-in DatabaseCache. TL;DR - it’s better than DatabaseCache, and if you’re using MySQL, please try it out by following the instructions linked at the end. Why bother? Django’s cache framework provides a generic API for key-value storage, and gets used for a variety of caching tasks in applications. It ships with multiple backends for popular technologies, including Redis and Memcached, as well as a basic cross-RDBMS DatabaseCache. The DatabaseCache is recommended only for smaller environments, and due to its supporting every RDBMS that Django does, it is not optimized for speed. Redis and Memcached are the most popular cache technologies to use, being specifically designed to do key-value storage; you could even say Django’s cache framework is specifically designed to fit them. If they work so well, why would anyone bother using DatabaseCache, and why would I care about improving on it? Well, I have a few reasons: Fewer moving parts If you can get away with … -
Building a better DatabaseCache for Django on MySQL
I recently released version 0.1.10 of my library django-mysql, for which the main new feature was a backend for Django’s cache framework called MySQLCache. This post covers some of the inspiration and improvements it has, as well as a basic benchmark against Django’s built-in DatabaseCache. TL;DR - it’s better than DatabaseCache, and if you’re using MySQL, please try it out by following the instructions linked at the end. Why bother? Django’s cache framework provides a generic API for key-value storage, and gets used for a variety of caching tasks in applications. It ships with multiple backends for popular technologies, including Redis and Memcached, as well as a basic cross-RDBMS DatabaseCache. The DatabaseCache is recommended only for smaller environments, and due to its supporting every RDBMS that Django does, it is not optimized for speed. Redis and Memcached are the most popular cache technologies to use, being specifically designed to do key-value storage; you could even say Django’s cache framework is specifically designed to fit them. If they work so well, why would anyone bother using DatabaseCache, and why would I care about improving on it? Well, I have a few reasons: Fewer moving parts If you can get away with … -
Building a better DatabaseCache for Django on MySQL
I recently released version 0.1.10 of my library django-mysql, for which the main new feature was a backend for Django’s cache framework called MySQLCache. This post covers some of the inspiration and improvements it has, as well as a basic benchmark against Django’s built-in DatabaseCache. TL;DR - it’s better than DatabaseCache, and if you’re using MySQL, please try it out by following the instructions linked at the end. Why bother? Django’s cache framework provides a generic API for key-value storage, and gets used for a variety of caching tasks in applications. It ships with multiple backends for popular technologies, including Redis and Memcached, as well as a basic cross-RDBMS DatabaseCache. The DatabaseCache is recommended only for smaller environments, and due to its supporting every RDBMS that Django does, it is not optimized for speed. Redis and Memcached are the most popular cache technologies to use, being specifically designed to do key-value storage; you could even say Django’s cache framework is specifically designed to fit them. If they work so well, why would anyone bother using DatabaseCache, and why would I care about improving on it? Well, I have a few reasons: Fewer moving parts If you can get away with … -
Adding Maintenance Data pt 1
Join us as we continue building our product by starting to allow our users to add bike maintenance records to their bikes.Watch Now... -
Markup Language Faceoff: Lists
Today I want to talk about lists. Not for shopping, not the programming data type, but the display of items in both unordered and ordered fashion. Specifically this: Item A Item B First Numbered Inner Item Second Numbered Inner Item Item C In other words, lists of bullets and numbers. This article explores some of the different tools used by the programming world to render display lists, specifically HTML, reStructuredText, Markdown, and LaTeX. HTML If you view the HTML source of this web page, you'll find this: <ul class="simple"> <li>Item A</li> <li>Item B<ol class="arabic"> <li>First Numbered Inner Item</li> <li>Second Numbered Inner Item</li> </ol> </li> <li>Item C</li> </ul> Or more clearly: <ul class="simple"> <li>Item A</li> <li>Item B <ol class="arabic"> <li>First Numbered Inner Item</li> <li>Second Numbered Inner Item</li> </ol> </li> <li>Item C</li> </ul> This works, but is incredibly verbose. HTML requires closing tags on every element. Working with lists in HTML becomes tedious quickly. Which is why so many people use WYSIWYG tools or mark up languages like reStructuredText and Markdown, as it expedites creation of lists (and many other things). reStructuredText This blog is written in reStructuredText and transformed into HTML. Let's see the markup for this blog post: * Item … -
Markup Language Faceoff: Lists
Today I want to talk about lists. Not for shopping, not the programming data type, but the display of items in both unordered and ordered fashion. Specifically this: Item A Item B First Numbered Inner Item Second Numbered Inner Item Item C In other words, lists of bullets and numbers. This article explores some of the different tools used by the programming world to render display lists, specifically HTML, reStructuredText, Markdown, and LaTeX. HTML If you view the HTML source of this web page, you'll find this: <ul class="simple"> <li>Item A</li> <li>Item B<ol class="arabic"> <li>First Numbered Inner Item</li> <li>Second Numbered Inner Item</li> </ol> </li> <li>Item C</li> </ul> Or more clearly: <ul class="simple"> <li>Item A</li> <li>Item B <ol class="arabic"> <li>First Numbered Inner Item</li> <li>Second Numbered Inner Item</li> </ol> </li> <li>Item C</li> </ul> This works, but is incredibly verbose. HTML requires closing tags on every element (keep in mind browsers are not the same as specifications). Working with lists in HTML becomes tedious quickly. Which is why so many people use WYSIWYG tools or mark up languages like reStructuredText and Markdown, as it expedites creation of lists (and many other things). reStructuredText This blog is written in reStructuredText and transformed into HTML. … -
Q2 2015 ShipIt Day ReCap
Last Friday everyone at Caktus set aside their regular client projects for our quarterly ShipIt Day, a chance for Caktus employees to take some time for personal development and independent projects. People work individually or in groups to flex their creativity, tackle interesting problems, or expand their personal knowledge. This quarter’s ShipIt Day saw everything from game development to Bokeh data visualization, Lego robots to superhero animation. Read more about the various projects from our Q2 2015 ShipIt Day. -
Django Proxy Model Relations
I've got lots of code I'd do a different way if I were to start over, but often, we have to live with what we have. One situation I would seriously reconsider is the structure I use for storing data related to how I interact with external systems. I have an `Application` object, and I create instances of this for each external system I interact with. Each new `Application` gets a UUID, and is created as part of a migration. Code in the system uses this UUID to determine if something is for that system. But that's not the worst of it. I also have an `AppConfig` object, and other related objects that store a relation to an `Application`. This was fine initially, but as my code got more complex, I hit upon the idea of using Django's Proxy models, and using the related `Application` to determine the subclass. So, I have `AppConfig` subclasses for a range of systems. This is nice: we can even ensure that we only get the right instances (using a lookup to the application to get the discriminator, which I'd probably do a different way next time). However, we also have other bits of information … -
Interactive Data for the Web by Sarah Bird (PyCon 2015 Must-See Talk: 3/6)
Part three of six in our PyCon 2015 Must-See Series, a weekly highlight of talks our staff enjoyed at PyCon. Sarah Bird’s talk made me excited to try the Bokeh tutorials. The Bokeh library has very approachable methods for creating data visualizations inside of Canvas elements all via Python. No javascript necessary. Who should see this talk? Python developers who want to add a beautiful data visualization to their websites without writing any javascript. Also, Django developers who would like to use QuerySets to create data visualizations should watch the entire video, and then rewind to minute 8:50 for instructions on how to use Django QuerySets with a couple of lines of code. -
Cakti Comment on Django's Class-based Views
After PyCon 2015, we were surprised when we realized how many Cakti who attended had all been asked about Django’s class-based views (CBVs). We talked about why this might be, and this is a summary of what we came up with. -
Things going on
We are currently in a maintenance and cleanup phase of Evennia, where bugs are found and reported and things are getting more and more stable as people learn and use the new features we merged a few months back.Overall though I must say the relatively big changes we did to the infrastructure (making Evennia into a full library and making a complete overhaul of the typeclass system behind the scenes) went over with surprising smoothness. There were a flurry of things to fix immediately after the devel-branch merger but no more than expected. For the big changes it really worked very well I think, with no big disaster stories. We have a few bugs lingering in the issue tracker that need to be addressed but nothing show-stopping. I have been a bit busy with various projects off-MUD so to speak. I was contracted for making the cover and illustration for a book (this is not hobby art for once, but a professional commission which I was quite excited to be asked to do). I also author and draw a fantasy comic as part of another project.I've not been slacking off on on the MUD side though: I have written and … -
Use closure for your Django context processors
The idea with template context processors in Django is to inject some defaults thing to be available when rendering a template that is rendered with a request. I.e. instead of...: def view1(request): context = { 'name': 'View 1', 'on_dev_server': request.get_host() in settings.DEV_HOSTNAMES } return render(request, 'view1.html', context) def view2(request): context = { 'name': 'View 2', 'other': 'things', 'on_dev_server': request.get_host() in settings.DEV_HOSTNAMES } return render(request, 'view2.html', context) And in your nominal templates/base.html you might have something like this: ... <footer> <p>&copy; You 2015</p> {% if on_dev_server %} <p color="red">Note! We're currently on a dev server!</p> {% endif %} </footer> ... Instead you do this trick; in your settings.py you write down the list of defaults plus the one you want to always have available: TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", "django.template.context_processors.static", "myproject.myapp.context_processors.debug_info", ) And to accompany that you define your myprojects/myapp/context_processors.py like so: def debug_info(request): return { 'on_dev_server': request.get_host() in settings.DEV_HOSTNAMES, } So far so good. However, there's a problem with this. Two problems in fact. First problem is that when all the templates in your big complicated website renders, it's quite possible that some pages don't need everything you set up in your context processors. That might mean a heck of a … -
Use closure for your Django context processors
The idea with template context processors in Django is to inject some defaults thing to be available when rendering a template that is rendered with a request. I.e. instead of...: def view1(request): context = { 'name': 'View 1', 'on_dev_server': request.get_host() in settings.DEV_HOSTNAMES } return render(request, 'view1.html', context) def view2(request): context = { 'name': 'View 2', 'other': 'things', 'on_dev_server': request.get_host() in settings.DEV_HOSTNAMES } return render(request, 'view2.html', context) And in your nominal templates/base.html you might have something like this: ... <footer> <p>&copy; You 2015</p> {% if on_dev_server %} <p color="red">Note! We're currently on a dev server!</p> {% endif %} </footer> ... Instead you do this trick; in your settings.py you write down the list of defaults plus the one you want to always have available: TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", "django.template.context_processors.static", "myproject.myapp.context_processors.debug_info", ) And to accompany that you define your myprojects/myapp/context_processors.py like so: def debug_info(request): return { 'on_dev_server': request.get_host() in settings.DEV_HOSTNAMES, } So far so good. However, there's a problem with this. Two problems in fact. First problem is that when all the templates in your big complicated website renders, it's quite possible that some pages don't need everything you set up in your context processors. That might mean a heck of a … -
Looking for Senior/Mid-Level Developers to Change the World!
2degrees, the world's leading collaboration platform for sustainable business, are currently looking for disciplined software developers to build and maintain Python/Django applications. We're fundamentally looking for team players who are able to produce well-crafted software (e.g., elegant design, self-explanatory code), whether or not they have prior experience with our stack (which we'd consider a big plus). To learn more about the software that we build, have a look at the Free Software projects that we host on our GitHub account. Recent projects include hubspot-contacts and python-recaptcha. Telecommuting 2-3 days a week is possible, as long as the successful candidates are able to work in our Oxford office the rest of the time. To learn more about these vacancies, head over to our careers page. -
Django Performance: 4 Simple Things
Django Performance: 4 Simple Things -
Two Scoops of Django 1.8 is Out!
I'm pleased to announce the "Early Release" of the Two Scoops of Django: Best Practices for Django 1.8 PDF ebook. Co-authored with Audrey Roy Greenfeld, the 1.8 edition of Two Scoops of Django is filled to the brim with knowledge to help make Django projects better. We introduce various tips, tricks, patterns, code snippets, and techniques that we've picked up over the years. What we didn't know or weren't certain about, we found the best experts in the world and asked them for the answers. Then we packed the result into a 500+ page book. What's Next? We'll be adding more material to the 1.8 edition in the near future, hence the term, "Early Release". Everyone who buys the 1.8 ebook from us gets all 1.8 ebook updates. Once we're happy with the ebook, we'll release a print paperback edition, scheduled for mid-to-late May. We'll have a ebook/print bundle. If you buy the Early Release ebook from us, you qualify for the bundle. Order You can purchase the "Early Release" Two Scoops of Django: Best Practices for Django 1.8 PDF ebook at the Two Scoops Press store. -
Two Scoops of Django 1.8 is Out!
I'm pleased to announce the "Early Release" of the Two Scoops of Django: Best Practices for Django 1.8 PDF ebook. Co-authored with Audrey Roy Greenfeld, the 1.8 edition of Two Scoops of Django is filled to the brim with knowledge to help make Django projects better. We introduce various tips, tricks, patterns, code snippets, and techniques that we've picked up over the years. What we didn't know or weren't certain about, we found the best experts in the world and asked them for the answers. Then we packed the result into a 500+ page book. What's Next? We'll be adding more material to the 1.8 edition in the near future, hence the term, "Early Release". Everyone who buys the 1.8 ebook from us gets all 1.8 ebook updates. Once we're happy with the ebook, we'll release a print paperback edition, scheduled for mid-to-late May. We'll have a ebook/print bundle. If you buy the Early Release ebook from us, you qualify for the bundle. Order You can purchase the "Early Release" Two Scoops of Django: Best Practices for Django 1.8 PDF ebook at the Two Scoops Press store. -
Wagtail 1.0 (beta) best Django CMS?
Wagtail 1.0 (beta) best Django CMS? -
Newsletter #4
Welcome to the latest news about Two Scoops Press, PyDanny (Daniel Roy Greenfeld), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 Early Release Is Out The impossible has happened. We've decided to revise, update, and expand Two Scoops of Django for the Django 1.8 Long Term Support release. Today you can purchase the early release PDF. In mid to late May, we plan to release the print paperback version. Two Scoops of Django 1.8 Early Release PDF in our shop If you have any questions, please read the Two Scoops of Django FAQ. Into the Brambles Is Out In case you missed the news, Daniel's first fiction book is now out on Amazon. It's a dark epic fantasy novel titled Into the Brambles about the adventures of two brothers who grow apart, a goblin who rises to be king, and a noble woman who makes her own destiny. You can read more about Into the Brambles on Daniel's fiction blog. 2014-2015 Python/Django Community Efforts Here's a recap of our volunteer work. Open Source A number of the open-source projects that we maintain have reached important milestones. Cookiecutter, the popular cross-platform project templating tool created by Audrey, had its … -
Newsletter #4
Welcome to the latest news about Two Scoops Press, PyDanny (Daniel Roy Greenfeld), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 Early Release Is Out The impossible has happened. We've decided to revise, update, and expand Two Scoops of Django for the Django 1.8 Long Term Support release. Today you can purchase the early release PDF. In mid to late May, we plan to release the print paperback version. Two Scoops of Django 1.8 Early Release PDF in our shop If you have any questions, please read the Two Scoops of Django FAQ. Into the Brambles Is Out In case you missed the news, Daniel's first fiction book is now out on Amazon. It's a dark epic fantasy novel titled Into the Brambles about the adventures of two brothers who grow apart, a goblin who rises to be king, and a noble woman who makes her own destiny. You can read more about Into the Brambles on Daniel's fiction blog. 2014-2015 Python/Django Community Efforts Here's a recap of our volunteer work. Open Source A number of the open-source projects that we maintain have reached important milestones. Cookiecutter, the popular cross-platform project templating tool created by Audrey, had its … -
Newsletter #4
Welcome to the latest news about Two Scoops Press, PyDanny (Daniel Roy Greenfeld), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 Early Release Is Out The impossible has happened. We've decided to revise, update, and expand Two Scoops of Django for the Django 1.8 Long Term Support release. Today you can purchase the early release PDF. In mid to late May, we plan to release the print paperback version. Two Scoops of Django 1.8 Early Release PDF in our shop If you have any questions, please read the Two Scoops of Django FAQ. Into the Brambles Is Out In case you missed the news, Daniel's first fiction book is now out on Amazon. It's a dark epic fantasy novel titled Into the Brambles about the adventures of two brothers who grow apart, a goblin who rises to be king, and a noble woman who makes her own destiny. You can read more about Into the Brambles on Daniel's fiction blog. 2014-2015 Python/Django Community Efforts Here's a recap of our volunteer work. Open Source A number of the open-source projects that we maintain have reached important milestones. Cookiecutter, the popular cross-platform project templating tool created by Audrey, had its … -
Two Scoops of Django 1.8 is Out!
I'm pleased to announce the "early release" of the Two Scoops of Django: Best Practices for Django 1.8 PDF ebook. Co-authored with Audrey Roy Greenfeld, the 1.8 edition of Two Scoops of Django is filled to the brim with knowledge to help make Django projects better. We introduce various tips, tricks, patterns, code snippets, and techniques that we've picked up over the years. What we didn't know or weren't certain about, we found the best experts in the world and asked them for the answers. Then we packed the result into a 500+ page book. What's Next? We'll be adding more content to the 1.8 edition in the near future, hence the term, "early release". Everyone who buys the 1.8 ebook from us gets all 1.8 ebook updates. Once we're happy with the ebook, we'll release a print paperback edition, scheduled for mid-to-late May. We'll have a ebook/print bundle. If you buy the early release ebook from us, you qualify for the bundle. Order You can purchase the "early release" Two Scoops of Django: Best Practices for Django 1.8 PDF ebook at the Two Scoops Press store.