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?
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.
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.
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.
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.
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.
November 20, 2012
tl;dr I’d love to go do some Pyramid training in the coming months. Particularly if there’s a chance to speechify.
For the San Fran Plone Conf, I put together a “Pyramid for Humans” training course. I really enjoyed it. I tried to create the kind of training course I’d want to attend: very hands-on, one step at a time, source code available, broad-but-shallow, with a deep emphasis on hilarity. Chris McDonough sat in on it to make sure I didn’t poke myself in the eye on anything.
The course received very good reviews, prompting me to…do nothing. I stupidly didn’t go conduct it again. I have submitted a condensed version as a tutorial for PyCon, but then it occurred to me: “Why wait?”
Got a small pile of beginners in your organization that you’d like to get up to speed on Python web development? Got a larger group at a conference or user group that might want a hands-on tour of Pyramid? Interested in a speech covering 19 years of mistakes in web development and 15 years of bad open source decisions?
As a trainer, I’m not: (a) cheap, (b) expensive, or (c) boring. I’m up for doing customized training if you have some specific topics.
November 20, 2012
My son wanted to run a Minecraft Server. I had a old, wheezing, 2006 Macbook, so I set up a Minecraft server for him and his friends.
Then I decided to do a little adventure.
The Macbook wasn’t going to live long, and I knew I wanted him to do some more learning on computing. So we went the SoC route and got the 1Gb Hackberry for $75 or so bucks. Dual core 1.2 Ghz ARM with 1 GB RAM, HDMI, 2 USB, Wifi, Bluetooth, and an SD reader.
These things come with onboard Android so you can just plug them in, hook up the HDMI and keyboard/mouse, and all works. And it did. It was very unnerving, the paucity of actual learning required. My son made a case out of Legos, I hooked up the Wifi, and the Google Play store actually had an Android version of the Minecraft Server.
Too easy. Fortunately the Android “server” was fatally flawed. It stopped if you did anything else in Android. So we flashed Linaro Desktop onto an SD card and went down the rabbit hole.
And it worked. The first time. I just had to fix the wireless networking. After that, a flurry of apt-gets later, and I had a Minecraft server running and Python installed. 10k Pystones makes it 1/4th the speed of my 2006 Macbook. But hey, it’s in a case made out of Legos!
October 26, 2011
(Aimed at Python folks.)
If you’re interested in learning Python web development using Pyramid, and you’re not a framework guru, I’m giving a “Pyramid for Humans” tutorial next week in San Francisco. I’m aiming this particularly at web developers who are responsible for the UI/UX and customer interactions, versus people who like talking about thread locals.
I’ve really enjoyed working on the material for this and I’m looking forward to going through it next week.
October 14, 2011
Let’s all pretend that this post went out 2 months ago, which would have been a grown-up and mature time to have promoted it.
In a couple of weeks I’m giving a Pyramid tutorial at the Plone Conference in San Francisco. I’m hardly an expert, so this is pitched as “Pyramid for Humans.” I’ll start at the very beginning, establish a UI-first approach to building an app, then gradually add much of the machinery needed for a project.
I’d really like it if you attended. [wink]
Joking aside, I’m really hoping I can get a crowd of first-starters there. Women and men who aren’t framework gods, who like using tools more than making them, and we build a nice base understanding of getting started in Pyramid. I want this tutorial to kick ass.
Drop me a line if you have any questions or suggestions about what should go in “Pyramid for Humans.”