Building Community: The Game Changed

My first online community effort happened in 1994. I didn’t have a vision or understand what I was doing. It was low tech and attracted a small population, but it filled a need so it sustained for several years. Back then, building an online community was actually rather easy.

In 2007, I was hired by a big name health and fitness company to develop an online community. The effort began well, but was quickly derailed by many of the most common mistakes that big companies seem to make. I departed the venture in 2008 and moved on to social media centric projects. I went back to check on their progress and found that the entire community, one that used to be hundreds of thousands of users strong, was wiped from the face of the Internet entirely.

(more…)

Kitchen Sponge Best Practices

SpongeI’m frequently unpleasantly surprised by the standard kitchen sponge practices I observe in many many kitchens. I’ve often observed risky practices at the homes of friends and family. However, more recently, I’ve witnessed these frightful practices in the office kitchen. I’ve seen poorly rinsed sponges left sitting in the bottom of a grime filled sink soaking in waste water on a daily basis. I figured I would solve the world’s sponge problems by posting some kitchen sponge best practices.

(more…)

You’re A Social Media What?

I’ve struggled with some job titles in the past. Occasionally I would be filling a new role that related to some emerging tech and have the challenge of trying to tell people what I was doing in as few words as possible. About the time I would finally settle on something I thought fit, I would either find out that the title I selected already meant something else or that the popular group think of the greater community already selected another title and I just hadn’t noticed it yet.

Apparently, group think settled on the title of “Social Media Expert” recently. Meanwhile, the title is being mocked in a few places. Here’s what I know about social media – it’s not likely, perhaps not even possible, to be a social media expert. If you knew everything about social media this morning (even though you didn’t), by this evening it will have changed and evolved so much you’ll have already fallen behind.

In fact, I would go so far to say that anyone who is willing to call themselves a Social Media Expert immediate brands themselves as a fake – a seller of snake oil in a roadside freak show. That’s not to say you’re not wonderfully gifted in understanding the ebb and flow of social media dynamics – but an expert you are not.

So here’s an alternative, call youself a Social Media Specialist. Face it, you’re not an authority on social media. Social media is greater than any one of us. However, if it is your passion, if you are dedicating a significant part of your energy to understanding it and being involved in it – then call yourself a specialist.

Hey, that’s just my $0.02.

A New Virtual Community: DallasSnowboarders.com

There’s nothing particularly unique about the virtual community I helped launch recently. The community is for the small but quickly growing group of snowboarding enthusiasts in the Dallas area. Thus, the site is appropriately called Dallas Snowboarders.

Here’s our banner:

As I said, there’s not much unique about it. We used PHPBB as our forum software with a few extra mods for a photo album, calendar, and ability to post video. We stacked WordPress up front for a very basic content management system. We didn’t take the time to integrate the authentication databases so we turned comments off. We’d rather keep user interaction inside the forums right now anyway.

An important topic came up while working on the site… WordPress and PHPBB are almost exactly the same concepts in software with a slightly different delivery. What PHPBB would consider to be a thread, WordPress would call a blog entry. Someone posts a topic, other people reply. The differences are slight, but have a heavy impact. On the blog, posts are always ordered by the date of the original post, not replies. On a forum, threads are bumped to the top when new replies appear. Blogs are usually setup with only one or just a few people making new posts. Forums usually allow anyone to start a new thread.

Given that the data management for both pieces of software are so close to the same… We talked a long time about building one piece of software that did both. It would be very easy to use PHPBB as backend software for a blog. Create a forum where only select users can start new threads, write some new scripts to display the content in a blog style format, and you’ve got a blog. Once you get this setup, you can create unique forums for every user that wants a personal blog.

I’m curious if this is a good way to create two conceptual interfaces for the same data.

Anyway, I digress. DallasSnowboarders.com is one of the first communities I’ve been involved in launching in a while. The last time I checked, we were up to 14 users. We announced the site 4 days ago. I hope it catches on, I’m eager to meet local boarders.

My First Community: Fantasy Origin

I’ve always loved video games. My first non-pen-and-paper RPG was Dragon Warrior for the NES. I got it free with my subscription to Nintendo Power – so it was long after the game was originally published. My next RPG was a step up – Final Fantasy II (us) for the SNES. I loved the genre and decided to use what programming and artistic skills I had to make my own RPG for the computer. The computer gaming scene had it’s own style of RPG, but I wanted to focus on the console style. Thus began my work on The Legend of Talibah (warning, midi!). After a couple of years of labor, I realized I needed help with music and art. I started looking around the Internet and realized there were a lot of people wanting to join projects like mine. I found both a musician and an artist in no time. I also noticed, however, that this community of would-be RPG developers were kind of disorganized. Thus, I started a website called Fantasy Origins. I don’t remember when I started the site, but I think it was somewhere around 1994 and 1995.

The site was simple. I suppose it was kind of a classified ads site. I let people post when they were either looking for help or offering services. At the time I didn’t think of it as a community – I just thought of it as a tool to help enable people to do what they were already doing. I met a number of really interesting people, some of whom I’m still in touch with today.

I started the site in a subdirectory of my college web hosting account. The site moved a lot. Eventually, I didn’t have time to maintain the site. Luckily, one particularly cool fellow I’d met along the way decided to take the site over for me. He even finally registered a URL. It lived for a while longer before it was finally consumed by the vast.

At the time, it was just something fun to do. Looking back now, I realize it was the first of many virtual community projects I would toy with. The most important thing I learned was the value of building tools to managing content… posting every entry by hand was considerably more work than it needed to be.

While the site is long gone, there are some small impressions left around the Internet: Way Back Machine’s Archived Copy, Natronix Links Page, Josh’s Game Links.

Ok, enough looking into the past… on with my day.

Could I run a company on open source?

Here’s an overview of my evening. I booted my Inspiron 630m up in Ubuntu. I activated my bluetooth mouse and then connected my Z22 via USB and synched it with Evolution. I logged in to gAIM and started working on a biz plan with Open Office. I got to thinking about the logo I put together using InkScape while chatting about the features of the Gimp. Before posting a entry online, I decided to start streaming some shoutcast audio with XMMS in the background. Finally, I opened up Firefox to to make this post, and now I’m here…

I did all of this with open source software. It’s all free. I couldn’t do this 5 years ago. Sure, I could run a server on open source software, but the desktop just wasn’t there. Next month, Ubuntu should make their next release – a version they plan to support for many years to come. It should be one of the most complete, stable, and user friendly Linux distros around.

The entire desktop experience is about to leapfrog the Windows experience thanks to XGL. Granted, things might shift when Vista finally lands – but when will that be?

So… here I am… looking at this business plan… wondering – “Can I do all of this entirely on open source software?”… The mere challenge is motivating.

Why to NEVER spam! – A Lesson From a 2001 Startup

What We Did

Near the end of the first bubble, I joined a cool idea for a startup company. We had a subscription based product to sell online and I was hired as the Director of Web Development. I was stoked; but it didn’t take things long to fall apart. Even if the bubble hadn’t popped, our gig was doomed to fail. I’ll now share with the world one of our biggest mistakes – spamming.

We were getting exactly the subscription rates I expected; but we weren’t seeing nearly the rates that marketing wanted. To solve this, marketing purchased a list with millions of e-mail addresses. This list cost us a whopping $50. Then, they put one of our programmers on the task of building some quick spamming software. Once it was ready, they fired it up and sent out an unsolicited bulk e-mail to millions of unsuspecting folks. What was the content of this e-mail? It was a promise to donate a percentage of all new subscriptions to a Sept. 11th victim fund… then it linked directly to our site. While I didn’t really agree with the ethics of the message, that is an issue for another blog post entirely.

As you might have guessed – I NEVER KNEW about the spam machine. There was no doubt, I never would have agreed to it. Marketing was wise enough to do the whole thing behind my back.

Up until this point, I had been working various promotional techniques to build site traffic. I was working to gain better search engine indexing. I was finding ways to get online communities talking about us. I was doing link exchanges. All the while, I was putting in late hours trying to get the backend parts of our website coded… And for some reason, and I didn’t think to ask why, our other Web programmer was busy on some secret project.

What Happened

It started off like any other day, I started by checking my e-mail. I noticed a flood of unsubscribe requests. I was a bit surprised. I started asking questions, and then found out about the spam machine, the $50 list, and what had been set in motion in meetings behind closed doors.

unsubscribe emails in my inbox

By the time I found out, it was too late – the damage was done. Still, we were just starting to know the damage. Aside from damaging our brand’s image, we’d pissed off enough of the right people to put a real hurt on our business.

First, our mail server was configured to send overflow e-mail to the ISP’s main mail system. Our flood of messages, and the returning flood of bounces and unsubscribe requests completely flooded our system and then the ISP’s system. We took their mail server completely offline. All of their customers were without email, thanks to us. We didn’t even make a scratch on our $50 list of e-mail addresses before the system collapsed. One of our guys – the one who hooked us up with the ISP to begin with – spent his next couple of days cleaning up the aftermath and getting all the servers cleaned up and online. A lot of legit e-mail belonging to innocent people got lost.

Once we got the mail server up and running, we noticed that we were still having trouble getting e-mail messages pushed through. Why? Because we were blacklisted! We’d made enough noise to pop up on black lists all around the Internet. Our important, completely legit e-mails were being sucked into tiny blackholes all around the Internet – never to be read. Heads should have rolled, seriously. Our head of IT spent weeks begging to be removed from lists. It doesn’t end there, not just yet. There was a bit of a kicker.

our web traffic blocked

Because we were so blunt in our spamming techniques, it was easy to pin the source of the spam directly to our domain. So, our entire domain was blocked on routers all over the Internet. This meant that the normal traffic I’d worked so hard to build was suddenly blocked from our servers. No one could subscribe, even if they really really wanted to… because they couldn’t even reach our site!

How Did It End

Some people don’t learn. I did. I learned that some of the blokes I worked with didn’t have the sense God gave a turd. They modified the spamming software to send e-mails in bulk bursts as to not bring down the mail server, and they turned the spamming machine back on. After all, they still had the rest of the list to spam.

I was livid, and I expressed it. We started to tank and it wasn’t long before there was an initial round of layoffs. Guess who made the list? Yeah, me! When the operations fellow made the announcement to our group, he got a bit upset and stepped out of the room. Upon his exit, I actually shouted in joy and danced a little jig right there in the conference room. I got some funny looks for that one, some folks were really upset about loosing their jobs. I felt free. I felt blessed.

I’ve got to give them some credit, they fought to the bitter end. A few key employees setup shop in one guy’s house. They kept the company running as long as the remaining investment would allow – which wasn’t long. Ultimately, in just a few months, it was all just a bad memory.

The worst part is, the product itself was a great idea. It could have worked then, and it could still work today. I’m surprsied it’s not being done already.

Dr Wikilove, Or Wow I Learned To Stop Worrying And Love The PMWiki (1964)

The Wiki

I remember reading about the wiki so many years ago (mid 90s?). I wish my college Technical Writing classes would have included them. Wiki would have made the class far more interesting to those of us that were also CS majors, which accounted for a good 80%.

Only in recent times have I had a life situation that called for a wiki. Our office environment is one that uses a lot of shared documents. The company has long had a wiki, however it was an older piece of open source software that had long been abandon and left with many bugs. Since then, wikis have grown a slew of new features such as support for name spaces and moderation tools. With the time between project cycles, everyone agreed it was time for a new wiki. Knowing that we would have to grow and extend our wiki software in the future, I was most concerned about the design choices of the software itself.

Media Wiki

Since the infamous Wikipedia runs on Mediawiki, I gave it special consideration. Mediawiki is a PHP based webapp, and I like PHP. It had all of the features we were interested in, except one. After installing and exploring the software, I set out on my first task: modify the wiki to use ldap for authentication. I started off on the LDAP Authentication page on the Mediawiki website. I expected it to take no more than an hour or two, but this task consumed far more of my time. The progression of the code base and the fact that ldap support was not officially supported lead to various conflicting files and instructions for different versions of the wiki. I do have to give Mediawiki credit, it had a nice clean container class setup for overriding authentication. Regardless, after a full day of sorting through diff conflicts and digesting docs, I stepped away from the project to clear my head. Before I got back into the code, a co-worker had setup a copy of another wiki, complete with full ldap support. This brings us to the next wiki of discussion – Flexwiki.

Flexwiki

Flexwiki appealed to many of our developers because it is written in ASP. More specifically, Flexwiki is written in C#, which many of our developers like even more. Flexwiki also supports its own scripting/macro language called Wikitalk. Flexwiki is actually one of Microsoft’s first releases as part of the new shared source initiative.

Most wikis aren’t pretty, but I must say that Flexwiki is down right ugly. I found the colors and layout annoying and the interface non-intuitive. The markup language quickly became confusing and overly complicated. When wiki markup reaches a point where it was more difficult to read than html, we’ve gone too far!

My biggest concerns came when I went to validate Flexwiki’s html. Even with a transitional doc type declared, Flexwiki fails validation. It is common to see pages fail validation because s user entered data containing invalid markup; but in this case the offending html code belongs to Flexwiki itself. Flexwiki is definitely a Microsoft product.

But, we chose to use Flexwiki anyway. You might think the story ends here, but it doesn’t. Not long after we settle in on Flexwiki, another project came along requiring the use of of Wiki. Once again, I went on the wiki hunt, this time with different results.

PMWiki

I started going through demos on OpenSourceCMS. I saw the PMWiki demo running and almost disregarded it as to simple looking. I happened to take a second look and noticed a reasonable feature set, so I downloaded it. By chance, of the three wikis I pulled, PMWiki was the first wiki I decided to test. That’s when things got good.

PMWiki is another PHP based wiki. The code is clean and simple. More importantly, it’s loaded with features just waiting to be enabled. I felt like a kid in a candy store. Within half an hour, I had more neat stuff configured in PMWiki than I did in a full day with MediaWiki. But, for this project, I had one big lingering task.

Next, I needed to link PMWiki’s authentication with an existing vBulletin community. Because I had easy access directly to the vBul database, I thought the hard part would be working within PMWiki itself. I was completely wrong. In less than an hour, I had PMWiki figured out and and the code written. However, I got hung up on vBul’s authentication system. I expected the passwords to be encrypted with MySQL, since this is rather common. Instead, vBul uses a combination of crypt functions. Finding this out took hours. Navigating through the vBul source code hurts my brain. I was jumping in and out of subdirectories chasing down includes. Instead of using native PHP syntax, the vBul developers created custom functions to use like operators. I finally found the three separate methods used for encrypting passwords and managed to complete my authentication function in PMWiki. We now have a fully operation battle station.

To take things a step further, I created a group on the vBul forums for wiki admins. I then modified PMWiki to only authenticate users in that group. Now, a moderator can easily manage who gets to edit the wiki from within the vBul control panel. The end result is very satisfying.

Conclusion

I don’t want to put to dark a note on Flexwiki, as it might become a very interesting piece of software. Mediawiki is, without a doubt, a very well refined application. However, for an easy, lightweight, and powerful PHP based Wiki solution – I highly recommend PMWiki.

Isogame – The Virtual World Based Forum Interface Experiment

Several months ago, I started a project I called Isogame. Using bits of programmer art, art from old projects, and art borrowed from google images (apologies to artists) – I built a very basic isometric map with an html interface. Using some custom forum software I’d developed for another project, I connect each tile to it’s own thread. Then, I changed the map’s tile based on the number of posts in that thread.

Isogame - The Virtual World Based Forum Interface Experiment

What I have is not well refined or engaging, but it does convey a concept: “Evolve and change a virtual world using metrics based on social habits of the user.” My prototype is extremely simple; there are countless directions to take the concept. For example: instead of measuring post count, we could track the user’s mood and relate it to the world’s weather. We could make it rain when the users are sad and sunny when they are happy.

Fun stuff…

HTML Based Forms… and how they suck…

This is a rant…

I hate HTML based forms. Since I started scrapping together bits of html a decade ago, forms have not significantly changed. They are still the same clunky limited user feedback interface they have always been. We’re building 2K5 website with the exact same level of technology we had in 1995.

Blogger WYSIWYG InterfaceThe textbox is lame. The idea is wonderful, a box you could type lots of text into and submit to a website. But, what happens when we want part of our text to be bold? Web developers have been trying to solve this problem of formatting text for years. The easy solution was to put HTML code directly in your textbox submission. This is great, if you’re an HTML monkey; otherwise, it’s too much for the average user to learn. To make this easier, we created systems such as UBB code where the learning curve was significantly reduced. Wikis developed their own code systems as well. However, it still required that the user learn. Blogger, the tool with which I’m composing this very post, uses a sweet WYSIWYG interface. To get that interface to work, Blogger had to deploy a whole bunch of javascript. From the user standpoint, the solution is awesome. As a developer, I want this problem to be solved by my web browser. Where is my htmltextbox that uses the browser’s built in WYSIWYG editor to compose a formatted entry? After a decade, why is this feature still missing?

Travelocity Has a Cool Date FormMy next complaint is date and time entries. I can’t count the number of times I’ve created form elements for submitting date and time. If I want the form to default to the current date and time, I either have to set it up in my PHP script or use javascript. Many developers have created elegant and easy to use interfaces for selecting date and time. My favorite are the little DHTML pop-up calendars that let you select the date with two quick clicks. Once again, I have to ask, why haven’t we added standard date and time input fields to HTML?

I can’t complain about forms without spending some time talking about how hard they are to customize. Creating a stylish form requires some work. Even when you’ve got all your elements laid out in a user friendly format with some nice CSS styles, you’ll find radio buttons and drop down menus refusing to change background colors and blend into your design. Of course, there are javascript ways around this; but again, why should it require javascript?

There’s no end to my complaints about HTML forms. My core complaint is the lack of evolution since their inception. I hope that, soon, we see a rebirth of forms providing a wider range of standard data types, easier implementation and more extensive customization.