One of the biggest projects I've been involved with wasn't actually something I did for a company; it was saving the Electric Minds community from oblivion. It's also the project that my fiancee thinks is one of the things I should highlight; so I decided to pull together the definitive story here.

Beginnings and Heyday

Electric Minds was a community founded by Howard Rheingold, one of the pioneers in the virtual-community space. He was a longtime user of one of the original pre-WWW virtual communities, The WELL, and documented his observations and visions in his book, The Virtual Community (Amazon affiliate link). He created Electric Minds in 1996 as a way to further explore these visions. (A replica of the original front page of the site may be viewed here.) For hosting user discussions, the site used WellEngaged, a Web-based discussion forum software package that spun off from The WELL, and used a similar conferencing style.

Electric Minds was intended to be its own independent organization, as some notes by contributor Justin Hall made clear, but reality fell short of their expectations. In 1998, the site was acquired by the company I was working for at the time, Durand Communications of Santa Barbara, CA. Durand, named after and run by the great Andre Durand (now CEO of Ping Identity), had developed a virtual-community system of its own, CommunityWare. This is when I became a part of the Electric Minds community, logging into it once I could do it at LAN speeds.

We were a heavily Microsoft-oriented shop at the time, and CommunityWare was implemented using ASP and VBscript, with a SQL Server backend. For a time, we hosted the original Electric Minds server, a Sun server running Solaris, but we quickly pushed towards enhancing CommunityWare to support the style of conferencing that WellEngaged did, allowing the community data to be migrated onto our system. As part of that, I wrote an ActiveX server-side component that checked HTML styling in posts, doing such things as disallowing tags deemed to be "too dangerous" and closing any tags that had been left open, to keep poor post formatting from messing up the presentation of the site. I threw in a spell-checker as well, using a commercial spell-checking library, that would highlight in red any misspelled words when a post was previewed.

The community accepted our hosting, and things seemed to be going well. In 1999, Durand Communications was acquired by Online System Services of Denver, CO, later renamed Webb Interactive Services, and CommunityWare became part of its "WebbMe" portal system. (During that time, I shifted to a new spinoff that Andre launched with Webb's backing, Jabber Inc., which worked on instant messaging.) In 2001, in the face of the dot-com crash, Webb Interactive announced its intent to shut down WebbMe, which would leave Electric Minds homeless.

Rescue Plan

That's where the community members stepped in, and I helped coordinate the effort. We pooled our money and bought ourselves a server machine, given the hostname phoenix, and I set it up with Linux. One of our community members had a fiancee who ran the hosting company NetWizards, and he offered to host the server for us. (This is the reason why, to this day, my personal domains are all hosted with NetWizards.) We couldn't get the original minds.com domain that Electric Minds had used, so we registered electricminds.org as a substitute. That left the need for a conferencing system to replace CommunityWare itself...and that's where I came in.

I reimplemented the CommunityWare conferencing system and a fair amount of CommunityWare in a new software package, which I implemented in Java, using MySQL as my back-end database, in an approach I called "open-source right down to the metal." (Yes, Java wasn't exactly open-source at the time, since OpenJDK didn't exist yet, but it was close enough for me.) I started with nothing but my knowledge of how the conferencing system worked (especially the HTML checker) and an old copy of the database design for CommunityWare; the change in languages and environments would have made direct copying of code impractical, even if I wanted to do so. The front of our server even sported the notation: "ABSOLUTELY NO MICROSOFT SOFTWARE PERMITTED IN THIS AREA!" (I was inspired by the sign left by John Glenn in Alan Shepard's Freedom 7 Mercury capsule, "No Handball Playing in This Area.")

To name the new system, I drew upon the history of CommunityWare, which used the code name "Rome" when it was being developed. Rome was a center of community in the ancient world; what would be the center of community at a later point in history? Well, Venice certainly was, during the Renaissance. And, like that, I had my name: the Venice Web Communities System. One of our community members even drew me a lovely logo for it.

Venice Logo

The original code was written using basic J2EE technologies like Java servlets and JSP pages for rendering; over time, I modified how it worked to have higher-level logic written in JavaScript using the Rhino library, and using Apache Velocity for templates, replacing the JSP pages that needed compiling each time.

The resulting system was brought to life not long after Webb shut down the original servers, to great acclaim from the community members. It persisted through many crises in the years following, ranging from unexplained system hangs (for which I installed a watchdog board that would reset the system if not "pinged regularly"), disk crashes, a complete server upgrade, and a change of hosting to another community member's site in Canada.

The End...And Beyond

The community eventually fell by the wayside, especially as modern social media started taking root. Many of the remaining community members are now part of a private Facebook group. The server itself has vanished, and has probably long since been scrapped. I still control the domain, which is now "parked" on my Erbosoft server just in case it's needed again, and to keep it out of the hands of porn site operators.

And the code for Venice? It's still here, albeit long out of date and covered with references to my deadname, as well as "Silverwrist Design Studios" (the business name coined by my ex-wife). I've wondered if it should be revived, especially since the idea of a forum that isn't beholden to corporate masters and/or billionaires might be a net positive in 2025. But would I want to try to update the old Java code, or just rewrite it in something like Python or Go? It's a question I've pondered...

...or show your appreciation some other way