Unpredictable Image Filenames, WordPress

New WordPress Plugin: Unpredictable Image Filenames

I’ve written a new WordPress plugin to help protect uploaded images from being accessed just by guessing the URL.

Many cameras and smartphones number their images in a predictable format. For example, iPhones use the format IMG_0001.jpg. If you include IMG_0345.jpg in a blog post, an unsavory third party could start regularly trying to access IMG_0346.jpg, attempting to view the image before you publish a post containing it.

Or, maybe you have a private blog that you only allow family members to read. Not all “private blog” plugins are able to require authentication to load images from /wp-content/, so the same unsavory third party could just start guessing URLs like /wp-content/uploads/2016/05/IMG_0001.jpg, hoping to eventually get a hit. 9,999 requests would enumerate every possible image from an iPhone for each month, almost definitely allowing an unauthorized person access to your photos.

The Unpredictable Image Filenames plugin for WordPress renames image files to a sufficiently unguessable name when you upload them. For example, IMG_0345.jpg could end up as 334AB1E8-28AB-4BE1-882D-3C112E95F055.jpg, and IMG_0346.jpg could be renamed A67C9CF9-0BB5-4FB4-AD03-DCB294F853EC.jpg. Try and guess that!

You can install Unpredictable Image Filenames from your WordPress admin plugins screen, download it from the .org plugins directory, or view the source on GitHub.

3D Printing, Programming

Today’s Functional Print: Baby Gate Support

In today’s “No, don’t go up there” news, I’ve printed a custom baby gate support.


Based on a design by Thingiverse user Printed_Solid, this support allows a pressure gate to be used against a post without attaching a wall cup, which would leave a permanent screw hole. I updated the original design to have longer and thicker corners to prevent strong children from pulling it off of the post, and the entire part is customizable to fit your specific post.

The SCAD script is available on GitHub, and the part can be customized and downloaded on Thingiverse.

OpenSCAD, Programming

Animating the Solar System with OpenSCAD

OpenSCAD is my language of choice for designing objects that will be 3D-printed, but I just recently learned that it also supports 3D animation.

To familiarize myself with this feature, I decided to animate the movement of the planets in our solar system. Here’s a GIF excerpt of the animation generated by OpenSCAD; it covers about 2.5 Earth years:


Neat, right? The axial tilts and orbital periods, speeds, and inclinations of the planets and moons are all accurate, but for visibility purposes, I scaled the size of the planets up 20x relative to the size of the sun and reduced the distance between them by 98%. The relative positions of the planets are also reasonably accurate for March 2016.

The script is available on GitHub; let me know in the comments if you’ve ever used OpenSCAD’s animation feature and what you made with it!

3D Printing, Games, OpenSCAD, Programming

Today’s Functional Print: Board Game Piece Bases

In today’s “do you think this is some sort of game?” news, I’ve designed and printed some boardgame piece bases.

These were printed specifically for my son’s “Thomas and Friends Tracks and Trestles” game, which was missing two of its bases, but the design is customizable to fit almost any size gamepiece.

The OpenSCAD script and STL file are available on GitHub, and you can customize your own gamepiece base on Thingiverse.

3D Printing, OpenSCAD, Programming

Today’s Functional Print: Stove Knob

In today’s “customizable knob” news, I’ve designed and printed a customizable knob.

When we moved into our current house, the knob to control the stovetop fan was missing:


After six months of procrastinating and one hour of OpenSCAD, it now looks like this:


Now I don’t have to turn on the fan with a pliers!


The OpenSCAD script and STL file are available on GitHub, and you can create your own customized knob in Thingiverse.

3D Printing, OpenSCAD, Programming

Today’s Functional Print: Coat Rack Pegs

In today’s “I finally unpacked my 3D printer” news, I printed some pegs for a coat rack to replace the original pegs that we lost during a cross-country move.


The base of each peg is flared to ensure a tight fit into the hole, but it also has a hole in the bottom to allow it to be attached with screws. (A screw could also be added to expand the base and tighten the fit, even if it’s not necessary to keep the peg attached.)

The OpenSCAD script is available at GitHub, or you can customize it on Thingiverse.

3D Printing, OpenSCAD

LEGO Gender Equality

At the suggestion of Thingiverse user MrZaius, I’ve added support for female dual-sided bricks to my LEGO-compatible brick OpenSCAD library. The library already had support for male dual-sided bricks, so this is great progress towards eliminating the gender dual-sidedness gap.

A cross-section of a female dual-sided plate.

A cross-section of a female dual-sided plate.

Female dual-sided bricks are twice as tall as their equivalent single-sided brick in order to allow for enough space for the studs of other bricks to fit in on each side. You can try making your own customizable LEGO-compatible brick with the Thingiverse Customizer.