(4) Wed Mar 05 2008 00:36 Please don't break library compatibility in Python 3:
Update: Guido appears to share my opinion on this.
[More]
(10) Thu Nov 15 2007 23:56 At the Dawn of the Fourth Age of Zope:
Some years ago, in 2004, I came up with the following quote to promote the Five project, which was the first step towards the inclusion of Zope 3 technologies in Zope 2. Zope 3 technologies are now heavily used in Zope 2 projects, and Zope 3 code has been part of Zope 2 for a while now, but back then we were just at the start of this process. The quote itself was creatively adapted from the first season intro of Babylon 5, a 90s scifi TV show:
[More]
(2) Thu Nov 01 2007 16:54 under-engineering, over-engineering, right-engineering:
I just ran into a post in a series called "Tools of The Effective Developer". This one is called Make It Work - First!.
[More]
(5) Wed Sep 26 2007 14:53 the challenges of version management in an eggified world:
Zope 3, and Grok in the last few months have been switching to a brave new eggified world of installation. The idea is that you compose your Zope application from a large amount of smaller packages, each providing their own components. I've sometimes described this Zope as an integrated megaframework. Zope is an integrated framework where packages follow common coding conventions, and the component architecture defines a way for packages to work with each other. Grok tries to step up by aiming for an integrated feel for developers. At the same time, Zope is a megaframework, allowing you to swap in best of breed components as they come available. Don't like zope.formlib? Swap in z3c.form for your form generation needs instead.
[More]
(20) Mon Sep 10 2007 15:24 Well-kept secrets of Zope:
Zope is a web framework that comes equipped with powerful, apparently
secret, features. Some of the things Zope has had for literally years
other web frameworks are only evolving today. And in other cases, Zope
comes equipped with features that other web framework communities are
currently only dreaming about.
[More]
(4) Mon Jul 16 2007 21:29 Communicating with core developers on the Python 3 transition:
It has been made abundantly clear to me that some core developers did not appreciate my previous communications concerning my worries surrounding transition to Python 3.
[More]
(10) Sat Jun 23 2007 00:26 the purpose to my "whinging" about the transition to Python 3:
Collin Winter writes:
[More]
(4) Fri Jun 22 2007 11:43 Python 3 worries: feedback:
I've received a lot of feedback to my previous blog entry. I stated there that I'm worried about the costs of breaking backwards compatibility in Python 3, and its cost to the Python community. I'm glad I received this feedback, because the topic bears a bit of attention.
[More]
(10) Tue Jan 09 2007 14:04 Grok Sprint Zwei: the Ascent of Man:
Yesterday I returned from "Grok Sprint Zwei", the second grok sprint, hosted by Philipp von Weitershausen in Dresden, Germany (and partially at Gocept for the warming up). Grok is a project to make Zope 3 safe, easy and fun for cavemen and other hominids like ourselves. Zope 3 of course is the powerful and flexible framework for the construction of web applications. See here for my initial introduction of the Zope Grok project.
[More]
(19) Thu Nov 09 2006 23:21 Grok: or what I did on my holiday:
I will use this blog entry to talk talk a bit about my holiday in Germany a few weeks ago. I went to a mini sprint at Gocept, in Halle. I had a great time! (yes, I am a geek) This sprint showed that good sprints aren't necessarily the ones with many people participating; we just had 4 sprinters (and less much of the time), and this was one of the most productive sprints I've been at for years. I left the sprint energized and excited. Thanks to Gocept for organizing this, it was awesome!
[More]
(24) Sun Sep 24 2006 16:54 Jean-Marc's implications:
Jean-Marc Orliaguet is rewriting CPSSkins again, this time in Java, as Nuxeo is switching their CPS platform from Python and Zope to the Java language . The reasons for this switch are detailed in the FAQ. I'm not going to debate them here.
[More]
(10) Wed Feb 01 2006 12:07 Guido and XML:
I think Guido's post on XML is a good occasion to point again to my rant about the disdain for XML among Python programmers, posted almost exactly a year ago on this blog.
[More]
(3) Thu Dec 15 2005 22:39 Empowering the power users:
In my last article I talked about the problems that occur on the
borderland between content and software, but didn't give enough
examples. I figured I'd add some more text about this very important
topic.
[More]
(7) Thu Dec 15 2005 13:34 The borderland between content and software:
Paul Everitt writes:
In the early days of Zope, you could design content "TTW" (through
the web). You could answer questions about structure and suddenly,
you had new kinds of content -- YOUR content -- that could be added
to folders in the system. No programmers were involved, no special
login permissions on the server, no database schemas to update.
[More]
(1) Fri Dec 02 2005 19:36 Five-based i18n in Silva checked in (PTS Delenda Est):
Last summer the Five project pulled Zope 3's i18n architecture into the Zope 2 world, thanks to work done by Philipp von Weitershausen, Lennart Regebro and others (please forgive me if I forget someone!).
[More]
(8) Fri Nov 11 2005 16:41 Tramline source code now available:
At the Plone conference 2005 I gave a lightning talk about tramline,
a lightweight up and download accelator for web applications. Now at
last I've found some time to put the source code online. This is
not a proper release yet, but it's there for interested people to take a look at it.
[More]
Sat Oct 01 2005 13:31 Credit where credit's due:
Thank you Phillip Eby for giving credit where's credit's due in
your comment on this article.
[More]
Fri Sep 09 2005 18:33 hurry library in the Zope 3 base:
Since various people were curious to see especially the little query
language we wrote on top of the Zope 3 catalog, I've just put up the
generic libraries we developed for documentlibrary project online,
at least in svn in the Zope 3 base at codespeak, here:
[More]
(1) Fri Aug 05 2005 11:33 the why of lxml:
Today I read an article about libxslt on O'Reilly's xml.com. It
demonstrates the power of libxslt; it's a cool library. It also
demonstrates why I wrote lxml: writing Python code that correctly
uses libxml2/libxslt's bindings directly is difficult.
[More]
(1) Wed Jul 13 2005 12:08 extended catalog queries in Zope 3:
Yesterday I managed to build something in just a few hours in Zope 3 that I wouldn't have been able to build so easily in Zope 2. What
I've built is an extended query system for the Zope 3 catalogs.
[More]
Fri Jun 17 2005 10:31 lxml should now compile with gcc 4.0:
Recently I started getting reports that lxml does not compile with gcc 4.0. Investigating this an issue with Pyrex was quickly identified -- it generates C code that is in fact illegal, was accepted by older gcc versions, but gcc 4.0 refuses to.
[More]
(3) Sat Apr 16 2005 00:27 the Clarity Template Language:
The ClearSilver templating language does not have a very pleasant syntax for people familiar with the TAL notation of Zope Page Templates. That's not to say ClearSilver's syntax is awful; it's deliberately simple, and I'm sure one could get used to it pretty quickly. Still, I started wondering what ClearSilver syntax would look like if it were more like TAL. Let's call such a theoretical TAL-like ClearSilver "Clarity". Perhaps this is a bit confusing, as it's the same name as the ClearSilver integration package I talked about before, but it's a nice name. :)
[More]
(2) Fri Apr 15 2005 20:38 Clarity, ClearSilver integration for Zope 3:
I've just checked in a new package into the Zope 3 base subversion repository called Clarity. What it does is integrate ClearSilver templating into Zope 3 (trunk, though I expect Zope X3.0 or even Five support should be easy enough). It's all still rough, but initial tests show ClearSilver templates can be quite a bit faster than ZPT, and they have other possible benefits. In my simplistic experiments I got transaction rates about 2 to 5 times higher than you can reach with ZPT, testing this with the 'siege' utility.
[More]
(5) Sat Apr 09 2005 21:51 lxml 0.5.1 released:
I've just released version 0.5.1 of lxml, the Pythonic binding to the libxml2 and libxslt libraries. This because I got feedback to 0.5 which pointed to a critical bug in the way unicode was handled. This kind of feedback is why I should've released lxml long ago!
[More]
(6) Fri Apr 08 2005 20:56 lxml released at last:
I've finally found the time to release lxml. So here then is
lxml, release 0.5!
[More]
(11) Wed Apr 06 2005 20:35 What Zope can learn from Ruby on Rails:
Ian Bicking just posted an insightful analysis of what makes Ruby on Rails work. What struck me most was the following:
[More]
Tue Jan 25 2005 20:01 lxml relax NG tweaks:
The Relax NG support seemed to be working for lxml, until I tried it with a complicated case: a modularized XHTML Relax NG schema.
[More]
Mon Jan 17 2005 22:31 lxml performance progress:
Such progress a few days can bring. Just last week the lxml.etree
performance figures on ElementTree operations like findall lost
out badly to pure Python code. So badly, it was pretty embarassing:
findall('//v') on ot.xml
ElementTree: 0.13 s
cElementTree: 0.11 s
lxml.etree: 1.9 s
[More]
Fri Jan 14 2005 19:15 lxml progress:
Since some people seem to be actually reading this and some progress has been made, I thought I'd give a report of what's been happening with lxml.
Since last week, I've added a lot more of the ElementTree API, such
as the .find() function and friends, by directly using the code
from ElementTree.
I actually am running the ElementTree and cElementTree test suites
now. I still need to disable some tests, but a significant fraction
is indeed running.
I've improved the way libxml2's parser functionality gets used, in
order to implement libxml2's top-level parse() function.
I've added XPath support to lxml.etree! An example of what you can
do:
>>> from lxml import etree
>>> tree = etree.parse('ot.xml')
>>> tree.xpath('(//v)[5]/text()')
[u'And God called the light Day, and the darkness he called Night.
And the evening and the morning were the first day.\n']
or, say, this, modifying the elements returned:
>>> result = tree.xpath('(//v)[5]')
>>> result[0].text = 'The day and night verse.'
>>> tree.xpath('(//v)[5]/text()')
[u'The day and night verse.']
I've added the start of XSLT support to lxml.etree. An example:
test.xslt
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*" />
<xsl:template match="/">
<day><xsl:value-of select="(//v)[5]" /></day>
</xsl:template>
</xsl:stylesheet>
>>> from lxml import etree
>>> style_xml= etree.parse('test.xslt')
>>> style = etree.XSLT(style_xml)
>>> ot = etree.parse('ot.xml')
>>> result = style.apply(ot)
>>> style.tostring(result)
u'<?xml version="1.0"?>\n<day>And God called the light Day, and the
darkness he called Night. And the evening and the morning were the
first day.\n</day>\n'
>>> result.getroot().tag
u'day'
[More]
Thu Jan 13 2005 20:33 lxml findall and xpath performance:
Update: lxml got quite a bit faster since this entry, see here
[More]
Wed Jan 12 2005 20:07 lxml parser performance:
In a discussion with Fredrik Lundh about his (c)ElementTree parser
performance benchmarks on the lxml.etree implementation.
[More]
Sat Jan 08 2005 11:12 lxml.etree is getting there:
The lxml.etree implementation of ElementTree, on top of libxml2, is
getting there now. It features automatic memory management and quite a bit of ElementTree compatibility. Not all of the ElementTree API has been implemented yet, but enough for many use cases.
[More]
[Main]  | Unless otherwise noted, all content licensed by Martijn Faassen under a Creative Commons License. |