« Cal's Keynote Was So Funny That He Gets His Own Post | Main | Julia Stares Deeply into the Oracle of the Internet »

DjangoCon 2.0 - Django Core and the Green Screen

DjangoCon 2.0 - Django Core and the Green Screen

Sun 09.07.08 - Day 2 at DjangoCon. Live blogging below the fold. :o)

Sun Sept. 7, 2008
DjangoCon 2008

Mark Ramm
Keynote: Building a better framework

[This blogger arrived 24 mins into Mark's presentation]

...
Stuff people wanted yesterday:
"and someone has already solved these problems in Python & SQLAlchemy" - Mark Ramm
* singed cookie based sessions (Beaker)
* Automatic handling of the "dog pliling effect" (Beaker)
* Multi-database support (SQlAlchemy)
* Saving just dirty ORM objects

as Django developers,
Pay attention to the rest of the world
* Look into WSGI middleware (wsgi.org)
* Pay attention to TurboGears and Pylons
* Look outside of Python for inspiration, too.

Write Recipes

Where Django could go:
The future is not set
You get to choose what the future will be like
Will Django live in a separate world from the rest of Python frameworks? Outside of the Django community, Python people think that Django is a different world due to lack of dependencies and other bits.

How will Django relate to the rest of the Python web ecosystem
(Mark talks about EasyInstall - You can use EasyInstall in a clean, reliable way.)

Two ways to achieve excellence in design and execution:
diversity followed by selection
continuous (re)design

"Competition works through diversity and selection; Collaboration works through refinement and improving" - Innovation Happens Elsewhere, Ron Goldman & Richard P. Gabriel

True excellence...

How I would change Django:
Make modules less Interdependent

All the work that has gone into the Django ORM has made it the best Active-Record ORM out there right now. It is not sold or marketed as that. Ideally there would be separate packages for folks who don't want to install Django but want the functionality.

Make Request proxy the wsgi environment. The using a wsgi app in your app could be trivial. It could be easy but it is not.
The Environ dictionary be the place where the data actually lives.

Encourage people to use wsgi ware.
OR make a compatibility layer for Django middleware
I don't think it is a lotta a lotta work, but it make Django a part of the Python modern world.

Make Django better in Django and make it more usable to the rest of the Python framework world.

You get to choose!

{Ms. Jen notes here after a number of comments made during the presentation, "I don't think Mark Ramm quite understood that a certain Mr. Henderson was lovingly taking the piss yesterday."}

James Bennett goes up to the Q&A mike, Mark jokes, "We will need more than 10 minutes."
James brings up issues with Pylon and forking, external component. Mark says, "Buffet maybe wasn't the best idea ever." Then he talks about switching template engines.

***********

Technical Panel with lots of folk

Michael the Moderator starts by asking Simon W about Django OpenID
Simon: I am glad you asked about Django OpenID. [paraphrase] I haven't been keeping up on the code. Then he talks about what it is doing, the blogger didn't catch the details.

Michael the Moderator asks a long question of Adrian
Adrian: I am getting stuff done and giving people a clear path on how it could get done, rather than an academic path of how it could get done. In Mark's talk, he talked about what we should be doing. The dependency chart, I really don't buy it that much.
Simon: I think there is an interesting tension, I don't think any of us don't want to ____ with the wider Python world. It is a technical thing about how do we manage dependencies without getting into eggs and EasyInstall, which is not that easy.
Adrian: We don't want to put all our eggs in one basket.
Jacob: One of the things that I took away from Rails, they took away the paradox of choice. At PyCon 07, they talked about dependencies and choice [paraphrase - too much choice]. In Django, we have solved the paradox of choice: of which ORM should I use, what dispatcher should I use. This is great for newbies, but when you get someone who is as smart and talent as Mark, then...
Simon: But I think that is a separate issue from trunks and dependencies. I have had a problem with EasyInstall before and I got a 404 (?).

Michael the Moderator: about killing contribution:
Jacob: So we used this opportunity of DjangoCon for all of us core folk to get together and meet, some for the first time. We have somewhat cut off innovation, ... At what point do we say this is the right way to do it. In the case of Comments, that is a total borderline case. We didn't want to pull something out that we already had. I am not totally thrilled with it myself.
James: I look at it like Python standard library, you can use it or not. Does anyone here on this panel actually use the Python httpd lib? (yes, Malcolm). Ok we bless a package, it may not be as great as it could be, so then you could contribute another.
Simon: [Asks the audience how many folks rolled their own comments, rather than use the Django comments package]

Michael the Moderator: What is the philosophy about what gets included and what doesn't?
Malcom: Why am I being asked this question? I first engineered these options (part of Michael's question) without asking the others.... There is no like in Python, there is like in SQL. The attraction does leak. ... you are running a relational database, and some will leak out. You know how you will want to get your data out. .... [Sorry, Malcolm talks fast]
I am one of the more conservative people in this panel about adding stuff. If it can be done externally. I want to see what people are doing. We haven't added a lot. Truncated characters... it is kind of historical. I can see the argument to use truncated characters.
Adrain: It is a classic 80% solution. For more obscure SQL hookups...
Jacob: We are also reluctant to remove something that is already there. Then asks how many people use an obscure template character... What exactly do we lose for keeping it there?
Adrian: We get to maintain it.
Redhead: We lose the expectation of what else should be there.

Michael the Moderator: Schema evolution
Redhead: [Paraphase] Talks about Schema evolution model and migrations.
Simon: The demigrations, I avoided that. I hard coded a bunch of MySQL-isms. I would love to see something like the Django manipulation for table manipulation.
Redhead: There are not that many changes that need to happen for changing columns, but there should be an interface for that.

Michael the Moderator: Syndication framework is a nice design, but if you are trying to do something more complex. Are planning to solve?
Adrian: That is the fault of the design, I call that a bug.
Jacob: There is a lot in there. It is almost the same as it was back before the open sourcing of Django. The use of syndication has shifted since then. I think I really want to refactor this. That is one of my pet goals.
Malcolm: Right now we have a product named _____ (belltape?)...We are trying to work with two standards that don't actually mesh (atom & rss) contradictory goals. You have to decide if you are going to work in RSS or in Atom.
Simon: The Django template system should not be used to generate XML.
Malcolm. The simple XML is designed to do that.
Jacob: Mark's point earlier was that just because the Django code does not have dependencies, but my Django app has tons of dependencies.
Simon: Then we should practice what we preach, and generate good XML... It exposes it at a deeper level.

Question: Admin, off, sites, different from ... it seems to be optional to use in Django. Do you think taking some of the apps you call contrib and move them down one step in the namespace?
James: At one point, in the first release of Django these were in the framework, ... these got factored out into contrib apps.
Jacob: The goal was to use Django without a database. App engine. If we move those things back into core, then those folks are SOL. If we leave it in contrib, then .... just roll with it.
Malcolm: ... We have classes in a third _____, it is called Google Code. Why are these things in contrib, special apps, thrid party. Contrib is a dumb name. Contrib is Django.maintained. We are trying to make Admin separate and not have special blessing in the app. I think we have a enough levels already.
James: Trimming down. Hearing that word scares me, I am on the bug report, and I get suggestions about trimming down the Python Standard Library. {noises about this being BAD...}
Redhead suggests something. Jacob suggests a Panel Fight.
James then suggests that someone

Question: Search is a common thing on websites. What does this take to get this into Django proper.
Malcolm: If you do it right teh first time, you don't need search.
Jacob: If you have a huge brain like Malcolm's. Hopefully, we will get Django Search the point that we can propose it to contrib. It is not there.
James: Look around you. This is the house that Search built (speaking of the Googleplex), and it is a testament to how hard it is get it right. Search is not an easy or trivial thing to solve.

***********
Panel: Django in Journalism

Adrian Holovaty: Moderator
Matt Waite: San Gabriel Times
Maura Chace: Atlanta
Ben Welsh: LA Times
Matt Croydon: LJ World


Adrian: Because Django came out of a journalism environment,
Matt C: I don't think I should answer this.
Maura: I used Django before coming to the paper. Both, it does have extra credit because it came out of a paper but it has great features.
Ben: Yes. Almost a cult of personality. There is a knowledge that the newspaper would should change and when there is people in the newspaper world have an alternative future, that carries a lot more credibility.
Maura: The auto admin is a killer feature for the news room.
Ben: you have an audience where a lot of people will see it, there are Django products that could be sold to newspapers that could kick the (bad) competitors butts.

Adrian: What is the fastest turnaround time for a Django project?
Matt W: In four hours I mapped out a GeoDjango map for Hurricane shelters, then Faye turned away from us.
Matt C: Talk about something at lunch and turn it about by the next day's newspaper.

Adrian: Is your work flow models, hand it to the admins, then put in the data?
Matt C: Yes. These days we re doing a lot more looking at the structured data, Google docs, and then automate it - it does not require as much programmer intervention.
Ben: For the Memorial Day project, I had to sell it that we had a short turnaound period, is that we could do it quickly and then turn it over to data input.

Adrian: Journalists are probably the stupidest people technologically who are using the Django Admin. How does it go?
Ben: One of my fave jokes is that Matt and I came out of the investigative journalism world where they have been using computers since the 1970s - Computer Assisted Journalist. Only in the field of journalism do you manage to distinguish themselves for using Excel. The best person I have worked with has been open to change, said the other day, "I am really looking for us to Djangofy". To me that felt like a win.
Matt W: I tell people that if they can use a web based email account then they can use the Admin form. The Admin is a simple form.
Maura: We have a CMS and our journalists like Django better than the CMS.

Adrian: What are the top Admin features you would like to see.
No one answers.. Adrian says, "Its perfect you don't need anything"
Ben: you are always starting with 3rd party data, so there is a series of clean up and migration transformations when you are doing the analysis to write the story. Now I spend much more time preparing the data then putting it in the website.
The problem with LA is that the bureaucratic topography is a problem, you have LA City, LA County, Pasadena, Long Beach, etc. They all have their own police departments, etc. When I moved to LA, I new I had to learned the fragmented ______.

Adrian: Matt Waite on your blog and Twitter you always say you are a journalist, not a programmer.
Matt W: Python is the first language that I learned. I am a knuckle-dragging humanities major from the midwest. People around me were talking about Perl, about three days later "The hell with that", same with PHP. PYthon was the first language that I tried that early on Python syntax was what I thought it should be. The learning curve was a lot less steep, which made Django much easier. I know SQL pretty well, so it just went from there. I learned Django in the Z shaped learning curve. One day you say, I am going to implement this and it works as fast as you thought it in your head.
Matt C: I think it is significant that we have journalists who have learned Django and programmers who have learned the journalism world. It bridges the gap.

Adrian: What do you hate about Django?
Maura: I hate the syndication framework. Have you thought of making it more like a generic view.
Ben: The most exciting this was demigrations where you can change models without losing your data. I come to Django with a very large data set.
Matt W: Database Migrations: Tells story about working with the Washington Bureau Chief about models & fact checking & wiping the models away. Too scared to change some models due too much data.
Matt C: I hate to beat a dead horse, but migrations suck and we need to change it. If you spend all day writing Django, and then you have to maintain old Perl code, Django spoils everything else you have to do.
Maura: Please don't wait until so long for the next version.

....
Talking about Versions:
Matt W: Talking about running versions on separate servers.
Matt C: The last couple weeks on trunk have been very rough when a old code is deprecated or is dropped.
Marua: 0.96 would have been painful to run on trunk at work
Ben: We are running on 96, our Django gorilla environment is working on Media Temple.

********
Lunch & Lightening Talks

Interesting Lightening apps:
Lincoln Loop - Great photo upload app
Eeedit at Palchemy.net - Make text boxes extra happy

*******

Rather than transcribing the next presentation, I got into a good conversation about mobile app development with Ramin Firoozye, who gave the Lightening talk on Eeedit. Sorry, my love for mobile caused me to fall down on the live blogging job.

Now, 3:16pm, I need to get into my auto and drive south to SoCal, as I need to squeeze a week of work & meetings into the next 2 days before departure on Wed to Helsinki for Nokia Open Labs.

I had a very good time at DjangoCon 2008 and am sorry/sad to be missing the last set of panels & presentations of the afternoon. Big Thanks to Rob Lofthouse, all the Django folk, and the Googles for a great weekend!


| | Comments (0) | tech + web dev

Leave a comment

Welcome to Jenifer Hanen's Website

Tidbits

Subscribe & Other Bits

Atom | RSS 1.0 | RSS 2.0

2001 - 2008 © Jenifer Hanen :: Black Phoebe Designs, All Rights Reserved.

Powered By

Movable Type 4.23-en, Mac Russian Red Lipstick, Nokia N-Series, and Diet Coke.

Add Black Phoebe :: Ms. Jen to Technorati Favorites