Plone runs Brazil

September 28, 2013

Plone, baby, you still got the power to amaze.

I saw this tweet by André Nogueira (@agnogueira):

And it’s true. The President of Brazil announced the web portal, and at the bottom, you see that it is powered by Plone. I’m at National Airport, on the way to Atlanta, on the way to Brasilia for the conference. And that’s a nice thing to see.


Me on the web, 20 years ago today

September 2, 2013

September 2, 1993 is my first recorded post about the web, asking a question answered by Marc Andreesen.

As backstory, I was a Navy officer waiting around to start flight school. I was part of the “Top Gun” generation: in 1986, lots of silly young men go watch Top Gun, then four years later the Navy has an incredible surplus of pilots. Great foresight there, Navy. For over a year I got paid to go shark fishing in Pensacola, which really was as awesome as it sounds. Thanks, taxpayers!

Ultimately my eyesight went over the allowed limit before my start date arrived, so I had to find something else to do in early 1992. As it turns out, Pensacola was home to the “Navy Internet Manager”. I transferred over to that group with a task of getting some valuable services onto that crazy Internet thing. Email, telnet, DNS, etc. Then gopher. Then the big argument. gopher+ versus this new WWW thing.

The guy in the cubicle next to me ran the DNS domain. I vividly remember, in early 1993, rolling my chair around the partition wall and asking for “What’s that?” he asked. Hilarity ensues. I’ll talk about my experience with that in another post next month.

New blog posts: Chris, Tres, me

August 12, 2013

Last week, Tres and I wrapped up a little website for Agendaless, based on Pyramid and Substance D. Not very ambitious site, but still a lot of fun working in Substance D.

We put up some blog posts:

  • Chris wrote a really thought-provoking article about our experiences when open source and consulting rub up against the sad state of patent shakedowns. Someone like Chris writes and gives away a multi-million-dollar code base. When it is time to do some consulting, he’s asked to indemnify the small, custom against patents as part of the contract.  The yearly insurance cost is over half his yearly income.
  • Agendaless is turning 7 in a couple of weeks. Tres did a little retrospective.
  • 11 years ago I moved to France, with a focus soon thereafter on large-scale project management.

PyCharm 3.0 EAP2 supports Pyramid

August 2, 2013

Confession: I’m an IDE user. Years of Emacs with occasional flirtations with IDEs (Komodo, PyDev) always led me back to Emacs. PyCharm (with the requisite 4 GB RAM upgrade for the Java tax) is the one that stuck.

PyCharm has never had any specific Pyramid support, until now. The upcoming 3.0 version will have some support for Pyramid, and the latest early access preview makes this available. Here is a screencast I just made demonstrating the support:

Screencast showing Pyramid support in PyCharm 3.0 EAP

In this demo I show:

  • Creating Project using “Project type” of Pyramid
  • Making a virtual environment under Python 3.3.2 (using pyvenv) for the new project
  • Telling PyCharm to install Pyramid into the project
  • Choosing one of the Pyramid-provided “scaffolds” to generate a working sample
  • Using the PyCharm-generated “Run Configuration” to easily execute the generated
  • Using the PyCharm-generated “Run Configuration” to start the Pyramid project and view the home page in a browser
  • I also show a reminder to bring in stuff for the office omelets (my 3 chickens are laying eggs faster than we can eat them)

Two caveats I covered:

  • There is a bug, now fixed, in the run configuration about working directory. The next EAP should include the fix.
  • If you want the scaffold to generate a sample, it is important to click “No” when PyCharm warns you about an existing directory. (This only happens if, like I do, you use virtual environments stored in the project directory.)

I don’t know how much other support JetBrains plans for Pyramid in PyCharm. I doubt they’ll get Chameleon support, for example. But for those trying to get started quickly, this really eliminates a lot of monkey business related to virtual environments, getting easy_install/pip into the virtualenv, getting the sources and running a scaffold, etc.

Video and source for my PyCon Pyramid tutorial with a twist of Python 3

April 8, 2013

(Updated: forgot some links.)

PyCon was a whole kettle of fish this year, happy bouncy fish that drive in RVs and stay up really late.

I gave a Getting Started with Pyramid tutorial at PyCon. The fun twist: I based it on Python 3, which Pyramid has supported for about a year and a half. I have a feeling that this might have been the first PyCon web tutorial that targeted Python 3. (I also supported Python 2, which about half the attendees used.)

Video here and source docs/code here.

To tell the truth, everything went surprisingly smooth on the Python 3 side. My first real headache wasn’t Python’s fault. Homebrew’s pyvenv command won’t let you install distribute into the virtual environment (and unfortunately, despite being told it works fine with a source Python, they simply closed the ticket but re-opened in another ticket.)

My only other issue was process-related. I used Sphinx for my tutorial material. I decided to use Python 3 for the Sphinx part as well. The released version wasn’t respecting my build pickles (even after I deleted them), but an install from Sphinx master solved the problem.

All in all, quite cool. I used PyCharm to the fullest extent possible for all the coding and Sphinx docs, and PyCharm hung along with Python 3 quite well.

So the open question…is 2013 going to be a year that Python 3 starts to emerge?

Python 3 for my PyCon Pyramid tutorial

February 18, 2013

Going to PyCon? Looking for a good tutorial to sign up for? Interested in Python 3?

I’m giving a Pyramid for Humans tutorial at PyCon, Wednesday morning. It’s going to be a lot of fun. As extra spice, I’m going to give a try at targeting the tutorial at Python 3, which Pyramid has supported for almost a year and half.

If you’re looking for a rich web framework and you think 2013 is a good year to start kicking the Python 3 tires, come hang out with us.

I’m doing a Pyramid-Python3 talk at DC Python Feb 5

January 18, 2013

We’re getting out-and-about more in 2013, talking up Pyramid and whatnot. Starting with, a Pyramid presentation at the DC Python meetup on Tuesday, February 5th in DC, 7PM at Browsermedia/NClud, 19th street. Only 8 RSVP spots left!

I’ll give a little warmup then a lightening tour of the “Pyramid for Human” tutorial I’m giving at PyCon in March.

And….I plan to give the tutorial using Python 3, just to emphasize that Python web frameworks are making Python 3 progress in 2013, and Pyramid has had production support for well over a year.

Emphasize Python 3 in Pyramid docs?

January 13, 2013

Recently I saw that Django 1.5 will have experimental (non-production) support for Python 3, and just saw today about Twisted supporting some Python 3. Someone recently asserted that 2013 might be the year that Python 3 tips.

Pyramid has fully supported Python 3 for well over a year. I’m hoping to work on a “Getting Started” section in the Pyramid docs. What do people think about ways to highlight Python 3 a little more visibly, in the Pyramid docs and elsewhere?

My supposition: people who are interested in real web stuff with Python 3 should give Pyramid a try, and thus, we should reach out to them.

Pyramid 1.4 released with some interesting goodness

December 18, 2012

Chris McDonough stayed up late last night and got Pyramid 1.4 out the door with interesting new features and, of course, up-to-date documentation.

I’ve gotten really interested in the custom view predicates stuff. For me, Pyramid has always existed in the sweet spot between ginormous megasystem and too-small toy. It isn’t a big system, but it is big enough to help you quickly build your own big system.

The documentation for the configuration system demonstrates this. Pyramid makes it easy to register, in a clean and testable way, new semantics for a custom application that feel like a natural part of Pyramid. Meaning, when you or a consumer of your stuff wants to know where something is, the thing they are looking for is in a natural place. For example, stuff hanging of the request, or slightly-specialized renderers, or event subscribers, or custom site settings.

The view predicates work has that nice familiar smell, taken to another degree. @view_config is the most familiar part of Pyramid. You can now register new arguments for view_config that are then first-class semantics in your custom application. This lets you get much of what you might want with a custom decorator/directive, which you can achieve while staying within the comfy confines of view config. Similar goodness for routes and subscribers.

Update: As Chris’s pimp, I feel obliged to say…give Chris a project! He’s winding down a customer project right now and needs some next work. Want Chris onsite to get your team velocity moving? Have a project that could use a dose of brilliance? Drop me a line.

Caring about the customer’s project more than about the customer

November 28, 2012

About 10 years ago my stock-in-trade changed. I started managing projects. Specifically, large projects with distributed subcontractor developer teams. Along the way I developed a mantra that I used to startle customers upfront about my style:

“My job is to care about the customer’s project more than about the customer.”

By this I mean several things:

  • Of course I care about the customer.
  • But the customer’s performance review is usually tied to the success of the project. The best way I can serve her professionally is for The Project to kick ass.
  • Sometimes the customer-side PM leaves the company, or someone else gets swapped in. I’ve had a few projects where I outlasted everybody on both sides of the equation. The Project endures.
  • Quite frequently, the “customer” is a moving, shape-shifting centroid of multiple contradictory anti-consensus voices. Each with valid points. Who doth stand up for The Project?

I’ve recently had examples where I’ve gone too far with this, though. Like in democracy, sometimes you have to let customers work through the nattering and emerge at a place with real clarity and support for The Project. Not clarity imposed on them by The Project (meaning, me.)

As with many other things, it’s art not science, intuition over reason. There’s a place for focus, execution, delivery, and taking responsibility for complexity in toto. I take pride in owning that part and saying: “Mine is the one throat you will choke.” There is still room, though, for knowing when to let things play out.