Agendaless Blog

PyCon 2014 Recap

PyCon 2014 in Montréal was a great conference! Check out the Agendaless PyCon 2014 talks:

Paul Everitt presented a half-day tutorial, "Python 3/2 Web Development with Pyramid ":

Tres Seaver gave a talk, "By Your Bootstraps: Porting Your Application to Python3":

We had lots of good conversations with folks, both in the "hallway track" and at the Pyramid booth. Great job by the Montréal Pythoneers organizing and running such a terrific conference! And for those who didn't get one there, the "Hacker" T-shirt is available online:

posted: 2014-04-21 15:26  by Tres Seaver   |   permalink

Pyramid for Plone Developers: Training at Plone Symposium MW 2014

We are pleased to be offering a two day training session at the 2014 Plone Symposium Midwest this year. The two-day course will cover Pyramid development topics, aimed at Plone developers.

For details, please see the training page.

posted: 2014-04-17 19:44  by Tres Seaver   |   permalink

PyTennessee 2014 Talks

Chris and I have given our talks at PyTennesse 2014. Mine was a two-hour tutorial, "Pyramid Development in a Nutshell", which I cut down from Paul's Quick Pyramid Tutorial. (See my slides here; examples are on github)

Chris' talk was his "Substance D: Build Civilized Web Applications" talk. See a video of the same talk from the RuPy 2013 conference).

posted: 2014-02-23 20:41  by Tres Seaver   |   permalink

SubstanceD Screencast #6: Adding Editing Objects inside a Folder

This screencast is the sixth in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 5 leaves off.

This episode covers adding objects to a folder, and editing those objects' properties.

posted: 2013-12-20 22:30  by Tres Seaver   |   permalink

SubstanceD Screencast #5: Editing Object Properties / Undo

This screencast is the fifth in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 4 leaves off.

This episode covers updating object properties, and undoing those changes..

posted: 2013-12-20 22:00  by Tres Seaver   |   permalink

SubstanceD Screencast #4: SubstanceD Managment Interface Overview

This screencast is the fourth in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 3 leaves off.

This episode provides a quick tour of the SubstanceD management interface (SDI), including navigating through the "tree" of objects in the database.

posted: 2013-12-20 21:30  by Tres Seaver   |   permalink

SubstanceD Screencast #3: Starting the Server, Viewing the Admin Interface

This screencast is the third in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 2 leaves off.

This episode demonstrates starting the WSGI server in development mode, viewing the default splash page in the browser, and logging into the the SubstanceD admin interface.

Annotated Commands

For those who'd like to read rather than listen, this is the set of commands outlined:

  1. Start the server using the development configuration:
    $ ../../bin/pserve development.ini
  2. Grep the generated, random password from the config file:
    $ cd src/myintranet
    $ grep passwword development.ini
  3. View the default splash page at http://localhost:6543/.
  4. Log into the SubstanceD management interface at: http://localhost:6543/manage.

posted: 2013-12-13 23:00  by Tres Seaver   |   permalink

SubstanceD Screencast #2: Generating the Initial 'myintranet' Project

This screencast is the second in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 1 leaves off.

This episode demonstrates generating the initial version of the myintranet project, checking it into Git, and installing it and its added dependencies into the virtual environment.

Annotated Commands

For those who'd like to read rather than listen, this is the set of commands outlined:

  1. List the templates available for generating a project:
    $ bin/pcreate --list-templates
  2. Generate the myintranet project:
    $ cd src
    $ ../bin/pcreate --template=substanced myintranet
    $ cd myintranet
  3. Check the initially generated code into a local Git repository:
    $ git init .
    $ cat > .gitignore
    $ git add .
    $ git commit -m "Initially-generated project."
  4. Install the project and its extra dependencies into the environment:
    $ ../../bin/python develop
  5. Verify that myintranet is importable from our checkout:
    $ cd ../..
    $ bin/python
    >>> import myintranet
    >>> print(myintranet.__file__)

posted: 2013-12-13 22:00  by Tres Seaver   |   permalink

SubstanceD Screencast #1: Setting Up the Environment

This screencast is the first in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application.

This episode demonstrates creating a Python virtual environment and installing the SubstanceD software into it.

Annotated Commands

For those who'd like to read rather than listen, this is the set of commands outlined:

  1. Create a Python 3.3 virtual environment:
    $ /opt/Python-3.3.3/bin/pyvenv intranet
    $ cd intranet
  2. Install and update setuptools:
    $ wget
    $ bin/python3
    $ bin/easy_install -U setuptools
  3. Check out SubstanceD from Github:
    $ mkdir src
    $ cd src
    $ git clone
    $ cd substanced
  4. Run SubstanceD's to install it in the environment:
    $ ../../bin/python3 develop
    Note that this step also installs SubstanceD's dependencies.
  5. Verify that SubstanceD is importable from our checkout:
    $ cd ../..
    $ bin/python
    >>> import substanced
    >>> print(substanced.__file__)

posted: 2013-12-13 22:00  by Tres Seaver   |   permalink

SubstanceD Screencasts

We're starting a series of short (3 - 5 minute) screencasts, demonstrating the SubstanceD application development platform. The series is built around the tasks needed to set up a simple intranet site.

For an overview of SubstanceD as a development platform, start with the talk given by Chris McDonough at the RuPy 2013 confernce: "SubstanceD: Building Civilized Web Applications".

posted: 2013-12-13 21:30  by Tres Seaver   |   permalink

Rupy 2013 Python Sprint

Recently we held a 3-day-long Python sprint in Budapest before the RuPy conference. Here's what got done.

Substance D (web application server)

Participating: Chris McDonough, Balázs Reé, Godefroid Chapelle

  • Allow management views to be categorized.
  • Allow deletion of objects that cannot successfully be unpickled.
  • Add an API for get_editable_adapter.
  • Allow schemas that inherit from substanced.schema.Schema to be used successfully in non-FormView code (no longer necessary to call .bind() on these to run things through deserialization).
  • Grid error messages caused by connectivity problems now disappear if the client notices that the server is back up via SSE.
  • Attempted to figure out how to more better show "global" views (like the auditing tab, the database tab, and the undo tab).
  • Various small UI improvements.

Deform (form library)

Participating: Domen Kožar, Balázs Reé, Chris McDonough

  • Experimented with using angular.js for client-side validation (fairly successfully).
  • Refactored and improved resource registry.

Pyramid (web framework)

Participating: Fabian Neumann

  • Audit docs for places we could better use .. deprecated:: and other Sphinx/RST directives.

posted: 2013-10-11 23:03  by Chris McDonough   |   permalink

Mozilla Persona and Substance D

We're running this website on Substance D, the content framework for Pyramid that Chris came up with. We're dogfooding a lot of the good work done by Substance D folks, plus related work like Domen's Deform2.

It's also a testing ground for some of our own stuff. Tres has it acting as a WebDAV server, which is how he does his authoring. He did this as a Substance D add-on, which helps prove how well Pyramid's add-on system functions.

We were talking about logins and thinking about re-using the Twitter-OAuth-based login I did on my Substance D site for a local sports league. Instead, Tres looked at Mozilla Persona and whipped up support for that. I can now use a Google account and get transparent login when authoring blog posts here.

It's worked, well, just about perfectly.

posted: 2013-10-11 16:12  by Paul Everitt   |   permalink

Pyramid London Meetup, Tonight Oct 17

Something I knew about, but didn't look at until now...there's a thriving Pyramid Meetup group for London. They've had 4 meetings so far and have one tonight. Rach Belaid and James Cook are organizers.

Already a good number of people signed up, some familiar names and some fascinating names. Pretty interesting comments on the signups as well.

posted: 2013-10-10 13:42  by Paul Everitt   |   permalink

Interview with Liz Leddy

Months ago I thought it would be fun to interview some people, and I always knew who I wanted first. Liz Leddy: Plone core developer, former Plone Foundation board member, speaker, and rabble-rouser of the group-hug variety. Below is a transcript, with an audio version available.

1) Tell us a little about yourself, the stuff you're currently doing, and the awesomest thing you've done in the last year.

I'm Elizabeth Leddy, I've been working with Plone since I was 19 years old, and I'm 30 years old this year, can you believe it! I got into Plone when I was working in college as part of a student internship where I was learning this new thing called CSS (can you believe it? tech comes a long way.) It's amazing to me that I'm still doing it this year.

I've done quite a few things with Plone: government intelligence, medical startups, internal implementations, and I've been working as a consultant for the last four years based out of the Bay Area. Currently working with Eric Steele and Ryan Foster on a startup doing an athlete management platform on top of Plone. Turns out a lot of the problems in elite athelete management can be solved with proper content management and communications. In fact we just got back from training the Cleveland Cavaliers (professional basketball team.) Work a lot with the US ski team and some other big names coming through, so we're really excited.

It has been interesting to see how, once you get outside the standard intranet domain, how many of the standard patterns solved by Plone can apply, just with some different wording.

Me: I've been thinking about that lately. We all come from a background where we solve a certain class of problems about how people work together. Other systems and approaches don't even try to solve those problems.

Liz: Yes, I see this throughout other platforms and systems outside of Plone, I call this the shiny object syndrome, where decision makers are really drawn to pretty graphs etc., which for example IBM are really amazing at doing. But then you get down to the real problems, like communication, knowledge management where you get people out of emails and into systems. That's where the real problem is and if we can have that conversation to get decision makers beyond shiny object syndrome, we can really get change both internally and when communicating with their customers.

2) What's one of the awesomest things you've done in the last year?

I do a lot of shenanigans, but the thing I'm most proud of is where we've taken sponsorship. The donations we had coming in were these really great companies. When I started on the Plone Foundation board this year, I really wanted to get our sprint funding together, with some brazen comments like "If we spend $25,000 we can raise $25,000." Of course I then had to back up a statement like that, and we did, we're back on track to reach our high-water mark from 2009 levels of sponsorship.

We've already raised enough money to continue the sprint funding next year, which is the main thing, taking it year-by-year. We have big Plone 5 push, and getting the right people to the right places at the right time and making sure they're productive, we'll see a really big release come.

Furthermore, the excitement that comes behind knowing that sponsors still care enough about Plone that they just need to be asked in the right way is just awesome. I love that.

3) How did you find Plone, what kind of stood out and made 19-year-old Liz want to do it?

Actually I came across Plone the way a lot of people do: somebody paid me to do it. I was getting a blazing $8/hour, but I was 19 at the time and trying to get my computer science degree, it was a good thing. At the time I wasn't technical, and most people's introduction to Plone is, you're handed the system and you can customize via the browser and do all these things. You don't need to be technical. As I learned computer science and object orientation, then I could dig more and more into Plone and do technical things.

When I graduated from college, I didn't expect to do Plone. After a couple of post-college jobs, I got hired at BAE Systems to do Java JSR-168 templates, really portlet standard back then. Luckily a guy said "I heard you know a little bit about Python and Plone, do you think you want to do a Plone install?" Of course I said yes, save me! From there it has just continued, I've never had issues finding work and interesting projects.

4) What piques your interest in Plone these days?

Interestingly I do use other systems for smaller projects and keep an open mind, but each time on bigger projects and clients that last multiple years, every time it turns out, "All of this is solved by Plone already." You can just get up and go.

I specialize in startup types with a lot of one-off prototypes to get funding. Even if Plone isn't the end game, it's there for a few years, get them going quickly, let them flesh out their thinking, change directions, etc.

People think startups are, have an idea and eight months later, sell to Facebook. But the reality is, it's a four year process to even get going. It's a moving target that they have follow constantly, thus it doesn't make sense to invest in a platform until you've really figured out what you're trying to sell, who are your investors, and how much they care. It's a different reality than "The Social Network" would like us to believe.

5) Let's change gears away from technology. I'm more of a Plone observer these days. Just watching, it seems like the world of Plone has gotten a second wind.

It definitely has. A lot of factors going into it. First, we have new energy on the development side, people like Rok Garbas and all these young people from countries such as Brazil. These people that haven't become curmudgeonly old developers yet, taking ownership, filling places where people have left. There's a natural cycle where, if you've worked in a project for ten years, you can get cynical after a while, just like any relationship, you definitely get some kind of itch.

We've had people naturally fade away: their businesses went a different direction, or they had twins. Then we have young people who come in and think, "Well, nobody's going to do it so I'm going to do it, and I'm going to do it my way." We've needed that kind of fresh blood for some time. They're very exciting, they get other people excited.

Also, as soon as we said "Seriously, we are going to do Plone 5", people start getting their changes lined up, saying "Yeh, let's do it!" This is combined with a cash influx from the Plone Foundation for sprints. We then go to symposiums and talk with Plone companies who are excited about Plone 5. All we had to do was ask for sponsorship.

6) On a related question, there's Plone-the-Software and Plone-the-Community which makes the software. But there's this other thing, Plone-the-Foundation. How is it doing?

The motto of the Foundation is "Protect and Promote Plone". This is my first year on the board. Managing sprints and sponsorship was one of my main things coming in.

They (the PF) does everything from handling GPL issues, what licenses go in which new packages, trademark violation stuff that we handle on a regular basis, the contributor agreement, marketing and sending people to events. This year we've expanded the scope to be more aggressive at sponsorship to help make sprints happen. That's part of protecting Plone, to make sure it sticks around, and that's why people want to donate. I think we've been doing a pretty good job this year.

Me: I think May of next year will be around the ten year anniversary of the wheels getting in motion for the Plone Foundation. The Plone Foundation is a pretty good success story as it changed hands from the founders and first generation and now getting a good second wind. That's a neat story that not every community has.

Liz: Ten years, wow! It's actually a story I've told a couple of times this year, for example at OSCON. Not all software makes it to twelve years. What does that kind of durability mean and what are the implications? The younger open source people aren't aware of what happened in the late 90's with software getting acquired and the legal battles, so I spend time talking to new sofware projects about why a foundation is a good idea if they plan on sticking around.

It (the Plone Foundation's durability) is something we should be proud of.

7) Zoom out a little: what kinds of things are on Plone's plate for the next two years?

The next major release is the biggest thing, being the new plan for Plone 5. We have a lot of things to get rid of by updating our code base, get rid of a lot of legacy stuff. That's a hard job that usually nobody wants to do but we've discovered is more important.

We need to update how we do front-end development. CSS and JavaScript right now are just through the roof in terms of work they are doing and things they are changing, so we need to modernize with them. JavaScript especially is going down a specific path, which is different than it appeared even a year ago.

We're at a point where we can modernize our front-end tools, get rid of legacy code, and do things that make it a better development platform, not just for developers but more friendly for people that don't want to write any Python. I'm really excited to see what happens with Plone 5.

Also, moving on to CSS and other frameworks that aren't custom to Plone, borrowing tools instead of building our own, to kind of move on and learn our lesson to integrate other tools. We have this bad rep from around the Plone 3 timeframe. Now we're reaching a generation that has either never heard of us or have forgotten that, so that's an awesome opportunity to kind of rebrand and say: "You've never heard of Plone, but it's pretty legit."

We have as well, a three-year process at figuring out marketing when you don't have a "BDFL" company to lead the marketing. Instead we have a group of companies and we've yet to figure that out, because there aren't a lot of those kinds of success stories to pull from. We know if we had better marketing we could do more. That's our biggest challenge in the next year, figuring out how that works and what are the politics behind it, just try some things and amend them if they don't work.

Me: It's interesting that you tied Plone 5 and the marketing push together. With Plone 5 as kind of a relaunch, you have a chance to sharpen up the story and get some consensus on the storytelling. Not just refactoring the software and tossing out cruft, but maybe there's cruft in the story?

Liz: Definitely, and I hope it's something I hope we figure out. Something I think is pretty cool, Heidi Reinke from the Universtiy of Wisconsin Oshkosh is having her marketing students to a marketing plan for Plone. They'll do interviews and make proposals, but it's nice to have a third-party bring a new perspective where we learn from them. I'm fascinated to see how this little experiment works.

8) The RV that you rented for PyCon 2013 was absolutely fabulous. You've set the bar so high now. What other shenanigans do you have up your sleeves?

We've constantly bugged the Plone Foundation to buy a hot air balloon. Carol Ganz at SixFeetUp is two hours away from getting her hot air balloon pilots license so stay tuned.

9) How many times have you been on the road this year? When is the next time people can get their dose of the fabulous Liz Leddy experience?

So far this year, 3 sprints, 2 non-Plone conferences talking about Plone, two conferences, on the road two times a month the whole year. I'll have a some down time. I'd really like to make the Arnhem sprint in November. Some people are sprinting a whole month there! If not, a sprint at Bodega Bay in February. I talked ostensibly forever about a sprint in Hawaii, so I'm going to make that happen next year. And of course, PyCon.

posted: 2013-10-09 18:45  by Paul Everitt   |   permalink

Webinar, Oct 17: "Python 3 Web Development with Pyramid and PyCharm"

Next Thursday, Oct 17, I'm doing a webinar with the good folks doing PyCharm at JetBrains. I'm use PyCharm pretty heavy, and recently I'm doing nearly everything (including my Pyramid work) using Python 3 in PyCharm.

Drop by the webinar, see what PyCharm looks like, and ask me some pointed questions, like that time in Vienna when I....oh right, that's a secret.

posted: 2013-10-09 18:12  by Paul Everitt   |   permalink

Categories:   python   python3   zope   pyramid   plone   opensource   substanced   screencast