The Curious Engineer

All blogs / Software / engineering practice

Secret Weblog

blog.startifact.com

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

  1. Coding with a Sigh
  2. Software to the People
  3. Becoming More

2025 4

  1. Xee: A Modern XPath and XSLT Engine in Rust
  2. Looking for new challenges!
  3. Succinct data structures
  4. Repeat Yourself, A Bit

2024 13

  1. The Curious Case of Quentell
  2. The Humble For Loop in Rust
  3. The Humble For Loop in JavaScript
  4. Don't Look Down on Print Debugging
  5. Question Best Practices
  6. I Was a 1980s Teenage Programmer Part 5: Achieving Assembly
  7. I Was a 1980s Teenage Programmer Part 4: The Call of Assembly
  8. The Tooling Shift
  9. I Was a 1980s Teenage Programmer Part 3: MSX-2
  10. JavaScript: when you need two ways to do it!
  11. Empowering Programming Languages
  12. Bloat and Retrofuturism
  13. Refreshing my Blog Again

2022 6

  1. Random Rust Impressions
  2. Apilar: An Alife System
  3. I Was a 1980s Teenage Programmer Part 2: Olivetti M24
  4. I Was a 1980s Teenage Programmer: the Alphatronic
  5. SolidJS fits my brain
  6. Is premature optimization the root of all evil?

2021 1

  1. Framework Patterns: JavaScript edition

2020 2

  1. Roll Your Own Frameworks
  2. Looking for new challenges

2019 4

  1. Framework Patterns
  2. Secret Weblog Highlights
  3. Refactoring to Multiple Exit Points
  4. mstform: a form library for mobx-state-tree

2017 1

  1. Seven Years: A Very Personal History of the Web

2016 10

  1. Looking for new challenges
  2. Morepath 0.16 released!
  3. Is Morepath Fast Yet?
  4. Introducing Bob Strongpinion
  5. Punctuated Equilibrium in Software
  6. Morepath 0.15 released!
  7. Impressions of React Europe 2016
  8. Morepath 0.14 released!
  9. Morepath 0.13 now with Dectate
  10. Dectate: advanced configuration for Python code

2015 9

  1. JavaScript Dependencies Revisited: An Example Project
  2. The Incredible Drifting Cyber
  3. A Brief History of Reselect
  4. The Emerging GraphQL Python stack
  5. Thoughts about React Europe
  6. Build a better batching UI with Morepath and Jinja2
  7. GraphQL and REST
  8. Server Templating in Morepath 0.10
  9. 10 reasons to check out the Morepath web framework in 2015

2014 31

  1. A Review of the Web and how Morepath fits in
  2. Morepath 0.9 released!
  3. Better REST with Morepath 0.8
  4. Morepath 0.7: new inter-app linking
  5. They say something I don't like so they must be lying!
  6. Life at the Boundaries: Conversion and Validation
  7. BowerStatic 0.4 released!
  8. Morepath 0.6 released!
  9. Morepath 0.5(.1) and friends released!
  10. New HTTP 1.1 RFCs versus WSGI
  11. Against "contrib"
  12. On Naming In Open Source
  13. My visit to EuroPython 2014
  14. Morepath 0.4.1 released (with Python 3 fixes)
  15. Morepath 0.4 and breaking changes
  16. Announcing BowerStatic
  17. Morepath 0.3 released!
  18. Morepath 0.2
  19. Morepath Python 3 support
  20. The Call of Python 2.8
  21. Morepath 0.1 released!
  22. WebOb and Werkzeug compared
  23. Morepath: from Werkzeug to WebOb
  24. Racing the Morepath: SQLAlchemy Integration
  25. The Centre Cannot Hold
  26. Breaking Morepath Changes
  27. Morepath Update
  28. How to do REST with Morepath
  29. Morepath Security
  30. the Gravity of Python 2
  31. #python2.8 discussion channel on freenode

2013 35

  1. Alex Gaynor on Python 3
  2. Morepath Documentation Starting to Take Shape
  3. Back to the Center
  4. Morepath App Reuse
  5. Implementing Grok
  6. Grok: the Idea
  7. Why Linux Works for Me
  8. On the Morepath
  9. Reg, Now With More Generic!
  10. The New Zope as a Web Framework
  11. Jim Fulton, Zope Architect
  12. Renewing Zope
  13. Object Publishing
  14. The Weirdness of Zope
  15. The Rise of Zope
  16. My Exit from Zope
  17. Reg: Component Architecture Reimagined
  18. JSConf EU 2013 impressions
  19. Obviel 1.0!
  20. JS Dependency Tools Redux
  21. Obviel 1.0rc1 released!
  22. Overwhelmed by JavaScript Dependencies
  23. Powerful composition with Obviel data-render
  24. Obviel 1.0b6
  25. Looking for project!
  26. The Story of None: Part 6 - Avoiding It
  27. The Story of None: Part 5 - More on Guarding
  28. The Story of None: Part 4 - Guard Clauses
  29. The Story of None: Part 3 - Handling It
  30. The Core of Obviel
  31. Modern Client-Side Times
  32. The Story of None: Part 2 - Recognizing It
  33. The Story of None: Part 1 - The Beginning
  34. Obviel Compared
  35. New Blog Engine

2012 4

  1. Dear Django, please ask others about packaging!
  2. Obviel 1.0b2 released!
  3. Obviel 1.0b
  4. Cassandra and how PyPy could help with Python 3

2011 6

  1. Python 2.8: +1
  2. The New Hot Thing in Web Development: Client-side Templating Languages
  3. Obviel and client-side templates
  4. Obviel
  5. WSGI: Bringing web frameworks closer together
  6. how to handle ideas

2010 3

  1. web frameworks considered useful
  2. ME GROK BOOK
  3. Python-based configuration in a Grok near you

2009 13

  1. New Year's Python Meme
  2. Titus Brown on the importance of communication
  3. Balancing stability and innovation in open source
  4. A history of Python packaging
  5. The Success of the Zope Component Architecture
  6. Grok 1.0 released!
  7. Europython slides are online
  8. To PyCon I Go
  9. A constructive general meeting of the Zope Foundation
  10. The Perils of Volunteering
  11. Zope Criticisms
  12. Cleaning up Zope 3's dependencies
  13. Grok's songlist application

2008 36

  1. The Ghost of Packaging Past and Future
  2. I like doctests
  3. Grok tech in Plone continued
  4. Why I think Grok can make Plone easier
  5. Happy Second Birthday Grok!
  6. Grok's release mill
  7. What Zope can learn from Zope
  8. megrok.rdf finally checked in
  9. Post-EuroPython Grok sprint report
  10. Zope's entry into the commit count pissing match
  11. Grok 0.13 released!
  12. A misconception about the ZODB
  13. Grok Status Update part 3
  14. Grok Status Update Part 2
  15. Grok Status Update Part 1
  16. In Memoriam Joachim Schmitz
  17. Grok 0.12 released!
  18. Zope Foundation in the Google Summer of Code
  19. Grok takes Zope 3 the rest of the way
  20. Grok security: more Grokkerdam sprint topics
  21. Porting Zope to different Pythons
  22. Local European PyCons and EuroPython
  23. Grokkerdam sprint topics
  24. SQLAlchemy with Grok
  25. No, you are smart enough for Zope
  26. Explicit is better than implicit, and what it means for Grok
  27. Zope Foundation accepting student applications in the Google Summer of Code
  28. Zope Foundation accepted in the Summer of Code
  29. Grokkerdam sprint!
  30. Please don't break library compatibility in Python 3
  31. Summer of Code for Zope
  32. Going to FOSDEM
  33. Python 3.0 is incompatible with Python 2.0
  34. Allowing Zope 2 applications to contain Zope 3 content
  35. On Revolution and Evolution
  36. Snowsprint report

2007 13

  1. At the Dawn of the Fourth Age of Zope
  2. under-engineering, over-engineering, right-engineering
  3. Happy birthday Grok!
  4. report from the Neanderthal Grok sprint (day 1-3)
  5. the challenges of version management in an eggified world
  6. Well-kept secrets of Zope
  7. Communicating with core developers on the Python 3 transition
  8. the purpose to my "whinging" about the transition to Python 3
  9. Python 3 worries: feedback
  10. Brief Python 3000 thoughts
  11. Debugging strategy: easy stuff first
  12. Zope Foundation in the Google Summer of Code!
  13. Grok Sprint Zwei: the Ascent of Man

2006 11

  1. Grok, CherryPy, WSGI and Zope 3
  2. Grok: or what I did on my holiday
  3. A buildout for lxml
  4. Zope 3.3 released!
  5. Jean-Marc's implications
  6. DZUG keynote
  7. the Infrae OAI-PMH components
  8. Ruby misconceptions about Python
  9. lxml 0.9.1 released!
  10. lxml and (c)ElementTree
  11. Guido and XML

2005 47

  1. Rails? Hah, we've got Ian Bicking!
  2. Empowering the power users
  3. The borderland between content and software
  4. Five-based i18n in Silva checked in (PTS Delenda Est)
  5. Tramline source code now available
  6. Zope and scaling down
  7. Towards a common structure of Zope 3 extensions
  8. Benji York is doing good work
  9. Credit where credit's due
  10. hurry library in the Zope 3 base
  11. Practical experience with Zope 3
  12. XML, context and nuance
  13. What is Pythonic?
  14. the why of lxml
  15. Changing the Python default encoding considered harmful
  16. Zope community evaluating JSR-170
  17. extended catalog queries in Zope 3
  18. An open letter to anonymous Network World writers
  19. my EuroPython 2005 slides online
  20. lxml should now compile with gcc 4.0
  21. lxml 0.7 released!
  22. lxml upcoming new features
  23. lxml 0.6 released
  24. Silva Flexible XML released
  25. Five 1.0 released!
  26. iCalendar 0.10 released!
  27. the Clarity Template Language
  28. Clarity, ClearSilver integration for Zope 3
  29. lxml 0.5.1 released
  30. lxml released at last
  31. What Zope can learn from Ruby on Rails
  32. How to delay a Zope release
  33. Fixing the Zope release process
  34. Five 0.3 released!
  35. Zope 3 will support XML
  36. A CMS as a pile of semi-structured data
  37. Criteria for evaluating specifications
  38. About the disdain for XML among Python programmers
  39. lxml relax NG tweaks
  40. benchmarks and lxml
  41. Relax NG support, C14N
  42. a little bit more lxml performance tweaking
  43. lxml performance progress
  44. lxml progress
  45. lxml findall and xpath performance
  46. lxml parser performance
  47. lxml.etree is getting there