David Golightly - Code
- Blog
Keep up with my latest UX activities at Zillow via my blog.
- NWS Maps - National Weather Service + Google Maps
This was a tough project spurred on by my frustration with the NWS's default maps. I wanted the flexibility of Google Maps, but with weather data. Voila, my first full-on mashup. Part of the difficulty was using the NWS's web service, which does an enormous database query for a single lat/lng location. Simply polling the webservice takes 6-8 seconds for a response, so overcoming that challenge and arriving at a reasonable load time was the first order of business. This was accomplished by caching about 60 weatherpoints by a Python cronjob that runs every 30 minutes. Also, the XML schema the data are presented in is quite complex and comes in 7 varieties - I'm using a Python script to cook that into a straightforward JSON array.
Note 7.2007: The backend service for this site is no longer running, and I no longer have time to maintain it. Therefore, the data presented on this site are quite old.
- Trendi.com - social networking and news
Developed 100% of the code for this site, starting from a wireframe graphic design, implemented the HTML/CSS, backend using TurboGears (a Python-based, full-stack MVC platform, similar but superior to Ruby on Rails), and designed the MySQL database. Also used my own custom JavaScript library for Ajax.
Note 7.2007: I haven't been at Trendi for over 8 months, and they have since reworked their business model and their site. I'm in no way associated with their current application. I keep this information here for resume purposes only.
- Falling blocks - DHTML game
As I understand it, Tetris will sue your pants off for creating a knockoff of their game using "-tris" in the title.
- Game of Life - DHTML game
I first implemented the Game of Life in C back in 2004 as an assignment for myself, so doing it again in JavaScript was relatively simple. This time I used a bitwise algorithm rather than an array-based algorithm, otherwise, the main challenge was seeing how fast I could get DOM scripting to go.
- TicTacToe - C++ source code
This is a trivial assignment written for a job application in less than 4 hours. Might as well live here.
- baselib - Open-source JavaScript library
I hate writing feature-detection code. If IE wants a different Events model, I don't want to be reminded every time I sit down to write piece of JavaScript code. Baselib is my custom-built alternative to Prototype and MochiKit. It owes a lot to these libraries in its conception, but does not use any of their code directly. It has been released under the LGPL (Lesser General Public License).
Baselib includes the following objects for DHTML:
- Module - Import JavaScript modules on the fly into a running DHTML application
- CSS - Read stylesheets and swap classnames
- B64 - Encode strings to Base64 and back
- DOMHash - Solves once and for all the problem of tracking down a JavaScript object from a DOM node
- Events - DOM Level 2 Events API, regresses, and cleans up after itself. No more memory leaks!
- XmlHttp - Simple, easy Ajax calls: use GET(url, callback) or POSTForm(url, object, callback)
- JsonRpc - Script-tag hack wrapper. Includes serializer to turn JavaScript objects into strings preserving complete state information.
- Cookie - Write key/value pairs to this object and your cookie is saved automatically.
- Geometry - Get window geometry information
- Motion - Basic animation library. Interpolate any CSS value over time with a single function call.
Baselib is no longer under development; however, there are unit tests available to try out some of its features.
As for JavaScript libraries, I recommend the use of YUI and Ext.
:: home ::