Resumé |
Web Portfolio
Project Portfolio
Jump to: Web Sites | Web Applications | Java | C/C++ | VisualBasic
Web Sites
RegardingPeanut.com
RegardingPeanut is an eCommerce store based on WordPress and the WordPress eCommerce plugin from Instinct. The WordPress install is stock, but I've created a theme to match RegardingPeanut's branding. The majority of my additions involve the eCommerce plugin. Along with speeding up the code by removing redundant sql queries and rewriting slow ones, I added a great deal of taint checking for posted data. The administrative display is modified to include further information about the orders. RegardingPeanut also had existing contracts with a credit card service provider not origionally supported by the Instince eCommerce Plugin, so that component needed to be built from scratch.
StarfishAdvocacy.org
StarfishAdvocacy is a non-profit organization supporting parents of special needs children. It offers resources for parents, teachers and administrators who must deal with the issues that these children face every day. The site provides advice and moral support for parents, and also classes and advocacy services to make sure parents ask the right questions when in an adversarial position with teachers and school officials.
The site is based on the
Drupal CMS with a modified theme and a few hacks to make things like Chat work as expected.
CableWholesale.com
CableWholesale.com is a 15,000+ page eCommerce web system. This latest roll-out is a complete site re-design overhauling the database, API and business layers, as well as the interface. While the major user-centric portions of the site are dynamic, the parts and specifications sections are maintained partially static. This duality reduces server load, to keep the site stable in case of the
slashdot effect.
CableShowcase.com.cn
This is the first website I've build with a non-roman encoding. It's made for some very interesting translation and storage issues, and has increased the quality of our codebase. This site also uses CSS for positioning. Nearly all facets of user presentation are seperated from the content. Likewise, all strings and localiztion features (number and date formats) are externalized from the code, so localizing to another language would require a minimum of changes.
CableShowcase.com
Durring the expansion of CableWholesale.com we found a good market for premium quality cables offered at our usual wholesale price. This brand is intended to compete in the retail market with more expensive audiophile and gamer grade cables. Of course, it needed a small website.
This site also serves as a test case for PHP generated CSS files. Each time the main page is loaded, the user is presented with a slightly different look-and-feel which is kept consistant through the rest of the site until the main page is requested again.
AudioShowcase.com
The newest form of AudioShowcase.com brings us back to basics. The interface is simple and uses typesetting and slight differences in color to present division in the elements instead of defining hard lines. The navigation no longer uses any javascript, and images are used infrequently. Most of our existing back end perl code was used with slight changes to create featured elements in the catalog.
EISOnline.net
When EIS was first being designed, there were two elements that they wanted put together: a 30 seconds non-skipable Flash into, and left-hand navigation for the rest of the site. Encouraging them away from the Flash animation, setting their logo as the center piece of the main page navigation was adopted.
Doves Soccer Team
This is just a little site for my daughter's soccer team. More of an experiment in how fast I could build a small site. It took longer to find source images than to code the site.
VikinGlobal.com
VikinGlobal.com was the first professional site I built, and also the smallest. The entire directory for the site containing images, text, HTML and CSS was only 53kb. VikinGlobal changed markets some time ago and no longer maintains this website. The only remnant of the site is this screen shot.
Web Applications
AJAX Multimedia Gallery Manager
Every parent takes a large number of photos of their children and I'm no exception. When my wife was pregnate with our second child we were prepared. New SLR, new small "purse sized" camera that can take videos, and new gallery software to share it all with family and friends. The result is a themeable display with AJAX controls with WebDAV integration.
A WebDAV share is mounted to your filesystem and photos can added and deleted just like any other folder. The gallery detects when new images are added and creates thumbnails (GD) and extracts the EXIF data. Image descriptions and gallery details can be added through the AJAX inteface (
script.aculo.us). If video files are added, they're automatically transcoded to .flv (ffmpeg) and displayed through a flash video player (FlowPlayer). Metadata is stored in XML format for portability and to support inexpensive web hosts that don't include database support, but switching to a database back end would be trivial.
Image Thumbnailer
With all the products showcased in the sites above, a good thumbnailer was required. While this is something that Photoshop can do quite easily, it would take days to change both the size and jpeg compression level a large number of images. I tried several freely available applications, but in the end I found it easier to just write my own.
Whitehorse Project Tracking System
Why is it called Whitehorse? I made the quintessential 3D chess set a year ago, and I've wanted to call something Whitehorse ever since.
Whitehorse is a project tracking system. It's not feature rich, but it allows the members of my team to view the status of our projects quickly across all platforms.
NOTE: The version linked is watered down so data can't be changed.
Contacts.groket.com
This application was to going to be a simple contacts list that I could access when I was away, but I told my friends and family what I was doing, they wanted one too. Contacts.groket.com is now organised into contact 'rings' that define social groups. Security is in place so you can only access the member information for a particular ring if you are approved by the 'ring leader'. The site also includes a per-ring calendar system. Any member of a ring can view and add to the existing calendars. The site is open to the public, so go make yourself an account and check it out!
Java
JChat Messenger
When my employer was expanding into several suites of an office complex it became too difficult for our sales and technical support staff to communicate with each other. Email took too long, and existing chat services offered too much recreation. This application talks to a server app to distribute messages to logged in users in several sites in the area.
JAdmin
This was a side project of mine that eventually became a work project. It's designed to be a full-featured, plug-able eCommerce and call center business management application. It could be used by customer service people to look up customer or order information, by management to check inventory levels, and by warehouse personnel to create labels. It used xml serilizations of java objects which it bassed to and from the JServer. For me, it was a labour of love and taught me a great deal about building UI and Design Patterns in Java.
JServer
We needed a centralized place to gather data and interact with it. Instead of writing more software that interacted directly with the database, we needed a server that would abstract certain changes and functions of the database and present it in a neutral fashon. We wrote clients in Java, PHP and Perl so our existing applications could integrate with it more easily. The data was stored in a MySQL database and we build data classes that reflected the data tables. However, this mapping wasn't exact, so tools like Hibernate couldn't be used. This also gave us the flexability to use different databases for some operations. Using MySQL replication, we could select from one database and insert/update on another to reduce load on the servers.
POVRay Molecule Maker
A long time ago in a university far far away, there was a program called MacMolecule. While it was useful for producing simple 3D images of colored spheres to represent molecules, it would only render to the screen so you couldn't get an image with high enough resolution to print in a journal. While this little program has gone far past it's life cycle, I know someone who still uses it, and I built this tool for them. It parses the MacMolecule file format and creates a POVRay render script (and associated .ini file) so you can make extremely accurate, high resolution images from your once paltry MacMolecule file.
Image Protection Applet
To keep people from downloading images from websites without the owners permission, I made this little applet that displays images without giving away where the image is actually stored.
CWS Configure
This is the first step in a larger project. CWS Configure edits the configuration files of a VisualBasic application called CWS Admin that controls websites. Eventually CWS Admin will be ported to Java so the call center that uses it can be migrated to Linux, so instead of writing new code in a language we're moving away from (VB), this little tool was made in Java.
C / C++
PalmOS Time Tracker
This is a time tracking system for mobile engineers. With a hundred or so per diem employees spread around the country, it was important for my employer to keep track of their time and expenses. This software allowed employees to carry a small PalmOS based device in the field, enter their expenses, and upload the data into a database in our corporate offices through dial-up.
VisualBasic
OnTarget
OnTarget is a business development tool. It's function is to forecast business growth (geared toward accounting firms). I was given some half-written code produced by a software development house that went under and turn it into a shrink wrapped application in 2 months. Given the circumstances, I'm pleased with how it turned out. Although, I wouldn't choose a language like VB to do anything that involves math in the future. While number precision and rounding accuracy wasn't important for this particular application, VisualBasic isn't exactly known for it's strengths in these departments.
*OnTarget was developed at
RAN ONE Inc., and it now owned by
Principa
Last Updated: 07 Jan 2008