Dear dotCloud Customers,

We are going open-source.

It has been a wild week for dotCloud. Of course as we prepared to open-source Docker, the container technology that powers the platform, we hoped it would be well received, like ZeroRPC and Hipache before it. But nothing could have prepared us to the magnitude of the response. Now, 6 days, 50,000 visits, 1000 github follows and 300 pull requests later… we think we get the message. You want an open-source dotCloud – and we’re going to give it to you.

Today, as the first step in our new open-source strategy, we are announcing an important change to our free Sandbox. In the coming weeks we will hand it over to the community as an open-source project which can be deployed and hosted anywhere. As part of this transition we will be sunsetting our free hosting tier – see below for details. The resources freed by this transition will be re-invested in our open-source roadmap.

I want to emphasize that this transition does not affect our Live and Enterprise flavors, and it does not change our business model. Our core competency is and will continue to be the operation and support of large-scale cloud services, for tens of millions of visitors, 24 hours a day, every day. We intend to continue expanding that business, and we believe the best way to do that is by embracing open-source.

1. Going open source

Our approach to open-source is simple: solve fundamental problems, one at a time, with the simplest possible tool. The result is a collection of components which can be used separately, or combined to solve increasingly large problems.

So far dotCloud’s open-source toolbox includes:

  • ZeroRPC, a communication layer for distributed services;
  • Hipache, a routing layer for HTTP and Websockets traffic;
  • Stack.io, a communication framework for real-time web applications
  • Docker, a runtime for linux containers.
  • Recipes for automatically deploying NodeJS, Django, Memcache and dozens of other software components as cloud services.

All these components are already available, and the open-source community is using them to build alternative implementations of dotCloud’s development sandbox. We want to make that even easier by open-sourcing the remaining proprietary components – including our uploader, build system, database components, application server configuration, and more.

To learn more about future open-source announcements, follow the Docker repository and join the Docker mailing list.

 

2. Sunsetting the hosted sandbox

In order to properly focus resources on our ongoing open-source effort, we will be phasing out the hosted version of the free Sandbox. Going forward, the recommended way to kick the tires on dotCloud will be to deploy a Live dotCloud application. For your existing Sandbox applications, we can provide an easy upgrade. If you don’t feel ready to pay us quite yet, take a look at what the community is building.

Below is a calendar of the sunset. As usual, our support and ops team will be happy to assist you in every way we can during the transition.

 

Date Change to Sandbox
April 8th (no change)
April 22nd All Sandbox applications will be unreachable via HTTP. You can still access them via SSH to download your code and data.
April 25th All Sandbox applications will be destroyed.

Note that we’ve pushed-out the sunset dates since first posting this blog. We’ve removed the ‘no push’ week of April 8 and extended HTTP access to the 22nd. 

How to Graduate from the Sandbox

We’ve made it easy for you to change your Sandbox application to a Live flavor if you want to keep it running on the dotCloud platform:

  1. add your billing information to your account and
  2. file a support ticket telling us which applications to migrate. Please use your account email address and give the full URLs to the applications.
  3. We’ll do the rest.

If you don’t want to move to a paid service, you can use several techniques to download your data and files before they are destroyed.

For those of you who have been using the Sandbox as staging for paid applications, we’re sorry for the inconvenience. We hope our hourly billing will help keep your staging and testing costs down, and that developing in a paid service will ease testing related to scaling.

Looking Back, Looking Forward

We want to thank you, our sandbox users, for trying out the dotCloud platform. We hope that you will enjoy experimenting with our open-source version, discovering the awesome features of our Live flavor, or both!

We look forward to helping you be the most awesome and productive developers out there.

Happy hacking!

/Solomon Hykes

CEO, dotCloud

ClubbingOwl_COlogo_purple

Things in nightlife are very subjective because it is a business based off of people first, and products (alcohol) come second, so it is hard to build an algorithm to replicate the job of an operator or doorman as far as reservations via a website go” @NYNightLife

The Bar and Nightclubs industry is a $23Bn fragmented industry with high turnover. IBISWorld’s Bars & Nightclubs market research reported that there are approximately 65,774 family-owned and operated businesses in US, with 98% of them employing fewer than 50 employees. The competition for clientele is extremely keen, especially with high concentrations of clubs in metropolitan cities.

It is tougher for nightclub owners than restaurant owners to turn a profit as there are fewer hours of operations and fewer days of operations per year. To add to the problem, nightclub clientele tend to occupy tables until closing and /or occupy their tables longer than dining in restaurants which means an empty table is lost revenue.

According to Chef’s Blade, there are many fixed costs that nightclub owners cannot change such as rent, equipment, insurance, inventory, payroll, and others. Clubbing Owl aims to provide   a full suite of venue management and outbound marketing software to nightclub owners so that they can positively impact cash flow.

CheckIn_largeUnlike other traditional club management software that serves back office, Clubbing Owl is designed to serve 3 communities – club-goers, nightclub owners, and promoters.

For club-goers, Clubbing Owl’s platform can confirm guest admissions through SMS text messaging. The system is integrated in real time with guest list management so that no guests is ever turned away at the door. The integration with Facebook allows Clubbing Owl to update the club-goers’ Facebook status once they have been confirmed. The status updates not only let their friends know about the clubs they frequent but also allow club owners and promoters to tap into their guests’ network of friends.

For promoters, Clubbing Owl can help promoters with their guest list management. Promoters can send SMS communication to club-goers as soon as they are confirmed on the guest list.

For nightclub owners, Clubbing Owl provides live chat so that the entire staff and extended team of promoters can communicate in real time using smartphones and tablets. Clubbing Owl’s Host Check-in app is also synchronized with guest confirmation.

Continue reading

PyCon 2013 March 13-21 in Santa Clara, CA

We couldn’t be more excited for PyCon 2013!

If you’re new to PyCon we suggest catching up with PyDanny’s Beginner’s Guide to PyCon. It’s a 4-part series but his most recent posts cover the actual conference days. Here’s his guide to Friday and Saturday events.

Open Spaces

Open spaces are a way for people to come together to talk about topics, ideas or whatever they want. There’s a board by the registration booth where you can schedule an open space.

The open space schedule is like an un-conference. Anyone can suggest a topic, claim a room and dazzle attendees. You can find the tentative schedule here.

Team dotCloud will have our own open space on Saturday night from 9-10pm in room 202 to showcase “Buildbot on dotCloud”.

Buildbot on dotCloud

Continuous integration and testing is critical to application performance. At dotCloud, we have implemented Buildbot at a large scale to make our platform more reliable and robust. You should too.
In this open session, dotCloud engineer Daniel Mizyrycki will share how we implemented Buildbot at a large scale within dotCloud. He will also show how to easily integrate Buildbot as a service on dotCloud.
Ultimately we will open-source this project on GitHub.

Plus a special Lightning Talk….

We have been working on something big here at dotCloud and we can’t wait to unveil it at a Lightning talk session during PyCon.

Stop by booth #157 for more details and to meet with our engineers.

logo

dotCloud gave us the solid and flexible abstraction layer we needed to get our business off the ground. We went from a working prototype to a professional product in just under four months.” Brian Schwartz, Founder & CEO

Titan modernizes traditional IT procurement by taking the process online through a competitive marketplace similar to what NASDAQ has done for institutional trading by providing a view into market participants’ quotation activity. By enabling the most qualified local suppliers to compete for IT projects nationwide, companies can now get the highest quality IT services for the best possible price. The company name comes from the Greek gods. Titan represents incredible strength, and one can’t spell Titan without “IT”.

The founders of Titan have a deep background in private equity and enterprise IT procurement. Since most companies lack expertise in technology, large IT purchases are often made with insufficient information, which results in non-competitive pricing or overpaying. This is in stark contrast to financial trading transactions where market efficiency prevents sellers from charging more than fair market price.

Envision a restaurant chain looking to procure software to optimize their inventory management operations. Generic software isn’t going to bring enough efficiency to their unique operational structure and hiring a local supplier for ongoing customizations to make it fit is an expensive and endless endeavor. Alternatively, a global supplier can build custom software to the exact specifications, software that will scale as the operations grow more complex, but add a prohibitive premium over development costs.

Titan eliminates this tradeoff between quality and price by allowing companies to bid out their IT projects in a competition where only the qualified suppliers can participate. As a result, companies can get high quality IT resources that meet their requirements and at the fair market price.

How Titan Works

Titan lets companies post their IT project along with any requirements, and then qualified suppliers have 2 weeks to submit competitive bids. Once the winning bid is chosen, Titan processes the work contract and handles milestone payments through their escrow service. It’s a win-win for buyers and suppliers, and is 100% free to use.

titan_product_screenshotTitan specializes in the supplier due-diligence process, which is particularly important to get right when it comes to large IT projects. In order to bid, suppliers must prove they are both financially secure and qualified for the particular project. Titan’s qualification process includes performing annual business credit checks, interviewing the team, and verifying past work references. For example, when a supplier makes a claim on Titan to have worked with a Fortune 500 client, this means that Titan has already verified this claim with positive references provided by the supplier.

Continue reading

MidWestPHP 2013

Let’s leave sunny California and take off for snowy Minneapolis, Minnesota, for the MidwestPHP conference. If you’re snickering and picturing a bunch of bearded woodmen axing PHP code in frozen cabins, I’ll stop you right there.

Beards were produced, no doubt about that; and I hear that some people there are rather talented with a hockey stick. But there were speakers and attendants from literally all over the nation (and abroad!), and even though PHP is not my main trade, I picked up a lot of invaluable information during the conference.

Assuming that many of you might not be PHP programmers, here is my attempt to give you an original summary of my experience.

Joel Clermont learned us how to learn

For starters, this keynote talk is a goldmine for anyone—not only the PHP programmer. You might already know the beneficial effects of pair programming and mind maps; but did you know that being happy makes you a better learner, and that even you might have heard otherwise, working under pressure  is actually bad for creativity and learning? So, no more of that “I’m waiting the latest minute to turn in that thing”—it actually hinders your productivity.
When Joel recounted his experience with the first computer he ever worked with (I think it was an Apple II), I remembered that I lived a similar story with the MO5 (but you had to be in France 25 years ago to know about that other computer), in the way that when you turn on the thing, you land at the prompt of a BASIC interpreter, and you cannot do anything but program. It makes me wonder about the educational value of a netbook which would—instantly!—boot and show up an IPython prompt…

Joel’s slides are available at https://speakerdeck.com/jclermont/learning-how-to-learn

Omni Adams got us hooked on git hooks

I already knew about git hooks (and how you can build your own simplified PAAS with them, for instance), but I also knew that I didn’t know everything about them! And I was eager to hear other people’s use cases. I won’t repeat Omni’s talk, but a couple of ideas sparked from the talk:

  • If you want to share the same set of git hooks between multiple repositories, without defining those hooks as being global (i.e. in your per-user ~/.gitconfig), what about defining them in another repository, and then have $REPO/.git/hooks be a checkout of that repository?
  • Sometimes, you want to change the content of a file, or maybe even just a symlink, depending on the branch you’re working on; but you don’t want to track that into your repository. For instance, you want to switch some config.yml file depending on whether you’re working on the production or development branches. Well, a post-checkout hook can do the trick, and will do whatever you need whenever you switch branches!

Omni’s slides are available at http://mordor.digitaldarkness.com/git-hooks/.

Steve Meyers taught us how to optimize MySQL databases

I really enjoyed that talk (and the conversation that ensued). Why? While I prefer to work with PostgreSQL, I also get involved with MySQL on a regular basis. I have a snarky answer to MySQL performance issues: “migrate to PostgreSQL!”; not because PostgreSQL is better (that would be a matter of personal opinion and heated debate!), but because I know how to optimize the heck out of it, while I’m generally pretty clueless in front of the decisions of MySQL’s query planner. I know how to read the innards of a 30-lines EXPLAIN query with PostgreSQL, but I can’t figure out what to conclude out of the same EXPLAIN with MySQL. Well, I didn’t magically turn into a MySQL Grand Master, but listening to Steve certainly took me closer to that!

If optimizing queries gives you headaches (don’t worry, it’s not an uncommon condition), you want to have a look at the Percona tools instead. pt-query-digest, for instance, can (among other things!) analyze the output of tcpdump, detect SQL queries and their responses, and extract some performance information from that. That’s just a little example of what this tool can do, and there are other tools in the kit!

Steve’s slides are full of healthy, good stuff and can be found at http://dl.dropbox.com/u/1564228/Database%20Optimization.pdf.

David Stokes sold us on MySQL 5.6

MySQL 5.6 comes with lots of improvements. Okay, given the choice, the fanboi in me would still want to migrate to PostgreSQL, but first, I would suggest to upgrade to MySQL 5.6! ☺

Seriously: replication is now much easier to setup and operate, thanks to scripts like mysqlfailover.

As David pointed out, virtually everyone has a home-brewed cousin of that script running in production, to fix up a slave and promote it to master (when the current master fails). Therefore, it made sense to provide and support one script upstream, and let everyone use that instead.

There are many other nifty features, but one of them caught my attention, being original and useful: time-delayed replication. You can setup a MySQL slave to apply changes after a fixed delay. With a delay of 1 day, it means that if you DELETE or UPDATE some data in your master database, the change will be applied on the slave 1 day later—in other words, the old data will still be there for 1 day, should you change your mind (or realize that you made An Awful Mistake).

Jason Rhodes proved that WordPress and its deployment weren’t necessarily evil

As the speaker acknowledged himself, WordPress has the reputation of being “for amateurs”. I worked on WordPress deployment on dotCloud, so I was curious to see what a “Tier 1” WordPress deployment looked like. Jason proved that WordPress deployment can be as slick as Rails (he uses Capistrano, by the way!).
Jason’s slides are available at http://notrobotic.com/talks/2013-03-02-wpgalaxy.html, and they also include a TON of VERY useful links covering many different aspect of WordPress deployment, development, and customization. My go-to place next time I have to deal with the beast!

Sara Golemon told us everything we wanted to know about HipHop PHP (and a bit more)

I knew that HipHop was essentially a PHP/C++ translator, implemented by Facebook to withstand their crazy load. I learned a lot more! The first incarnation of HipHop PHP is HPHPc. HPHPc was indeed a code translator. Compiling the Facebook codebase “took 20 minutes on a cluster of 100 machines”, which is kind of annoying when you compare that to the usual time it takes to see the changes after you modify a .php file (i.e. the time it takes to press Ctrl+S or your editor equivalent for “save file”).

To address that issue, Facebook implemented HHVM (HipHop Virtual Machine), a virtual machine executing a special kind of bytecode (HHBC)—like the Java Virtual Machine, if you will. Instead of producing C++ code (which gets compiled to x86 code), this new design of Hip Hop produces HHBC and runs it on HHVM. HHVM has JIT translation and optimizations (like the JVM), to provide performance as close as possible to traditional compiled languages. HHVM also comes with an interpreted mode to address the issue of compilation time.

The performance gains are tremendous (~500% if you stack together the improvements brought by HipHop and the improvements brought by recent versions of PHP), and the memory footprint is also considerably better, since HipHop doesn’t execute one process per concurrent request, but relies on threads instead, and has an API for asynchronous events (i.e. a given request can wait for an event without blocking a thread). HipHop also lets you write better code, since it brings features like static typing to PHP.

Sara wisely reminded us that before using HipHop to get better performance, you should first check if there are other low-hanging fruits. In other words, make sure that your performance bottleneck is indeed CPU and RAM usage, instead of e.g. database queries!

By a pleasant slip of the tongue, she also revealed us that the secret of HipHop compilation was “bleeding edge virgins, err, versions” ☺

Chris Hartjes convinced everyone that they should build testable applications

There is a strong emphasis on “Test Driven Development”, and why it’s so important to write tests for your apps. But Chris tells us that writing testable applications is even more important; since if your applications are hard to test, you will take every excuse to not write the tests.

One of the most important rules (in my humble opinion!) is to address dependency injection correctly. In other words, if your code uses any kind of external resource (call to databases, API, whatever), the handles used to access those resources should not be sprinkled all along the code.

Assuming that  your code is object-oriented, those resources should be passed to constructors: at least, you will have a unique place to find them all, and it will be way easier to implement mocks.
You will find many other insightful information about testable applications in Chris’ slides, at  https://speakerdeck.com/grumpycanuck/building-testable-php-applications-1 (and while the examples are in PHP, the design principles are good for any language).

I showed what PAAS could do for PHP developers

I delivered a talk explaining how PHP deployment had changed in ~15 years, and showing step by step how to deploy a sample application (which used Symfony2, MySQL, and MongoDB, with the Doctrine ORM) to dotCloud. Since dotCloud was sponsoring the conference, that talk even made it to a keynote—which is great since I got a larger audience, but also means that I had to tailor my talk for that audience, instead of doing a purely technical talk. I did my best to not turn that in an awful “dotCloud sales pitch roadshow”, since I know how people can be reluctant about those “second-day sponsored keynotes!”

The slides, including detailed examples showing how to run a full-blown Symfony2 app on dotCloud, are available below

…And I met awesome people

I hope that my very short summaries convinced you that the talks were great; but now I have to pay tribute to the organizers (who really went out of their way to make this an outstanding event), as well as the other speakers and participants for both on-topic and off-topic discussions. Subjects included deployment and devops, but we also tackled hockey, homebrewing, and aged rums (although unfortunately, no sample of the latter could be produced to make a point☺). I do hope that there will be a 2014 edition, and if that happens, you should be attending!

About Jérôme Petazzoni
JeromeJérôme is a senior engineer at dotCloud, where he rotates between Ops, Support and Evangelist duties and has earned the nickname of “master Yoda”. In a previous life he built and operated large scale Xen hosting back when EC2 was just the name of a plane, supervized the deployment of fiber interconnects through the French subway, built a specialized GIS to visualize fiber infrastructure, specialized in commando deployments of large-scale computer systems in bandwidth-constrained environments such as conference centers, and various other feats of technical wizardry. He cares for the servers powering dotCloud, helps our users feel at home on the platform, and documents the many ways to use dotCloud in articles, tutorials and sample applications. He’s also an avid dotCloud power user who has deployed just about anything on dotCloud – look for one of his many custom services on our Github repository.
Connect with Jérôme on Twitter! @jpetazzo

A couple weeks ago, I presented “Distributed, Real-time Web Apps with stack.io” at San Francisco’s February Cloud Mafia Meetup. If you’d like to learn more about dotCloud’s stack.io project you can download the slides and view a short demo video here.

About stack.io

stack.io is an open-source communication framework that allows to rapidly build real-time web applications with a strong RPC flavor.

It possesses two core supporting technologies. The ZeroRPC library on one hand lets us build a robust service-oriented architecture on the back-end. This makes it simple to decompose complex code into functionally simple components in a flexible, language-agnostic way. The socket.io library, on the other hand, enables real-time communication with web clients through the use of  WebSockets (and gracefully degrades for older or less capable browsers).

stack.io also provides powerful functionality on top of its RPC layer, such as streaming responses, built-in authentication and request middlewares.

View the Slides

View the Live Demo

More information

See our website for documentation, and check out the source code on GitHub.

About Joffrey

Joffrey is a software engineer at dotCloud. After having worked on several projects involving real-time communication in node.js, including one in partnership with Salesforce Europe, he joined dotCloud to work on a real-time communication framework that would ultimately become stack.io
He has a masters degree in computer science from the French engineering school EPITA.

Check out his GitHub repo at https://github.com/shin-

logo-blue

“With dotCloud, AirportChatter was able to set up the backend systems in 2 weeks so that we can begin coding by Week 3.”  Ygor Lemos, CTO AirportChatter

AirportChatter was founded in 2012 by four travelers living across three continent  - North America (Toronto and Miami), South America, and Australia. The company focuses on two pain points for frequent air travelers, the lack of information and the lack of time.

Not just a directory of ATMs, duty-free shops, food court, merchants, AirportChatter is becoming the one-stop API for all airport transactions. Travelers can access the airport’s activity feeds, browse restaurant menus, redeem retailer and restaurant coupons, and share ratings and photos right directly from their mobile device. The first supported platform from AirportChatter was IOS and within 2 weeks of their launch in December 2012, 14,000 IPhone users have already signed up.

airportsAirportChatter provides services for 30+ US airports today, with plans to service up to 80 airports by mid-year. AirportChatter started  integrating with US airports initially because application programming interfaces (APIs) for those airports already exist. For example, integration with the Federal Aviation Agency (FAA) provided weather information to AirportChatter. In the upcoming months, AirportChatter will be customizing their API extensions to talk to the European and Asian airports because those APIs do not yet exist.

AirportChatter’s Tech Stack

Ygor Lemos, their CTO remarked that small engineering teams could potentially benefit from working with a PaaS. If he had to starting from scratch with instances from AWS, the tiny engineering team (of one) would have taken up to two months just to set up the infrastructure before any code can be written.

“With dotCloud, scaling AirportChatter to support tens of thousands of mobile users happened almost instantly.  Engineering cycles that would have gone to configuring the load balancers are better used in software development.” says Lemos. With a few commands on the dotCloud CLI, they can scale the app from a few instances to hundreds of instances. Two months post launch, they have already released another feature called Radar which runs on top of AirportChatter. The Radar feature allows users to schedule ad hoc social and business meetings before boarding or while waiting for their next flight.

cAirportChatter actively monitors HTTP response times because mobile users tend to want instantaneous access. dotCloud’s Dashboard monitors the application and provides AirportChatter with granular views of the HTTP traffic from the last hour, last 24 hours, last week, last month which means any delay in the system can be detected immediately.

Continue reading

If you’ve picked up on the buzz about “PaaS” (Platform-as-a-Service), and wondered how it works (or considering implementing one of your own, or choosing a vendor), my talk will put the spotlight on specific technologies that are relevant to PaaS (just like virtualization is relevant to the cloud ).”  Jérôme Petazzoni, dotCloud Engineering

Video - SCALE 11x_cropJérôme Petazzoni’s session on “Lightweight Virtualization with namespaces, cgroups, and unioning filesystems” at Scale11X took place on February 23, 2013.

Scale11x interview with Jérôme is posted here.


But if you didn’t make it to Los Angeles last weekend, we’ve posted the slides to the presentation below.

In it’s first year, Paris-based CloudConf will create a unique, affordable and enjoyable conference for developers and devOps. This is a conference by hackers for hackers and we’re proud to send our CEO Solomon Hykes to speak.

There will be no marketing speeches, no buzzword cover-ups.

CloudConf will have the CTOs, architects and hardcore developers of the most interesting projects and platforms on stage, talking about the real tech of the Cloud.

In addition to Solomon, attendees will hear from tech luminaries lie Doug Cutting, Creator of Hadoop and Chairman od the Apache Foundation, Joshua  McKenty, Co-creator of OpenStack, and Shay Banon, Creator of ElasticSearch.

The conference takes place in the beautiful Théâtre des Variétés on June 7th with workshops following on June 8th.

Théâtre des Variétés

Get your early bird ticket

For a limited time you can reserve your spot at CloudConf 2013, enter the promo code [dotCloud] and get 15% off when you register here.

tsd-cover

I have known Danny Greenfeld (pydanny) for a few years now, I have read his blog, watched some of his talks, and even was lucky enough to work on a project with him. When I heard that he and his fiancée Audrey Roy  were writing a book on Django best practices, I read it the first chance I could.

The book is called Two Scoops of Django, and it is currently available as an early access alpha version in ebook form. If you buy it now it will only cost you $12.00, and you will also get the final version of the book when it comes out. To find out more, or to buy the book head over to their website, http://django.2scoops.org.

The book is based on the soon to be released Django 1.5, and it covers everything from installation to deployment. If you are new to Django and want to learn it, this wouldn’t be the book that you read first, they are expecting that you have at least some Django knowledge going in. The book is targeting folks who already know Django, and want to write better Django code. It’s written in reference form, where each chapter stands on it’s own. If you have a question about the best way to do a certain type of model go to the models chapter, a question about templates, go to the templates chapter, etc. I personally like books like this, because it allows you to pick it up, find your answer and get back to work quickly.

Even though the book isn’t for beginners it doesn’t mean they shouldn’t read it. Once you have a good understanding of what Django is, and you are starting to write your application, it would be good to go over the different sections of the book to see what the best practices are for that section of code you are working on.

I don’t know about you, but I learn best by example, and that is what this book does, it gives you lots of examples for all the common situations you come across when writing a Django application. This allows you to learn, from the beginning, the best approaches to writing a Django application, and lets you skip all of the mistakes your normally make along the way. I wish they had this book when I started using Django.

In the book they go into the different ways to deploy your Django application. They mention dotCloud as a possible deployment solution, which is pretty cool. But, they don’t give you too much information on how to deploy your application to dotCloud. I can understand why, this is a book, and because deployment processes change often, they didn’t want to date their book, and have the information be wrong. So, if you read the book and want to know more about how to deploy your Django project to dotCloud, I would recommend reading our deploying your Django project to dotCloud tutorial , which will guide you through the process of getting your Django project up and running on dotCloud. The tutorial is currently based on Django 1.3 and 1.4, but we will update it to include Django 1.5, once it is officially released.

I have been programming in Django for over 5 years now, so I wasn’t sure how much new stuff I was going to be able to pick up, but I was surprised that I was able to pick up a few new tips and techniques. One chapter I really liked was the chapter on Class Based Views (CBVs). I have never been a fan of CBVs since they came out, and I think that was because the documentation wasn’t really good, and I didn’t see how they were better then the functional views. After reading the chapter, and reading the resources they recommend. I have a much better understanding of what CBVs are, and when, and when not, to use them. For me, that chapter alone is worth the cost of the book.

If you are currently working with Django, or you plan on working with Django sometime in the future, I recommend this book, you won’t be disappointed.