Experience Building Web-Based Applications and Learning Communities

For around 18 years I have been participating in the Open Source web development community, concentrating on back-end web development, including content management, knowledge sharing/management, and online learning communities.

Projects I have worked on:

  • OpenACS Open Source Web Application Platform, 2000-present: contributed to core platform development, including several years as a Core Team member. Updated search implementation for PostgreSQL, maintained Content Repository.
  • H5P, Collaborated on updating H5P interactive HTML content platform for Django/Python to Python 3 compatibility. Currently integrating H5P for Django into LMS
  • Developed Tcl-based WebDAV support for AOLserver and OpenACS (tdav)
  • Supported dotLRN OpenACS-based LMS for multiple institutions
  • Migrated dotLRN OpenACS platform from Oracle to Postgresql, custom scripts, testing, and deployment
  • Developed and supported custom CRM system for national merchandising vendor

My Story (definitely a story, certainly not a resume)

Around 1999-2000 I was trying to build a business selling computer stuff, in person and through an e-commerce store. I thought about adding more interactive features and found a free way to add a discussion forum to my plain HTML web site with almost no programming. This cool service was Loquacious by Philip Greenspun. From there things got a little out of hand.

Soon after I found Greenspun’s free online book about programming database-backed web sites Philip and Alex’s Guide to Web Publishing. This definitely changed my life. I became an open-source, database-backed, web application developer. Well, first I just became an enthusiast. It took some time to become a professional developer.

Even before I had finished reading the book I was putting together a computer out of spare parts to run Linux and the Oracle database. At that time, around 2000, it took 3 days to download the Oracle software over FTP. While this was going on, I was getting a 1 mbps symmetric DSL line installed and learning how to administer an email server. I dove head-first into learning everything it took to run your own web site and application server. This lead me into all kinds of things like custom compiling Linux kernels, hacking and bug fixing C programs, learning something new every day.

At this time I discovered Ben Adida’s effort to produce an open source version of the ArsDigita Community System that ran on the equally opn source PostgreSQL database. This was the first online community I joined. I participated in the discussion forums, first asking a lot of questions, and gradually learning how to answer them and help others. At some point I taught myself enough to become a major contributor to the open source project. In addition I hung out on the IRC server and helped people there as well. My day job was pretty boring so I had plenty of time for it.

From participating in the open source project’s community, I was offered a job as a web application programmer adding some custom features to a content management system for Greenpeace. I don’t think I ever thought this was an option, but it was a great learning opportunity, and I am still friends with the folks I met working on that job. It was my first trial-by-fire training experience. One job led to another and eventually I was able to work as a full-time consultant building online communities. Many of these communities were centered around online education. This is a more explicit learning community, and it got me interested in education overall, and I read blogs from others building this wave of online education, who had taken inspiration from folks like Semour Papert and others at the MIT Media Lab.

From there I worked on various projects, including participating in the OpenACS open source community for years, helping maintain some of the core packages, and joining the OpenACS Core Team which managed the direction of the core packages for years. I rewrote a lot of the search backend as the search features of PostgreSQL developed, and generally worked on making development with the platform more straightforward.

While I was doing that I worked part-time consulting on web-based projects around content management, and online learning. Along the way I attened an Open Learning conference as Utah State University Logan, the first Open Content Management Conference in Cambridge, MA, several OpenACS conferences held in Boston, Madrid, and Guatemala. All the time learning more about building useful web platforms for sharing content, and online learning communities. I worked entensively on the dotLRN LMS, and the Learning Object Repository packages for OpenACS. I still work with these type of systems, but these days I prefer programming with Python and the Django web platform.

Currently I am building a custom learning management system for online compliance training for schools and public employers. The system is focused on ease of management for employers, and delivering effective interactive training courses for safety and security compliance training.