My Portfolio

EduTechnica.com

EduTechnica.comThe Problem: Learning management system administrators have little insight into how their users are actually using their systems. In additon, not even the developers of the LMS systems know how many users they have, what versions their clients run, or what plugins are installed.

The Solution: EduTechnica.com provides a free plugin for learning management systems that collects aggregated and anonymous data directly from the LMS systems. By using our plugin, administrators can find ways to optimize their systems, provide cost justifications, analyze usage trends, and compare all of this to the rest of the industry. Industry-wide trends can quickly become visible out of what used to be only guessed at or assumed. Trends can be shared using the integrated social networking site and sharing of best practices can be easily facilitated.

The Technology: The plugins are built using various technologies based on the LMS system. The backend for data collection is a Java-based application and the data presentation layer uses PHP, MySQL, and Javascript. Custom pCharts classes and SocialEngine provide the framework.

Visit www.edutechnica.com


Arduino Web Interface

arduino_temp The Problem: As part of my continuing experimentation with the Arduino platform and working towards my goal of the Brewduino, I wanted a way to have the Arduino publish data to the web.

The Solution: Live (well, so long as I have the arduino dedicated to the purpose) view of the current temperature in my home office.

The Technology: This project got my feet wet in the world of Python scripting. There’s a SerialPy class that monitors the USB port on my desktop. The Arduino passes the current temperature from a sensor into the serial bus. The Python script pushed the temperature and date to a web service running that updated a MySQL database. Finally, a PHP script pulled the most recent update and displayed it to the world.

This was more of a proof of concept into finding a way to store the data from the Arduino. Onboard storage is tight and working with external storage on the Arduino gets messy. I like the idea of using a web-based application to store and hopefully control the Arduino which would allow me to track temperature (brewing and fermentation) over a period of time, store procedures to be loaded on demand, etc. I have some pCharts I started tinkering with to get the temp data plotted.


Inselkampf Online Gaming Portal

Inselkampf PortalThe Problem: A while back, I started playing an online game called Inselkampf (”Island Wars”), a real-time war strategy game. The interface was extremely simple (see below), but the data behind the game was vast. Early on, many players realized that the key to success was to have the most current information quickly available.

The Solution: To begin with, I created a simple set of PHP scripts that imported the game data (player stats, island counts, etc) and parsed them out. This helped each alliance keep track of their own players islands and know when someone was attacking them. As the site grew, I eventually created a portal that provided a variety of functions and information essential to effective game play.

The site featured:

  • Map View – instead of looking at one group of islands at a time, individual islands across a 5×5 grid could be seen. Player stats were overlayed (pic below).
  • Attack Monitor – Using AJAX, a notification could be displayed the moment any island became under attack, making manually checking each island one at a time obsolete.
  • Player Statistics – View players history to quickly determine activity levels and island captures.
  • Daily Reports – after each night’s scrape of the game data, a report was sent to allies detailing the previous days activities.
  • One-Click Attacks – Replacing multiple clicks and windows, the portal allowed players to designate a target and fleet size and send the fleets with one click.
  • Fleet Visualization – Think of the War Games movie where the missiles are being launched. This replaced the game’s text-based lists.
  • Battle Planner – Coordinating attacks with fellow players became a breeze with a tool to track the number of troops sent to a target island and helped coordinate launch times to land them all at the same time.

Original Inselkampf Map Updated Map on My Site

The Technology: Javascript, PHP, MySQL (the database has 0ver 9.9 MILLION records!)


System Configuration Documentation

Reference Data ReportThe problem: While working on client site, it became a daily chore to ensure that all teams had the current system configuration specifications. One line of business would decide to change a product that impacted another line of business all the time. In addition, we found that stakeholders were constantly using outdated reports.

The Solution: To keep all lines of business and technical teams up to date on the current configuration, I created a set of scripts to generate an easy to read report in HTML from the actual system XML configuration files. This allowed business users, as well as technical users, to view product, security, and workflow data models.

The Technology: Created using XSLT and windows batch scripts, the program would fetch the current system configuration files from Rational ClearCase, generate the HTML using Saxon, and then publish the HTML report to a central location. All team members were able to access the current version at all times, saving many hours of wasted communication and time lost correcting conflicts that could have been avoided if everyone was working from the same set of data.


PJAS.net

PJAS.net Screenshot

PJAS.net Screenshot

The Problem: The Pennsylvania Junior Academy of Science (PJAS) is an organization that gets middle school and high school students actively engaged in science research. They host regional and state-wide meetings annually to allow students to present their work. Historically, students had to type (with a typewriter!) their forms and give them to their sponsors. The sponsors then collected the forms, proofread them, and passed them on to the regional director. There was a lot of paperwork and information was slow to be distributed to the key stakeholders.

The Solution: PJAS uses the website I created to collect student research project registration data, distribute current forms, and dynamically determine what forms are required for individual projects.

Sponsors (usually the student’s teacher) can then view the project information, make changes, and approve the project.

Finally, the students project information is sent to the regional directors.

The site also allows judges to register online and receive the necessary information in an automated fashion.

The Technology: Built in PHP using MySQL. Adobe Acrobat was used to create editable PDFs.

Visit www.pjas.net