- 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
If I wanted to write bad programs in Excel I'd be an accountant
Admin
That's one way to make your code self-documenting. Here, the documentation IS the code!
Admin
Admin
This story reminds me of a contractor that worked for a client of ours. His job was to develop the hand-held application as the client app to our web service. His design was such that his app would make a web-service call to retrieve the UI description which would tell the client app how to render the widgets. His idea being that you could simply change that textual markup, have the app download the updated file, and WahLah, the UI would reflect the changes! We were skeptical.
Well we're sitting in a meeting one day and he's describing his awesomeness to management. They ask him if he has created a read-only version of these forms. At this point I'm thinking "wow - his design might actually be worth something if all he has to do is flip a bit in his text file to achieve this". But alas no - his response was that supporting such a feature would take a complete rewrite of his code. Oh well.
suzilou
Admin
Admin
Hey, at least it's not "viola!". Every time I see that it's like fingernails running down the blackboard in my brain.
Admin
Rubbish. A viola is a perfectly respectable musical instrument, and a string quartet would look quite odd without one.
Admin
Alright, I'll be that guy today.
So they generate the UI code from metadata. The generated code is ugly, but it works and you don't have to maintain it, and IMHO the most well-written GUI code is still ugly. So the particular choice of generator and storage format isn't ideal, but I must be missing something. Where's the WTF again?
Admin
You want to be THAT guy? Go back to TheDailyItIsNotPerfectButItWorksSomehow.com!
Admin
Rubbish. A viola is a perfectly respectable musical instrument, and a string quartet would look quite odd without one.[/quote]
Actually a String Quartet would be fine without it.. You see a Viola and a Violin are actually the exact same size, it's just that a violinist head is bigger.
Admin
Admin
The path to Hell is paved with good intentions. His idea might be good. But he just didn't have to skill to implement it. :) And the idea doesn't count; the end product counts.
PS. I write a lot of C++ code generation code in python.
Admin
I think Adam used to work where I'm working right now!
Admin
Admin
Burns longer than a violin, too.
Admin
Admin
[quote user="Alacrity"] Rubbish. A viola is a perfectly respectable musical instrument, and a string quartet would look quite odd without one.[/quote]
Actually a String Quartet would be fine without it.. You see a Viola and a Violin are actually the exact same size, it's just that a violinist head is bigger.[/quote]
And the violin has an high 'E' and missing a low 'C' for strings.
Admin
you're that guy? Come here, I have a baseball bat with your name on it. I hate supporting that project.
Admin
Are you, sir, referring to the Haïtian phone company or, perchance, to the hotel guest loyalty program of the same name?
Admin
Oh, wait.
Admin
[quote user="does it matter?"][quote user="Alacrity"] Rubbish. A viola is a perfectly respectable musical instrument, and a string quartet would look quite odd without one.[/quote]Actually a String Quartet would be fine without it.. You see a Viola and a Violin are actually the exact same size, it's just that a violinist head is bigger.[/quote]And the violin has an high 'E' and missing a low 'C' for strings.[/quote]That's OK. The definition for 'perfect pitch' with either is throwing them in a dumpster without hitting the rim.
Admin
TRWTF is all the viola comments that were sparked by the mention that someone didn't make a mistake.
Admin
In Soviet Russia....
Admin
I wonder, has anyone ever used a spreadsheet in software development in a non-WTFy way? As soon as the word "spreadsheet" is read or uttered, the story is already clear: "genius" comes up with a brillant plan to use a spreadsheet to do what code should be doing.
And what's with these outdated error pages I keep getting?
Admin
I'm also not seeing the problem. It's a non-conventional platform, but it may well be the best way to handle coding for the Blackberry. I've never done it-- have any of you? For all we know, this truly is the best solution to a difficult environment. Without knowing how or why this was implemented, we have no idea if Carl was the WTF-er, or the WTF-ee doing the best he could in a bad environment.
Admin
Admin
Admin
The other day I made a comment on a coworker's use of a spreadsheet. The moment he said "Excel" during a metting with several managers, I just laughed... He didn't appreciate it.
Admin
And that C string is invaluable for scoring the scene where the baby dies.
Admin
To quote Daffy Duck, "All I can say is French people can spell a lot better than they pronounce!"
Admin
There exists a development system called uniPaaS that generates business applications from meta-data.
Name of the company that build uniPaaS? Magic.
Coincidence?
Admin
Outright laughter isn't quite the most constructive type of feedback you could've given, so I can understand why it went unappreciated...
Admin
What could possibly be worse than a Viola?
Two Violas.
Admin
On the other hand, sometimes the IT department simply gets in the way.
Back in the mid-90's, the small (~20 people) company I worked for was bought by a division of a subsidiary of a large Fortune 100 company. (The division relied on a commercial database package that we had written, and decided it was in their best interest to own the company that wrote it.) Well, the division's parent company had a large IT department, along with all the corporate layers and procedures that come with Fortune 100ness. When my boss learned that his boss' department needed a new report, and the IT department had told him that it would be "several months" before they could get to it, my boss took the specs home over the weekend and came in Monday morning with the report done. (Using our database, of course, and not the IT's COBOL [or whatever they used] programming.) He offered it to them for free. They wouldn't take it, citing that the IT department wouldn't allow it. He told them "why not use this until the IT department gets around to your request?" They still refused -- afraid that the IT department would "find out".
Admin
Admin
Spreadsheets get used a lot in game development. It works well for storing settings / text strings / etc that need to edited by the non-programmer members of the team.
Admin
Hey wait, isn't it Fring you're talking about? Especially that this part
applies to it very well.
Admin
Constructive, no. Appropriate, yes!
Admin
I hate having to work with C strings
Admin
But I Love working with G strings...
Admin
We use them to aid developers in defining enumerations.
For example, in a very large real-time system (500,000 lines of code) there are hundreds of possible error codes the system can generate. The same code is used in different products, each with a slightly different configuration. So product A might be able to generate ERROR_WIDGET_NOT_INITIALIZED but product B doesn't use widgets so this error isn't reported.
Spreadsheets list the error codes, whether they're supported in a given product, and all the data and strings associated with it (e.g. error 313, WIDGET_NOT_INITIALIZED, "Widget Not Initialized", "Please make sure the widget carrier is powered on").
The spreadsheet is saved as XML and at compile-time a Python script parses the XML and spits out the appropriate header files for C++ inclusion.
Admin
This reminds me of something that happened to me. I was on a summer work term, and my boss was the resident guru at the company. During the summer I mostly just got to maintain and do minor bugfixes in his old code (which was 90% hand coded assembler) which freed up his time to work on the next generation graphics engine that was to be the basis of all future products.
During the summer, the CEO kept trying to convince me to sign a full time contract. I kept turning him down because I was still in school and wanted to move to another city anyway, but eventually he convinced me to sign on. The day after I signed the contract, my boss announced that he was leaving and that I would inherit his new graphics engine. I was pretty nervous... it was a big responsibility.
On the day he left, he came by my desk and said "don't worry, the new engine is written in C and it's really straightforward". He pointed me to where it was in source control, and then left.
It was straightforward alright: I think the entire codebase was less than a thousand lines. It was basically an empty shell of a graphics engine... just some ideas written down about the framework. I pretty much had to start from scratch.
That was definitely a "WTF" moment for me, especially because I had been somewhat duped by the CEO into signing on for probably less money than I should have. Anyway, the WTF moment quickly passed as I realized I had a clean slate to architect the new engine any way that I wanted. It pretty much turned out to be my dream job, which is why I'm still here a decade later, still adding features to the fifth version of my graphics engine which forms the basis of all of our products.
Admin
I also have to agree that I don't see the huge WTF here.
This company had to generate applications on a wide variety of mobile platforms, not only BlackBerries. Each platform probably had its own SDK to use.
So the solution was to separate the UI design in a common meta format. I don't see the WTF in this.
Is it the fact that it was stored in CSV instead of XML? I don't see the problem here. And Excel (or "Calc" for that matter) is perfect for editing CSV files.
Admin
Oh, and I forgot to mention, that same spreadsheet can then be used to generate tables in Microsoft Word for inclusion in our design documents, appendices for customer support documents, checklists for testers, tables for test documents, etc.
Write it out once, use it everywhere.
Admin
Whereas fingernails running down a blackboard would only be a good chamber instrument for performing John Cage.
Admin
Nonsense. Without them what would C++ strings have to be better than?
Admin
The wtf being IMHO, that aiming for the smallest common denominator gets you something very bad. IE, the only thing pretty much all animals have in common is that they generate poo. Thus, the uberallencompassing animal would be a pile of poo. ;) I know it is halting badly, but that is generally what you get when you try to make something like that. Better to develop an API and implement it for each platform so you can just move the same code around in that case. Something like, I dunno... J2ME for phones? ;)
Admin
Admin
Development of apps that have to run on hundreds of different phones often uses this type of ugliness... games especially because the different models typically each require special tweaks to get high performance or circumvent missing APIs.
Admin
TRWTF is all the code-tards who think describing UI elements in a non-code format and auto-generating the UI code is somehow a WTF.
Here's a news flash for you clueless nubs out there gloating about Excel doing what real code should be doing: real code is doing it. The real code, generated by the codegen application using the stuff which was edited in Excel.
I don't hear any of you snickering about Eclipse or Visual Studion doing what real code should be doing.
Yeah, Excel is a pretty bad choice for an editing tool, but it's not the worst.
As to the lol-able idea of storing all those UI elements in a separate file and compiling them in later: It's good enough for Windows, GNOME (oooh, runtime resource files! EVIL), KDE, MacOS... in most modern operating systems or windowed desktop environments, in fact.
Welcome to the 21st Century, kids.