mathematism

Feb 22

PyCon 2011 Interview: Daniel Greenfeld

The master of one-handed cartwheels takes time to answer a few questions about his talks at PyCon this year.

Daniel has been selected to give a tutorial, a talks and moderate a panel at PyCon 2011:

About the speaker

Tell us a little bit about yourself.

Since summer of 2004 I’ve had this weird compulsion to read Wikipedia’s recent death page every day. I didn’t get my driver’s license until 2010. And thanks to my mother’s keen parenting skills I suspect that oatmeal doesn’t stop growing.

I’ve been doing Python for nearly 6 years, 5 of them professionally. I started professionally on Django 2.5 years ago. I live in Los Angeles and am a co-founder of cartwheelweb.com, a consulting/training firm that specializes in Python and Django.

The talks

Why did you decide to submit a tutorial, talk and panel for PyCon this year?

I figured that if I submitted enough things then maybe one would be accepted. I took a shotgun approach and expected to miss the target completely. I put my heart into the submissions and I guess that paid off.

How did it feel to learn that your submissions were accepted?

Terrified.

I expected to miss. I didn’t expect to hit the bullseye.

PyCon is full of brilliant people who I respect and admire. You can’t walk into a room at PyCon and not meet people who don’t know more than you do on just about everything. Now the pressure is on to make a good impression on all these people who I consider role models and inspirations.

If I had hair on my head it would have turned white by now.

What should one expect to learn from your Pinax Solutions tutorial?

A better question would be “what should one expect to get from the Pinax Solutions tutorial?”

And the answer to that is “Lots of technical details and a lot of practice.”

We’ll go over the nuts and bolts of setting up a Pinax project. Then we’ll go over solutions that myself, Brian Rosner, and others use to solve project requirements. Basically, it will be a dump of some of the patterns and tools that work best in our day-to-day work. Even if you are using django-cms, Satchmo, or plain Django, there is material in it for you.

Then we’ll go into workshop mode for the rest of the tutorial. That means we help you build our project, and if a question you ask could benefit everyone, we’ll show everyone what you are trying to do. After the tutorial officially ends I’ll still be around to help out that afternoon and the next day’s afternoon.

What will you cover in your talk about djangopackages.com?

That it wasn’t just me.

I didn’t work in a vacuum, I had literally thousands of people helping me out. Django Packages was created by myself and my business partner, Audrey Roy, by combining a lot of packages into a single system. Which means I also had the open source Django and Python communities helping me out.

Besides that I’ll get into the Zen of Python, lessons learned, and the wildlife of Kansas.

Give us an overview of what to expect from the How to sell Python panel.

Five brilliant minds discussing how to get Python into the places where we want it to be. I think its safe to assume that people wanting to attend PyCon believe that Python makes a difference. My hope is that at PyCon 2012 someone will come up to me and say, “Hey Danny, that panel help me get Python into our organization and everyone is delight with what it’s done for us!”

PyCon 2011

As someone who has attended PyCon in the past, what keeps you coming back?

Discovering ideas and technology that takes my breath away. The chance to meet with old friends and make new ones. Finally, I always look forward to gushing over Guido van Rossum like a adolescent over Justin Bieber.

What talks are you looking forward to attending this year at PyCon?

See Daniel present

I’ve seen Daniel speak on a number of occasions, whether it was at previous PyCons or in Washington, DC before he moved to Los Angeles. I would encourage you to attend one of his accepted talks.

If you haven’t already, register for PyCon! If you’re on the fence, check out the full list of talks, tutorials and other general information. It’s bound to be another great year.

Feb 21

PyCon 2011 Interview with Corey Oordt

A question and answer session with one of the many talented speakers at PyCon this year.

Corey Oordt is Deputy Internet Director at The Washington Times. He has been selected to give two talks at PyCon 2011:

About the speaker

Tell us a little bit about yourself.

I’m just a man with aspirations of adequacy who works at The Washington Times. If I were a tree, I’d be a Catkin-yew. My favorite color is ultra-violet.

The talks

Why did you decide to submit talks for PyCon this year?

I was under the assumption that accepted speakers received a $25,000 speaking fee, a free trip to Hawaii, use of a personal assistant for one year and membership in the “Deli Meat of the Month” club. But my submissions weren’t entirely motivated by deli meats. I enjoy public speaking and have found that writing presentations helps me understand the material better.

A presentation, to me anyway, is about conversation: it is the start of a healthy sharing of ideas regarding the subject matter. And PyCon attendees have such a diverse set of backgrounds and perspectives, I can’t wait to hear what they have to say.

How did it feel to learn that two of your talks were accepted?

Surprise, followed shortly by fear, nausea, a rash and facial ticks; although in retrospect some of that may have been from lunch. I really didn’t think Documentation Driven Development would get accepted. The idea was really still germinating when I wrote the proposal and I wasn’t sure I communicated it clearly. I had presented Pluggable Django Patterns several times before and reviewers could at least see the slides.

What will you cover in Documentation Driven Development?

The core idea is writing documentation before code. I briefly cover the origins of the idea, why I think it is good, and then practical tips on getting started. This is truly the way I currently develop, so I’ve tried to be more aware on shortcuts that I use.

Give us an overview of what to expect from Pluggable Django Patterns.

At The Washington Times, our team has developed a somewhat unique perspective on developing projects and applications in Django. We want our applications to be as pluggable as possible, so it is easy to mix and match functionality in our projects. The presentation covers a little of the philosophy behind what makes an application truly “pluggable” and goes quickly into code examples showing how to accomplish specific hurdles.

PyCon 2011

As someone who has attended PyCon in the past, what keeps you coming back?

The sushi. Wait, I hate sushi. That’s right, it’s the people. The people that remind me of sushi. While the talks themselves are great and interesting, it is hearing the challenges and successes of others between sessions, over lunch, at the bar, or in the restroom that keep you pumped. Each person there has interesting ideas to relate, and I really want to hear what they’ve learned from experience. I don’t think most people realize how much they have to contribute to the community. I know I many times feel like there is no way I could contribute as much as some of the outstanding people in the Python community.

What talks are you looking forward to attending this year at PyCon?

Other people are giving talks, too? I really can’t be specific because I want to see way more than I’ll have time for. I’m not really big on the panels, unless I happen to be on the panel, that is. But my favorite topics this year are deployment, cloud computing, and Ian Bicking’s brain. I was really hoping for a vivisection, but I understand that the facilities don’t allow for it.

See Corey present

Corey and I both work in Washington, DC, and I have seen him speak on a number of occasions, often at django-district. He has a great blend of technical information, style and wit to his presentations. I would encourage you to attend either of his talks or chat with him over a beer.

If you haven’t already, register for PyCon! If you’re on the fence, check out the full list of talks, tutorials and other general information. It’s bound to be another great year.

Jan 22

Go to PyCon!

PyCon 2011 is nearly upon us! The conference returns to Atlanta in March with tutorials, talks, panels and sprints, among other awesomeness.

Check out the full list of talks, tutorials and other general information. While you’re at it, register! If you register by January 25th you’ll get the early bird rate.

Talks

Lots of Python developers post the top five talks they plan on attending. As daunting a task as it is, I’ve shortened my list to the following:

Panels

Panels are a great way to get varying perspectives on a topic. I really enjoy their format and would encourage you to attend at least one panel. There are five this year at PyCon:

Tutorials

I have heard good things about the tutorials at PyCon but haven’t had the change to experience them myself. At $100 they provide affordable face-to-face learning with a subject matter expert. This year I’m attending (Re-)Introduction to C for Pythonistas and possibly another.

Open space sessions

One of my absolute favorite aspects of PyCon are the open space sessions. Attendees to create their own sessions by adding a post-it note to a board displayed in the hallways of the hotel. Rooms are available where others with similar interests can gather to discuss the open space topic.

The PyCon experience

I really haven’t even begun to scratch the surface of what a great experience PyCon can be. In addition to the talks, panels, tutorials and open space sessions there are lightning talks, poster sessions, the expo hall and sprints. Oh, and you get to spend time with fellow attendees from diverse backgrounds over grub and booze (and sometimes bacon).

So if you’re not registered for PyCon 2011, get on it! I’ll see you in Atlanta!

Dec 22

Static Site Generators

A practical comparison and thoughts on 10 tools.

I’ve been thinking quite a bit about how to simplify the technology behind this site in a way that would allow me to focus on writing. django-mingus served me pretty well over the last year and a half, but I wanted to get away from managing a Django app, a database and other requirements related to running a dynamic applicaiton. I decided pretty early on that I wanted to move to a static site generator (SSG). What follows is an account of some research I did and ultimately the tool I landed on.

Criteria

Before I set out to research I created some personal criteria that would help me decide on the right SSG for me:

  • Easy to test drive (like < 5 minutes)
  • Good command line interface (CLI)
  • Active development
  • Active and responsive community
  • Ability to easily deploy changes
  • Extensibility
  • Good documentation
  • Support for markdown (for easy conversion from django-mingus)
  • Support for various markup formats
  • Blog-aware

Contenders

Through some googling and responses to my tweet I was able to generate a decent list of SSGs for comparison:

The above list consists of nine Python-based tools and two Ruby-based tools. It is by no means exhaustive. There are tools out there in many languages. I just chose to focus on Python and Ruby.

Basic comparison

Before I could evaluate the SSGs based on my personal criteria I needed to compare core features. I created a Google spreadsheet to compare features including templating system, syntax highlighting and configuration file type. This allowed me to trim the list before digging into the final contenders more thoroughly.

It’s kind of hard to digest the spreadsheet in that small space. You can also view it as a full page

Based on the core feature comparisons I was able to easily eliminate Blatter, Chisel, Markdoc, Pelican, Pilcrow and Tahchee.

Further examination

To me, this is where things got fun. Looking at my personal criteria I could dig into the tools and further trim the list. I attempted a basic install and setup of each of the following and provide pros and cons for each based on that experience.

Blogofile

Blogofile has quite a few things going for it, aside from the love I’ve been seeing it get on Twitter recently. It has a dead-simple install, extensibility through controllers and filters, good docs and a good CLI. On the down side for me it’s not as active as I’d like and uses Mako templates.

Hyde

Hyde is a port of Jekyll to Python. It has decent docs, is Django-based, has an active commit log and good markup support. The CLI left something to be desired and to me felt like it included too much. Honestly the ramp-up time once I started to dig in exceeded what I was personally willing to invest.

Jekyll

Jekyll is written in Ruby and has spawned a Python port as I mentioned above. I have pretty much the same view of it as Hyde but it has the added advantage of solid docs and a very active community. With the combination of my perceived ramp-up time and actual lack of Ruby skills Jekyll didn’t seem to fit the bill for me.

nanoc

nanoc has thorough docs, a dead-simple install, extensibility through helpers and filters and a superb CLI. In addition it is actively worked on and boasts a discussion group and IRC channel that are responsive. Concerns for me with nanoc were the erb/erubis templates and my lack of Ruby knowledge.

Sphinx

I love ReST and I love Sphinx. I use it all the time for documentation. Sphinx’s docs and community are great. The lack of blog-awareness and the fact that it’s a ReST tool primarily for documentation nixed it for me though.

Showdown

After I got a chance to work with each of the remaining contenders I whittled the list down to Blogofile and nanoc. These two had a good combination of all the features I was looking for in addition to being insanely easy to install and use.

I dug even deeper with both of these tools, converting all of my blog posts to work with each and learning more about their extensibility and deployment features.

In the end I decided to go with nanoc for a few reasons:

  • It has a superior CLI. With it I can create pages, switch versions, autocompile (local server + auto-compilation of changes) and get config information.
  • Using a built-in rake task, I can deploy to my server with an rsync-based command.
  • I prefer the way the extensibility was handled with helpers and filters.
  • I really like the Rules file. It allows you to specify how items get compiled and where they get compiled to.
  • The main author, Denis Defreyne, was very responsive and helpful through both the nanoc discussion forum and IRC.
  • The project is actively developed with an active commit log, version roadmaps and a ticketing system.
  • The opportunity to explore another language (albeit one that has made me run in the past).
  • Above all, nanoc just felt right to me. I tend to go with my instincts and they told me nanoc was the right tool.

Recommendation

If you’re looking to move your project to using a static site generator I’d recommend defining what a solution means to you and backing up from there. There are several worthwhile tools out there. Analyze, research and be sure to give each of your top contenders a whirl. Chances are you will find something you like in each of the tools you evaluate.

Until next time

Thanks to everyone for responding to my message on twitter and specifically to Jeff Forcier for recommending I look into nanoc. If you want to talk more about static site generators with me feel free to ping me on IRC (richleland or in #nanoc) or shoot me an email.

Jun 03

Joining the National Geographic Team

It's official. Later this month I'll become a member of the team at National Geographic.

For nearly four years I’ve had the honor of working with an extremely talented team at Discovery Creative. It’s with mixed emotions that I announce I’ll be heading downtown to join the National Geographic team on June 21.

Reflection

I can say without a doubt that my time at Discovery made me a better developer in every sense of the word. When I started at Discovery, our team consisted of myself, our creative director, and our web producer. Our size meant each of us would wear many hats from architecture and systems administration to design and development.

Over the next four years we’d produce some great work and the team would grow to a small army of skilled individuals, known within the company for quality and innovation. I wouldn’t trade the lessons learned, experience gained or friendships made during my time at Discovery for anything.

What lies ahead

As a member of the National Geographic Global Media group I’ll be working on the various natgeo.com properties. The current team has done an amazing job of taking the history-rich content National Geograhphic is known for and putting it online. I’m hoping to bring my background of development, planning, and design to an already skilled team.

My position at National Geographic will be a collection of firsts for me including working for a non-profit, dealing with scalability and working in a non-agency environment, to name a few. I’m looking forward to all of the challenges that lie ahead.

Moving on

I’d like to wish my current colleagues at Discovery nothing but the best. I’ll miss the team here for sure. But hey, now we can have cross-company mustache-offs* and make excuses to get together and drink. To my future colleagues at National Geographic: I’m looking forward to joining the crew… see you in a few weeks!

* Due to the slow growth of my facial hair, I won’t be able to help you win the mustache-off.