All blogs / Software / engineering practice
Secret Weblog
Martijn Faassen's secret weblog
Software / engineering practiceRustJavaScript / TypeScriptRetro computingEssays / personal
- Posts
- 252 from 8 Jan 2005 to 22 Sep 2026
- Posting
- now and then (3 in the last year)
- Kind
- personal blog
- Feed
- https://blog.startifact.com/atom.xml
2026 3
2025 4
2024 13
- The Curious Case of Quentell
- The Humble For Loop in Rust
- The Humble For Loop in JavaScript
- Don't Look Down on Print Debugging
- Question Best Practices
- I Was a 1980s Teenage Programmer Part 5: Achieving Assembly
- I Was a 1980s Teenage Programmer Part 4: The Call of Assembly
- The Tooling Shift
- I Was a 1980s Teenage Programmer Part 3: MSX-2
- JavaScript: when you need two ways to do it!
- Empowering Programming Languages
- Bloat and Retrofuturism
- Refreshing my Blog Again
2022 6
2021 1
2020 2
2019 4
2017 1
2016 10
2015 9
- JavaScript Dependencies Revisited: An Example Project
- The Incredible Drifting Cyber
- A Brief History of Reselect
- The Emerging GraphQL Python stack
- Thoughts about React Europe
- Build a better batching UI with Morepath and Jinja2
- GraphQL and REST
- Server Templating in Morepath 0.10
- 10 reasons to check out the Morepath web framework in 2015
2014 31
- A Review of the Web and how Morepath fits in
- Morepath 0.9 released!
- Better REST with Morepath 0.8
- Morepath 0.7: new inter-app linking
- They say something I don't like so they must be lying!
- Life at the Boundaries: Conversion and Validation
- BowerStatic 0.4 released!
- Morepath 0.6 released!
- Morepath 0.5(.1) and friends released!
- New HTTP 1.1 RFCs versus WSGI
- Against "contrib"
- On Naming In Open Source
- My visit to EuroPython 2014
- Morepath 0.4.1 released (with Python 3 fixes)
- Morepath 0.4 and breaking changes
- Announcing BowerStatic
- Morepath 0.3 released!
- Morepath 0.2
- Morepath Python 3 support
- The Call of Python 2.8
- Morepath 0.1 released!
- WebOb and Werkzeug compared
- Morepath: from Werkzeug to WebOb
- Racing the Morepath: SQLAlchemy Integration
- The Centre Cannot Hold
- Breaking Morepath Changes
- Morepath Update
- How to do REST with Morepath
- Morepath Security
- the Gravity of Python 2
- #python2.8 discussion channel on freenode
2013 35
- Alex Gaynor on Python 3
- Morepath Documentation Starting to Take Shape
- Back to the Center
- Morepath App Reuse
- Implementing Grok
- Grok: the Idea
- Why Linux Works for Me
- On the Morepath
- Reg, Now With More Generic!
- The New Zope as a Web Framework
- Jim Fulton, Zope Architect
- Renewing Zope
- Object Publishing
- The Weirdness of Zope
- The Rise of Zope
- My Exit from Zope
- Reg: Component Architecture Reimagined
- JSConf EU 2013 impressions
- Obviel 1.0!
- JS Dependency Tools Redux
- Obviel 1.0rc1 released!
- Overwhelmed by JavaScript Dependencies
- Powerful composition with Obviel data-render
- Obviel 1.0b6
- Looking for project!
- The Story of None: Part 6 - Avoiding It
- The Story of None: Part 5 - More on Guarding
- The Story of None: Part 4 - Guard Clauses
- The Story of None: Part 3 - Handling It
- The Core of Obviel
- Modern Client-Side Times
- The Story of None: Part 2 - Recognizing It
- The Story of None: Part 1 - The Beginning
- Obviel Compared
- New Blog Engine
2012 4
2011 6
2010 3
2009 13
- New Year's Python Meme
- Titus Brown on the importance of communication
- Balancing stability and innovation in open source
- A history of Python packaging
- The Success of the Zope Component Architecture
- Grok 1.0 released!
- Europython slides are online
- To PyCon I Go
- A constructive general meeting of the Zope Foundation
- The Perils of Volunteering
- Zope Criticisms
- Cleaning up Zope 3's dependencies
- Grok's songlist application
2008 36
- The Ghost of Packaging Past and Future
- I like doctests
- Grok tech in Plone continued
- Why I think Grok can make Plone easier
- Happy Second Birthday Grok!
- Grok's release mill
- What Zope can learn from Zope
- megrok.rdf finally checked in
- Post-EuroPython Grok sprint report
- Zope's entry into the commit count pissing match
- Grok 0.13 released!
- A misconception about the ZODB
- Grok Status Update part 3
- Grok Status Update Part 2
- Grok Status Update Part 1
- In Memoriam Joachim Schmitz
- Grok 0.12 released!
- Zope Foundation in the Google Summer of Code
- Grok takes Zope 3 the rest of the way
- Grok security: more Grokkerdam sprint topics
- Porting Zope to different Pythons
- Local European PyCons and EuroPython
- Grokkerdam sprint topics
- SQLAlchemy with Grok
- No, you are smart enough for Zope
- Explicit is better than implicit, and what it means for Grok
- Zope Foundation accepting student applications in the Google Summer of Code
- Zope Foundation accepted in the Summer of Code
- Grokkerdam sprint!
- Please don't break library compatibility in Python 3
- Summer of Code for Zope
- Going to FOSDEM
- Python 3.0 is incompatible with Python 2.0
- Allowing Zope 2 applications to contain Zope 3 content
- On Revolution and Evolution
- Snowsprint report
2007 13
- At the Dawn of the Fourth Age of Zope
- under-engineering, over-engineering, right-engineering
- Happy birthday Grok!
- report from the Neanderthal Grok sprint (day 1-3)
- the challenges of version management in an eggified world
- Well-kept secrets of Zope
- Communicating with core developers on the Python 3 transition
- the purpose to my "whinging" about the transition to Python 3
- Python 3 worries: feedback
- Brief Python 3000 thoughts
- Debugging strategy: easy stuff first
- Zope Foundation in the Google Summer of Code!
- Grok Sprint Zwei: the Ascent of Man
2006 11
2005 47
- Rails? Hah, we've got Ian Bicking!
- Empowering the power users
- The borderland between content and software
- Five-based i18n in Silva checked in (PTS Delenda Est)
- Tramline source code now available
- Zope and scaling down
- Towards a common structure of Zope 3 extensions
- Benji York is doing good work
- Credit where credit's due
- hurry library in the Zope 3 base
- Practical experience with Zope 3
- XML, context and nuance
- What is Pythonic?
- the why of lxml
- Changing the Python default encoding considered harmful
- Zope community evaluating JSR-170
- extended catalog queries in Zope 3
- An open letter to anonymous Network World writers
- my EuroPython 2005 slides online
- lxml should now compile with gcc 4.0
- lxml 0.7 released!
- lxml upcoming new features
- lxml 0.6 released
- Silva Flexible XML released
- Five 1.0 released!
- iCalendar 0.10 released!
- the Clarity Template Language
- Clarity, ClearSilver integration for Zope 3
- lxml 0.5.1 released
- lxml released at last
- What Zope can learn from Ruby on Rails
- How to delay a Zope release
- Fixing the Zope release process
- Five 0.3 released!
- Zope 3 will support XML
- A CMS as a pile of semi-structured data
- Criteria for evaluating specifications
- About the disdain for XML among Python programmers
- lxml relax NG tweaks
- benchmarks and lxml
- Relax NG support, C14N
- a little bit more lxml performance tweaking
- lxml performance progress
- lxml progress
- lxml findall and xpath performance
- lxml parser performance
- lxml.etree is getting there