Brian Moon, the creator of Phorum, uses certain words quite a bit when describing his forum software - speed, power, expandability, and integration. David took the time to give this very well written, detailed interview to tell us about it.
Can you give us a brief bio?
I live near Birmingham, AL. Unlike most web developers these days, I am not a teenager. I am 32, married and have five children ages 5mos. thru 9yrs. No, I am not Catholic or Mormon (not that there is anything wrong with those, just get asked that a lot). I was born in Huntsville, AL and raised my entire life in Alabama. I love it here. Don’t believe all the stereotypes.
What is your educational background?
On those forms you fill out, I check “Some College”. I was going to college at a time when the IT world here in Birmingham was in flux. If you knew anything about Visual Basic, you were hired. Work and kids didn’t leave much time for school so I never finished.
What do you consider as your accomplishments up to this point?
My family is the thing I am the most proud of. I have not gone the normal route of 2 kids and a dog. My wife has more to do with that than I do I guess. I have also taken a leadership role in hobbies that have been very fulfilling. Phorum is obviously very important to me. It has opened doors for me that would not have been open otherwise including my current job.
Any failures you’d like to tell us about?
Well, there is no Phorum 2 or Phorum 4. Both were not very good code. They never made it out of early dev stages.
I do wish I could have finished college and I still may do that some day.
One day, long ago at dealnews, I was told to write some poll software. It brought the site to its knees because it was loading up a 30k file on every page load. This was on a shared web account back in those days. Our CEO loves telling that story cause I swore it was not my code for like two hours before we realized it was.
What are your favorite books? Movies? TV shows? Music? Games? Foods? Beverages?
I read slowly, so I don’t read much. I cry when I watch Rocky. Don’t know why, I just do. I will watch Better Off Dead, My Cousin Vinnie, and a few others if I ever see them on. Then there are the classics. Casablanca and Guess Who’s Coming To Dinner are great.
I often surprise those around me with my range of music. A mix CD for me will hold Black Eyed Peas, Korn, Toby Keith, Alicia Keys and Ice Cube. I grew up in the era of break dancing. Much of the world was introduced to RUN-DMC by Walk This Way. I on the other hand found Aerosmith when that song hit the charts. I already had RUN-DMC “tapes”.
I play WoW, although my interest is fading. I got to 60. Its not much fun for me since then.
I try to eat healthy to combat a family history of heart issues. The key word there is “try”. I am drawn to Asian (Thai, Vietnamese, Japanese) food. What developer does not like Mt. Dew? Of course, being from the Southern US, you have to love sweet iced tea.
What do you do for fun and relaxation?
If I have a pretty day to do whatever I want, I play disc golf. In the fall, in the Southern US, its all about college football. Roll Tide. I also love to cook, especially on the grill.
Please tell us about Phorum in some detail:
--What is your full time job?
--Can you tell us the history of Phorum?
These two are really one answer. I am a programmer and system administrator for dealnews.com, Inc. I was employee number three in 1998. You can get the full skinny on them at http://dealnews.com/about/about.html. What is now dealnews.com was started in 1997 by Dan DeGrandpre and Richard Moss. Richard is my cousin and Dan lived down the street from me in Huntsville when I was a kid. Early on, no one made a living off of it. I had a hand shake deal that if I worked on some code for them, I might get paid some time. They wanted a message board so I took a shot.
I tried installing and customizing WWWBoard, but it did not do what we wanted. So, in April of 1999, I hacked together three scripts (index.php, read.php and post.php) that would let you do all we wanted to do. I put an email on the php mailing list about it. I told anyone that would help me debug it and make it better could have the code. Within 30 days we had Phorum 1.0. Actually, it was called WebThreads, but I found out that another project already used that name. So, I took PHP+forum and made Phorum. At dealnews, we call our ad system Phad, the content system is Phews. We kinda went crazy. Some of us would love to open source some of that code, but its so integrated into our business model it would be really tough.
It just kind of took off from there. I had the deal-mac users to find issues and there were several people interested in it. AFAIK, Phorum was the first message board software to use PHP and MySQL.
As deal-mac.com (the first site we launched) grew, the demands for the software grew. In 1998, I got a call from Dan and Rich. By that time, they were both working full time for the company. They asked “How would you like to work on Phorum full time”. The work I had started on Phorum 2 was scrapped. It was too bloated. Phorum 3 was born.
Phorum 4 was also trashed after we decided it was not going in the direction we wanted. I started on Phorum 5 some time in 2001 and turned the Phorum 3 code over to Thomas Seifert. Later, all the Phorum devs started working on the Phorum 5 tree. We are about to release our first stable release of Phorum 5.1.
Phorum is currently installed on more sites than most people know. We don’t require a link back like some other software does. It makes it harder to identify Phorum some times. For example, MySQL.com uses Phorum. You may not know it unless you recognize the URLs or some of the design.
--What is your design philosophy for bulletin board software?
We want our software to integrate into the users’ site. I have seen too many sites that have a great design only to click the Forum link and be taken to a stock install of some software with only the logo (if that) changed. Unfortunately, I have seen Phorum installed that way too, but not as often. Thomas and I both run very busy Phorum installations. Performance is the main focus of our code. Features are added one at a time to ensure that they do not harm the performance. Our module system was born out of this need for speed. It allows a great deal of flexibility for coders to create modules to offer features in Phorum that are not in the core code base.
--What is the basic architecture of Phorum?
We stick to procedural code only in the core of Phorum. We do employ some OOP in the admin, but none is allowed in the core. Lots of folks in the PHP community are excited about PHP5’s OOP changes. PHP still runs procedural code faster than OOP code. So, we stick with what is fast. Some people want to write all these fancy classes and such and that is fine. In reality, when you are testing the code, it is slower than simple functions. I don’t like to call too many functions frankly. They slow things down too. As a guideline, if you won’t use it again, or it is not part of the DB API or user API, you don’t write a function.
We mostly create separate scripts to do separate jobs. We try to avoid the monolithic approach to anything. We do make an exception for the posting/editing code as it is better for the user there to have one code base do two jobs. It makes posting and editing work the same. There is a script to list forums, one to lists messages, one to read messages, one to post messages, etc. Those four files are our main focus for speed. Reading is 65% of a message board. The message list is another 25%. Those scripts have to be fast. While posting is not the busiest part of a forum, it has to be fast too. If posting is not fast, users will hit the Post button over and over and over.
We also keep our admin independent of the user space. They do share code, but they are not linked, the logins do not work across the two and no settings are stored in the admin that are used by the admin. We have found this beneficial in keeping admin cracks and vulnerabilities low.
We also have created our own database API. I tried several of the database “abstraction” layers out there. First, they were all OOP. Second, they would require us to use general SQL so that stuff would work on lots of DBs. Unfortunately, that did not play into our speed needs. We believe that you should be able to custom tailor your data storage code to fit the storage medium. For example, in 5.1, we take advantage of MySQL FullText indexes. If were writing generic SQL, we would not have that luxury. In theory, someone could write an XML based storage layer for Phorum.
Our template system converts the template language (similar to Smarty, but I swear I wrote it before I ever saw Smarty) into PHP code and keeps the PHP version for later use. PHP is already a template language. Things like Smarty simply force developers to write good structured code. Some teams need that. I respect that. If I had my preference though, our templates would just be PHP code. But, I gave in on that one. Because of the way we did it though, you can put PHP code into your template files. This gives the developer more power to do things that maybe the template language alone doesn’t support.
--What are the main features?
As I have said, speed and expandability are our main focus. Our module system allows developers to expand instead of hack the code. We have found it so useful, we moved some features into modules that are installed with Phorum. This makes them easy to turn off if you don’t want them. Things like smilies, BBCode, and allowing HTML. Counting views was in this category, but we found it was to integral to be part of a module. We provide meta data fields on users and messages for modules to store extra data that it can later use. We also allow modules to store settings in our settings table for configurability.
Another feature in Phorum 5 that was spun into a module was Phorummail. It allows a Phorum to basically be a mailing list archive. You can install another module that will allow you to send all new posts to an email address to create a mailing list portal. This was a big deal a few years back. It seems now though that there is a clear line drawn between forum users and mailing list users.
We offer a threaded view. That has been in Phorum since version 3.
We have “folders” to help organize large forums in a hierarchy.
We have a feature called virtual roots. This would allow an admin to use one installation of Phorum to host several forums for several properties. You assign a folder as a virtual root. All forums within that folder act as its own install. Searching, moderating, etc. all follow these rules.
We store many settings on a per forum basis rather than globally. While this does cause some confusion for new users, especially those coming from another application, they soon realize the power this gives them.
--Tell us about the user interface.
Simple and straight forward. The default template does not use any images for navigation, only text. We don’t want to dominate anyone’s site with our application.
But, it can be what ever any skilled HTML developer wants it to be. With Phorum 5, we have completely removed HTML from the PHP code. In addition to this, you can apply different templates to different forums within one Phorum install.
--How does it compare to the other forum software currently available?
I feel we stack up very well against the other open source offerings available. You can see my comments about the commercial aspect later in this interview. Some people are put off that we don’t have Avatars, user ranks, etc. as part of the default installation. I don’t really think we are catering to those people. If you want one stop drop and go with every bell and whistle, don’t go to Phorum. But, if you want a piece of software that you can work with to make it do exactly what you want, no more, no less, then Phorum is your app. For some reason, we are huge in Europe. Perhaps it is the minimalist style of the default template.
--What’s next in the development of Phorum?
Well, 5.1 is in beta now. It will add some new features like the MySQL FullText searching. That will help a lot of the large Phorum installs. It also features a revamped posting/editing system that allows your to preview, attach files and make changes all in a more real time mode that is very comfortable and more like writing an email.
Our loose ideas for 5.2 include an abstracted caching system. We would likely build a file based backend and a memcached version. There is a lot of data in Phorum that does not need to be pulled from the database on every page load, like settings. Even some threads could be cached.
I wrote a paper and did a presentation with a coworker at Apachecon some
years back about the benefits of caching in web applications. You can
find that at http://dealnews.com/apachecon/
We are keeping a close eye on PHP6 work. We are thinking that PHP6 would be a good chance to rewrite Phorum from scratch again. Although, it seems that PHP6 will be closer to an enhanced PHP5 than what we had hoped for. I was really hoping they would break some backward compatibility in that version. There are some things like magic quotes that just need to go away, IMO.
Who else is on the Phorum Team?
I have mentioned Thomas Seifert several times. He has been with me for a long time now. Late 2000 I think. He wrote the first user login system for what became Phorum 3.3.0. He runs MySnip.de. Its a free message board site in Germany, kinda like EZBoard. It has tens of thousands of users and and thousands of forums. Without him, Phorum would not be where it is today.
Currently, only one other developer is committing code, Maurice Makaay. He is new to the project which is good. New blood can bring good ideas. He wrote the new posting/editing code.
There have been others over the years though that were important at those stages. Jason Birch did a lot in the 1.x days. His site http://www.barnonedrinks.com/ still runs version 1.6 of Phorum. We have several users that will stick code right on their production servers just minutes after we commit it to SVN. Those guys are crazy. But, they help us find bugs.
Why spend your time on Bulletin Board software? Are online communities that important?
I love working on Phorum. Why do you love something? I don’t seek out and read message boards every day. But I do like to see a successful community.
I do believe online communities are important. Many people find friends online that they don’t have access to otherwise. It lets people share their culture and makes the world smaller, which is a good thing IMO.
What other projects and/or ventures are you involved in?
I have a couple of hobby sites I operate that revolve around disc golf. dealnews.com is still young and I get to do a lot of creative things there. That helps to fill that need.
What is your ultimate professional goal, your dream job?
This might sound cheesy, but I really like my current job. Taking this job was a gamble that has paid off. I was employee number three in a company that had no physical location and no long term promises. The owners respect my opinion and seek it out about things not related to IT. They may think my opinion is insane, but they do listen. I have been in the “Dilbert/Office Space” world. I don’t want to go back there.
How did you get involved in coding?
My Dad brought home a Vic 20 in the early 80s. My cousin (now CTO) and I stayed up all night copying these basic programs from the back of the manual to do the simplest little things. I was not immediately hooked, but the bug was planted. In the mid 1990s, I got exposed to FoxPro and Visual Basic and the bug came to the surface and has never went away.
Describe your typical workday schedule.
Well, I work part of the week at home and part at our offices. On Monday, I drive 2 hours north to our offices. Its a typical small company with 30 something owners. We have lots of junk food and at one time had over 30 different types of beverages in the fridge. It seems to be dominated by Propel and diet soda now. I stay in town that night and do it again on Tuesday. When I am at home, things go a little different. I wake and go to my home office. I make some coffee, answer any emails and read the tech blogs. Work hours don’t apply as well when you work at home. I will find myself working at 2AM sometimes. There is no typical day for folks that work at home. I think you end up working more. There is no commute, or everyone going to lunch together that takes up time. You grab a sandwich and keep coding.
What advice can you give people just getting into programming?
To be really good at it, you have to believe you are the best coder on the planet. That may sound silly, but I believe it is true. You may not feel that way all the time, but there has to be moments where you sit in awe of yourself. You may look back later and realize how bad that code was, but in that moment, you are a programming god.
Try and find something that interests you. Some people really do like to work on huge mainframes with some language that has not had a new version release in 20 years. If that floats your boat, go for it. The longer people use old stuff like that, the more you are worth.
When you develop forum software are you designing it for yourself or for the end users?
I have often called Phorum a “true open source application”. What I mean by that is this. I develop Phorum for my needs. Thomas came along and started developing what he needed. His code was good and was good for Phorum, so I invited him to join me. Others come along (as Maurice is now) and want to change Phorum to meet their needs. Usually, someone will submit a patch and we will use it. If they keep sending more patches than we have time to manage, they are invited to commit to SVN. At its core, our philosophy is that if you need Phorum to do something, code it and submit a patch. If you can’t code, pay someone who can and submit a patch. Anything I have coded in Phorum has been because I had a need or thought it would be cool to have in the code.
How do you feel when you publicly release your software?
Proud and worried at the same time. Nothing is worse than releasing software that does not work or has security flaws. We have tried damn hard to not leave Phorum open to problems, but they always find a way. For example, we have been testing 5.1 for months. So, we decided to release 5.1.6 as stable. Inside of 48 hours we had 13 bug reports. You can never tell if something is really ready until it gets out into the wild.
If you were going to start a new forum community using existing software (which you didn’t write yourself) which product would you choose, and why?
Wow, that is a tough question. I am such a write-it-myself kind of guy. I have not looked at any others in much detail. I would likely go with one of the open source applications. I would want to download them and open them up. Look inside and see who was writing the best code IMO.
If I was going with a commercial application, it would vBulletin. They seem to have their stuff together the most.
What future changes do you expect in forum software development?
Hopefully, something new. It feels like the industry (are message boards an industry?) has just been tweaking the same structure that UBB created 9 years ago.
We have tried to be different from the other offerings out there. Sometimes we have been different just for the sake of being different. Recently, I have come around on some needed features that I had not done before that make Phorum more like the other software.
There has been some interest on our dev forum about tagging threads like flikr or del.ico.us. Not sure how that would work, if at all, in a message board.
What is your opinion on the open source vs proprietary software debate
in general? What about forum software specifically?
I believe that people need to use what best suits their needs. There is a negative review on HotScripts.com of Phorum that was made by a guy that was looking for 24/7 support and hand holding. That is not what Phorum is. If you want a company to call 24/7 and ask questions, you most likely need to go with one of the solutions that has that as an option. I see that as the biggest difference. I have used crappy software from both sides and I have used some awesome software from both sides.
In forum software, its like everywhere else. The open source stuff is used more, but the proprietary stuff gets the big exposure. Not sure why really. My guess is that their price point is right to meet the needs of users that don’t know anything about coding. They install it for you and recommend server tweaks. Its hard for any open source application to compete with that. We really don’t try to compete with that. I offer an install service, but I am no 24/7 help desk.
How do you see the Internet in general changing over the next 5 to 10 years? What about online communities in particular?
If I knew this, I could be planning my retirement. The internet is such a dynamic place. Who knew 5 years ago that blogs would be what they are? Or that “blog” would be a household word?!? As for communities, people like to feel like they are part of something. I think the successful communities will be the ones that make the users feel like they are part of something.
Sites like Wikipedia, Digg.com, flikr, and del.ico.us are changing the way people use the web. They offer users the ability to change the web.
Let me say here that I do NOT believe that the software makes a good community. In fact, I know it does not because there are people using some really bad software that are huge, tight communities. I have also seen people strip features off of Phorum because their users would revolt if they had more options than the old software written 5 years ago.
Which online communities do you enjoy as a member?
I don’t seek out and read message boards much. I read digg.com which has a community aspect to it. I read and answer on the MySQL.com forums. They use Phorum, so I kind of feel an attachment to them.
How many forums do you administrate?
I probably have rights on 10 to 20 but only actively moderate about three or four.
Tell us about the Phorum Community.
In the past, we did not have an active every day community. Users would come in, ask a question and go. I think its because most of them were looking for a simple message board to use in their site. They were not looking to get involved. In the last year though, we have gotten several regular contributors to our forums. I mentioned the die hard guys that run fresh code just off our finger tips.
How would you describe your moderation style?
I don’t have to moderate much. Don’t do anything you wouldn’t want your mother to read.
What are the most common technical mistakes you see new admins making?
They don’t keep their software up to date. In this world, you have to do that.
Lots of new admins have no idea what the resource needs are for what they want to do. They run out of disk space because they let their users upload gigs of images. Or, their server runs at high load all the time because they are running insane amounts of code on every page of the site.
What are the most common administrative mistakes you see new admins making?
I see lots of admins that want to have free and open discussion on their site. They don’t require logins and they don’t want to censor their users. After 10,000 viagra ads and a few hundred fights between users that involve the cops and them finding their home phone number, they realize that you can’t give people a free range on the internet. People do things on the net they would never do in real life.
What are your thoughts on blogs in general? Will blogging become more popular or will it fade away? Do you have a blog?
Blogs are neat and I think are here to stay. I don’t think they will take the place of message boards. Blogs don’t allow users to initiate the way message boards do. Things like digg.com are kind of a hybrid of blogs and message boards. Wish I had thought of it.
I read mostly tech blogs like Planet Gentoo. I also read Mark Cuban’s blog. I like his style. I don’t tend to read the blogs of people that post every day just to be posting.
If you include the Phorum developer blog, yeah. I don’t post to it everyday or anything. My “readers” are in our forums.
What do you know now that you wish you’d known 10 years ago?
That search would be king. Your domain can be isellcats.com and you could actually sell dogs. If you can get ranked at Google, you will rock. When I started it was all about the domain. You needed a good domain to make it. Not true anymore. Some of the most popular blogs are hosted user accounts on Blogger and Blogspot.
Tell us something about yourself that we don’t already know.
I like watching professional wrestling. Ok, so that fits the stereotype of a guy from Alabama. However, I know only one other person that watches it every week. And he is from Canada.
What does the future hold for Brian Moon?
Fun with my wife and kids. Success with dealnews.com.