http://qs1969.pair.com?node_id=116805


in reply to UBB Ultimate Bulletin Board

I have done a lot of modifications to our UBB at www.tauniverse.com - and let me tell you it is the absolutely most horrible, inconceivably bad piece of coding turd piled upon coding turd. Not even Netscape Navigator's code competes in crappiness. It's bloated, slow, full of bugs. We actually have had a noteworthy amount of occurences where it corrupted data files due to the idiotic locking code; in fact, it several times borked up its threadlist flatfile, resulting in blank forums, when I deleted several threads at once (so I have taken to the habit of waiting the 3 minutes it takes it to delete each thread, before deleting the next, if I have many to kill).

In some stretches looks like a beginner's first programming excercise. Not just a Perl beginner's, but a programming beginner's. A nice tale I have is about my "optimization" to the admin function for searching users by various criteria. Because it stores the user records in numbered files, it maintains an alphabetically sorted flatfile userlist to associate names to their number. When searching for a user, the Infopop code reads this list, splits the lines, glues them back together to scalars using the opposite field order (a useless excercise), then in the loop splits it again and drops the number, only to call a subroutine to get the just thrown away number; this subroutine, get this, loads and splits the entire memberlist flatfile from scratch! For our 4000 user base, it was reading the same single file 4000 times per search, resulting in every single page of the results taking 7 minutes to bring up. Just by storing the thrown away number in a variable instead of using the subroutine for that, I reduced that runtime to seconds.

That people actually pay for this steaming pile of crap on a stick makes me shiver. That Infopop even crawl the net and ask people their licenses when they find sites having a UBB is of course legally justified but it feels like absurd audacity to me.

If you want my advice, switch software as soon as possible. (We are thinking about Ikonboard, but v3 is not yet ready and there is no UBB importer either.) If you don't care about loosing your threads I would in fact advise you get rid of that horrid insult to humanity ASAP

For the more constructive part: in case you're stuck with it, you are not likely to find any help with it outside www.infopop.com or www.ubbdev.com. On the other hand, the data file formats or extremly simplistic - double-pipe separated plaintext files in case of threads, forum thread lists and such; member files simply contain one field per line and the only remotely tricky line is the one with the permissions (which you can likely ignore if you're just using the files for username+password). It's very simple to hack up because as far as I can tell they didn't spend more than 5 seconds of thought on their data structures.

(If you think I'm painting an excessively bad picture of the software, you're wrong. It's every bit as bad as you can imagine and then some.)

Replies are listed 'Best First'.
Re: Re: UBB Ultimate Crappity Board
by archen (Pilgrim) on Oct 05, 2001 at 01:35 UTC
    What what is really pathetic is the fact that it is in version 6 now. I'm a serious perl novice and even I can see bad mistakes, and that's downright SAD.
Re: Re: UBB Ultimate Crappity Board
by Anonymous Monk on Oct 05, 2001 at 09:02 UTC
    Uh, dude.

    You're using 5.40

    That was released nearly two YEARS AGO.

    The code you describe is SO much better, even in the last 5 series release, 5.47.

    Hell, it's even better in 6. The guy in charge of coding the new releases ran the thing through perltidy, a sanity filter, and is actually *gasp* trying to do the Right Thing.

    Before you criticize, learn.

      I have seen v6. Yes, it is tons better code. But it's stuck with a heavy legacy of zero design effort file formats which limit the power of the software in many areas and Infopop are unlikely to be able to get rid of any time soon. Something that really drove me off is their mess between wordlets and templates; their "templates" are a flat out lie since they're nothing other than a bunch of hardwired subroutine calls to generate the HTML and the wordlet system is a very inflexible, restricted way of modifying the looks of pages that depends on how much control Infopop or a hack's author deemed worth the effort to give you. Lastly, there is massive amounts of Javascript being thrown around, mostly as a quickhack to offload the "login" functionality to the browser rather than implementing it serverside.

      For me personally there is also the fact that our board is full of custom hacks I wrote myself. I started porting them to UBB6, but the above factors eventually put me off before I could waste too much effort on it. Right now I'm hoping for a UBB importer to Ikonboard v3..