January 16th, 2008
Unfortunately I’m very busy lately so there are few updates on Werkzeug and all the other libraries I personally contributed (and there are even some patches in my Mail queue I have to apply after reviewing) but that doesn’t mean that there is no progress :-)
There is actually quite a lot of new stuff between the 0.1 release and now. Werkzeug tries to implement stupid stuff you reimplement in every second application in a way that you can use it with minor modifications in your application. Because many of those features only come up if you have implemented them often in your own applications they didn’t make it into 0.1. Thanks to all the early adopters we now have cool new stuff that was implemented because there was need for it.
For example Werkzeug now has RFC-compliant Etag and Cache-Control parsing. You can also generate etags automatically for responses and make them conditional for some requests. The utility module was extended with many new stuff that fix limitations in the standard library or implement long missed functions like finding modules in a package (very useful if you want to automatically register controllers), importing modules by a string (useful if your URL map endpoints are (partial) import paths), generating URLs like trac does by calling an Href object, functions to fix URLs similar to the way Firefox fixes them, dumping and parsing HTTP dates, loading and dumping cookies with a simple function call (and support for http only) and probably a lot more before the actual 0.2 release.
Another cool thing is (unrelated to Werkzeug) that more and more cool modules come up that make web development a charm. While babel is available for quite a while I haven’t really used it until last weak and it’s really great. Together with Werkzeug’s routing system and the ability to do multiple inheritance in SQLAlchemy there are so cool ways to do web development of internationalized applications. I know the last sentence doesn’t make sense without the context, so I guess I have to blog about that. sooo freaking cool.
Form handling in Python is still a bit strange if you are not using django’s newforms (I know that there is formencode but somehow it isn’t what I’m looking for) but there is now WTForms which looks promising. With some more small changes it could become a very cool form handling system (for example I’m missing some default validators at the moment and I’m not completely sure how to pass choices to a select box in a per form instance basis). WTForms was derived from an application that is already in production so it solves already many problems nicely. It’s a library I want to watch closely the next weeks.
And I think that approach should become the way Werkzeug is developed in the future. Implement features a release earlier and mark them as “under consideration” if they are not yet used in production applications. If you adopt them early you can give feedback and we can improve it to the next Werkzeug release and streamline the API.
What’s to do until the next Werkzeug release? Georg is currently working on making the sphinx documentation builder independent from the CPython documentation so that other projects can use it too. I then want to semi-automatically build an API documentation for Werkzeug and combine them with hand written rst pages for the Werkzeug 0.2 documentation. I got some feedback for the Werkzeug docs and looks like they are a bit too chaotic and misleading. Especially getting started with Werkzeug is still too complicated so I hope we can address this with a new documentation that combines automatically generated documentation with tutorials.
The documentation tool could probably be useful for other projects too, I guess Georg will drop some lines in his blog once it’s ready.
Updates regarding Jinja will be up shortly, there is currently a branch developed by Lakin Wecker to speed up Jinja template evaluation. And if you already know what GHRML/XAML will gonna be: I will try to get that running this weekend.
That’s it for the moment ;-)
Tagged as: werkzeug, wsgi, jinja, python, update |
No Comments »
September 9th, 2007
Wohoo. We finally migrated all of our subversion hosted projects to mercurial. And the best part: we now have a separate trac instance for each of those projects. mod_wsgi does a great job hosting all those tracs without having to add each trac to the config separately. I will post a commented version of our mod_wsgi config in the next days, for the moment still some other things are in the pipeline.
The new developer platform of Jinja, Pygments and all the other projects is on dev.pocoo.org. Note that most tracs are still empty because we haven’t had the time to move the tickets and wiki pages over. For that we have to write a conversion script first.
The plan for the next weeks is releasing Jinja 1.2 and Werkzeug 0.1. The latter is missing some unittests. After that I want to work on pocoo to finally get a working version. TextPress itself is now in the repositories (if you don’t know what it is, just ignore it for now), guess most of use will contribute some code in the next weeks but don’t expect an release. Want to convert this blog here soon though.
Last but not least: hello planet django :)
Tagged as: django, pocoo, python, update |
2 Comments »
August 10th, 2007
Okay. I’m off to Italy for two weeks now. I will be offline most of the time but constantly check my emails, so if there is anything important just mail me. I’m back on Saturday the 25th of August.
Tagged as: personal, update, announcement |
No Comments »
I’m back in the ubuntuusers team and currently helping out amix on todoist.
July 29th, 2007 | Tagged as: thoughts, update |
No Comments »
July 29th, 2007
Uha. One day of programming and Jinja got a new parser :D 129 out of 131 tests pass, and nearly all of the old semantics still work. I changed some things so far that probably make more sense. Syntax changes from 1.1 to 1.2:
- call and endcall are keywords now. I wanted to do that in 1.3, not 1.2 but because it’s easy to change it’s a good thing to do the change now.
- tuples are tuples now, not lists. That will make strings formatting easier too — it really was a bad idea to uniform lists and tuples. This change shouldn’t cause many problems because the namespace is more or less read only. So there are no concatenation issues that will appear because a list and tuple are mixed together.
- __getslice__ is currently not supported. Parsing the python slice rules is not that simple and for the moment slice objects are easier. So foo[1:2] results in get_attribute(foo, slice(1, 2, None)). I will add some more unittests to check if this breaks stuff.
- foo|escape + bar|escape is possible now.
The code is not in trunk by now because there are still some things to fix (string escaping, streaming system) and i don’t know if the change has any side effects on bigger code. If someone wants to try out the new parser tough you can check it out from here: new-parser.
Backward incompatible changes: the lexer tokenstream, the lexer tokenize method (not the tokeniter one which is public) and the parse functions because the new parser looks different and has different nodes from different modules (no compiler.ast any more). I hope that there are few hardcore users that analyse the Jinja ast but if there are some, you probably have to change some code.
Tagged as: jinja, python, update |
No Comments »
July 22nd, 2007
Alright. No posts for quite a long time. But just because the blog was pretty dead that doesn’t mean that nothing is happening. In fact I’m working hard on a couple of things I cannot announce yet. Unfortunately my notebook harddisk once again broke which is somewhat annoying. Looks like this summer is more expensive then all the summers before :) Guess my next notebook will be a macbook pro.
Oh. And in the new python documentation (which btw needs your help) you can now comment on keywords on pages too:

Tagged as: python, personal, update |
No Comments »
June 29th, 2007
Finally I’ve made the Matura :D I got a “Guter Erfolg”, I would have got a “Ausgezeichneter Erfolg” if there wasn’t the huge amout of spelling mistakes I made in my written German exam. But I’m happy nevertheless.
Especially the oral Matura was just awesome. Because I wrote a so called “Fachbereitsarbeit” in computer science i had one written exam less than normal. So I only had English, Maths and German as written subjects and Religion, English and computer science as oral subjects. So as you can see darn simple matura, especially because in Austria you can choose one out of two general questions and a special question out of your special subject you worked out the weeks before the Matura.
My topic for the computer science “Fachbereichsarbeit” was security in web applications and apparently my presentation was that impressive that I got some applause which was a very, very cool experience. I had one of the last exams and usually the teachers and the examiner are already so bored that nobody listens to your ten-minute talk. It’s a really cool feeling that you were able to somehow impress the persons in the room.
I still don’t know the final results but I know that I got a “Guter Erfolg” which is the second best result you can get.
Plans for the next two weeks: Off to Ios with friends :-) and relaxing. So basically off from Sunday the first till Friday the 13th :-)
Tagged as: personal, update, announcement |
One Comment »
June 5th, 2007
I have that title in the German Python Forum for some time already and now I wanted to have an avatar for that. So I tried to draw one, unfortunately I’m not that good at drawing so the result is not the best. Still. Here the full version:

and here the small one for the forum:

Tagged as: wsgi, art, python, update |
One Comment »