Programs and Projects

These are some programs that I have written categorized by language and project. Click on the links to see more information about the projects, use the program, or download the program. I have varied interests so I have tried to vary my programs and projects. Some of these programs are downloadable native applications and others are web-based applications. Many of my projects are available for download and viewing there as well.


 

Dynamic Database Application (AJAX, PHP, SQL, JavaScript)

I downloaded two several hundred thousand record databases. One database has technical service bulletins and the other one is used to find vehicle recalls. The databases are queried by vehicle make, model, and year. The drop down menus are built dynamically with with AJAX requests, JavaScript, PHP, and SQL.

Technical Service Bulletins
Recalls
OBD2 Codes


HTML5 Game with JSON stored High Scores (AJAX, PHP, JSON, JavaScript)

Here is a game that I wrote using HTML5 and canvas. I patterned it off of wormy which I found written in Python. The object is to eat as many apples as possible without going off screen or hitting the snake's own body. Every time the snake eats an apple, it gets longer. This makes it more difficult not to run into itself as the game goes on. The worm is an array of segments. Each segment is an object. I found this to be the best way to write the algorithms. At first I tried to animate each segment, but that got tricky around corners. The best way to animate the snake is to advance the head and cut the tail with the pop() function giving the snake the illusion of moving forward.
I also added a leader board to this program using Ajax, PHP, JSON, and Javascript.

Boa


Home Web Server and Raspberry Pi Web Cam

I built my home web server from an MSI Cubi. I am running Ubuntu and Apache2 on it. It makes a great server because it is so small. I run it headless and SSH in from my other computers to do my work. I built a web-cam with a raspberry pi and I use that to upload security pictures to a site page requiring basic authorization.

 

Python

Python is a fun language to code in. There is lots of on-line support and good libraries. Here are some of my coding examples.

Injection Project
Automotive Scantool Software


I wrote these two native applications for Linux. The first one is a command line program that will return information about the computer system to the user. The program is menu driven. The second program is a gui program used to help pick powerball numbers. (The same concept as my HTML version.) Run them with Python 3.x

Linux System Information
Powerball


SQL

I like working with big data. I downloaded a Technical Service Bulletin database from the National Highway Traffic Safety Administration. I built an interface for users to select make, model, and year criteria and view the returned records. Users have the option of seeing all records in a field by leaving it blank. The number of returned records is listed at the top of the report.

Technical Service Bulletins


I downloaded a Recall database from the National Highway Traffic Safety Administration. I built an interface for users to select make, model, and year criteria and view the returned records. The number of returned records is listed at the top of the report. All three pieces of data (make, model, and year) are required for the query.

Automotive Recalls


HTML5/JavaScript

I am a member of my local Lions Club. Our bingo events are really big fund raisers for us, but the equipment was aging and falling apart. I decided to write a very portable program for our club to replace the old ball caller. We purchased a large LED tv and I made a portable stand for it. It was important to me that the software would run on anything and that anyone would feel comfortable running it. I used Math.random() to generate the psuedo random numbers. I also have a generic version Try it!

Lion's Bingo Caller
Bingo Caller

These are two conversion programs that I use at work to help me convert from decimal measurements to fractional measurements to the nearest 1/16 th of an inch. The algorithm was straight forward but fun to write. Saw offset adds 5/8 of an inch to the measurement.

Decimal to Fraction Conversion
Saw Offset Conversion
Calculate hours from punch time

This application helps determine the difference in wheel track between the front and rear
axles of a vehicle.

Wheel track difference calculator

Here is a game that I wrote using HTML5 and canvas. I animated some images and used action listeners so the user could interact with the objects. I used a simple collision algorithm to detect when the bomb hits the jeep. After four shots the jeep will randomly slow down or speed up to make the game more challenging. The player gets 10 shots and must see how many times she/he can hit the jeep.

Bomber


Here is a game that I wrote using HTML5 and canvas. I animated some images and used action listeners so the user could interact with the objects. I used a simple collision algorithm to detect when the tank hits craters or rocks. I used the same algorithm to detect when bullets hit rocks. I used the concept of parallax to give the illusion of depth when the tank is traveling.

Intergalactic Tank


The next two links are games in HTML5 that I wrote. They are both designed to be played on a desktop or phone. In Drag Race you test your reaction time by launching the car when the light turns green. You start the light sequence by clicking stage. The reaction time is in milliseconds. The goal of Sky Fire is to hit as many of the objects as possible in one minute. The collision detection and algorithm for the gun turret were the most challenging parts of this program. It is also challenging to play as you are not allowed to rapid fire. Give it a shot!

Drag Race
Sky Fire


My dog and her hobby of barking at the UPS man inspired this next game. You need to sneak the UPS man to the door before Ruby appears in the window. Ruby has several random times that she is away from the window so there is some luck involved. When you get all the way across the screen, you earn "power bars". With these you can travel faster to increase the probability of making whatever distance you choose to use them for. I used canvas and requestAnimationFrame which is my favorite for animations.

Ruby

This is a fun little program written to help pick powerball numbers. I used Math.random() to produce psuedo random numbers. The computer can't be totally random without using atmospheric noise for the seed numbers. I am using the time/date stamp for the seed numbers. That is close enough to random for a fun program....just don't bet the house!

Powerball


How fast are your devices relative to each other? Click this link and find out.

Benchmark


I developed the next three web-based aplications to help my students with some rather hard computations. They can use these programs to check their work and help perform lab calculations.

Moment
Centroid
Right Angle Trigonometry


I came up with this calculator as an alternative to a conventional calculator. It is kind of a twist on a simple stack or Reverse Polish Notation. For some operations the calculator proves to be quite fast. This is my JavaScript version. Try it!

Quick Calc


Java

Click the Automotive Scantool link to see more detail.

Automotive Scantool Software


Sticky Note is like having a digital post-it note. It keeps a copy of your memo in a small text file. You can clear it, save it, and recall it. Editor is a full working text editor that has a file browser. I built it to be easy to use and light weight.

StickyNote Download (Needs Java)
Editor Download (Needs Java)


This little program allows two people to play Tic Tac Toe together without paper and pen. Click once to toggle an X and once again for an O. A third time clears the square or clear them all with the clear button.

Tic Tac Toe Download (Needs Java)

I came up with this calculator as an alternative to a conventional calculator. It is kind of a twist on a simple stack or Reverse Polish Notation. For some operations the calculator proves to be quite fast. Try it!

Quick Calculator Download (Needs Java)


Miscellaneous

ScoreCard (PDF)