Archive
-
2026
-
11 FebBecoming More
-
-
2025
-
27 MarXee: A Modern XPath and XSLT Engine in Rust
-
24 MarLooking for new challenges!
-
28 FebSuccinct data structures
-
27 JanRepeat Yourself, A Bit
-
-
2024
-
27 DecThe Curious Case of Quentell
-
11 DecThe Humble For Loop in Rust
-
11 DecThe Humble For Loop in JavaScript
-
22 NovDon't Look Down on Print Debugging
-
19 NovQuestion Best Practices
-
26 JunI Was a 1980s Teenage Programmer Part 5: Achieving Assembly
-
31 MayI Was a 1980s Teenage Programmer Part 4: The Call of Assembly
-
30 MayThe Tooling Shift
-
29 MayI Was a 1980s Teenage Programmer Part 3: MSX-2
-
28 MayJavaScript: when you need two ways to do it!
-
27 MayEmpowering Programming Languages
-
26 MayBloat and Retrofuturism
-
26 MayRefreshing my Blog Again
-
-
2022
-
2021
-
2020
-
18 MayRoll Your Own Frameworks
-
05 FebLooking for new challenges
-
-
2019
-
04 DecFramework Patterns
-
24 SepSecret Weblog Highlights
-
21 AugRefactoring to Multiple Exit Points
-
15 Augmstform: a form library for mobx-state-tree
-
-
2017
-
2016
-
23 NovLooking for new challenges
-
04 OctMorepath 0.16 released!
-
21 SepIs Morepath Fast Yet?
-
07 SepIntroducing Bob Strongpinion
-
06 SepPunctuated Equilibrium in Software
-
18 JulMorepath 0.15 released!
-
07 JunImpressions of React Europe 2016
-
26 AprMorepath 0.14 released!
-
06 AprMorepath 0.13 now with Dectate
-
04 AprDectate: advanced configuration for Python code
-
-
2015
-
27 OctJavaScript Dependencies Revisited: An Example Project
-
13 OctThe Incredible Drifting Cyber
-
12 OctA Brief History of Reselect
-
28 SepThe Emerging GraphQL Python stack
-
06 JulThoughts about React Europe
-
29 JunBuild a better batching UI with Morepath and Jinja2
-
10 JunGraphQL and REST
-
09 AprServer Templating in Morepath 0.10
-
05 Jan10 reasons to check out the Morepath web framework in 2015
-
-
2014
-
11 DecA Review of the Web and how Morepath fits in
-
26 NovMorepath 0.9 released!
-
13 NovBetter REST with Morepath 0.8
-
03 NovMorepath 0.7: new inter-app linking
-
09 OctThey say something I don't like so they must be lying!
-
26 SepLife at the Boundaries: Conversion and Validation
-
08 SepBowerStatic 0.4 released!
-
08 SepMorepath 0.6 released!
-
28 AugMorepath 0.5(.1) and friends released!
-
19 AugNew HTTP 1.1 RFCs versus WSGI
-
11 AugAgainst "contrib"
-
29 JulOn Naming In Open Source
-
28 JulMy visit to EuroPython 2014
-
08 JulMorepath 0.4.1 released (with Python 3 fixes)
-
07 JulMorepath 0.4 and breaking changes
-
01 JulAnnouncing BowerStatic
-
23 JunMorepath 0.3 released!
-
24 AprMorepath 0.2
-
17 AprMorepath Python 3 support
-
14 AprThe Call of Python 2.8
-
08 AprMorepath 0.1 released!
-
05 MarWebOb and Werkzeug compared
-
04 MarMorepath: from Werkzeug to WebOb
-
27 FebRacing the Morepath: SQLAlchemy Integration
-
26 FebThe Centre Cannot Hold
-
22 JanBreaking Morepath Changes
-
20 JanMorepath Update
-
09 JanHow to do REST with Morepath
-
07 JanMorepath Security
-
06 Janthe Gravity of Python 2
-
06 Jan#python2.8 discussion channel on freenode
-
-
2013
-
30 DecAlex Gaynor on Python 3
-
19 DecMorepath Documentation Starting to Take Shape
-
17 DecBack to the Center
-
03 DecMorepath App Reuse
-
02 DecImplementing Grok
-
28 NovGrok: the Idea
-
23 NovWhy Linux Works for Me
-
31 OctOn the Morepath
-
28 OctReg, Now With More Generic!
-
28 OctThe New Zope as a Web Framework
-
25 OctJim Fulton, Zope Architect
-
24 OctRenewing Zope
-
23 OctObject Publishing
-
22 OctThe Weirdness of Zope
-
21 OctThe Rise of Zope
-
21 OctMy Exit from Zope
-
19 SepReg: Component Architecture Reimagined
-
17 SepJSConf EU 2013 impressions
-
20 MayObviel 1.0!
-
16 MayJS Dependency Tools Redux
-
15 MayObviel 1.0rc1 released!
-
13 MayOverwhelmed by JavaScript Dependencies
-
07 MayPowerful composition with Obviel data-render
-
04 AprObviel 1.0b6
-
26 FebLooking for project!
-
06 FebThe Story of None: Part 6 - Avoiding It
-
04 FebThe Story of None: Part 5 - More on Guarding
-
01 FebThe Story of None: Part 4 - Guard Clauses
-
31 JanThe Story of None: Part 3 - Handling It
-
31 JanThe Core of Obviel
-
30 JanModern Client-Side Times
-
30 JanThe Story of None: Part 2 - Recognizing It
-
29 JanThe Story of None: Part 1 - The Beginning
-
29 JanObviel Compared
-
24 JanNew Blog Engine
-
-
2012
-
2011
-
08 DecPython 2.8: +1
-
18 NovThe New Hot Thing in Web Development: Client-side Templating Languages
-
15 NovObviel and client-side templates
-
02 NovObviel
-
02 AugWSGI: Bringing web frameworks closer together
-
15 Julhow to handle ideas
-
-
2010
-
15 Aprweb frameworks considered useful
-
11 FebME GROK BOOK
-
02 JanPython-based configuration in a Grok near you
-
-
2009
-
28 DecNew Year's Python Meme
-
19 DecTitus Brown on the importance of communication
-
17 DecBalancing stability and innovation in open source
-
09 NovA history of Python packaging
-
06 NovThe Success of the Zope Component Architecture
-
07 OctGrok 1.0 released!
-
14 JulEuropython slides are online
-
25 MarTo PyCon I Go
-
19 MarA constructive general meeting of the Zope Foundation
-
18 MarThe Perils of Volunteering
-
03 MarZope Criticisms
-
29 JanCleaning up Zope 3's dependencies
-
10 JanGrok's songlist application
-
-
2008
-
16 DecThe Ghost of Packaging Past and Future
-
01 DecI like doctests
-
19 OctGrok tech in Plone continued
-
18 OctWhy I think Grok can make Plone easier
-
17 OctHappy Second Birthday Grok!
-
07 OctGrok's release mill
-
19 SepWhat Zope can learn from Zope
-
01 Augmegrok.rdf finally checked in
-
14 JulPost-EuroPython Grok sprint report
-
25 JunZope's entry into the commit count pissing match
-
24 JunGrok 0.13 released!
-
20 JunA misconception about the ZODB
-
11 JunGrok Status Update part 3
-
03 JunGrok Status Update Part 2
-
02 JunGrok Status Update Part 1
-
14 MayIn Memoriam Joachim Schmitz
-
25 AprGrok 0.12 released!
-
23 AprZope Foundation in the Google Summer of Code
-
19 AprGrok takes Zope 3 the rest of the way
-
17 AprGrok security: more Grokkerdam sprint topics
-
14 AprPorting Zope to different Pythons
-
12 AprLocal European PyCons and EuroPython
-
11 AprGrokkerdam sprint topics
-
08 AprSQLAlchemy with Grok
-
05 AprNo, you are smart enough for Zope
-
01 AprExplicit is better than implicit, and what it means for Grok
-
25 MarZope Foundation accepting student applications in the Google Summer of Code
-
18 MarZope Foundation accepted in the Summer of Code
-
11 MarGrokkerdam sprint!
-
05 MarPlease don't break library compatibility in Python 3
-
04 MarSummer of Code for Zope
-
21 FebGoing to FOSDEM
-
01 FebPython 3.0 is incompatible with Python 2.0
-
30 JanAllowing Zope 2 applications to contain Zope 3 content
-
29 JanOn Revolution and Evolution
-
28 JanSnowsprint report
-
-
2007
-
15 NovAt the Dawn of the Fourth Age of Zope
-
01 Novunder-engineering, over-engineering, right-engineering
-
15 OctHappy birthday Grok!
-
04 Octreport from the Neanderthal Grok sprint (day 1-3)
-
26 Septhe challenges of version management in an eggified world
-
10 SepWell-kept secrets of Zope
-
16 JulCommunicating with core developers on the Python 3 transition
-
23 Junthe purpose to my "whinging" about the transition to Python 3
-
22 JunPython 3 worries: feedback
-
20 JunBrief Python 3000 thoughts
-
14 AprDebugging strategy: easy stuff first
-
15 MarZope Foundation in the Google Summer of Code!
-
09 JanGrok Sprint Zwei: the Ascent of Man
-
-
2006
-
29 NovGrok, CherryPy, WSGI and Zope 3
-
09 NovGrok: or what I did on my holiday
-
03 OctA buildout for lxml
-
27 SepZope 3.3 released!
-
24 SepJean-Marc's implications
-
18 SepDZUG keynote
-
25 Augthe Infrae OAI-PMH components
-
12 AprRuby misconceptions about Python
-
06 Aprlxml 0.9.1 released!
-
24 Feblxml and (c)ElementTree
-
01 FebGuido and XML
-
-
2005
-
22 DecRails? Hah, we've got Ian Bicking!
-
15 DecEmpowering the power users
-
15 DecThe borderland between content and software
-
02 DecFive-based i18n in Silva checked in (PTS Delenda Est)
-
11 NovTramline source code now available
-
08 OctZope and scaling down
-
07 OctTowards a common structure of Zope 3 extensions
-
04 OctBenji York is doing good work
-
01 OctCredit where credit's due
-
09 Sephurry library in the Zope 3 base
-
06 SepPractical experience with Zope 3
-
31 AugXML, context and nuance
-
06 AugWhat is Pythonic?
-
05 Augthe why of lxml
-
02 AugChanging the Python default encoding considered harmful
-
20 JulZope community evaluating JSR-170
-
13 Julextended catalog queries in Zope 3
-
04 JulAn open letter to anonymous Network World writers
-
03 Julmy EuroPython 2005 slides online
-
17 Junlxml should now compile with gcc 4.0
-
15 Junlxml 0.7 released!
-
09 Junlxml upcoming new features
-
15 Maylxml 0.6 released
-
02 MaySilva Flexible XML released
-
28 AprFive 1.0 released!
-
28 ApriCalendar 0.10 released!
-
16 Aprthe Clarity Template Language
-
15 AprClarity, ClearSilver integration for Zope 3
-
09 Aprlxml 0.5.1 released
-
08 Aprlxml released at last
-
06 AprWhat Zope can learn from Ruby on Rails
-
18 MarHow to delay a Zope release
-
17 MarFixing the Zope release process
-
11 MarFive 0.3 released!
-
11 MarZope 3 will support XML
-
02 MarA CMS as a pile of semi-structured data
-
01 MarCriteria for evaluating specifications
-
30 JanAbout the disdain for XML among Python programmers
-
25 Janlxml relax NG tweaks
-
24 Janbenchmarks and lxml
-
21 JanRelax NG support, C14N
-
18 Jana little bit more lxml performance tweaking
-
17 Janlxml performance progress
-
14 Janlxml progress
-
13 Janlxml findall and xpath performance
-
12 Janlxml parser performance
-
08 Janlxml.etree is getting there
-