The Changelog: Software Development, Open Source - Django Dash, Python, Ruby (Interview)
Episode Date: September 23, 2010Kenneth and Wynn caught up with Daniel, Christian, and Matt from Pragmatic Badger to talk about the Django Dash, Python, and Ruby....
Transcript
Discussion (0)
Welcome to the ChangeLog episode 0.3.6. I'm Adam Stachowiak.
And I'm Winn Netherland. This is the ChangeLog. We cover what's fresh and new in the world of open source.
If you found us on iTunes, we're also on the web at thechangelog.com.
And we're also up on github.com forward slash explore. You'll find some trendy repos, some feature repos from our blog, as well as the audio podcasts.
If you're on Twitter, follow Change Log Show. And I'm Adam Stack.
And I'm Penguin, P-E-N-G-W-Y-N-N.
Fun episode this week. Talked to Pragmatic Badger, the fellows over there that put on the Django dash.
That's kind of like the rails rumble,
right?
Right.
Or the node knockout,
which we covered in Oh three,
three,
these 48 hour coding competitions.
Yeah.
We're also going to be talking to the rails rumble guys whenever their
competition wraps up too.
So it'd be kind of fun as well.
Looking forward to that.
I guess this is the first year with rails three.
We'll see what people can do in the new version of Rails and the Rails Rumble.
Yeah, absolutely.
I also want to mention that we're working with Jason Seifer of the Dev Show and Ruby Show of Fame.
He runs GeniusPool.com.
It's a job board that connects employers and job seekers in a very targeted way.
They have the Genius Pool Network, which gives extra opportunities for promoting your job to the right kind of audience.
So we're a part of it, and the Dev Show is a part of it.
The Ruby Show is a part of it.
So if you're hiring a developer, head to GeniusPool.com right now, post a job.
And if you check the box next to the change log for an extra $100, we'll read your posting live on air in a future podcast.
GeniusPool.com.
Fun episode this week.
Should we get to it?
Let's do it.
All right, we're joined today by Christian, Daniel, and Matt from Pragmatic Badger,
the organizers behind Django Dash.
So Daniel, why don't you go first, introduce yourself, who you are, and why we should care.
I'm Daniel Lindsley. I'm the primary organizer of the Django Dash.
I've been running the contest for three years, but this year have been joined by Matt and Christian.
And I'm primarily a developer, but I do a little bit of design if Christian lets me touch the mouse again.
I'll go next then. I, Christian Metz, I'm our designer.
I make things pretty and worry about how people interact with whatever it is we're working on.
And slow things down from time to time.
But it's all good.
And I'm Matt Croydon.
And I know better than to touch Christian's templates.
So, Daniel, tell us a little bit about how the Django Dash came about and how it got started and how many years you've been doing it.
Okay.
So in 2008 was the first Django Dash.
I was actually a full-time Ruby on Rails programmer at the time,
but I'd been in the Django community ever since 0.90 was released of Django
back in, I think, 2006.
And I kind of was looking around,
and I had just finished a Pi Week competition,
which is a make a Python-based video game contest that you get a full week
to do.
And I was really excited off of that because I'd enjoyed it a lot.
And I looked around and saw the Rails Rumble, obviously, as well as a couple other contests
and thought, man, it'd be really awesome if the Django community had something like this
because there was no contest like that.
So by myself in my side time, I put together a site, got some people interested in it, and we did the first Django Dash in 2008.
Had about 40 or 50 contestants, or I should say teams competing.
There was probably about 75 people and had some hiccups,
but it went really well and wanted to continue on doing it for the community.
So you guys just wrapped the 2010 competition.
How many entries did you have this year?
Originally we had approximately 55 teams sign up.
However, just as the effect of being an event between a lot of people,
final competing teams were about 43, I believe, and 75 people competed out of the 105 that
had registered. So a little bit down from last year's competition, but we had a really
strong showing from everybody, so it was okay.
So give us an overview of the rules of the competition.
So the Django Dash has a couple of critical rules. First of all, it's a 48-hour contest. So you get
48 hours based off of central time to start a project. You get no code, no pixels ahead of
time. You can do on-paper designs, but no digital assets ready before you start the
competition. Teams can be up to three, though we've had some really strong two and even one
person competitors in the past. Third party code is allowed. New to us this year in our rules is
that you're allowed to use DVCS. So via GitHub or Bitbuckets post commit hooks, you're allowed to use DVCS via GitHub or Bitbuckets post-commit hooks.
You're allowed to just have your own repo, commit to it as you want through the competition, and then we just pull down the data.
And also new to us this year is that all entries must be open source.
So whatever you build during the 48-hour competition should be publicly available to others, have a license and all that jazz.
So what CVSs were you using in previous years?
In the previous two years, we had standardized on subversion,
partially because it's the minimum barrier to entry.
Django itself is hosted in subversion just simply because everyone can get to subversion,
whether you're using Git or Mercurial
or subversion itself or something else. It's like lowest common denominator. So it's easy for
everyone to get up and going. It also, in the previous years, made it easier to judge exactly
how much people were committing as well as just getting a full that no one was cheating, making
sure things were shut down on time and stuff.
Because I was all by myself, I needed something that was easy and I could kind of like control
through the process.
But a lot of people wanted DVCS and I did too because I hate running subversion servers.
So this year we decided, hey, this is the year to go DVCS and via post-commit hooks, it worked out really great with both GitHub and Bitbucket.
Matt and I weren't officially involved last year, but we did jump in to help when Daniel was working on this.
And subversion was one of the things that was a pain point.
Just making sure everybody had accounts, everybody's things were working correctly, and it was quite a bit easier to let them put their own repos on GitHub or Bitbucket and just pull in their commits as they happen.
I'm curious, what was the ratio of Git repositories versus Mercurial in the projects that were submitted? There were a lot more Git repositories.
I believe out of the 55 teams that were signed up, we had 53 GitHub and two Bitbucket.
But the two Bitbucket teams that competed actually did commit to their repos quite a
bit, and one of them was in our top 10 team citrus.
So we wanted to provide better support for that,
and there have been in the past many more people that wanted it,
but this year it just fell out that there were more Gitters than Mercurialers.
So who wins in a Bitbucket versus GitHub deathmatch?
I think GitHub wins.
GitHub wins?
Yeah, I think statistically GitHub has taken the match.
So Bitbucket, I'm not as familiar with Bitbucket.
It comes from a Python heritage, I guess?
Yes, they are a full Django shop.
The primary guy who runs it, Jesper, is actually the gentleman who uh created piston which is a big uh relatively
popular django api plug a little app um they run on django one two a recent version of piston
full mercurial and they they shoot to provide many if not all the same features that github does
and their their site is actually really quite good. It's mostly, it actually
literally comes down to, do you prefer Git or Mercurial? And they do a really good job of
supporting stuff. They're very responsive and they just launched on some new hardware. So their site
is really fast now. So they're really great people to work with. I can't say enough good
things about Jesper as well as Chris on the GitHub side.
And they're good. They're great sponsors. They're very responsive. They were happy to host everybody's
repos and just happy things all around. So Daniel, you mentioned you were full-time Ruby on Rails
before organizing the Django Dash. So I guess you're a Rubyist and a Pythonista. So what is the best feature from Python that Ruby has not yet ripped off?
Man. White space indentation. Oh, sorry. I think my favorite is explicit imports.
In Python code, you know, you can sort of import everything from somewhere, but you generally import the things you need.
And it makes it much easier to take someone else's code, figure out what they're using and where it comes from and what it relies on.
And it definitely makes it something I appreciate about Python.
My preference, personally, is actually django's mod or not django i'm sorry python's module system um
i prefer the way that code is structured in a python module to the uh more ruby way where you
have a top level uh file that's named what you want the package to be named and then there's
the lib folder that has everything kind of strewn inside inside of it. Versus with Python, it's just like, hey,
drop an init.py someplace and you can structure the module a little bit, I guess, more sanely to
me. Like I don't just look at a module and it's not just lib and in there is who knows what. Like
I can see exactly how the structure looks. It's small and you can do it other ways, obviously,
but. So from a web development perspective, what was it like transitioning from Rails to Django?
All the bike shedding and the BS on each side, really, Django and Rails are a lot more alike than they are separate.
You have two really dynamic, powerful languages that follow very similar setups.
I mean, you've got your database forms, the foundation of everything.
Above that, you've got a really competent ORM system.
Controllers versus views are just two different ways of looking at things.
Honestly, you write your application logic in very similar ways.
Middleware is there and both of them both have decent template systems. And really, I find it
personally relatively easy to move between them versus moving between other things. So I think,
I think, yes, there are a lot of differences, but I think they're very minor in comparison to
a lot of other frameworks out there that people use.
Do you think that today's web developer really needs to be a multi-language developer?
Absolutely. Absolutely. That's my opinion.
I don't know how Christian and Matt feel on that, but my personal goal is to learn at least one new language or one new framework or one new way of looking at things every year
because I view myself primarily as a programmer,
and it just comes by extension that I work primarily within Python and Django.
But being well-rounded opens you to new ideas, new perspectives, new ways of attacking things,
and I think just really improves you personally overall.
I think it's great to be knowledgeable in lots of different languages
and be picking up stuff.
I've been doing a lot of, along with the rest of the world,
a lot of Node.js stuff recently,
and it's great to come into a language and an environment
and sort of look at, okay, what here is the same?
What's the same as sort of everything I know and what's new here and, you know, kind of focusing
on, you know, what's a little different and, you know, and what you haven't maybe done before.
You know, I think the listeners might think we have a conspiracy to mention Node in every episode.
We really don't. It's just, it's that hot. One of the future episodes we're putting together right now is an async slash evented web
episode where we'll talk about Twisted and talk about Event Machine and Node and some of those
others. But why is Node so popular? Why is it hitting such a chord with developers right now?
I think for me, it's, you know, it's fun and extremely easy to do the right thing and do,
you know, really proficient things.
I know there's lots and lots of async platforms out there,
but I think, honestly, none of them is as fun to work with as Node is.
I personally prefer the really strong callback and event setup
that is present in Node.
I've done Twisted a little bit before. I've done some geovents stuff or eventlets in node. Um, I've done twisted a little bit before I've done some G event stuff
or eventlets in Python. Um, and I looked at event machine for a while while I was doing Ruby stuff
and that in, in, in conjunction with all the threading models and the multi-processing model
and stuff, I really, to me, callbacks and events make much more sense. And it is, like Matt said, it's a lot of fun.
The hype is kind of crazy, but there are some really good libraries out there right now,
and it's coming along, and it's interesting.
So, Christian, you're the designer of the group, right?
I am.
So what, I guess, this would be perfect for the white space aware community in Python.
So what inroads, if any, have Haml and Sass made in the Python community?
Haml, not very much at all.
And I think it's just because a lot of us, myself included,
feel like it's too much abstraction from the html that i want to get at um sass
however is sort of more polarized there's people who like a lot and people who hate it a lot and
um we've been using it uh for one of our own projects uh forknit.com so plug for that
uh which is a recipe management site. So it's my first
time actually working with SAS
in a serious use it to power
a project sense.
And I'm really liking it.
I don't feel entirely
comfortable with it yet in the sense that I
do things
and I feel like I need to reorganize them
a bit more and use it better because
it's still new and a different way of thinking about things than I have been for years.
But enjoying it, and it's definitely helping a lot.
What integration with your Python project do you have?
Are you just using it from a command line standpoint, or are there hooks in your project?
Right now we're using it from a command line.
While we're doing local development, we run Compass to keep things compiled,
and we just check in the compiled CSS.
We don't do anything live with SAS right now.
And don't let Christian lie to you.
He's got some serious development chops, so he's not just Mr. Designer either.
Awesome.
So what's the state of Python?
Is it growing?
Because Ruby seems to be not cooling off.
What's the state of the Python universe?
I think that Python is still continuing to grow.
I've heard of a lot of new and bigger sites that have been launching.
I know lots of people that have been getting into it.
It seems like to me there's more and more prolific projects.
And it's not just django driven like there's other people who are using it with other frameworks
like flask or web pi or um uh just like doing app engine stuff and stuff and i think it's growing i
think a lot of people are coming around to it and it's just like ruby You have a huge number of positive gains from using this active dynamic language
that's seeing a lot of work with a lot of different VMs,
and it's a really good time for dynamic languages.
Speaking of virtual machine optimization,
what are your thoughts on the development of PyPy and Unladen Swallow?
Awesome.
I'm continually blown away. I don't actively use either of them,
but have installed both of them in the past. And just watching how their performance numbers are
getting better and better all the time and how much more compatible they're getting. I mean,
PyPy sat for a long time being really fast, but it was just the subset of Python. You couldn't use it with a lot of other modules, and some stuff was just horrifically
slow. But they're improving stuff across the board these days, and it's getting better and better and
better. So it's really impressive. I'm personally very excited about the development of PyPy in
particular. The main reason for me is that I'd love to contribute to the Python core, but I can't
because I'm not a C developer.
I'm pretty sure the Ruby equivalent to PyPy is Rubinius, correct?
Yeah, Rubinius.
I've been watching that too just because I try to keep at least interested in what the Rails and Ruby community are doing.
They're very analogous, and it's really interesting watching both of them develop.
What Dash projects really stood out to you this year?
So Read the Docs is pretty impressive because they've taken Sphinx documentation
and basically given you a site where everyone can host their
docs easily with just a post-commit hook on their end. So that's interesting.
The team that won Great Big Crane has a phenomenal continuous integration system.
If you go to their website, it's actually, it's just an about page, which does them a big disservice.
But if you install it, man, it is crazy.
It's actually better than Hudson, in my opinion.
I'll have to give that a try.
I've been spending a lot of time with Hudson lately.
Will it email you when a test fails?
Yeah, yep.
And it has a really nice user interface.
I like it better than Hudson, so I'm a big fan of Hudson.
So you say it's not pip-based?
Yep. I wish it were pip-based, but for 48 hours
and what they were probably used to, still phenomenal.
So those two are good.
I kind of crushed on Minoria,
which was done by two of the lead Pinax devs.
They did an open source massively multiplayer city building game.
So you could think of it as like an RPG meets SimCity meets 8-bit graphics.
And so that was pretty cool.
I really enjoyed the ServerTail project.
It was definitely cool to see a Django project focusing more on some of the real-time stuff
that people might think Django isn't so good at, and I think that proved them wrong pretty well.
How did the entries this year compare to years past as far as quality?
I think we saw much higher quality this year.
The top eight or nine sites easily could just go out and launch today
and have something that's really, at least really impressive,
and many of them could probably charge or put ads on that
and be doing pretty well for themselves,
whereas in years past it's been a smaller number.
We had a lot more teams compete and produce full working projects by the end of the competition
this year than we have any previous year.
And it was just, it was really, really good.
Judging was a very, very difficult process this year.
Not because it was hard to work with the projects,
but because they were so good in the quality of the code and design
and everything was so much higher.
In past years, have you seen any of the entries actually evolve
into full-blown projects?
I know that's often the case in the Rails Rumble.
I wish I could say yes, but it hasn't really happened.
From the previous two years' worth of stuff,
there's only a small handful
of sites that I'm aware of that are still online and active. And a lot of them didn't see much
future development as far as I saw. I think that might change this year, but just because of what
was entered and what was there, but time will tell. You know, one of the things I like about
these competitions is they allow you to work on other teams outside of, especially if you have a entered and what was there, but time will tell. You know, one of the things I like about these
competitions is they allow you to work on other teams outside of, especially if you have a small
company that you're used to working with the same folks day in and day out. A lot of times these
types of competitions allow you to form virtual teams outside of that company and work with other
people and pair with other people and exchange ideas. So sometimes the upside is beyond even what you create.
Oh, totally.
It's really impressive to watch how the teams have actually become
more geographically distributed and more global.
We had a lot of non-Western teams enter this year.
We had a couple teams from Australia.
We had a couple of teams from Russia, from Europe, from just all over.
And I think we even had an Asian team or two.
And it was just, it was really excellent to see just a lot of
separate people working together and hanging out in the IRC channel was fun
because there was just people constantly talking and hanging out in the IRC channel was fun because there was just people
constantly talking and collaborating, even across teams, helping each other out. And it was,
it was really great to watch. You know, I've, I've found that to be a plus if you've got a
really widely distributed team, as far as, you know, being in the States and Asia,
Australia and Europe, then if you have that around the clock coverage,
folks can code by other folks catnap.
So really your project keeps going.
One of the things I want to talk about this or speak to this year is that by having the code hosted in the open on Bitbucket and GitHub,
and then on the,
when we're running the change of the commit list on the website,
all those linked back to the actual commits on the hosting sites.
So either on GitHub or Bitbucket.
And like last year, since it was all in subversion and all sort of hosted in private, you couldn't actually see what each other was doing.
You could see, yes, somebody committed.
We ran a commit log, but it wasn't a I can click through and actually see what they're doing. So there's a lot more people, you know, watching each other's commits, talking about them,
doing a lot more, um, interacting in the, in the RSC channel this year than there has
been in years previous.
And that was a lot of fun.
Cool.
This is the part of the show where we kind of turn it upside down and ask our guests
what's on your open source radar.
So Daniel, we'll start with you.
What outside of, um, Django dash has got you excited it can be in the
python community could be anywhere that uh you just want to check out i've been doing a lot of
stuff lately not because of the hype but just because it's interesting it's fun and you get to
you get to play with a different domain of projects than i normally get to i missed gopher
just gonna get that out there gopopher was fun. Wasn't it?
Um,
the,
the links browser.
Yeah,
dude,
I was all,
all about the,
the browsing of my terminals.
I was right.
A little boy,
but,
uh,
open source wise,
uh,
at work,
we just,
uh,
published our first iPhone application.
We use phone gap to do that.
So I've been,
uh,
um,
definitely interested in seeing what
PhoneGap is doing. It's actually really clever.
I'm not sure if you guys have looked into it at all.
But it allows
HTML and
JavaScript to talk to Objective-C
and implement native
iPhone widgets and do other things, but you can
still run a lot of your app using
HTML and JavaScript and things
you already know.
So that allowed us to get something out there
that we wouldn't have otherwise been able to do.
And I'm actually definitely interested in being a bit more involved in that community
and helping pick some of the things I didn't like about it.
But there's a lot of promise there, and I'm excited to see that happen.
Unlike the rest of the world, I haven't had a chance to actually do anything in Node yet,
which makes me sad because I love JavaScript.
I do think JavaScript is probably the most important language out there right now,
not just because of Node, but because of how much browsers are improving
and how much JavaScript can affect everything that we do on the Internet.
So I'm excited to do something with that at some point.
And I do actually think that's one of the appeals of Node,
is that there are a lot of front-end developers and designers who have picked up programming from the JavaScript side and have had a certain amount of hesitance to get into other languages
and dig deeper in things.
And I feel like having something there in JavaScript allows them to reuse some of that
and get more involved and helping to fuel the interest, I think.
It's really amazing what we can do with JavaScript when we're not shackled to the DOM.
Indeed.
You know, I came across the Django Dash,
I guess, in episode 015 with Leah Culver.
She had mentioned it,
and that was the first I'd heard of it.
I was excited to hear that Python
had its own competition.
So did Leah compete this year?
She did not.
She was actually signed up,
and she has competed, I believe,
both of the last two years. She and Chris Wanstroth were set, were signed up last year
and they did a leafy chat was, which was one of the top three finalists. They were signed up for
this year and I believe they had something else that came up that they couldn't get to. So
understandable. Well, thanks for joining us today, guys. Fun competition. Hopefully we'll
get some more Python on the changelog. See it in my eyes So how could I forget when
I found myself for the first time
Safe in your arms
As the dark passion
