I work on a lot of various projects. This is a very small selection of projects I am either currently working on or projects that others have found interesting and asked me to keep. I have made a point of listing when I last developed the project. While I may fix a typo or two now and then, most projects are abandoned when I get them working well enough for my needs - or I hit a problem that I don't have time to solve. (Note: I am going through the old projects, one by one, and deciding what to put back here and what to leave out.)

Teaching Projects

I have been teaching for a while. I often make simple tools to use in class. If you feel that any of these will help you, please use them.

Name Pickers
You are teaching. You ask the class a question. What happens? Nothing. Absolutely nothing. You have to call on students to get a response. I use random name pickers to call on students. These all work the same way:
  1. Open the web page.
  2. Click on the button in the top left corner.
  3. Type in the names of each student, one per line.
  4. Click the button to close the name list (the page will automatically update).
  5. Click the on the center of the page to randomly pick a name.
You can download each of these pages to your computer so you can open and use them without an internet connection. I have multiple pickers that I use, for variety:

Learning Projects

As my children advance from grade to grade, I am continually disappointed with the quality of free learning software available. I end up writing simple web-based applications for them to use. Why web-based? I want them to work on any internet-enabled device (computer, tablet, phone, smart-TV, etc...) and I want other people to be able to easily use them. I also try to make it so you can easily download the HTML file and have a fully-functioning application that you can open without an Internet connection.

Wheel of Fortune
This is a spelling helper. Open the word list in the application and update it with your child's words. Then, your child will spin the wheel and try to guess the words by selecting letters. My experience is that it takes kids about 5 minutes per word, so 12 words is an hour-long task.
Math Primer
This is a math primer to drill single-digit math facts. You can turn on/off addition, subtraction, multiplication, and division. You have 30 seconds to get as many math facts correct as possible.
I've been asked to give more than 30 seconds. That would be silly. Do it yourself. After 30 seconds, you need a stress break, then you try another 30 second run.
This is a single HTML file that you can download and use without Internet access.

Real Projects

The following are projects that are (or were) part of a large project. I do not put projects I was paid to develop here as I do not retain ownership of those. Instead, these are projects that I work on in my spare time - when I have spare time.

This is a board game that I learned about in a dream.
CheepCheep (Last updated December 2020)
This is a project that hunts the web for cheap things for sale. It uses screen-scraping of Google's shopping search. Therefore, it breaks quickly when they change the layout of their shopping search. Further, it tends to find nothing but clip art (or similar) these days. Feel free to download it and try to hack it into something useful.
Facelock (No development since 2013)
This is a very tiny Python script that I use in conjunction with a facial recogntion program. If the camera (supposedly mounted near the computer monitor) cannot see a face, the screen is locked. So, if you get up and walk away from your computer, it automatically locks ... usually.
Poofz (No development since 2009)
This is a project that uses pink random values and a best-fit survival algorithm to create "art" - actually, it just makes a less random set of colored pixels.
News Substitutions
Based on XKCD, these are current news headlines with some word/phrase replacements to make them more interesting.

Javascript Projects

Because I do a lot of web development, I do a lot of javascript development. These projects are rather small javascript implementations that I've used and you might find helpful.

Site Status (No development since 2010)
Because I monitor a lot of sites that I develop, I wanted a very easy method to see which are up and which are down. This is a javascript embedded in a simple page that shows you the status of sites you want to watch. Just view the source code to see what to change to customize it for yourself. Pop it on your own webserver (or host it locally) and you can watch all the sites you care about.

Code Snippets

The stuff here isn't really enough to qualify as a project. It is more just a code snippet that others have asked me for.

This is a random number generator that produces values in a natural distribution. It also allows for skewed distributions.
This is an implementation of digit-wise decimal XOR to mask identification numbers with a numeric key. Yes. I made up digit-wise decimal XOR, but it works.
PHP Redirect
This is a PHP function that redirects a user from one page to a new URL. You can embed a query string into the URL.
This is a PHP function that wraps the built-in mail function. The goal is to strip out email injection.
You've read it. You can't unread it.
Copyright ©1998-2024 C. Shaun Wagner. All rights reserved.