Microsoft "Access"



  • I thought you all might enjoy this story about somewhere I used to work (a WTF factory as far as IT went). A bit long, but stay with me.

    Our parent company had built themselves a database application in Access while teaching themselves the system; that's the second system I've worked on that was created as the very first project in an unfamiliar system. We inherited a clone of this database for our own products. Some time after we were bought out by a new director, the parent company's version was replaced with an SQL Server back end, but not ours (probably due to directorial squabbling).

    So ... what did we have? A knackered, physically rotting, terminally ill NT 4.5 desktop computer supporting on average 200-500 MB of MDB files over SMB, via a D-Link 10 Mbit hub. But not SQL Server -- Jet.

    I find it lamentable that the GIMP manages to do so much less than Photoshop 5, yet takes twice as long to load on faster hardware with more RAM. But nothing is quite as cute as an application that takes five minutes to load. The program had a tabbed UI, with maybe 12 tabs, containing a huge number of complex views. Every single tab was fully initialised on load, so most of that 200-500 MB would have to go through the hub so the Jet engine could execute queries from pseudo-local files before it was even ready for use. Over time, as data accumulated etc. it ended up taking on average ten minutes to load. My personal best was waiting an hour and fourty minutes for it to load, then terminated it and went home.

    Some parts of the database ran fast, although you'd periodically content with locked records and eventually have to find whose copy was parked the cursor on a field that confliced with yours. But some tasks would take a full two minutes for nothing. So a few hundred records to clear out would involve several of us just spacing out or yakking while we waited two minutes or more in turn for each one.

    The schema was complete garbage, and during busy periods it would sometimes poo itself. The software would never notice (constraints, what are they?) so the developer wrote a routine inside the MDE that would query the entire database looking for inconsistencies. This ran once every hour on each and every copy, and would unexpectedly freeze Access solid for about three minutes, or ten or twenty if the server was on its knees again. Middle of a phone call, you'd have to go find or hijack another PC and transfer the call to that desk's phone. This was also run on load, contributing to the lengthy start-up time.

    If the check found anything, it would force the program to quit, and net send an error message to everyone to exit the database. Then, you'd run a Compact and Repair tool that would attempt to repair the database (which could take a while) and then wait while it loaded again. Sometimes you'd have to run that twice in succession to make all the kinks go away.

    Once, I was left there alone "guarding the fort" (it was some sort of fun day for everyone and I hate socialising) and a thunderstorm ambled up. A lightning strike very briefly disrupted power in the area knocking out the whole building. While waiting for the server to restart, I got a call. Sorry, lightning took out the power, call back in a few minutes. Windows start time for an Active Directory domain controller (laughable for such a tiny company) was almost as painful as the database start time.

    Of course, as soon as the database was all up, but before I got a call back, lightning defied its rule and knocked out the server and database again.

    So very many other shorter WTFs, I should document them all. BSDM, fake "VPN", astoundingly useless re-invention of the Windows GUI, a desk on which no phones worked, DIY floppy drive cage ... Oh and me frying lots of PS/2 and USB peripherals from a hoser of a tower PC.



  • @Daniel Beardsmore said:

    Of course, as soon as the database was all up, but before I got a call back, lightning defied its rule and knocked out the server and database again.

    That's more of a myth than a rule. It's true that in an uncivilised area of trees and scrubland, lightning typically will not strike the same thing twice (not least because it's probably still on fire from the last time it was struck, and that tends to deflect lightning). However, in an urban area, lightning usually strikes the same thing repeatedly, because it's usually a great big charged conductor (such as a power or telephone mast). If your equipment is knocked offline by a lightning strike, turn everything else off and go home; come back in the morning when the storm has passed.



  • This sounds a bit too familiar for me. Are you in Ontario? I may know the guy that wrote that monstrosity.

    Edit: I just noticed the England bit. Apparently 15 seconds is enough to time out the "delete post" functionality.. makes me wonder why the button is even there. 



  • Yahhhh!  Sounds like a good place to escape.  Did you have enough power or control over the development process to try and turn the system around by strarting to use a true RDBMS?



  • Oh, and kudos on the ghetto drive cage.  Truly worthy of the Afrotechmods site...



  • @sinistral said:

    Yahhhh!  Sounds like a good place to escape.  Did you have enough power or control over the development process to try and turn the system around by strarting to use a true RDBMS?

    The company kernel panicked. While it still had just a nervous kernel, we bought up another company for their money. They also had a bespoke software system, and we hired their developer to write us a new database system (when he was not doing his existing full time job for (as I recall) IBM). That's how we realised how screwed the schema for ours was. But when the new company came to join us, and we saw their software, perhaps we'd chosen the wrong bloke.

    Windows as a platform is infamous for its lack of consistency between applications, what you might call "mIRC syndrome" after what until that point was the most horrible atrocity I'd seen committed on the Windows interface. (Anyone who's used a Mac IRC client will know how GUI IRC clients are supposed to be written.) But this developer's arrogance was the best.

    He wasn't satisfied with implementing flaws like having no Edit menu and then binding ctrl-X to Exit. He decided he'd reinvent the Windows GUI. List boxes were not good enough for him -- far too well-designed and suitable. So any time he needed a list box, he'd draw out a big grid of text boxes and slap a scroll bar down the side. No sort. No row select. No Select All/multiple selection. No type-to-select. No row resize or re-order. As I recall, clicking the scroll bar itself (not the thumb) would step by one line instead of one page, as he had no idea how scrolling worked either.

    Nor did he have any concept of labels or read-only controls. Read-only data would be displayed in editable text boxes with no vague indication that altering the data and clicking Save would not affect that field. Woman rings up, can't find her records. Ah, found it -- misspelt name. Type in new name, Save.

    <Mr Data>No effect.</Mr Data>

    That field wasn't editable. Whatever it was we typed into it, was simply lost.

    It was written in VB (heh) and had little error checking, so it would randomly crash out for no reason, although we did start to find things that definitely failed. We ended up with something like an 11-page document of problems with it: bugs, oversights, and sheer stupidity; I wish I'd saved a copy of it now. I once wrote to him about the app he was making us, to explain (politely) that he should be using standard Windows controls instead of his makeshift contraptions and otherwise follow Windows convention (e.g. use default buttons on dialogs) but he flat out refused: he was going to do everything his way.

    I am arrogant, and I understand arrogance, but I still cannot comprehend anyone going to great lengths to write a list box out of a grid of text boxes when list boxes are provided for you by any IDE. (They are not in fact part of the Windows GUI, at least, not a you know it. The list grid is one component, and the header row is another, but any good visual environment will connect the two for you. Some apps, like Process Explorer, use the header row but draw their own list grid because they need extra power, such as fixed columns.)

    That program was one of those do-you-laugh-or-cry programs -- it was so awful, it was hilarious, except when you did in fact need it to work and it didn't want to. The installer was broken too, which caused further problems. I think it would install a shortcut that only Administrator could open, or some such.

    So, I don't know that we'd have done a lot better even had we got our own new application written before the company folded.

    @sinistral said:

    Oh, and kudos on the ghetto drive cage.  Truly worthy of the Afrotechmods site...

    Ooo I love his flux capacitor :-P



  • Repeat after me: "Access is not a database, it's a toy".  I sometimes think that Access is no more than a not-very-good VB-script wrapper around Excel.  At any rate, my experience with running a large-ish website on Access97/NT is one for which I have never forgiven MS, and one of the reasons I appreciate PostgreSQL so much.
     



  • Thank you, but killjoy posts and lecturing really aren't needed (that goes for you too asuffield). I thought we were all here for a laugh ...



  • @Daniel Beardsmore said:

    Thank you, but killjoy posts and lecturing really aren't needed (that goes for you too asuffield). I thought we were all here for a laugh ...

    You may assume that I had a good laugh at you.



  • @asuffield said:

    You may assume that I had a good laugh at you.

    Yes, that's not hard to imagine. It's just sad that intellect too often robs people of a sociable sense of humour and fun.



  • There is no such thing as Windows 4.5.  Judging by your description of the server as an AD domain controller, it must have been Windows 2000 Server.



  • @operagost said:

    There is no such thing as Windows 4.5.  Judging by your description of the server as an AD domain controller, it must have been Windows 2000 Server.

    No, it was NT. When it finally rotted to death (capacitors) and was crashing frequently, we had a company in to fix it. Their decision was to replace not just the motherboard (and keep the old CPU) but wipe NT and replace it with 2000 (due to a lack of an NT 4 CD on anyone's part I think), fail to retain the server SID, and change our router's internal IP scheme. Maybe NT 4 had something else that got converted to Active Directory under 2000. I could have sworn that, at university, we had both NT 4 and NT 4.5 machines -- from reading the splash screen/screensaver -- even though NT 4.5 doesn't exist.

    Changing the server SID broke everyone's existing local accounts, so that meant using admin access to scrape everyone's Outlook Express mail databases and address books out of their old login and reinstating them under their new local account, which we may have had to do twice for some reason. We had a 192.168 private IP range which they converted to a 10 range, and thus our networked copier/printer fell off the network and could no longer be used, nor would the router let us on the Internet any more, so that had to get put back (no idea why they ever changed it).

    Active Directory in Windows 2000 was far too heavy for our old server box, and it was never the same again. Granted, the OS stopped crashing, but now it was just astoundingly slow, and one particular service became increasingly prone to crashing, that would kill the svchost that held the Workstation, Server, and Computer Browser services and render it useless as a file server. At the same time, it was wide open to the world via DMZ due to the idea of fake VPN.

    Actually, we used PC Anywhere until then, but her local box she'd connect into, died too (disproportionate amount of hardware failure ...) and we no longer had a PC Anywhere disc.

    That said, I don't think those contractors ever got paid, as no-one was under the mistaken impression that they had a clue. Then we went with someone else, who seemed to have a little more of a clue. It would be a while before I'd slowly start to have any IT responsibilities there though. That was not why I was there. Besides, I was still a Mac devotee at this point and still getting used to using Windows again. It was during this period that I did get a new PC again, my trusty PII 333 =)



  • NT 4.5 was the Small Busines Server IIRC.


Log in to reply