Ian Bicking: the old part of his blog

WSGIKit Tutorial

I've finished a short tutorial on writing a simple to-do application in WSGIKit. It shows off the application setup with app-setup, application templates, new sqlobject-admin tool (in SQLObject svn repository), and the basic pattern of development I've been using lately at work (Webware, SQLObject, ZPTKit, Component).

In other news... I really hate the name WSGIKit. Ideas for something else? I also want WSGIKit to be larger than just Webware, for it to be a set of infrastructure for use with several frameworks.

One aspect of the docs that I enjoyed -- the whole thing is written for doctest, so I won't let it get out of date, but it also uses doctest to build the files, highlight the source, etc. I do this by putting doctest commands inside Restructured Text comments. This is in contrast to the SQLObject documentation, where I had a bunch of ad hoc scripts, and it's gotten painfully out of date with the code. When I have a chance to revisit that documentation, I hope to use this same technique when I revisit the SQLObject documentation.

Created 09 Apr '05


My usual procedure is grep '.*w.*s.*g.*i' /usr/share/dict/words.

  • Neowashingtonia
  • newsmongering
  • weiselbergite
  • wolfsbergite

Hm; no possibilities there.

WSGI puts me in mind of "gateway". Grepping for 'gatew' turns up "gateworks" (already a PCB company by that name) and "gatewise"; the latter might be good.

A meta-name might be "Framework"; everyone who Googles for "Python web framework" will probably get the WSGIkit page as their first hit.

# amk

I actually don't care about the "WSGI" part at all -- that's an implementation detail which is important to me, but shouldn't be important to people using it. I also don't want it to appear as Yet Another Framework. It's more like a framework for frameworks. Metaframework? But that makes it sound much fancier than it actually is -- it's not More Abstract than a normal framework, it's mostly just glue and configuration.
# Ian Bicking

How about:


... ?

Definitely, when you've got your 'underware' (yes, I know, sic), everything fits better, feels better, is sorted out properly. Other things can go over it. It plays off of Webware, but implies both an underlying change and an underlying protocol. And the logo could be, well, a lot of fun, given the right mindset. Marketing it could be fun, too.

You could also extend the metaphor -- call it 'Knickers' or something.

"Hey, nice app, man, how did you write it?" "Um, with Underware." "What's that? Dude, yeah, I know, you work at home, but what did you write it in?" "Yeah, with Under- ... um. Man, just forget it ..."

When competing with Ruby on Rails we could have something like "Python in Panties", or "Webware in Woollies".

Python in Panties, especially, has a Monty Python twist:

"OHHHHH! I'm a lumberjack and I'm okay! I work all night and sleep all day ...

I cut down trees. I wear high heels, Suspendies, and a bra. I wish I'd been a girlie, Just like my dear Papa."

I rest my case.

# Greg McClure

wicket ?

Etymology: Middle English wiket, from Old North French, of Germanic origin; akin to Old Norse vik corner, vIkja to move, turn 1 : a small gate or door; especially : one forming part of or placed near a larger gate or door 2 : an opening like a window; especially : a grilled or grated window through which business is transacted 3 a : either of the two sets of three stumps topped by two crosspieces and set 66 feet apart at which the ball is bowled in cricket b : an area 10 feet wide bounded by these wickets c : one innings of a batsman; specifically : one that is not completed or never begun <win by three wickets> 4 : an arch or hoop in croquet

# Todd G

Nevermind, 'wicket' is already the name of yet another Java web app framework. My bad (though you could steal it. right now 'python wicket' has a Monty Python script as the #6 result).
# Todd G

I read this post, opened the tutorial in the background, went and did other things, came back to the tutorial, and said, "what the heck is he trying to accomplish again?" A single paragraph at the top stating, "this is a tutorial on building a 'ToDo' application using WSGIKit" would be a huge help. :)
# Robert Brewer

Nice demo!

Is WSGI tied to TAL? Examples using other template approaches, including XSL, might be useful.

# anonymous

No, WSGI isn't tied to much of anything. WSGIKit, which is built on WSGI but isn't the same as WSGI, also isn't tied to anything. On top of WSGIKit (and distributed with it) I've built Webware interfaces, and on top of the Webware interfaces I've built ZPT integration, but neither Webware nor ZPT get any special privileges from the lower layers. And in fact, most of the actual code (not including the application setup and configuration) would run just fine on Webware 0.8.1.
# Ian Bicking

Though my Python mind is currently soaked in PyGTK I thought it might be fun to try porting the rendering portion of your todo example to XSL (because I also want an excuse for trying out ElementTree). A 'download this example' archive link failed to bite my nose. Yes, I could cut and paste and save from the tutorial. It might be faster and easier to download a Ruby On Snails video instead. ;)
# anonymous

# Ian Bicking

Ah, thanks!

In future it may be useful to consider usability in all actions, adding obvious links to a single archive file for tutorials so interested parties can get it all in a click on a whim (which was the subversive intent of my post). That is if you are truly serious about beating Ruby at the marketing game. ;)

# anonymous

Vibo is short for Vibora which means Sneak in spanish.

....Rails? what Rails? you've got give Vibo a try!!!

Ian, keep up the good work the Python web commnunity needs someone unselfish like youself.

Thanks for taking the time to do this.


# Arnaldo

For a name, you could use a phonetic transliteration: "WhiskeyKit".
# Peter Herndon


The tutorial page is not valid : it contains several header/body sections (<!DOCTYPE...>...<head>...<body>...)


# A. Poirier

Yes, it includes full pages inline, rendered from the actual application during the document build process. I could strip out everything but the body, but I didn't get around to it. Though now that I think about it, this would be an ideal place for iframes.
# Ian Bicking