University Marketing & Communications

March 26, 2010

Plone and PIDA


This was originally posted on Chris Heiland’s staff blog while he was a member of the Web Team. Chris migrated this post to the Web Team blog before he left because we thought the content still had value to the UW community.

It’s Friday and it’s been an eternity since my last post, so I’m going to take a break and describe my experience developing for Plone using PIDA. First off I use vim for my primary editor. Yes, I know I’m using an editor that refuses to accept the whole idea of a mouse, but I kinda like it that way. Anyway this is not a discussion of why I’m using vim, I can save that for another post.

My requirements list is pretty simple.  I was using a combination of screen and vim to solve most of my workflow issues. I can split screen to have my debugger, filebrowser, bin/ directory or anything else easily at my disposal. I also used vim as a filebrowser for the most part which works quite well.

Even though my setup was working it still was not quite perfect. There would be times I would want a more graphical file browser, or at least something different than ‘ls’, and I wanted it open all the time not just when I could devote an entire window to it. Also, I did miss Visual Studio a bit. It had its faults but did have some nice features too.

So after some searching I found PIDA which is written entirely in python. It has a few plugins available and it integrates with a python debugger which gives a graphical frontend to pdb. There is also a special command to load the debugger where needed and to attach to it.

from pida.utils import rpdb2; rpdb2.start_embedded_debugger_interactive_password()

Attaching is a two step process but it can be done which makes me happy. Between plugins and the interface the editor is quite customizable, because it’s more of a wrapper around the editor you’re already using.

Plone development is easy as pie. Since I’m using buildout I just create a new project inside the root of the directory. If I need to work on a specific product then I just navigate to that directory and set a bookmark for easy navigation. PIDA also knows about subversion so I can get a graphical notes area for commits. I also have a terminal window open so I can do misc commands as needed.

I have execution controllers (bash scripts) setup so I can run my test suite, buildout or anything else I need.  No more tabbing through history for those snippets. SVN integration is especially nice for diffs as it prints out separately and I can compare it to what I need.

I can use vim, emacs and potentially other editors as well so if I do switch camps I do have a bit of a safety harness. I’d like it if the development community was a bit more active but for what I need the product is stable. Overall PIDA is still in development and works for my needs current and future. I’m sure I can avoid running to emacs for a bit longer now.