Developer Sandbox Welcome to my developer sandbox. Whenever I create something that may possibly be useful to others, I stick it here. Unless otherwise noted all of the source code published here is licensed under the GNU General Public License version 2.

Is This The Cert Signer?

isCertSigner.php is a PHP script that will determine if one PEM encoded X.509 certificate is the signer of another. I had numerous CA certificates and numerous server ssl certificates, some self-signed, some from locally maintained certificate authorities, others from official certificate authorities such as verisign. What I didn't have was a way to easily determine which CA certs actually signed and issued individual server certs. The PHP openssl_verify() function looked promising, but suffers from an extreme lack of documentation that can be deciphered to the point it can actually be useful. I scoured the internet for sample PHP code to do what I needed, and found nothing. So I wrote this script, which converts the PEM cert to DER and reads the actual ASN.1 structures to arrive at a conclusion instead of relying on the unstable PHP openssl API. It does, however, rely on the PHP openssl_pkey_get_public() and openssl_public_decrypt() functions.

Last Update: 2010-06-06
Status: Currently Maintained


tally-dates is a javascript-based cumulative date tallying utility. Huh? Enter a date, it tells you how many years, months, and days have transpired. Enter multiple dates and it tallys all of them up. It is intended to be used by organizations, fellowships, etc.. that want to count up total amounts of experience etc... This runs via client-side javascript, so it can be run with a browser and no internet connection.

Last Update: 2010-05-11
Status: Currently Maintained

Mediatomb Import Script

import-badpenguin.js is a customized mediatomb import script. It is the end result of a desire to get all of our music collection from iTunes to a UPnP device, so we enjoy all of our photos, videos, and music from the PS3 or any of our various linux boxes (via xbmc). The import script splits Classical, Holiday and Country music into separate genres, leaving the remaining genres in the standard Audio category. Classical/Holiday music also gets special categories based on Composer, Choirs, and Orchestras. To install it follow the instructions from the mediatomb scripting wiki.

Last Update: 2008-04-10
Status: Currently Maintained


Autoports impersonates the FreeBSD Ports system, using the slackware package management system. It is written entirely in bash, has rudimentary dependency checking, and can be used to build a fully functional linux distribution from source. I stopped maintaining autoports around 2003 after migrating to gentoo. I have no idea if it still works with the latest slackware package manager.

Status: no longer maintained

Gentoo Stage1/Stage3 Building: Fact -vs- Fiction

Gentoo Stage1/Stage3 Building: Fact -vs- Fiction is an article that refutes inaccurate claims made by Gentoo "developers" that installing Gentoo from stage3 is "better" than installing from stage1.


Gentoo Buildhoster is a collection of utilities written in bash that automate the building of gentoo packages in chroot environments. It can be used to maintain multiple different builds of gentoo on a single host, generate stages, provide binary packages for distribution to target hosts, test upgrades, etc... A slightly modified bootstrap script is included that handles CHOST changes and toolchain upgrades when building from stage1. Gentoo Buildhoster can be installed and used on any linux flavor. The only requirement is that if you are building 2.6 kernels within the build hosts you will need to be running a 2.6 kernel on the host Gentoo Buildhoster is installed on. An ebuild is provided in addition to a deb package that has been tested on ubuntu dapper. It was last used on a 2006.1 profile.

Last Update: 2007-04-11
Status: no longer maintained


Gentoo Bootstrap is a gentoo bootstrap script that has subsequently been merged into Gentoo Buildhoster. Another utility resides in the gentoo_bootstrap directory called nobsmerge (no BS merge), which attempts to inject some sanity into the gentoo emerge package management utility. nobsmerge wraps itself around emerge and splits the target package lists into distinct targets: toolchain, system, world, and universe. I am no longer maintaining either utility, so use at your own risk ;)

Status: no longer maintained


gentoo_create_virtmail is a bash script, some patches, and an overlay that installs and configures the cyrus imap server. The resulting installation will use a mysql database for authentication (without pam), sendmail for the mta, clamav for antivirus, and spamassassin for handling spam. All sendmail cf generation is handled and the cyrus imap server is built with support for virtual domains. I no longer maintain this script, it was last used on 2005-04-10. However, the basic steps needed to get the cyrus imap server running on Gentoo with sendmail should remain the same.

Status: no longer maintained


glcmi - Geeklog Copyright Management Information - is a Geeklog plugin/mod that enables management of copyright licensing by authors and commenters when posting blog entries to a geeklog blog. It can also be downloaded directly from the geeklog web site. It will install on versions 1.3.9 and 1.3.10. This code is no longer maintained.

Status: no longer maintained


glrevive is a modification of the geeklog batch user import with extra features. The end result is that glrevive allows geeklog accounts that have been deleted to be "revived", without enabling the user to login or receive email from the geeklog system. It can also be downloaded directly from the geeklog web site. Patches are provided to install glrevive on the following geeklog versions: 1.3.8-1sr3, 1.3.8-1sr4, 1.3.9rc1, 1.3.9rc2, 1.3.9rc3, 1.3.9, 1.3.9sr1, 1.3.9sr2, 1.3.10rc1, 1.3.10rc2, 1.3.10rc3, 1.3.10.

Status: no longer maintained


glsuck is a php utility that can be used to scrape a geeklog blog and archive the articles and comments into a database for offline perusal.

Status: no longer maintained


glview is a companion php viewer for geeklog articles and comments retrieved with the glsuck utility. It has basic search, sort, and threading capabilities.

Status: no longer maintained


karmapools was developed to allow posters who frequented the Yahoo Finance SCOX Finance Message Board to take guesses about when bad karma would catch up to SCO Group executives. It is a somewhat rudimentary pool system that was created on a lark. I have no idea if it even works.

Status: no longer maintained


phpsol is a php based vegas style solitaire game. It runs rather pathetically over the internet but is playable via an intranet connection. This was created primarily to learn "object oriented" coding with php. Perhaps some day I will attempt to learn ajax and make the thing playable over low bandwidth connections.

Status: no longer maintained


utdcourtsuck is a php command line utility that scans the United States District Court For the District of Utah reports web site for updated reports and downloads them. It can use pdftotext to scan pdf files for keywords. It was created to watch for court documents emanating from the SCO Group -vs- IBM case.

Status: no longer maintained


yasuck is a command line php utility that will scrape posts to Yahoo Finance Message Boards and store them in a mysql database. This version worked with the old Yahoo Finance Messages boards and will not work with the new version.

Status: no longer maintained


yasuck2 is a command line php utility that will scrape posts to Yahoo Finance Messages boards and store them in a mysql database. This version is compatible with the more recent message boards. The yarchive html archives of the SCO -vs- The World debacle were created via yasuck and yasuck2.

Status: no longer maintained


yaview is a companion php application to yasuck/yasuck2 that can be used to browse, search, and download posts archived by yasuck/yasuck2.

Status: no longer maintained