The Changelog: Software Development, Open Source - Django Dash, Python, Ruby (Interview)

Episode Date: September 23, 2010

Kenneth and Wynn caught up with Daniel, Christian, and Matt from Pragmatic Badger to talk about the Django Dash, Python, and Ruby....

Transcript
Discussion (0)
Starting point is 00:00:00 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,
Starting point is 00:00:47 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
Starting point is 00:00:57 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.
Starting point is 00:01:14 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.
Starting point is 00:01:42 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.
Starting point is 00:02:25 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.
Starting point is 00:02:57 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.
Starting point is 00:03:28 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.
Starting point is 00:04:11 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.
Starting point is 00:04:46 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.
Starting point is 00:05:38 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
Starting point is 00:06:17 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.
Starting point is 00:07:00 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.
Starting point is 00:07:53 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
Starting point is 00:08:26 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
Starting point is 00:09:10 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
Starting point is 00:10:14 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.
Starting point is 00:11:05 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.
Starting point is 00:11:47 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
Starting point is 00:12:29 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.
Starting point is 00:12:58 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
Starting point is 00:13:39 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?
Starting point is 00:14:18 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
Starting point is 00:15:02 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
Starting point is 00:15:20 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,
Starting point is 00:15:44 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.
Starting point is 00:16:02 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
Starting point is 00:16:48 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,
Starting point is 00:17:21 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.
Starting point is 00:17:59 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.
Starting point is 00:18:49 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?
Starting point is 00:19:09 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.
Starting point is 00:19:42 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
Starting point is 00:20:20 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
Starting point is 00:20:49 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
Starting point is 00:21:12 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.
Starting point is 00:21:48 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
Starting point is 00:22:24 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,
Starting point is 00:22:59 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
Starting point is 00:23:32 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
Starting point is 00:23:51 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,
Starting point is 00:24:07 I was all, all about the, the browsing of my terminals. I was right. A little boy, but, uh, open source wise,
Starting point is 00:24:16 uh, at work, we just, uh, published our first iPhone application. We use phone gap to do that. So I've been, uh,
Starting point is 00:24:24 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
Starting point is 00:24:38 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.
Starting point is 00:25:00 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,
Starting point is 00:25:37 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.
Starting point is 00:26:13 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,
Starting point is 00:26:24 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

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.