Hi. I'm Gregory.

Portfolio
  • JLearningCenter
  • rsPHP
  • Sample Code (PHP)
  • Experience
  • RIT Ultimate Guide
  • Old gkoberger.net
  • Technospect
  • ResLife Event
  • Online Image Editor
  • RIT Scheduler
  • SVG Kaleidoscope
  • Movie Times Lookup

Code

I've been programming almost constantly for the past 5-6 years. I started out with PHP (which I taught myself), and moved on to Javascript (which I also taught myself). At college, I've taken over a year of Java (including a Senior-level Application Programming class, which I took early my second year).

JLearning Center

JLearningCenter was the result of an Application Programming class taught by Keith Whittington. It was created by a team of four people, over a span of less than ten weeks. It aims to provide visual representations of various Java concepts, in a manner that someone who is familar with Java yet unable to fully grasp the concepts would benefit from.

Throughout the project, I completed a number of tasks. I designed the entire GUI, and did all the graphics. I also wrote an API so other team members could easily add content, including a visual debugger-style step through of code provided. I also worked on other aspects of the program, which runs using a central database to store the quiz questions and user progress. Each team member also had to contribute a section of the tutorial- I created the "variables" section of the program.

The program was written in Java, using NetBeans for an IDE. We used CVS as our version control system, and incorporated into our final project techniques such as JavaBeans, 2D Graphics, mySQL (and SQLite) storage, Ant, Performance Tuning, Profiling Tools, security, and cryptography.

Link: JLearningCenter (exe)
Demo username: demo
Demo password: demo

rsPHP

rsPHP, which stands for really simple PHP, is a PHP framework I've been slowly developing. When making websites, I used forms a lot. I couldn't find a good, extremely lightweight, object oriented framework that did what I wanted, so I decided to write my own.

Currently, I add features to it as I need them. So, it isn't ready for release yet, however it works great for me. While it currently only deals with forms, eventually it will cover features such as user logins and data storage.

It is written using OOP, which makes it easy to modify the form and its elements. Forms, complete with validation and styling, can be written in a line per element- much less than what it would normally take to do everything rsPHP covers.

Files: rsPHP Files
Documentation: rsPHP Documentation

Sample Code (PHP)

I had someone ask me what a sample of how my code for a small, stand-alone content management system would look. I did this in a few hours- it basically just displays the code used to run it, using a small, custom templating system.

Link: Sample Code (PHP)

Languages (and other skills)

  • Action Script
  • AJAX
  • CVS
  • Java
  • Javascript
  • Javascript Libraries
  • mySQL
  • Photoshop
  • PHP
  • SMIL
  • Subversion
  • SVG
  • Web Services
  • XHTML
  • XML
  • XML-RPC

Design

While I've always considered myself a programmer over a designer, over the past few years I've really started to like design. And it didn't hurt that I realized that no matter how great your program or site is, nobody will pay attention to it unless it looks good.

The Ultimate Guide: RIT Information Technology

This was made as part of a group project, with a team of seven people. As a team, we worked out a basic site map for the site. From there, I completely designed the layout and turned it into a webpage. I also wrote the entire backend (PHP/mySQL), control panel, and custom search. The other six people did the content for the guide.

The school colors are orange and amber, so I thought the site should be based on those colors. Since the site was to be aimed at kids, I wanted a carefree and approachable look - all while providing for the highly structured content.

Link: The Ultimate Guide: RIT Information Technology

The Old gkoberger.net

I've had the domain gkoberger.net for a few years- and up until now, I just used it for storage and testing purposes. The closest I came to actually developing the main page was creating a content-less layout for a blog.

I had no clue what I wanted on the site, and the layout came as a result of me just playing around in Photoshop. I like how it came out, so I'll probably eventually use it for something.

For anyone wondering about the Latin written on the page- it's called Lorem Ipsum, and is basically just filler text used by designers.

Link: The Old gkoberger.net

Technospect.com

Technospect, a play on the word retrospect, is the name of my (future) company. It will have a bunch of (free) tools for other web developers- so far, the main tools I am developing are the online image editor, and rsPHP. Eventually, I want to create a drag-and-drop website creator, which will be similar to my online photo editor. It will incorporate rsPHP, so dynamic sites will be easy to make.

Right now, though, all there is is a website. I wanted to keep the layout simple, although not too plain. Currently theres not much there, however it should provide a good enough interface for when I am able to officially launch it.

Link: Technospect.com

ResLife Event

When applying to be an RA at RIT, the application asks for a sample poster for an event we made up. I went with a hallway soda can bowling tournament (NRH stands for Nathaniel Rochester Hall, one of the dorms on campus).

I made my design from scratch- I started with the floor boards, and then added the cans, scorecard, and logo. The entire project is 8.5" x 11", at 300dpi (although the link below is a smaller, png version).

Link: NRH Hallway Soda Can Bowling Tournament Poster

Web Apps

Back when I started making websites, Javascript was used for blinking and flashing and moving. Since then, we've come a long way- now it's possible to make desktop-quality apps right on a website. Recently, this has become my favorite type of project to work on.

Online Image Editor

My favorite website projects involve a combination of backend and frontend programming. For this project, I decided to try to make an online image editor.

I wrote this in well under a week- so, all the features aren't there yet. However, the basics are there, and I made it easy to add things like tools (eraser, drawing, etc) and styles. I'm going to keep developing this, since the only layered online image editors I've seen are done in flash (for the tools involving drawing, I'm going to use SVG). I think the biggest non-intuitive thing is the ability to select multiple layers by holding down control.

Currently Firefox Only

Link: Online Javascript Photo Editor

The RIT Scheduler

Currently, most of RIT uses the RIT Schedule Maker to create their schedules for the quarter. It was created by John Resig, who went on to create jquery. His is great, but I wanted to make it a bit more dynamic- allow people to drag classes onto their schedule, and browse through classes without having to change the page.

So, I came up with this. It's currently most a prototype or proof-of-concept than usable product, but with a little more work I think it'll be fairly useful.

Currently Firefox Only (and maybe Safari... maybe)

Link: The RIT Scheduler

SVG Kaleidoscope

This isn't really a "web app"- I just threw it under here because its the closest match. It's more of a "web toy"- it's only use is to waste your time.

It's written in SVG, and uses SMIL for the animations (except for Firefox, which doesn't really support SMIL- so I used Javascript for that). Have fun playing around- it's rather addictive, though!

Supported Browsers: Internet Explorer (with Adobe plugin), Firefox (resource intensive on PCs because it uses Javascript), and Safari (Mac only)

Link: SVG Kaleidoscope

Move Times Lookup

Again, this isn't really a web app- although it uses Javascript (no framework!) and PHP, with AJAX tying it all together. I couldn't find a nice, simple movie lookup service (although I'm sure there are a bunch out there), so I figured it would be a cool project to do myself.

The data is scraped from a website using PHP, and served to the browser using XML. It's cross-browser, and degrades very gracefully (it's still usable without javascript). All elements are created dynamically, and zips are stored in cookies.

Link: Simple Movie Lookup