I've been doing more development than design lately. I prefer to work in PHP (which is how this site's built and maintained, using a content management system I've built for my own use) and mySQL, though I've also done a lot of Javascript and Actionscript. Note: This page contains only the most recent projects; for earlier projects, see the links to the left.
I built an online ticket-generating system for the Pittsburgh Youth Symphony Orchestra, which lets visitors download and print dynamically generated PDFs of tickets to the PYSO's free events. It's more convenient than their previous system, and offers significant savings over having to mail them out. This was a PHP/mySQL project in CodeIgniter, also involving the FPDF library for the PDF output.
Since early August, I've been able to tell people that I've been busy "saving the world"--Saving the World at Work, that is. I've teamed up again with the fine people at Rapture Studio (they did the excellent design and we worked together on the spec) to develop this social networking site related to the ideas in Tim Sanders's new book. For a project of this size, and of this compressed time frame, we turned to the CodeIgniter MVC framework to gain additional leverage. Go on over and take a look.
I've been finishing up various projects and cultivating some new ones. Before the new ones start, I've been getting into the CodeIgniter MVC framework. It's a pretty natural fit, since I've been using ideas from the MVC world for a year and a half now. Very small footprint, good performance, and quite flexible. And it turns out that some of the things I've been doing in my CMS fill a need in CI, like building out the administrative area based on the structure of the database itself. Interesting framework, and I can see using it for a number of things that are in the pipeline.
I've been working again with the fine team at Rapture Studio on a new site for email etiquette guru Tim Sanders's Email A to Z. While much of it's a standard content site, there are some interesting extensions: you can take Tim's email etiquette test here, and you'll find it enlightening, but the real action is in the administrative section, where I gave Tim access to a number of statistical reports on how people have answered, all of them very intelligently designed by Rapture Studio. The challenge was doing all this as efficiently as possible, and it was a fun project to do because of it.
Long Tail Audio, a group of audio engineers who clean up and digitize audio archives. The site itself is my standard content management system with a very compelling look and feel from design studio Lost In Brooklyn. I did have to spend some time tweaking the presentation to work with the woefully non-compliant IE 6, but the site does render well in all the major browsers. Some interesting additional bells and whistles are in the planning phases, as well.
It's been quite a while in coming--one's own projects come last, after other clients--but I've finally upgraded my own site to the latest version of my CMS. Most of the enhancements are on the admin side or in the structure of the site itself, particularly the database structure (I've become a big believer in convention over configuration, from the MVC world). There are, however, some standard niceties in the front end (permalinks, next/prev) that weren't in the old 2001-era version of the site. (Yes, the dog food was that old.) Updates are easier now, so there'll be even more enhancements this year.
I've done a significant admin upgrade to the Opportunities for a Better Tomorrow Galleries: now the admins can have the galleries build themselves by uploading photos into a staging directory and creating a new gallery without images. The system sees that the gallery has no images of its own, creates the directories with the right names, and populates them with images automatically resized down from raw digital camera images. I'm using AJAX for the image processing to avoid having the scripts time out, and to give users visible feedback while the script processes. While I would have liked to have images uploadable through the browser, the host's form-size limit prevents that, so instead, the scripts process the contents of the staging directory. It's a very painless system to use, actually.
I did all the web development (PHP/mySQL, Javascript/AJAX, and HTML/CSS) on the updated website for Opportunities for a Better Tomorrow, one of New York City's leading employment and training organizations. The site includes some animation effects using the Scriptaculous library, a registration system for potential employers to review candidates, search engines for both the site's content and candidate resumes, and Flash-video-based virtual interviews (these are visible only for logged-in employers). The excellent design design work was done by Lost In Brooklyn.
I did all PHP and mySQL as well as some Javascript (including AJAX) on the new site for Infocast, a group that manages energy conferences. Some notable features: an admin area that's easy for staff to use, with convenient buttons for image inclusion and link generation, as well as buttons for common HTML tasks, and an HTML table generator and editor. On the front end, there are some interesting features, like individual conferences having one of two layouts and many different potential color schemes, all quickly selectable in the admin area. There's also a dynamic calendar system and search features for finding conferences easily.
For this site, I worked with the fine people at Rapture Studio, and we worked very hard to get the CSS and Javascript to be compatible with as many browsers as possible.
I did all the PHP, mySQL, and Javascript on a new subscriber system for IraqSlogger, including the interface with the payment processing API. Some notable features include showing limited content to non-subscribers, auto-renewal, reporting scripts, special organization subscriptions with IP-address-based access (some of which are limited to fixed numbers of simultaneous users).
Recently, I ported the site for the NYC ensemble Sequitur from a static HTML model to my CMS. The design was done by Lost In Brooklyn, and it remains unchanged. Underneath the design, though, there are several specialized mySQL searches that populate the page content automatically.
The updated site for Turner | Martin is online! The elegant design of the site and all the photography was by the fine creative team at Tajima Creative Group, as was initial Flash work. My role was making the site dynamic, so that content can be updated by editing text files or uploading new images, rather than having to recompile the whole .swf. It's rather neat under the hood: all the hotspot positions are set by an XML file, as is all the content for the different popups, as well as the background images. This one had a long incubation period, but now you can see the results.
I've been working with the excellent design studio Lost In Brooklyn for a while on various projects, and we've just launched one: a site for Just Jinjer, who are one of South Africa's top-selling bands (if not the best seller in S.A.; in any case, they're up there). This is the second site to be based off of the latest version of my CMS, and it has the full complement of editing and writing conveniences that come with this version--easy link creation, easy image uploading and referencing, and the like. On the front end, there are some interesting features, including embedded Flash music players, a DHTML scroller, and lots of CSS. The CSS and DHTML presented some challenges, though, in that Flash doesn't play nice with DHTML show/hide functions, so I used an iframe to manage videos on the discography pages. Take a look.
I developed a dynamic PDF generator for the The Rights Workshop, using the fpdf library to create PDFs on the fly based on user input. It's a bit like writing raw Postscript at times.
It's been quite an intense month or so around here lately, as I've been juggling several simultaneous projects. The highest-profile among them has been IraqSlogger, for which I was the developer (as part of the Cartwheel Creative team, who did a great job on design and project management). It's Eason Jordan's and Robert Young Pelton's new venture: a free 24-hour news service dedicated to the major issue of our time, Iraq. Think you're getting enough Iraq information from traditional media already? You're not--they have some pretty impressive stories, many of them exclusives from sources in Iraq. Check it out. They're updating constantly, around the clock.
In advance of doing this site, I significantly retooled the admin section of my CMS, making it a lot more flexible for building sites out. Structural changes to the database are reflected instantly across the admin interface, inspired in part by the MVC world. I changed the admin interface itself considerably, adding more user-friendly options for text input and HTML entry (not wysiwyg, though, as Safari doesn't handle those gracefully), image upload and tracking through the browser, and polishing some loose ends. I couldn't have built this site in this time without these changes, so I'm glad I did them beforehand.
What I ended up building was much more than a blog--it's an entire publishing workflow for several writers, with a tracking interface, article check-in/check-out, flexible sorting, previewing systems, and a lot of attention to the writer's experience. On the front end, there are some pretty cool features as well: RSS, intelligent archiving, flexible content in the sidebars, the ability for IraqSlogger staff to write posts via email, integration with Google search, flexible handling of embedded video, context-sensitive image display, the ability to traverse posts by category/subcategory, by topic, by related posts, by writer, and chronologically, and plenty of other features I'm not remembering at the moment. (Hey, I'm busy making even more enhancements to the site.)
There have been some interesting challenges with this project as well: browser-compatibility requests (including Mac IE 5, believe it or not) and therefore advanced browser detection, intricate requirements for content display, with posts having different layouts and content sets depending on their context, integration with pasting from MS Word (and hence handling special characters differently on the Web and in the RSS feed), and plenty more. All of this on a pretty tight development schedule. It's been quite a ride, so take a look. I have to say it's a damned good site.
In what turned out to be quite a busy Fall, I managed to do the primary development (as part of the Synklynk, Inc. team) on N64Kids.com--the main site dedicated to a rather popular viral video, which has recently been picked up as part of a BMW ad campaign. I did the PHP/mySQL frontend and backend, as well as HTML/CSS. Neat features: a membership area, live XML parsing from YouTube, the ability for members to link to videos they've posted on YouTube, and the ability for admins to screen out any videos that might be inappropriate. As you'd expect from a Synklynk, Inc.-related project, the membership system is tied into the Synklynk, Inc. promotional and reporting engine I built earlier this year. A neat little project.
This site, for Lime Syndicate, was a project with the design team of Cartwheel Creative. Lime Syndicate needed a way of searching a specific user's ranking in a very large database that was constantly changing. My solution was to compile selected information into temporary tables for sorting and searching based on the most recent available data. It was interesting to tackle this kind of problem.
While work continues on other projects, I was also asked to build a site for The Fort Pitt Preservation Society, a local nonprofit with the goal of saving a portion of the restored Music Bastion of Fort Pitt, a pre-Revolutionary fort on Pittsburgh's Point. I built a CMS, a blog, and a comments engine, with the administrative tools to manage them. Difficulty: I only had a day to do it. It's worked out pretty well, actually.
Years ago, I did a dynamic website for interior designers Turner|Martin, and now I've been brought in to finish a dynamic Flash site for them. We're still awaiting some content at this point, but it's been an interesting project, with over 1000 lines of Actionscript code. I set the site up to get its content at the direction of an XML file, and pull most of its images in at runtime, making it easy to update. The menus are populated dynamically, and many of the "pages" have clickable hotspots which launch virtual popups (and you can drag these around, too). All of this is changeable in the XML file, and I'm happy with where this project has come out. Watch this space--I'm sure there will be refinements and other requested features before we launch.
Rapture Studio of Pasadena asked for a gallery of their work which would be easy to administer, load quickly, and integrate with their design. After discussing our options, we decided to go with AJAX to keep page loading time down. The backend and the infrastructure is PHP/mySQL, though the gallery itself is AJAX. It works rather well, and was a fun one to do.
