- 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
This is the worst abuse of X-ML that I've ever seen!
Admin
With the right group, that can be really fun.
Admin
OK. I give up. What the F*** does this crap do??? And who the hell named the tables? Is it the same guy from Austria who initially designed THE Hotel System or it's some of his students perhaps using really strong medications...
Admin
Nothing on this site does anything spectacular including 'working well'. Including the software behind it. Now that ya know.....
Admin
If you sort of squint your eyes, you can see that the x's make a picture of a butterfly! It's ASCII ART!
Admin
Alright fess up, you wrote this mess didn't you.
Admin
It's a Bool, not a boolean - think: File Not Found
As an aside, since bools were named after George Bool, were shorts named after Martin Short? And were longs named after Howie Long?
Admin
While I cannot verify the accuracy of this WTF I can say with absolute certainty that it is not made up as I was forced to work on a conversion using a similar POS database written in access. It had one table and had been used for a few years so it had a lot of entries. In fact the first thing I did was to check the table name to see if it was the same database. (which it is not)
Admin
Somehow I don't see how those two statements can mutually exist.
This system seems very secure, I mean if you can't even figure out what its supposed to do it makes it much harder to hack. The 91318 records is very perplexing. Following the letter followed by a number pattern would only yield 260 possible records.
I know .. this is an access database that tracks data in an excel spreadsheet that the accounting department uses. The ID corresponds to the 'A1' style excel reference. The various data fields hold information about the cell, each DATA## representing aspects of the cell as a byte. This way it 'empowers' the access user to query the excel spreadsheet in the handy access GUI utility .. not to mention the powerful reporting ability. A VBA macro loads the excel spreadsheet into the MS Access table with the name (BRK07) of the spreadsheet followed by the roman-numerical version (X) for extra security.
Absolutely brilliant!
Admin
longs? That'd be after John Holmes, I think...
Admin
No, no... really I wonder what the heck does this do and how could it be related to a POS system? A configuration file or something like this I may accept it, but with over 90,000 rows... Where's Steve to tell something about it? I'm really curious how is this related to a real working system. It's really interesting to see something that twisted.
Hey guys, perhaps it's so genius that noone of us can figure it out and we think it's a WTF but probably it's brilliant but we can't figure it out... isn't it?
Admin
Au contraire! I think several people, myself included, care a lot about how real these stories are. Obviously Alex can do as he pleases, and I will continue checking this site out anyhow, but I _do_ care.
Admin
Classic, mate :)
Admin
im guessing it was left up to us to decide because even if u knew WHAT it was doing,
the HOW of it all would erase all memories from 3yrs ago to present day.
Admin
please explain (M1, Data 4)
either it works ALONG THE LINES of what u just said,
or the following quote is only too true (that being said, i started with BASIC...)
"It is practically impossible to teach good programming style to students that have had prior exposure
to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration."
-Dijkstra
i would HATE to see the query / code that pulls all this data into some HUMAN READABLE format...
and maybe he proves that the following quote needs to adjust more weight to the later variable:
Programming is 10% science, 25% ingenuity and 65% getting the ingenuity to work with the science.
Admin
Don't forget that the first two columns are empty. This is really clever on the part of the designer. He/She (might be Paula) remembered to leave spare columns so they wouldn't have to copy everything over if they needed to insert new data in the middle.
Admin
BTW - captcha was "clueless" for above post.
Admin
^^
·_·
@@
X _ X
Admin
What rest? Do you really seriously think there are more tables?
Admin
Yawn. Another robot spitting out a statement they heard somewhere.
Admin
I have found code and submitted it. I know at least one of the WTFs was real. I would love to say "no one is that dumb" but I have worked with some wonder developers.
Admin
I agree. Almost any tool including MS Access (while way overused) can be the best solution in a particular situation. If you're going to waste tens of thousands of dollars on SQL Server/Oracle backend Java/.Net frontend for an independant 5-10 user lightweight database application when MS Office is already installed and standard then it's a good thing you're coding and not making management decisions.
Admin
Sounds good. How will the system handle years that have more or less than 52 weeks (as per ISO8601)?
Admin
You're missing that instead of the crappy MS Access you may use a real sql server like mySQL, MSDE or Interbase/Firebird (and more).
So there's no need to use access when you have better (and free) options. Basically anything is better than MS Access. There are some databases actually worse and I worked with a couple of them, but still Access is one of the worst databases I dealt with in the past.
Admin
Yes, because MS Access with a tightly integrated VB "app" is much better than getting:
Java (price: free)
Some sort of IDE for Java if you wish (price: free)
MySQL (as much as this is bad mouthed on here, I'd way rather use this than MS Access) (price: free)
If cost is the primary concern, Access still isn't the best way to go. As far as I know, MS Access comes with Office which isn't free.
Also, I've never seen an app like that that didn't eventually need to be scaled. And that's so much harder with Access and it's VB language than if you had developed it with another technology in the first place. I'm not a Java fan really but it's much better than some alternatives.
As for the WTF itself, I also give up. How the hell-ass does this abomination work?
Admin
Well considering every office monkey already has an MS Office Professional license it's free also. It's not what I use and is very limited and silly and nothing I enjoy supporting (the whole 'compare and compact' thing is ridiculous) but if you can't manage riding the bike with training wheels ....
And when you're talking about single user portable databases, I don't think it gets any easier. We're not talking about applications here, we're talking about glorified Excel spreadsheets. The whole concept of an MS Access POS system is a joke, though I will point out I was in Tempe, AZ paying a parking ticket and noticed the city uses one!
Admin
One example of this happening was my submission. (http://thedailywtf.com/forums/63510/ShowPost.aspx) See the last page of comments for my list of WTFs that were twisted. It kinda takes the fun out of the site when you realize most of the WTF behind the code is made up.
Oh, and I've got some really great stuff to send in. I've recently started working on a new site with a database that contains: dynamic table names (tableName_{pk_of_user}), a table called "articles" that holds everything except articles, and table with 75k rows (35k of which contain the same data with different primary keys). That's all in the same database. The site that uses this database typically uses anywhere from 300 to 1300 queries per page. That, my friends, is a true WTF.
Admin
Saw that... was going to comment until I read yours. It wouldn't be a wtf if it made sense I guess.
Admin
I guess Alex made up a bit adding some of his own experience and estimating where this approach could lead by overdesigning applications the way you described then.
I have seen myself examples closer to what Alex described. Man I've seen much worse: http://thedailywtf.com/forums/thread/25052.aspx and http://thedailywtf.com/forums/thread/25094.aspx where alex actually cut most of my original screenshots and explanations and posted about 1/3 of them (and thankfully fixing my original spelling and gramar) :)
I think that anonymizing the story and submitter names are a good thing and all we care is to share sonething funny not to mock people or companies, right?
Admin
This is exactly how you make your data hacker proof and ensure your job security.
Admin
Why? What makes it "one of the worst databases I dealt with in the past" ? If you mean to say "it makes a bad enterprise-level multi-user database *server*" then you might be on to something, but if you're talking about an application that allows you to enter, manipulate and query data, it seems to work pretty well to me.
As always, it depends on what you are trying to do.
Admin
No way this is real.
It's gotta be made-up.
Admin
What odd comments .... have you ever actually used MS Access? What is "compare and compact" ? Do you mean "repair and compact?" Why is that "ridiculous"? What does the line about "glorified Excel spreadsheets" mean? Can you expand on that?
If you feel that lots of users who use Access have no clue about data modelling or how to work with/create a realtional databse and therefore you end up with lots of "glorified Excel spreadsheets", then you might have a valid argument -- but try to be a little more clear. I don't see what that has to do with the overall merits of Access as a databsae, however ... Why would you feel that an Access database can only consist of "glorified Excel spreadsheets"? Are you aware of what RDBMS features that Access does or does not implement? Care to comment on those and explain your viewpoint?
Admin
What a load of crap!
Admin
I'm sure the original creator designed it this way so that they could encode their pr0n collection into some of the tables, and none would be the wiser...
Admin
LOL, this obviously is "x-encoded binary"
Admin
I see both points of view. In terms of "repair and compact", most "real" databases have this functionality in them as well (think reorganization in DB/400 or shrink file/defragment indexes in SQL server). Essentially the purpose is to optimize the database by clearing unused space, reindexing, and updating statistics - I'd hate to use a DBMS that didn't offer that functionality.
In terms of "glorified excel spreadsheet", Rus could have stated the fact with a little more tact but essentially he is correct. Consider that the way you should design tables in Access is opposite to how you should design tables in SQL Server, Oracle, DB2, etc for transactional systems. Access tables should be denormalized and therefore more along the lines of Excel spreadsheets. With the exception of relationships, I don't see much of a difference between the two.
Access is a great tool if you use it appropriately. Personally I haven't come across a better tool for database application prototyping, adhoc reporting, or small workgroup apps. The problem with Access is essentially it is not a scalable solution when used as the data repository and management doesn't want to spend the resources to "rewrite" the application despite the potential problems. I'm not crazy about the VBA aspect of it after moving to .Net, but maybe when Office 2007 comes out it will have VBA.Net.
Admin
??? Huh ?? What the heck are you talking about? This is what drives me nuts, people thinking things like this. Why do you think that Access tables should be denormalized?? Do you really, honestly don't see much of a difference between an Access database and Excel spreadsheets?? Seriously?
EDIT: re-reading the rest of your post, it seems spot-on, so that makes the above quote all the more mystifying .......
Admin
Hate to disappoint you, but I am running Office 2007 beta 2 and it still uses a VB6-based version of VBA (version 6.4). I doubt they will replace it in the 6-8 months until they launch.
Admin
BRK07x is the customer code
Each row is a purchase order
Each row is comprised of a text formatted 256 bit mask, split into 32 equal 8 bit fields, with each bit represents a product sku. Well could you image how hard it would be to count up to bit 192 if you stored it as a single field?
Geez, you would think you lot hadn't see someone use a bit mask before.
Admin
Ok, where do I start? It's using a non-standart SQL (remember what's the symbol for the like operator? A hint - it isn't %)? Or that localized versions use localized SQL dialect? I remember having issues with the date fields as well...
Single user it may be ok, but try to connect a second user and it gets somewhat slower, connect a 3rd and then it gets significantly slower compared to how it used to work when there was only one user.
Don't get offended - it isn't too bad, works sometimes and it's reports are nice actually I admit that. Worse are dbase and paradox for example. Still access isn't what I would use for a database. I'm not considering to use it as a frontend EVER. There are better tools for creating desktop applications so it's out of question for everyone reading postings on this site I guess, am I right?
Admin
You didn't understand him I guess... He meant that in order to put an access database into excel you should de-normalize the tables so you can make them somewhat more usable when viewing the excel sheets. The whole idea is a real WTF actually but just to illustrate a real absurd of a database and mis-using the tools.
And this reminds me of a real system written in Excel using the VB scripts and forms and using sheets as database. And boy it was expensive but the user loved it. I tried to explain what a joke it is but he didn't want to listen. This is one of the few times I refused to fix what they asked me to...
Admin
I can definitely understand your shock because that's something that isn't widely known - I was unaware of it for years before I ran into an article about a year ago explaining it. If I remember correctly, it has something to do with how the data is stored internally making joins undesirable so for performance reasons you denormalize. I think has something to do with not hashing keys, although it has been a while since I read the article.
And seriously, I really don't see much difference between Access and Excel. True, each has a different market focus. Excel caters to the flexibility of end-users adjusting calculations on the fly while Access caters to more stable data entry/reporting. In my mind, tables in Access are analagous to worksheet ranges in Excel. Excel's functions, filtering, sorting and lists perform the same functions as a query. Excel lookups performs joins. Both provide reporting - Excel just does it directly on the "table". So from a functional standpoint they are very similar, but from an implementation/usability standpoint they are different. I'll admit that I do tend to look for inherent similarities over differences so that's probably coloring my opinions.
Admin
New idea - we have seven bits, right?
Its ASCII.
He obviously mapped ASCII characters to... something. Status codes, perhaps?
Admin
Admin
I would have emigrated from Austria if the "Hotel Reservation System from Hell" had been an austrian creation, but it was actually a german one. ;-)
Admin
It looks pretty straightforward to me -- it's the invoice detail table for the customer with the customer code BRK07. There are other equivalent tables autogenerated for each customer code.
ID is the invoice id suffix (the full invoice id would be, for example, BRK07K3), and there's a column for each available product, DATA1 .. DATAn. Each X in the column is a unit of quantity, separated by whitespace for enhanced readability.
What's the problem here?
Admin
Uhm, I should have hit "Quote" not "Reply"...
Admin
This looks like someone's first attempt at data obfuscation. After a few dozen joins, this would probably look like a 'normal' table.
Admin
Our users *love* Excel. Our translators use it to pass on their translations, others use it to store loads and loads of text (and then ask how they get a newline into a cell), collegues use it to do database exports/imports etc etc. They simply love it.
A polish girl even thinks it's called XL, probably because of the extra-large functionality.
P.S.: A final question to all of the fellow developers out there: if your home made ERP system doesn't have a report, do you also send users an excel-file that calls a query on sql server? It's very popular over here.