Extended public and administrative aspects of urbandaddy.com to support growth of this expanding national email newsletter and website. Wrote extensive PHP, extended MySQL database, and performed basic Linux system administration. Developed My Account, User Invitations, and revised Article Archives systems. Wrote extensive SOAP with Nu Soap to fascilitate backend communication with client's email service provider.
Collaborated with Katherine Saunders to redesign and rewrite her personal design portfolio site. I originally planned to do a straight-forward LAMP treatment, and did most of the preliminary work accordingly. A jarring surprise came late in the work when we discovered her host only provided support for MS Access. I wrote a routine to convert the MySQL database I had developed for her to an MS Access equivalent — making necessary changes to the interfacing page and CMS PHP code — and her site launched no worse for the scramble. We were both very pleased with the result, hanging at ksaunders.com — and my CMS gained support for MS Access.
Worked closely with Amy — with Katherine Saunders serving as Designer — to completely redesign and rewrite Amy's existing website. We went with a straight-forward LAMP implementation, with a couple front-end enhancements like look-ahead photo preloading using Javascript. The result is hanging attractively at amyvcooper.com.
Worked in a team of 4-6 to develop MTV Networks' URGE, a digital music subscription service with an exclusive seat inside Microsoft's Windows Media Player 11. I worked closely with Microsoft's developers (4 combined weeks in Redmond) to obtain a flexible interface between the Web-based store and the enclosing application. The result was an interface comprising over a dozen 'external' application methods and properties available at the page-level, through which application state could be interpreted and controlled. I developed much of the framework interfacing with the application layer, including many of the navigation calls. For much of this project, I was the lead Javascript developer.
Later in the project, I extended and rewrote much of the front-end Account Management code. Pages in this section included tools for managing personal user information, subscription level, and credit card info. I underwent PCI training and worked closely with MTV Networks' back-end developers to bring the system into PCI compliance.
Worked on contract with Media Farm to extend upon their existing browser-based WYSIWYG webpage editor. The goal was to extend the basic functionality of their small, Frontpage-like Web editor to add support for various link types, forms, popups, includes, and improved image and media management including file upload. The end result was application-like functionality that worked inside a browser to empower Estee Lauder content editors to produce rich webpages as easy as they would using any major off-the-shelf solution. In addition, Media Farm's design integrated the CMS intimately around Estee Lauder's publication model through the acknowledgment of Estee Lauder-specific page types and schedules.
My hand in this was the Front End Development, which entailed thousands of lines of DOM heavy, OO JavaScript and hidden client-server communication at a time when AJAX was just an industrial soap.
Idea: Describe site content and their relationships in a simple XML language. Describe a series of management interfaces to act on those objects -- in a simple XML language. Establish a set of users of varying privilege -- again, in XML. These things finished, the system produces intelligent, interactive form-based interfaces for managing site content. Prevent errors at all levels of development by describing content objects once, and letting the system catch errors for you.
This project developed gradually out of various working environments in which the need became clear for a tiered content management structure. It's not enough to create one back-end to the site with a master password. You've got guys coming on for a few months to do promotion and they need restricted access to one aspect of the site content, etc. If content can be organized to the extent that it can be described as modules or objects, with interrelationships... then perhaps an environment can be built around those fundamentals to respect those declarations and enable multiple, varied interfaces. This project strives to do just that.
Collaborated with graphic artists, Flash animators, and other programmers to produce sophisticated Web Applications VStreet.com, a youth community site emphasizing life skills for teens.
Web Applications and "Remote Scripting": Experimented with different methods for improving the relationship between client and server. Many uses of the Web, in particular the class of webpages known as "Web Applications", put immense strain on the stateless, request-driven nature of the current Web spec. Remote Scripting strives to open a persistent channel of communication between the client and the server using highly varying and imaginative recipes of Javascript, cookies, XML, and hidden frames. The idea is you download the interface once, and react to user interaction by sending hidden requests to the server for compact chunks of data -- then you populate / update the screen on the client-side as appropriate. The effect is to remove traditional Web navigation from the experience for as long as the client is "running" the app. What's more, since the data being exchanged with the server has been tailored down to just the essentials, the app seems quicker then your average collection of pages. If nothing about the navigational menu has changed, why download it again? If the user just wants to read the next message in their inbox, why download anything more then the message fields and text?
Key Languages / Specifications: Java, Javascript, JSP with Resin, PostgreSQL, CSS, HTML4