How and Why We Built Our Own Slash Implementation
Last week, David Bernard Cuisinier sent the following message, "I've been following your site for a while now, and the progress being made concerning Slash. But I'm still in the "newbie" category. Have you ever thought of sharing your experience with running CTDATA on Slash, through a FAQ or HOWTO that would be better than the puny existing one?"
We decided that we would try to address this by first explaining how CTDATA built its own version of Slash and why we chose this route to get our site up and running.
Where did the idea come from?We think that a lot of Slashdot users have entertained the idea of building a Web Site that acts like Slashdot in some fashion. However, many people with this idea do not have previous experience building database-driven Web Sites. We feel fortunate that Dave Aiello had about two years of experience building Web Sites driven by databases on a consulting basis for financial services companies.
However, the real key to our successful implementation of a Slash-based system was that CTDATA's desire to build a Slash-based Web Site for itself corresponded with one of our corporate client's desire to build a Web-based knowledge management system that would have a Weblog-style interface, at least on its home page. This allowed us to use Slash as the basis for that client's Intranet site.
Without the alignment of these two sets of goals, we probably wouldn't have succeeded in implementing Slash in such a short time.
When did you start development?
We started developing our Slash implementation in November 1999. It took until January before most of the core functions of Slashdot worked in our target environment. Our client's Slash-based knowledge management system officially went live in March 2000. We implemented ctdata.com as a Slash site on June 21, 2000. The Web Site for the Rensselaer Club of New Jersey, rcnj.org, was turned on September 5, 2000.
When did your site(s) go live?
Why did you start with Slashcode 0.3?Rob Malda did not announce the availability of Slashcode 0.9 until January 26, 2000. Prior to that, he and Jeff Bates were fairly adamant in their refusal to provide a road map to future releases of the Slash source.
So until January 2000, developers interested in doing Slash-based sites had to choose their own path. Some, like Kuro5hin, started their own Slash-like projects out of frustration. We decided to develop on top of the Slash distribution in existance at the time.
For the record, that tar ball we began with was called Slash 0.3.
What is the major difference between your version of Slash and the distribution that you started with?We began with Slash 0.3, a distribution that only ran on Linux with mySQL, Apache, and mod_perl. Neither CTDATA nor its consulting clients used any of these tools when we began this project. Therefore, we were forced to port Slash 0.3 so that it was far more platform-neutral.
The current version of our code is known to run in the following environments:
- Operating Systems: Solaris 2.6 and Windows NT 4.0
- Databases: Sybase 11.x and Microsoft SQL Server 6.5
- Web Server: Netscape Enterprise Server 3.5x and later
- Web Server / Executable Program Interface: Common Gateway Interface (CGI)
Do you plan to maintain this fork indefinitely?
Maintaining a fork from Slashcode is not in CTDATA's long term business interests. However, we cannot migrate off of our fork until we can develop the experience necessary to run a Linux server securely on the Internet.
Is your intent to create a competing project?
Of course, we could strike out on our own again and implement Slashcode 1.09 or Bender on Windows NT or Solaris, utilizing the same porting techniques as we did in 1999. However, we feel that our lack of Linux expertise is an impediment to our long-term participation in the Slashcode project and a disservice to our current clients. The Slashcode project might benefit from our effort to make Slashcode less UNIX-dependent. But, from a practical standpoint, we must become experienced on the Linux platform so that we can adopt code changes applied to the base distribution quickly.
We support the effort of the leaders of the Slashcode project to implement the so-called Bender release because:
- it will make it easier for us to contribute our enhancements to the main Slashcode project, and
- it will allow us to migrate our clients to Apache / mod_perl-based Web Servers without requiring them to also change operating systems and databases.
What are you doing to develop expertise on Linux?Since we have come to the conclusion that we should merge our efforts thus far into the main Slashcode project, we are working hard on building Linux expertise. So far, we have succeeded in installing Slash 1.09 on a small machine running RedHat 6.1. This machine will be our test environment until we can get a copy of Bender running on a larger server.
Can you share any of your experience installing Slash on Linux for the first time, since many inexperienced Linux users might benefit?About a week ago, we realized that a number of people might benefit from notes on our first installation experience, since we are coming from a Windows NT-user perspective. We will try to distill any insight that we have into an article or two, and post them here in the future.
Feel free to let us know if you have any comments, questions, or suggestions. Send an email to Dave Aiello or leave a comment attached to this story.