Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
Review: The Infamous Slash Code

By rusty in News
Thu Dec 30, 1999 at 04:04:24 PM EST
Tags: (all tags)

Well, as most of you probably realize, this site is running on the last release of the slashdot code, which you can get here in it's original form, or here as patched by James Turinsky. I know you all love slashdot, and the gang over there, for their tireless work in favor of Open Source software. They get heaps of respect, for that, and for running the best internet news site hands down.

But there's a dark side lurking behind all this. The Code. Some of the old-timers will remember when slashdot was suffering it's worst growing pains, with constant downtime, slow response, and apparent ability to beat any server it was run on into a helpless pulp. This is entirely comprehensible to me now, as I've seen The Code. Frankly, it's a wonder slashdot ran at all. Read on for my professional opinion.


The Good

  • It works, mostly
    Despite having no useful instructions for setup or maintenance, and bugs coming out it's ears, if you're sufficiently clever to get the thing up and running, and you fix a couple of the most glaring errors, well, the thing does work. So a point for that I guess.

  • Administration is very easy
    There's a very nice interface for administration. Basically everything you could need to do for day-to-day management of a dynamic news site is right there in a web interface for you. All the way down to being able to define large chunks of the actual HTML that will appear in the code. This part is very sweet, and I've used the idea myself in recent projects.

  • It's fairly innovative, and fills a niche
    I haven't seen anything quite like this for running a dynamic site. Imitators have come along (such as squishdot and PHP-Slash) which are based on the slash concept, but Slash was here first. So points there too.

The Bad

  • The License
    God only knows what the license really is. Malda's README states that the license is unclear, and that if you use the code, you have to link to slashdot. Ok, but it's been a while now, and for a site that's so fervently pro-OSS, you'd think he'd get around to open-sourcing his own damn code! Malda swears up and down that the code will remain free, but really, until it's in writing, who knows.

  • The Lag
    The code as released is 0.3, which is roughly slashdot circa 10-12 months ago. Those who keep up with the site will realize that featurewise, this is a long time ago. Moderation was in it's infancy, and a lot of things don't work right. Repeated requests and haranguings on the slash-help mailing list have brought reperated promises of "RSN." Frankly, I don't think anyone really believes it anymore. We might see an 0.4 before we're running kernel 4.4, but I doubt it. Doesn't anyone at BSI know how to run a CVS server?

The Ugly

  • Slash.pm
    Ok, so the main library for everything is called Slash.pm. There are two identical copies of it. Yup, that's right. TWO. One is in the main directory, for use by slashd and dailyStuff, and the other is in public_html/ for use by the rest of the site scripts. This is just wrong. Put it in one place, and try "use lib" Duh.

  • mod_perl
    Despite Rob's pleasure with mod_perl, the site is really not using most of it's power. It's basically running as a mod_perl interpreted CGI, which only saves you the overhead or starting a new perl interpreter for every request. Nice performance boost, sure, but for a site like this, there's so much more that could be done. For example, why not have one main "traffic" CGI that handles all requests under the site root, and uses libs for all the functions? This can be compiled right in with apache at startup and run as fast as a native apache module. There's so much more, but I won't go into all the gory details here. Suffice it to say, it's wasting power.

  • Email functions
    This is one of the ugliest bits. SMTP routines crop up in no less than three places, that I've seen so far. And do they deign to use any of the wonderful perl SMTP libs already written and debugged (like Mail::Sendmail)? Uh uh. They're all identical, cut-n-paste homebrew SMTP clients (that apparently Nate wrote). Blah.

  • Overall code ugliness
    Lots of global variables, lots of global functions, lots of default EXPORTing of crap. Overall, it's a huge crusty, kludgy mess. I wonder what the codebase they're using now looks like? Part of me hopes it's been rewritten from the ground up, but most of me expects it's just had more features (meta-moderation? karma?) bashed onto the existing mess.

Well, it's all well and good for me to bitch and moan, but what am I going to do about it? Well, I'm going to fix it. Stay tuned here for more news of the HackSlash Project, as the situation warrants. And if you've seen the code, and you have ideas or want to contribute, email me at rusty@kuro5hin.org or post below.

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Related Links
o Slashdot
o Kuro5hin
o slashdot
o here
o here [2]
o squishdot
o PHP-Slash
o slash-help
o BSI
o CVS
o Mail::Send mail
o rusty@kuro 5hin.org
o Also by rusty


Display: Sort:
Review: The Infamous Slash Code | 0 comments ( topical, editorial, 0 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!