My elder kid loves mazes. So I made a maze generator in JavaScript. It is a dad-woodworking-like situated software. I probably don’t have to do it and google it from somewhere. But making day-to-day software feels good.
What is “Situated Software”?
Clay Shirky has written “Situated Software” in 2004.
Part of the future I believe I’m seeing is a change in the software ecosystem which, for the moment, I’m calling situated software. This is software designed in and for a particular social situation or context. This way of making software is in contrast with what I’ll call the Web School (the paradigm I learned to program in), where scalability, generality, and completeness were the key virtues.
While this future hasn’t been there yet, I still like the essay. I hope public clouds and managed compute platforms make that slightly easier. People who work on situated software may not be software developers in the traditional sense. They don’t have to worry about Linux kernel versions.
If you are interested, Nelson Elhage and Hillel Wayne have written about the essay in 2020.
Maze Generation Algorithms
The page is currently using a randomized depth-first search’s iterative version, which is described in the Wikipedia page.
C言語による最新アルゴリズム事典 also has a maze generation algorithm, but it is too terse for me. I bought the book long time ago and pretty excited to read about all of algorithms, but they were overall really terse, probably to fit in the print form.
The Pragramatic Bookshelf has Mazes for Programmers. I read a bit through O’Reilly’s subscription through my ACM membership.
React
I have used Nuxt (Vue) and Svelte a bit, but this is the first time I use React. It is good! The fact that I can make a pure JSX-returning function and call it a “React component” is refreshing.
That being said, the amount of the indirection between the React + TypeScript world and the web’s native form is overwhelming.