- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Coincidentally I watched a police procedural whose title was "Aftermath" last night.
I had supper frist, of course.
Admin
Hm. Rubbish forum software, this.
I submitted it, then it bounced it back to me saying the captcha was invalid. So I resubmitted it and it posted it twice.
Now, where's my 15000 element order form that I can send to get this software fixed?
Admin
Looks like there is confusion between a "table" and a "database" in the flowchart.
Admin
Definitely egregious, buuuut it runs client-side, so that distributes the inefficiencies optimally.
Admin
Anything that starts with duplicating a database to fill an order - no need to read further. COW is not exactly a SQL feature.
Admin
My fears are assuaged.
Admin
EntireOxfordEnglishDictionary.TakeAllWords().Find("Frist").WTFComment.Insert();
%ERR1549: Comment not accepted, too late.
Admin
This solution is not enterprise. Better approach would've been to clone the database VM in the cloud. Then a white paper can be written about cost savings of cloning VMs for each order as opposed to commissioning physical hardware on premises.
Admin
Or possibly confusion between "database" and "Microsoft Access." Stuff from the 1990's often copies the file the database lives in, then modifies the copy, because database software is just a fancy binary file editing library.
Admin
No even access could do much better, I know, I build an e-commerce site using access for backend. This was before I actually new SQL, I used access to design the queries using the GUI and then switched to text to copy and paste into the code :P
And I still made a system that worked better than the one in the article.
Admin
%ERR1337: "Frist" not found %ERR55378008: WTFComment is not a member of NULL Did you mean: WTFComment.Insert(EntireOxfordEnglishDictionary.TakeAllWords().Find("First")) ?
Admin
Actually ... this isn't a terrible design. WAIT WAIT DON'T THROW THINGS AT ME YET!
First - this runs on the client's computer. And even for the mid-90's, copying a 15,000-row table doesn't take too long. Even faster if it's in-memory.
Second - this runs on the CLIENT'S computer. If the client screws up the DB, or a new column needs to be added to the Order table, just send along a new DB.
Third - what happens if the client loses power in the middle of an order, or shuts the machine down, or something like that? No problem. Original DB is still there, uncorrupted, and app keeps on ticking.
Fourth - the UI would just need to show data from the DB rows. No abstractions, leaky or otherwise, needed. Filtering by string or ordering by price can be shoved off to SQL to do.
What's the alternative? Objects to represent your DB? Custom operations that you might get wrong? And at the end, you strip down the order to the essentials before sending, so what's the problem?
Only real issue that I see here is ... why go through each record manually? There's SQL for that.
Admin
First - agreed - there are a lot of ways to do a job. However, this way is horribly inefficient, especially when it comes to adding features like order history.
Second - this is universal in the case of shipped software so it's moot
Third + "what's the alternative?" - You can just make an orders table (or set of tables) that points to the item ids you want to order and stores a quantity (and whatever lovely features you wish to add). The main table of items never goes bye-bye, cause it's read-only.
Fourth - you can still do this without copying the table
Admin
That's witchcraft! Next you'll be saying that it is possible to make things behave in ways that are atomic, consistent, isolated and durable.
Admin
'Instead they were going with a big name, "we named our building after ourselves" company.'
Donald Trump?
Admin
I was expecting this to be a rerun of that other WTF where the flowchart literally was the software.
Admin
You need blockchain for that, because this ACID thing you are talking about did not exist before blockchain came along and saved the world.
Admin
ACID in the 90's on FAT / VFAT drives under the client's control? Sing it with me: nobody knows the corruption I've seen, nobody knows my partial writes...
The best way to be sure in that era was to not write to any part of the file.
Admin
This is the mid 1990's we are talking about. You must first invent the cloud.
Addendum 2021-07-06 09:10: And VM's.
Admin
This seems like a system that was designed to meet very specific requirements, but maybe those were not the real requirements. My guess is that they wanted the orders to be self-contained. Since the order "database" (likely just a file) stores the entire product database, you can open any order even if you do not have a copy of the matching product database on your computer. This would be an important feature since the product database changes often and users do not have a way to make sure that they are always using the latest version. Also, note that this actually makes it easier to implement an "order history". You just have to store the old order databases. This is all client side anyway.
Admin
Looks like it'll always send the last item along too, even if you didn't order any.
Admin
Substitute the contemporary techno-buzzword shizzle-nizzle as needed, same result.
Admin
Supper? Shouldn't you have been doing, y'know, math?
Admin
Ah! I see you've used LabView!