RSSAmplifier

Blog

Secret Weblog

Martijn Faassen's secret weblog

blog.startifact.comRSS feed ↗250 posts

Latest posts

Becoming More

Empowering developers in ways that matter.

Xee: A Modern XPath and XSLT Engine in Rust

I announce Xee, the implementation of XPath and XSLT in Rust that I've been working on for the last two years.

Looking for new challenges!

Once every while I use this blog to look for new challenges! Let me give a brief description of who I am, what I can do, and what I enjoy doing. …

Succinct data structures

An overview of a class of data structures I didn't know about!

Repeat Yourself, A Bit

"Don't Repeat Yourself", abbreviated DRY, is a mantra I subscribe to as a programmer. I don't want to have the same code in multiple parts of the codebase. Part of the reason is just reuse: if I can reuse code, it's just easier. Repetitive code is also difficult to maintain - if it's in multiple places, a change may mean I need to update multiple places, which is tedious and mistake prone. A more…

The Curious Case of Quentell

I go on a journey to learn about a man named Quentell, and discover unsettling things about the information landscape.

The Humble For Loop in Rust

Rust has some really nice functional programming facilities built in, all around an iterator concept. Rust being focused on performance and low level control makes it possible to use this without paying a performance cost. Sometimes I still prefer to use the humble for loop though. In quite a few cases, it combines high performance with high readability. I thought I'd motivate why. …

The Humble For Loop in JavaScript

I've seen some programmers try to avoid the humble for loop at all costs, in favor of more functional abstractions. I'm going to argue that the for loop is sometimes simply the best option. That doesn't mean you should always use it -- far from it -- but it does mean you should give it due consideration. The goal is to help develop some intuitions about this topic. I talk about readability of code…

Don't Look Down on Print Debugging

Print good, not bad!

Question Best Practices

In software development we have best practices. These are the distilled wisdom of software engineering, and you should follow best practices to be a good software developer, and to develop good software. If someone points out you broke them, that should be sufficient to make you mend your ways. This is what the term "best practices" implies to me . There are different, more subtle interpretations,…

I Was a 1980s Teenage Programmer Part 5: Achieving Assembly

Part five in a series about my teenage adventures learning about computers and programming in the 1980s: achieving assembly

I Was a 1980s Teenage Programmer Part 4: The Call of Assembly

Part four in a series about my teenage adventures learning about computers and programming in the 1980s: the call of assembly language.

The Tooling Shift

Tool maven versus language maven. Do modern development environments enable you to be both? How does this affect languages?

I Was a 1980s Teenage Programmer Part 3: MSX-2

Part three in a series about my teenage adventures learning about computers and programming in the 1980s: the MSX 2 computer.

JavaScript: when you need two ways to do it!

Wherein we discover JavaScript always gives you a choice.

Empowering Programming Languages

I think, for me, becoming enamored by a programming language requires a sense of empowerment by that language. "Now I can build all the things!" It also requires a certain sense of conceptual unity; it can't be too messy. It also cannot be too low level: it needs the ability to do abstraction. And I need to be actually using it a lot for real world tasks; it can't just be for toy problems. In my…

Bloat and Retrofuturism

Developers like to complain about bloat in software. But should we feel guilty? What do to about it? Do we need software environmentalism and a retrofuturistic approach?

Refreshing my Blog Again

I've refreshed my blog again! Let's talk a bit about the history of this blog, and more specifically the technology behind it. I started my blog in January 2005. It's been a while. …

Random Rust Impressions

I have been using Rust for some years now for hobby projects. Recently I also had the opportunity to use it professionally for a while. My background is mostly in dynamically typed languages like Python and JavaScript, though I have played with various other languages over the years. I thought I'd share some of my impressions of Rust. …

Apilar: An Alife System

I participated in a langjam. I created Apilar, an artificial life system based on a stack-based language.

I Was a 1980s Teenage Programmer Part 2: Olivetti M24

Part two in a series about my teenage adventures learning about computers and programming in the 1980s: the first PC.

I Was a 1980s Teenage Programmer: the Alphatronic

I have been programming computers for a long time; I started as a teenager at some point in the 1980s. I thought I might reminiscence a bit about it. That's fun for me, but it also may also be fun for others to see a small snapshot of what programming could be like back then. For some, of my generation or older, there may be recognition, but for others who got into programming later this might be…

SolidJS fits my brain

In this article I'm going to talk about the SolidJS frontend framework, and why I think it's cool and fits my brain. …

Is premature optimization the root of all evil?

Among programmers there is a saying: premature optimization is the root of all evil. Where did that come from? In what context was it used? Does it still apply? …

Framework Patterns: JavaScript edition

Software developers use software frameworks all the time, so it's good to think about them. You might even create one yourself, but even if you don't, understanding the design principles underlying them helps you evaluate and use frameworks better. …

Roll Your Own Frameworks

When I build an application, I build frameworks along the way. I recently realized that not everybody thinks this is normal, so I thought I'd give a description of what I do and why I think it's a good idea.

Looking for new challenges

Framework Patterns

A discussion of what patterns occur in software framework design.

Secret Weblog Highlights

This is an old blog by now. I started it in 2005. But I'm not old! No way! Over the years I wrote a lot of stuff. Sprinkled throughout are entries that I think are still relevant. So if you'd like, join me in my little journey through the history of my secret weblog. Warning: it's mostly about software development in one way or another. …

Refactoring to Multiple Exit Points

mstform: a form library for mobx-state-tree

Seven Years: A Very Personal History of the Web

Looking for new challenges

Morepath 0.16 released!

Is Morepath Fast Yet?

Introducing Bob Strongpinion

Punctuated Equilibrium in Software

Morepath 0.15 released!

Impressions of React Europe 2016

Morepath 0.14 released!

Morepath 0.13 now with Dectate

Dectate: advanced configuration for Python code

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