Eli Schuepbach :||: h0me - 415.451.8227, m0b1le - 415.302.5067 :||: eli@inmarin.net  
main :||: experience - work history :||: code examples :||: graphic examples :||: interests

Examples:
Here are a few examples of my work. Click on the thumbnail to launch an example.

These are examples of code, though I may have done the graphics as well. Click here to to examples of graphics.


Database Management
This is demo that I built recently that lists all the tables in a database. By clicking on any of the links created, it dynamically builds a form specific to that table. At the bottom of this page is an example of a debugging class that I wrote which lists sql statements, as well as what functions are being called and their arguments. I have disabled the ability to insert and update records, as well as the ability to view existing records. This works on any MySql database with very little configuration. All one needs to do is set the database name, the username and password in a configuration file for the database that you want to use this on.



Intranet / Time Tracking Application
Here is a little slide show of an intranet that I developed for AudioBase Inc.
The two main functions of the intranet wer a document manager and browser, and a time tracking application that was used to track project performance, as well as invoice the client.

Currently I have installed the scripts on my own server to track time for contracts that I do, as well as archive my digital media collection.


Audio Email Campaign & Code Generator
Originally I developed this tool to save me and the rest of the developers on my team, time. We had several clients that liked to send out email campaigns that were audio enabled. To do this successfully, more than one file had to be produced to accommodate different email clients, and situations. Before this tool was created, it could take some of our developers the better part of a day to create these email campaigns for our clients. This tool dramatically reduced that time to under an hour, and for some, around 20 minutes.

Once the focus of AudioBase became developers, I repurposed this tool and integrated it into the website for anyone who wanted to try their hand at audio enabled email campaigns. It creates all the files for the campaign, as well as generating a README file that detailed the specifics of the campaign at a glance.

In our developer version, and the version at audiobase.com, the files are created on the server and zipped up for the user to download. I have disabled that feature for this version as I do not want to write extra files on my web server. however, the generated code still appears in the text area at the top of the form.


The Ripper
Again, here is a tool that I developed to save time. When creating demos for clients, often we would use pages directly from their existing web sites. In order to keep the presentation clean and on track, it was common practice that we would replace all the values for the hyper links with "javascript:void(0)". This maintains the link behaviour, but disables it from actually going anywhere if clicked on. This could be a very tedious task, as well as time consuming. I avoid tedious, time consuming tasks if I can, and thusly created this tool that does it for me. Feed it the source code from any web page, and it will replace all hyper link values with "javascript:void(0)"

Because this was developed to be used internally, no effort whatsoever was taken for this to work on Netscape, please demo The Ripper in IE 5.x.



Audio Greeting Cards
Go through the steps of choosing a card, an audio clip, and filling out the card, then send it on. It arrives as an email in the recipient's inbox. The email contains a simple message and a link to the card online.



Simple Juke Box
A juke box written in PHP that plays Windows Media files. Make a playlist, play, pause, next and previous track...




Here is an example of a function that takes a form POST, writes the SQL, and inserts the values into the DataBase. Taken from a database class that I wrote in Php. The following are used in the database management demo above.
		function db_insert( $table_name,$field_list,$field_values )
		{
			$set_fields = join(",",$field_list);
			$set_values = join("','",$field_values);
			$sql = "INSERT INTO ".$table_name." (".$set_fields.") VALUES ('".$set_values."')";
			$query 	= mysql_query( $sql ) or die( mysql_error() );
		}
		
I use this function with my forms in the following way, so I don't have to write SQL anymore:
		$field_list    = Array();
		$field_values  = Array();
		
		foreach( $_POST as $key => $value )
		{
			array_push( $field_list,$key );
			array_push( $field_values,$value );
		}
		
			// we do this so we don't pass the table name and submit key/val to the field names and vals
			array_pop( $field_list );
			array_pop( $field_values );
		
			array_pop( $field_list );
			array_pop( $field_values );
			
		// we pass the table name in the form in a hidden field
		db_insert( $_POST['tablename'],$field_list,$field_values );
		
Here is an example of a form that uses this function in some of my own work. This is the only unique code in this whole process. And even here, this form has been dynamically generated by another class:
		<FORM name="cms_invoice" method="POST" action="">
			unid
				<INPUT type="text" size="50" name="unid" value="">
			invoiceid
				<TEXTAREA name="invoiceid" rows="10" cols="50"></TEXTAREA>
			invdate
				<INPUT type="text" size="50" name="invdate" value="">
			open
				<INPUT type="text" size="50" name="open" value="">			
				<INPUT type="submit" name="submitsubmit" value=" Insert ">		
				<INPUT type=hidden name=tablename value=invoice>
		</FORM>