Here are some of my fun (read spare time) projects that people have been asking for copies of (and updates for). I'll be putting the updates here. It's easier than E-mailing it to everyone.... Please let me know what you think, and especially if you think you may want to use the code. If more people want to use it, I may start improving on the code again.

Additionally, I have the newest projects (and some of the ones below) hosted on Github. The main projects there are an SSL enabled version of the Redis memory cache, a PHP plugin that abstracts redis into a class (also SSL enabled), and a PHP plugin for the Hyperdex NoSQL database. Here is a link to my repo there.

License: For all of the code that I have written below, you are FREE TO USE this code, all or in part, in any product free or commercial, as long as the copyright notice is kept in place when most of the code in a module or the entire module is used, or at least some credit is given when a small portion of code is used. Donations, comments, questions, small projects, etc. are always welcome!

If you would like to make a small donation, to help me maintain these, pay for hosting, or for other work, you can click to donate with PayPal.

Newer Code

Here are some of the newer items I'm working on. These are parts of projects that can be pulled out and separated into modules...
  • I now have a secure AJAX layer that uses RSA signatures, Diffie-Hellman key exchange, and AES to encrypt XHR traffic between a client and a PHP webapp on a regular HTTP server. There's also some special magic included to foil even the most sophisticated man-in-the-middle attacks as well. It is more secure than HTTPS without ever having to have an HTTPS server or those expensive certificates! There are C programs to generate keys and quickly do encryption / decryption based on the GMP library and the BSD Rijndael library. I have PHP versions as well, if you have GMP loaded. I also have JavaScript files to do AES, RSA, Diffie-Hellman, SHA-1, and MD5 on the client side. Finally, I have a set of PHP apps that pull it all together and throws in the final incantations to make it all work. This isn't going to be an open sourece library, like the others here, but you can license it cheaply... There's even a free version. More information is here, and the Github repo for the free version is here.


  •      

  • I have small Visual Basic .Net application that checks for new emails from a POP3 mailbox. It's lighter than having Outlook or my Web Mail client running all the time... A link to it is Here. It's actually pretty cool. It will use SSL and can use APOP authentication if your server supports it. You can enable or disable the popup window, set the duration it is visible, and the interval between checks. The popup window will tell you how many new emails on this check (uses the UIDL command), show you the FROM and SUBJECT headers if selected, and the tootip on the icon keeps track of how many new emails have been received since you last cleared it. To quickly show the popup whenever you want, just double-click on the tray icon... All in all, very useful. It uses AES-128 to encrypt your password in the registry so it can't be stolen. Of course, that's a moot point if your POP3 doesn't use APOP or SSL.
    PLEASE NOTE: If you have problems running this, you most likely need to download and install the Microsoft .Net Framework 2.0 or higher. Either use Windows Update, or click Here


  • If you would like a Twitter status display on your website like the one on mine, here is the library that I wrote. It's all JavaScript, and uses the json API call from Twitter. It is fully stylable with CSS, and is very easy to use. Let me know if anyone would like me to make a local cache webservice for twitter statuses. It should be pretty easy.



  • Here is an inline popup library in JavaScript and CSS. It uses the CSS for Moxiecode's inline popups (because I am NOT an artist) and the basic div structure (so I can use the css). The code, though, is all mine. Here is a link to the zipfile of the code, and here is a link to a demo page... The demo should provide enough information to use the libaray. If not, send me an email!


  •    

  • Also, building on moxiecode's TinyMCE, I have a new version of advanced image plugin with a file manager. I also have a file manager as a separate plugin that you can use with the image plugins they provide. Here is a demo showing both of these. Here is a link to the enhanced advimage plugin, and here is a link to the filemanager plugin. The server is written in PHP, and the rest is JavaScript and CSS. It also uses the FTPApplet java applet below... To use, simply unzip to the plugins directory, add the name to the init method of the editor, and change a few globals in the filemgr.php and ftpauthserver.php scripts. That's it!


  • This is a Java Applet that can perform an FTP upload to the server that served the page containing the applet. It makes a call to a webservice on the server to authenticate the transfer, and if approved gets the ftp usr name, password, and a directory to store the file from the webservice. The class also has a file chooser (with thumbnail and detail views) that can either select one file, or many, depending on the call made from the page, and can remember the folder last selected for subsequent calls (again, selectable). The applet attempts to start with a passive transfer, and if the server does not support it, it reverts to active mode.
    Main applet class: FTPApplet.java     FTP handler class: FTPConnection.java     Image File Viewer class: ImageFileView.java     Swing Utility class: SwingUtils.java     Utility class: Utils.java     File filter class: ExampleFileFilter.java

  • For a complete demo, example code, full (updated) source, and a signed JAR file (with some additional security added) Click Here
  • Here is an applet I use for connecting to a SSH server and doing an SFTP transfer. This is just an applet wrapper class, though, and it's still a work-in-progress. I still have a lot of cleaning up to do. The SSH and SFTP work is done by a different library (jsch.jar) available Here. The applet wrapper source is SFTPApplet.java The applet calls the HTTPS server using a URLChannel to get the username / password for the SSH session.

  • For a complete demo, example code, full (updated) source, and a signed JAR file (with some additional security added) Click Here
  • This is an XML parser written for PHP. It's very simple, but fast and easy to use. Source: xml_parser.php


  • This is a database (MySQL) session handler for PHP. It's very simple, and hasn't been tested yet, but it should be a good starting point... Source: dbsessions.php

Old Code

Ray (Omega 3D)

Here's the code behind my first attempt at a 3D game engine. The map and textures for the demo and screen shot were created by George Martin. Also, he has helped me find several bugs, and has helped add several new features to the code.
Source Code
Demo Program

WinRay - Windows port of above

I have completed a first cut of a direct windows port of the game engine. It is similar to one done earlier by Jorge, but with the exception of a couple of functions, it's a straight port of the DOS program with windows features I added after learning Win32. I did use a couple of Jorges methods, though, since they seemed to do what was needed so well...
Source CPP file
Header file
Demo

WadReader - DOOM Wad reader and walk-thru

Here is a work-in-progress that reads the shareware DOOM wad file, and lets you walk around the map. It does not render the ceilings or floors as of yet, nor does it render the objects (monsters, etc.) These are in the works, but I'm lucky if I can find an hour or two every month to play with this... Also, there is a bug in the wall rendering... Maybe someone out there can help me spot it...
Headers: wad.h render.h types.h
Sources: wad.cpp render.cpp wadreader.cpp
Demo App

Really Old Code

These are libraries and other apps that I did quite a while ago. Several people have expressed an interest in these, so I put them here.
The comm port library and GUI run in DOS, and work very well for what they do. I also use the C/C++ to HTML converter all the time. The C++ 3D library uses BGI, so it's fairly slow. I am working on a new windows version that should be much nicer, that will do 32bit color, garaud shading, texturing, etc.
Here's the program that does the C/C++ to HTML conversion. Click Here.
Here's a good serial port communications library. HEADER FILE and the C++ SOURCE
This is a 3D graphics library tha uses BGI. HEADER and the C++ SOURCE
This routine sets the bottom of the screen on fire. Source , and Dos Executible
Here is my DOS GUI library Header, and Borland C++ Source.
Here is some code for 'medium level' objects for the above library: Header, and C++ Source.
Here is a program that uses the commport library and the GUI. NPSterm