Domain: thedailywtf.com
Stories and comments across the archive that link to thedailywtf.com.
Comments · 952
-
Re:And more cargo-cultism
Have you ever considered submitting to The Daily WTF?
-
Re:a 3d I/O application for 1d data entry
[snip]
Fingerprint is not a secret. Repeat that until it sinks in. (They use it to catch criminals because we leave them all over the place, you know.)
-
Re:I don't see this happening any time soon
It's all MUMPS / M / Cache underneath. MUMPS is old - the programming language is the OS is the database:
To give you an idea of what MUMPS is all about, following is an abbreviated list of features pulled straight from the MUMPS FAQ:
CASE SENSITIVITY: Commands and intrinsic functions are case-insensitive. Variable names and labels are case-sensitive.
COMMANDS: may be abbreviated to one letter, case-insensitive. Includes commands such as IF, ELSE, GOTO, WRITE, and XECUTE [which is my personal favorite, it allows arbitrary execution of code contained in a variable]
OPERATORS: No precedence, executed left to right, parenthesize as desired. 2+3*10 yields 50.
DATA TYPES: one universal datatype, interpreted/converted to string, integer, or floating-point number as context requires.
DECLARATIONS: NONE. Everything dynamically created on first reference.
LINES: important syntactic entities. Multiple statements per line are idiomatic. Scope of IF and FOR is "remainder of current line."
LOCAL ARRAYS: created dynamically, any number of subscripts, subscripts can be strings or integers. Stored in process space and expire when process terminates.
GLOBAL ARRAYS: arrays that start with a caret symbol. Stored on disk, available to all processes, persist when process terminates. This is M's main "database" mechanism.
.
There are different vendors and layers on top, but it's all the same underneath. VistA, the VA system is the underlying MUMPS open-source system that has been forked into many versions around he world
-
Re:VistA
You are remiss in not properly linking to some source material on MUMPS.
-
Re:vrml
I have to agree. The browser went from just another Internet service client to the inner platform antipattern. (Also on Wikipedia.)
-
Re:a possible idea
The pig go. No quack.
http://thedailywtf.com/Articles/No,_We_Need_a_Neural_Network.aspx -
Re:No, sir! *This* is perfectly valid...
WTF indeed -- The GP troll is based on an article I wrote for the Daily WTF. My version, however, had considerably less gay sex. I don't feel that this addition by the AC improved it that much.
-
My Worst IT Experience
Read this post full screen with diagrams and photos
As I tend toward fleeting obsession, and writing up this account of my poor work experience at UnnamedCompanyXXX hits the spot in the exact way that I only wish editing my resumé did (as Joey Cameau puts it, resumé writing seems largely an exercise in "listing the store-bought parts of yourself that you respect the least") what follows is a rather long explanation. For the short answer, just scroll to the image at the bottom. (The forum may crop the image, so use your browser to view the full image if you must.)
I'm hoping some day to find enough interesting artifacts from my work there (like a graph I built of the model schema) to make a really bitchin TDWTF submission, but to directly answer your question: It would seem from my research (which was quite painstaking given that that company's idea of revision control was a stack of CD-R'd ZIP archives of their Java Servlets project directory) that the original hacker to build their web-based business coordination platform understood relational databases and data access abstractions.
He or she wrote Hibernate XML model schema (a technology I thoroughly enjoyed learning to use) with logical relationships between different models, and when I ran the graphing program I wrote (produced a GraphViz DOT graph, which was transformed into SVG and then fed into ZVTM) that model schema formed very cogent, logical constellations showing at most two or three individual constellations -- everything else was well connected and sane.
The later person(s) to work on their platform, however, had no understanding whatsoever of databases, SQL, or Hibernate (I didn't know about Hibernate either, but I learned.) The "holes" I mentioned were in fact new unformalized relationships in the model schema: the programmer(s) had actually added fields like "employeeName" to, say, the Project model, and employeeName was actually a numeric key corresponding to the model called Resource, which due to the lack of documentation, evaded me for some hours as actually meaning freelancers who we may call on or have called upon in the past. Now you might even think that it was a good thing that one of the clueless hackers in between the first hacker and myself thought "employee" was a more intuitive term for this role, but in fact Employee was another model altogether! Extremely confusing!!!
The reason their system was even ailing to begin with was because some hacker(s) had actually written database queries without any SQL -- they simply pulled (often many copies of) every instance of a certain type of model in the database into the servlet task, and then filtered them down to whatever subset it was that they wanted in Java-land. A similar sort of reach-around was employed to bridge relational connections between different models without taking advantage of the programming abstractions for those either.
The first couple of weeks I spent setting up a second server, revision control, bugzilla, documentation wiki, and familiarizing myself with the code (I didn't get any documentation for months.) I spent an entire month mired in a protracted software upgrade side-quest to avoid only a few critical shortcomings in only a few software components: because the system had not been properly maintained in so long, every single software component was out of date by years and had a slew of dependencies that needed upgrading.
The very first change I committed to the new Subversion repository removed 4000 lines of code and replaced it with 14.
One day (long after it was very relevant anymore, unfortunately) they finally got the previous hacker (who was too busy with better paying work to work there anymore) to come in and help answer my questions about the code. I pleaded with him t
-
Re:Define "working well"
I think it comes down to what TheRaven64 said about algorithms and optimizations. My general approach is to write a program the way I think it should be, then make sure it works well in production. If it does, I'm happy and I move on. If there are resource problems, then (and only then) I fix them.
As far as RAM growing on trees: it kinda does. We had a conversion process that was running slow at times, and the solution turned out to be spending $250 for 16GB of RAM from Newegg. I probably could have turned a simple, straightforward, well-tested program into something byzantine with its own file caching system and whatnot, but it was far cheaper just to spring for more memory. I don't advocate that in general, but it shouldn't be avoided when it's the logical solution.
-
Re:And when you put computers in charge ...
it was a inherently flawed sensor design (showing only whether a solenoid was powered or not, not whether the associated valve was open or not).
Yeah, they should use extended boolean in such cases.
-
Re:Fail
That was mentioned on The Daily WTF, wasn't it? *googles* Yup, here we go:
-
Everything I learned, I learned from...
Project Aims For 5x Increase In Python Performance
Everyone should learn the Truths of Software Engineering from some source. For some people, it's The Daily WTF. For me, it was the Ultima series developer quotes. This time, the appropriate quote comes from Ultima VIII:
"It's hypothetical, or I'm going to poke you in the eye." - Rob to Tony when Tony describes possible 20 percent increase in game speed.
-
Re:Be Proactive
Indeed there is a difference between designing a software solution and writing some code that compiles and even seems to work. Unfortunately, the difference might not be visible to the average user.
Our ac should read this website to test his skills. They provide real problems and you get shown how not to solve it. Why is it wrong? What would be a better solution? And when you understand the humor, you're on the right track.
-
Re:Good managers know their good and bad employees
From TFA:
Certain employees produce chunks of data - whether words or software code - that later pop up in other messages. The people copied most often, Cataphora concludes, are thought leaders.
In my experience the code that is discussed in emails is just as likely to be because it is bad as it is because it is good and I'm sure the examples at http://thedailywtf.com/ often "pop up in other messages".
At my job, managers and PMs continually fail to edit the email chain, and so everyone's text is repeated verbatim in every subsequent message. How will this affect the system in TFA?
-
Good managers know their good and bad employeesFrom TFA:
Certain employees produce chunks of data - whether words or software code - that later pop up in other messages. The people copied most often, Cataphora concludes, are thought leaders.
In my experience the code that is discussed in emails is just as likely to be because it is bad as it is because it is good and I'm sure the examples at http://thedailywtf.com/ often "pop up in other messages".
Good managers already know the value of their staff by talking to them, talking to their colleagues and assessing their work. If a manager has to resort to analytics like this at least a corporation knows where their management problems lie. -
Re:Amazon
Yes, a lot of suppliers use standard shipping containers (including the big shipping containers that slot onto ships, that revolutionised shipping from the old 'anything in a bag' that dock workers used to load by hand to allowing fully automated systems to be used instead)
However, whilst its great for the common case, it falls over on the edge cases!
-
And again, a FAIL from the beginning!
As every security expert knows, you start a set of rules by forbidding everything, and then making the smallest possible exceptions to make it run. And nothing more.
This looks the other way around. So it is just as flawed as all those Internet-filters that we constantly bash here on Slashdot.Oh well, call me backwards, but I went from web application development with JavaScript and PHP to classical software development in Haskell, with dynamic libraries an plug-ins.
I felt the whole web app space to be a major case of the "inner platform effect" -
Re:Why?
-
Re:RT
We're using a much more robust solution called JIRA.
Automatic JIRA or Manual JIRA?
-
Re:Needless loss
Why is it that I feel the stuff I have setup at home is more robust than some "professional" shops? Is the world more like The Daily WTF than I've been lead to believe?
I'm not saying my system is perfect, but it's redundant in at least two locations.
Laptop<->Server<->Server HD 2<->Dreamhost.
My MySQL databases which just keep stuff like weather and temp (from my 1-Wire system) is dumped nightly and sent to my Gmail account. (It's also not a few TB server...) but seriously. How hard is it to toss in a few extra hard drives and do a rolling backup?
-
Other people who should not help:Phew. When I first misread this title, I thought it said 'SSDS', and immediately recalled the guy behind the (similarly-named) SSDS ("SpectateSwamp Desktop Search"), locally notorious on thedailywtf.com forums for being The Real WTF (tm) in most threads he joins.
So. Uhm. He probably shouldn't help either.
-
Re:portable shell scripting is an oxymoron
That link should really be
http://thedailywtf.com/Articles/Stupid-Coding-Tricks-A-Batch-of-Pi.aspx(I should write a shell script to correct my comments.)
Bash script, ASPX page, culture clash.
-
Re:portable shell scripting is an oxymoron
That link should really be
http://thedailywtf.com/Articles/Stupid-Coding-Tricks-A-Batch-of-Pi.aspx(I should write a shell script to correct my comments.)
-
Re:portable shell scripting is an oxymoron
Who needs to invoke the OS when you can calculate Pi with only a mere batch script?
http://thedailywtf.com/Comments/Stupid-Coding-Tricks-A-Batch-of-Pi.aspx -
Re:Sometimes You Have To Be There
It's also useful for opening doors
I mean, what good is it going to do to try to go get there in person and start unplugging things if the broadcast storm is so bad your security doors can't reach the server over the network to verify that your ID card is valid in order to let you in?
Better have some method of OOB access...
-
Re:Sometimes You Have To Be There
ITAPPMONROBOT to save the day!
-
Remembering something from TDWTF...
-
Re:Great article
So get a mod of Fx. Or install an addon globally (i.e. with root-analog permissions in the install directory so the user can't remove it directly, and probably not at all unless they have root-analog access, which would be stupid (but frequent reading of WTF reminds me that stupid != unusual) )
-
Re:Simple possible solution
So for you, the *simplest* possible solution is to modify a whole bunch of individual programs to include code that has nothing to do with their function?
I think I've seen your code somewhere before
-
Re:Company that made this software
( Tieto was behind this Finnish bank's software transition: http://thedailywtf.com/Articles/Sampo-UhOh.aspx )
No it wasn't. TietoEnator was responsible for the old, working system. The new, broken system was Danske Bank's own.
-
Re:Good luck with that
You really have to wonder what idiots at Microsoft think this stuff up? Presumably some idiot proposed crippling it to absurdity as "a way to combat piracy" and the co-idiots in the room nodded enthusiastically: "Hey! That'll work." They really needed someone, as Bill used to say, to tell them "That's the dumbest thing I ever heard. You're fired, and everyone who worked on Vista too." (I made up the last part, but it's true).
Same logic Congress uses. Hell, its the same logic you see on TDWTF from time to time: "If I pretend to fix it, the boss [in Congress's case this is the electorate] won't bother to check if I actually did." Think about anti-gun laws. Think about anti-piracy
... efforts. ETC. -
Re:backups
That could work, but you would be abusing RAID in a way that it isn't designed to do.
What if it mirrors the wrong way, replacing your new data with the old data?
You really want to suggest a "backup" scheme that is right out of TheDailyWTF
RAID != Backups.
-
Re:A reasoned analysis? That's good.
That's one advantage Linux has held long. Nothing in and around the Kernel expects KDE to be there, so the temptation to make a call into KDE is less.
It's still there, of course. There seem to be advantages to C++ development (especially with Qt) versus straight C development, even if you're not developing a GUI app.
But you're right -- there's far more desktop-environment-agnostic stuff there. The fact that Windows still needs a video card to run a headless server seems pretty ridiculous.
Learning that KDE meddle with the Bluetooth stack was therefore surprising, but I assume they're not exactly meddling with the stack itself but instead handles stuff like authorizing devices.
Correct. And moreover, they are not actually doing anything directly to the Bluetooth stack.
Essentially, what we have is, there's a bluetooth stack in there that actually handles things. It's roughly equivalent to ifconfig + NetworkManager + wpasupplicant, and so on -- all the low-level, fiddly little pieces you assemble such that you can configure and use bluetooth.
On Linux, that stack is called BlueZ.
On Windows and OS X, I'm pretty positive it is not done using BlueZ. And I've got no clue what other BSDs use.
So the idea of KDE's bluetooth layer is to manage the Bluetooth stack in an abstract and cross-platform way. It means that either KDE will have built-in bluetooth support, or applications will be written which run in the system tray and configure bluetooth, or both, and the whole thing can be ported, the entire BlueZ stack can be ripped out from under it and replaced with something else.
Unfortunately, all this great engineering becomes a great WTF when even the native BlueZ support isn't working. Due to some version mismatch snafus, Kubuntu Intrepid shipped without working Bluetooth.
-
Re:God no!
Javascript lacks a clear way of enforcing interfaces. Any part of the program can extend or modify the prototype of any other object on the fly...
Many of us would consider that a feature, not a bug. But, actually, you can enforce interfaces fairly easily with closures, if you really need them.
More importantly:
invalidating reasonable assumptions which other programmers had about that object.
If you're making assumptions you want others to be aware of, the right place to do so is in documentation. Otherwise, you've got the unsolvable problem of idiot-proofing your code -- they will always build a better idiot.
If people are deliberately breaking the rules you've laid out, you're going to have problems anyway. No language can actually enforce interfaces -- it's always possible for people to go edit that source (or the binary, if they have to), perform reflection (with or without a debugger), or just scribble all over your application's address space.
Javascript also lacks multithreading support (no way to synchronize in the language itself).
Threads are evil.
More relevantly, this actually isn't much of an issue for most real applications of Javascript. I'm sorry, but when was the last time an AJAX application needed to use more than two cores?
Closures are nice if you know how to use them, but otherwise they are a serious memory leakage hazard.
...so learn how to use them.
Citation needed on the memory leakage, also.
Everybody and their mother pretends to know how to code with it.
This is true regardless of language.
Any language can be used to write horrible code. Any language can be used to write decent code. The real question is, how much work does it take to write decent code in one language versus another?
-
Re:VistA - VA Open Source
From what I have heard, MUMPS is horrible... (Try looking on The Daily WTF for horror stories about mumps)
-
Re:poor reasoning
from what I've read (and I do read from places other than Slashdot), that Windows 7 stops allowing *some* applications to be written entirely like shit.
Unlikely. There is no operating system, or framework, or magic sauce which will prevent an application from being written like shit.
It is, however, possible for a language or a framework to encourage applications to be written like shit -- IMO, PHP does this. Are you suggesting that XP does as well?
the ones that *require admin rights* and other things won't function well. They are breaking compatibility for those poorly coded apps.
In other words, they're doing exactly what they did in Vista. Which, while a welcome change, the way they enforced it was moronic and irritating -- the app still ultimately requires admin rights, but now I have to click "Yes, I want to give it admin rights" five, ten, sometimes fifteen times.
Other things like Direct X, memory management, caching... I guess those are plusses too.
Gee, I didn't know XP didn't have DirectX, or caching! Oh wait...
On the enterprise end there are *lots* of enhancements and benefits, but since this is Slashdot,
Since this is Slashdot, it would help if you cited even a single enhancement or benefit that isn't already in XP.
-
Re:IP - Imaginary Property
Well, read the third story here. Even though the USPTO's hiring standards ought to have changed, there's probably still a lot of patent examinators without any or much formal CS training that have to examine IT patents. An engineering degree probably won't help you see that a given patent actually covers all uses of Dijkstra's algorithm or applies to all smartphones even though it was registered in 2007 (and thus should be subject to former art).
There really should be an open platform that allows the public to review freshly issued patents and send in counter-arguments (prior art, existing technology that makes the invention obvious etc.) to potentiella trigger a reexamination. Of course, this platform would be used for corporate idea warfare within five minutes of it opening... -
Re:The Zen of First Post
I'm reminded of a former employee of where I work who used the most esoteric and abbreviated language possible
He spoke in MUMPS?
-
Re:Perfection Has a Price
If you really want to see what's out there (and running your banks, hospitals, etc) check out The Daily WTF. There's a whole section dedicated to WTF code.
-
Re:Perfection Has a Price
If you really want to see what's out there (and running your banks, hospitals, etc) check out The Daily WTF. There's a whole section dedicated to WTF code.
-
Re:When I was breaking in
I'm convinced that most people presenting themselves as lead developers in interviews are far from it. There's a reason why thedailywtf.com has a "Tales from the Interview" section.
-
Re:He might have an interesting case...
For an insight in to the caliber of people working at the USPTO I refer you to this story of an interview that a graduate of Carnegie-Mellon recounted. These people really have no clue.
-
Re:So, basically
Pah, it's been around for decades!
:) http://img.thedailywtf.com/images/ads/All-programs-you-need-BIG.png -
Re:Simplifying decisions
If it's anything concerning Madoff and where all the dosh is, it's probably that well-know boolean value, fileNotFound.
-
Re:I'd rather seen they moved to Subversion
Git would be inappropriate in situations where you have developers that are either unwilling or incapable of learning how to use the command line and how to manage source control. In that kind of situation...
...you should fire them and hire competent developers.
Not wanting to use the commandline is one thing. It's somewhat understandable, and tools are being developed.
But not wanting to learn how to manage source control? That's as bad as a programmer who doesn't know how to use a text editor, and instead either dictates, or writes code in Word, or writes it by hand and uses OCR...
You think I'm joking, but quite a lot of these stories are about people who didn't want to learn how to use version control (search for "developmestruction"), and at least a couple are about abominations apparently written for programmers who can't or won't use a text editor (and yes, someone actually did write code in Word, using things like font color instead of curly braces).
-
Re:3 bit years should be enough for anyone.
I'd like to see the issue posted in the "worse-than-failure" website (i.e. what the programmer did to screw up the software.)
-
Re:Kill!!!
Agreed, the Web 0.1 method isn't a recommended approach at all.
:) -
Re:Timing is everything
The biggest problem is that poorly optimised software can be ok (everyone runs Java or
.NET acceptably, and they're not exactly resource light), but some poorly written software can be dreadfully slow - so much so that throwing more hardware at it will never work.You know, the websites written as a single jpeg image cut into 100 pieces, the loops that iterate over themselves several times to get 1 piece of data, etc etc. I'm sure we've all seen stuff that makes us gawk in wonder that someone actually did it like that. (if not, take a look at TheDailyWTF).
So, although hardware is much more powerful that it makes some sense to run 'easy' languages like java, C# or a scripting language, that still doesn't mean you can get away with cheap, poor programmers. (if you think it does, you can hire someone for $100 to rewrite your entire app on rentacoder, assuming you find one who knows the right codez
:).Something that no-one considers in this 'hardware cost v programmer cost' is the user. If you have an app that is used by 10 users, it could be that you don't care so much about software quality. If it's used by 10 million users, you'd be saving the wrong pennies by not spending the money on writing it with as much skill as you can hire.
-
Re:This has been true since at least 1980.
And at least one skilled person from that era in a leadership position made this tradeoff with significant economic -- as well as entertaining and educational -- consequences.
-
Re:Easier?
What does "easiness" (of programming) have to do with the end quality of the game?
It's not so much "easiness" as "speed", which is crucial.
If you have two programmers instead of four, your game is cheaper to make.
If you have four programmers, and your competitor also has four, if you choose something "easier", you'll get to market faster than them.
It could probably be argued that "easiness" (fancy API's etc) actually reduce the quality of games by giving tools to people who do not know how to wield them properly.
Anyone can find a way to abuse any tool. I would argue that the cleaner and easier the language, the more readable the code, and the easier it is to find out who those people are.
Contrast this with something like, say, Java or C, and someone could simply write sufficiently obfuscated and overly complex code to hide their incompetence -- for example, ObjectWrapper.
In fact, I think it may result in an influx of poorly programmed/poorly thought-out games written by people who know enough to program a web page or move a LOGO turtle.
And you don't imagine you'll get 10% of those that are worthwhile?
Remember: 90% of everything is crap. That also means: If you stop staring at the crap for a second, you might see the 10% that's actually good.