PyCon 2007 wrap-up

I’m back from PyCon 2007. It was a busy weekend, with 593 Pythonistas attending the conference. I took a fair amount of notes, but I’ve pulled out some highlights below:

From Ivan Krstic’s keynote on the One Laptop Per Child project:

  • Python is the language of the One Laptop Per Child (OLPC). Everything that can, will be done in Python… and there’s a “view source” button on the keyboard (view layout) so you can view (and edit) the source of your current running application.
  • The filesystem (which supports versioning) is called Yellow, and will be released withing a week or so. The GUI is called Sugar, and is available on http://dev.laptop.org/ to play with. You can download the full image (or build the environment on Linux.)
  • The OLPC supports 802.11s mesh networking.
  • The hand crank was removed for case durability. The OLPC’s are designed to last five years, but the torque from the hand-crank would have stressed the plastic case too much for it to last that long.
  • The first OLPC’s will start shipping in August of this year!
  • The OLPC hardware was getting ~1100 pystones before optimization. They are now up to ~2300 pystones (on a 366 Mhz AMD Geode processor.) (Note: This means they have better Python performance then Python for S60 is seeing on current S60 phones.)

From the Web Frameworks panel:

  • James Tauber, “Reinventing the wheel is great if your goal is to learn more about the wheel.”
  • Jonathan Ellis, “When you control the whole stack you can innovate faster.”

From Adele Goldberg’s keynote:

Public school education is so bad that real eLearning solutions can’t go to the schools — they need to be outside of schools so that you don’t have the traditional censorship that comes with public schools — and you don’t have the associates with the bad experiences kids have while at “school”.

From Jacob Kaplan-Moss’ talk, “Becoming an open-source developer: Lessons from the Django project”:

  1. Use good tools. “Open source is better because it’s better.”
  2. Avoid dogma. Don’t get stuck on what language something is implemented in.
  3. Work with (and hire) smart people. The model in open source is that if you’re smart, people listen to you. That’s rough if you’re not smart… But also means that it’s worthwhile to mention when you’re an expert on a topic.
  4. “Methodologies” suck. Ex., MVC is cool, but Django abuses it because it doesn’t fit so well with the web.
  5. DRY — Don’t Repeat Yourself. The one methodology to use.
  6. The business case for open source. You have to make one (to your company.)
    • Money. You’ll get recognized and sell services because of it. (Ex., Ellignton wouldn’t be as successful without Django.)
    • Free labor. (Sad to think of this way, but true when you have an interesting project.)
    • Self-improvement. Knowing that peers will review your code makes you much more careful about the code you submit. This makes the code a lot better.
    • Geek cred — gaining credibility within the geek community makes it easier to hire great people.
    • Moral Argument — If you built a business on open source — it’s time to give something back.
    • Figure out where to draw the line — Django gave away the tools, but not all the apps.
  7. Selling open source to other companies. Microsoft’s FUD had been quite successful in some areas. Counter the “communist” argument with a “freedom” argument. Focus on the freedom of data — your data belongs to you; there is no vendor lock-in. Open vs. Lock-in is a better argument then Open vs. Closed.
  8. Create a community. This doesn’t just happen because you setup a mailing list. (Gave example of thanking people who post anti-Django blog posts and asking what they didn’t like.) Don’t say anything that would get you kicked out of a bar.
    • Avoid monsters (trolls, vampires, etc.) Detect them early, and ignore them.
    • Spam can’t be an afterthought. Collaborative tools require spam filtering from Day 1. You’ll get spam. Lots of it. Google Groups is pretty good about cutting out spam.
  9. listen to the community. But smartly. Sometimes the vocal majority doesn’t represent the wishes of the whole community. Django’s magic-removal was a big risk, driven by the community. You also have to be willing to ask for help. Sometimes you don’t feel comfortable delegating tasks that you think suck — but not everyone has the same definition of “what sucks” — sometimes there’s someone who actually WANTS to do this task!
  10. Handling community contributions. You need a defined method for how you take contributions. It helped the Django project when they adopted a system for differentiating between patches that are controversial, and those that aren’t. (ie., simple bug fixes vs. design decisions.) A ticket reviewer makes this decision.
  11. Learn to be comfortable saying ‘no’ — there are plenty of Python web frameworks, and maybe someone’s needs are better handled by another framework. “If everyone can check in features, you have PHP.”

From “The absolute minimum an open source developer must know about intellectual property”:

  • It’s a lawyer’s job to figure out what will go wrong with your plan. They are professional pessimists.
  • Only the “claims” in a patent are covered, not the stuff in the “specification.”
  • A header file is a “purely functional” expression, thus NOT-copyrightable.
  • If you don’t protect your Trademark, you lose it. This is why companies have to send cease and desist. The “get a first life” situation was important because Lindon explicitly granted them a license to use the Second Life trademark in the parody, thus they were able to demonstrate that they were protecting their mark.
  • If you tell someone how to do the work (ie., “work for hire”), then you own it.
  • An independent contractor owns their work unless the contract specifically assigns the rights to the company.
  • The person who made a patch owns the patch. By giving it to you, you get an applied license to use it, but because it’s implied, it’s fuzzy as to what you can do with it.

From Robert M. Lefkowitz’s keynote:

  • Only 2% of the population can read source code. (And free software doesn’t matter if no one can read it!)
  • Proprietary software values function. Free software people value the building of the “community of learning” around the software, even if it has fewer features.
  • The traditional view is that computer literacy is about one’s ability to use applications, rather then to program. If this is right, then what’s the point? Computers might as well be printing presses.
  • In literature, you read the greats (ex., Shakespeare), then try to write like them. So in computer literacy, who are the greats? If we were going to make every high school students memorize a program, what would it be?
  • Great programmers break the rules elegantly. Bad programmers break the rules without realizing it.

About in Helsinki

I happen to be in Helsinki this week, and unlike back home, there’s lovely weather here right now. It might not be nice enough to justify the hassle of air travel, but it’s nice enough to start a blog post with. However, like many other parts of the world, Finland has seen unusually low rainfall this year. The locals keep telling me that it’s the least rain in over 100 years — and when the Finns are complaining about the heat and freakish weather patterns, the realities of global warming become strikingly apparent. Although, if they start discovering gold under the melting ice caps, Finland could easily become the next California.

On a brighter note, in one of those “it’s a small world” moments, I happened to hear that Matt Biddulph (www.hackdiary.com) was speaking at the Helsinki Institute for Information Technology, and fortunately I was able to stop by. Matt gave a nice talk about “the Open Data Movement” — the idea that opening free access to data will be just as important in shaping the future internet as the open source software / free information movements have been.

Matt in action (and a little bit of Jukka’s ear, for you hardcore PyS60 stalker types ;-):

Image404

While I’m sharing pictures… Here’s a few more images I snapped with my N90 while walking about town:

A quick shot in front of the main train station:

helsinki

A crowded tube stop:

Image405

Image406

Ghosts in the street:

peoplecrossing

GPS + Compass for location-aware mobile search

Found this nice piece on an application of geo-aware (location based) mobile search:

What’s that? In Japan, phone has answer

“If you stand on a street corner in Tokyo today, you can point a specialized cellphone at a hotel, a restaurant or a historical monument, and with the press of a button the phone will display information from the Internet describing the object you are looking at.”

The technology is a combination of GPS + compass + internet connectivity. With the GPS chip on-board, the phone knows where it is, and with the compass it can tell which direction you are facing. Using that information, the phone can perform a very accurate location-based search.

It would be interesting to combine this technology with what the ZoneTag folks are doing on location-based image recognition. It’s pretty easy to imagine mobile devices that can tell exactly what you are looking at, translate signs, give directions, and pull in community feedback to help navigate and explore the world. Anyone who’s experienced the joy of wandering foreign cities can appreciate the value in having your mobile keep an eye out for restaurants and activities nearby that you won’t want to miss!