Category: Programming
-

Print your own LEGO Technic-compatible parts
Eleven years ago, I released LEGO.scad, an OpenSCAD library for generating 3D-printable LEGO-compatible bricks. Today, I present to you Technic.scad, an OpenSCAD library for generating 3D-printable LEGO Technic-compatible parts. Technic.scad can generate axles, pins, pin connectors, hubs, beams, bushings, elbows, gears, tires and wheels. All of the pieces are customizable, so you could generate nearly…
-

X for Y Programmers
I’ve been programming in primarily PHP for the last 20 years, and sadly, most of the fun new projects do not use PHP. While the mechanics of every programming language are generally the same (except for you, Haskell), the idioms vary — how do you loop through lists, how do you clone an object, etc.…
-

Today’s Functional Print: Fitting round cups in a square drawer
I recently learned about Gridfinity, a modular open-source storage system created by Zack Freedman. It uses a baseplate grid of 42mm squares; you can 3D-print pre-existing bin designs, or you can design your own custom containers to fit into the grid. Our silverware drawer has been in flux since I remodeled our kitchen in 2023,…
-

Today’s Functional Print: Baluster Retrofit Hardware
I’m in the process of remodeling the stairway in my house. I wanted to replace the old wooden balusters, some of which had broken and been repaired multiple times, with new metal balusters. Pictured above: the old balusters, minus the most-recently broken one that is missing. Ignore the green tape and in-progress trim. The old…
-

Metermaid: Easy Water Meter Tracking, Powered By WordPress
My house’s water is supplied by a well. This well is shared with a dozen other houses, all of which have water meters to track usage. Several years ago, I was volunteered to be the president of this water association, and with this position came the responsibility for tracking water usage to ensure that we’re…
-

Typo.js in your iOS game? It’s more likely than you think.
Developer Reza Boroushaki has released Parola, a word puzzle game for iOS that uses my spellchecker library Typo.js to power its gameplay. Try it out and think of me while you build your vocabulary!
-

Run Your Own Television Network with Channel Two
YouTube allows anyone to be the star in their own television show, but the true dream job of every little girl and boy has still been out of reach: Vice President of Program Scheduling. But today, that dream becomes reality. Channel Two is a web application I’ve written that allows you to run your own…
-
All the LEGO ‘Round Here
Ben Zvan has very helpfully added support for round LEGO bricks to my LEGO modeling library, LEGO.scad. To circle your squares, specify type=’round’ in your call to block(). Thanks Ben!
-
Typo.js 1.2.1 Released
I’ve tagged and released version 1.2.1 of my pure JavaScript spellchecker, Typo.js on npm. The only change in this version from 1.2.0 is that it’s now less susceptible to a regular expression Denial of Service attack, which is to say that it more elegantly handles .aff files with lots of consecutive whitespace. (Thanks to huntr.dev…
-
Introducing The Endonym Project
An endonym is a name that people give to the area where they live. For example, you might live in a city that is officially named “Brooklyn Heights,” but you and all of your neighbors call it “The Heights.” This is an endonym. I’ve always wondered about how well-defined the geographic boundaries are for endonyms…
-
Reenact is back on iOS, baby!
Five years ago, I wrote an iOS/Android/Firefox OS app called Reenact that helped you reenact photos. Four years ago, I abandoned the apps in favor of a web app that only worked in Chrome and Firefox. Today (zero years ago), I’m happy to announce that the web-based version of Reenact works in all major browsers…
-
Turn your Mac OS Photos library into a Web photo album
Six years ago, I released iPhoto Disc Export, a tool for exporting an iPhoto library as a standalone website. Now that iPhoto is no longer supported on the newest versions of Mac OS, I was force to update the software to work with Photos. Enter Photos Disc Export. Photos Disc Export is a a PHP…
-
Generating and Cutting Halftone Images on the X-Carve
Halftone is an app I’ve written for making halftone-style carves with Inventables’s Easel CNC design platform. A halftone image uses different sized dots to represent light and dark areas. Upload an image, and Halftone will convert it to a grid of holes with each hole sized to reflect the brightness of the image at that…
-
Run Your Own Open-Source Timehop
I like the idea of Timehop: seeing all of the photos I took on this day in years past. I don’t like the idea of sharing all of my photos with a third party, so I built an open-source replacement for Timehop that runs on my own computer and server; it’s called Clockback. Clockback is…
-
Turn Your X-Carve into a Plug Cutter
One of my favorite aspects of Inventables’s X-Carve CNC router is Easel, their free online carving software. My favorite part of Easel is that it is programmable — you can write apps for it. Apps automate tasks like turning an image into a puzzle, carving gears, or making inlays. Inventables has written nine apps and…
-
Activity Book: An Alexa skill for bored kids
Do you have an Amazon Alexa-enabled device? Do you have children? Are those children ever bored? If your answers were “yes,” “yes,” and “yes of course all the time,” then do I have an Alexa skill for you! It’s called Activity Book. Enable the skill in your Alexa app (or by saying, “Alexa, enable the…
-
Share an iPhoto Library on the Web with WordPress
I recently needed to publish the contents of an iPhoto library online, so I wrote a script that converts the library to a WordPress site using WordPress’s REST API. The script is available in my iPhoto-WordPress-Export repository on GitHub. Check it out, and then run it like this: $ ./iphoto2wordpress.php –library=/path/to/photo/library –wordpress=https://www.example.com/ After prompting for a…
-
Putting 1940s Kodachrome Slides on the Web
When my wife Christina and I were cleaning out her late father’s garage, we came across two cases of Kodachrome slides that included nighttime shots of downtown Minneapolis in the 1940s and 1950s, pictures of daily life in nearby Hutchinson, Minnesota, and some World War II photographs, like this one of a group of soldiers…
-
Generating Dovetails in OpenSCAD
I’ve written an OpenSCAD library for generating dovetail pins and tails. No longer will beautiful dovetail joints be solely in the domain of skilled woodworkers; now, anyone with a 3-D printer or CNC router can participate too. Include it in your OpenSCAD script like so: use <dovetails.scad>; dovetail_pins() will generate just the pins of a…
-
Improve your Christmas gift opening with Randomizer
My wife and I wanted to find a way to do an orderly one-at-a-time Christmas gift opening this year rather than the usual everyone-at-once free-for-all, but while also still keeping all the kids mentally present, rather than having them zone out until it was their turn. We decided to randomly choose the next person to…