- 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
And don't forget SORTLAND... where you can go for good coffee, beer, and sorting algorithms.
Admin
<us>: Here's the WSDL, the endpoint URL, and the authentication detials. <them>: We need to know what XML to send and what to expect back. <us>: Run the WSDL through your development tools, it will create a client proxy. <them>: ??? <us>: How are you going to call it? <them>: We plan to create an XML file on the fly and send it to the server, we will then save and parse the reply. We need a template of the request so that we can do a find-and-replace to create the outgoing request.
This conversation happened in 2010. Ten seasoned developers didn't know a better way to call a web service and didn't understand why they shouldn't be doing what they were planning on doing. I never asked how they were going to parse the reply, but I'm certain it wouldn't involve XPath or even an XML library.
Admin
On that note, my wife's a veterinarian, and sometimes animal medicine uses the trail-and-error method of today's article (although with a little more thought than Stefan was willing to employ). Primarily this is because our communication with animals is so limited; pets can't describe the situation to us. So instead, vets have to rely on the observations of the sometimes-brainless pet-owners. As a result, often times the only thing that a vet can do is try to treat the clinical signs.
Sometimes it's hard to even determine the clinical signs (without expensive X-rays, blood tests, etc.), which makes it even more of a trial-and-error process. Consider this encounter that I just made up (which incidentally sounds much like a discussion between a programmer and a user reporting a bug):
(An owner enters the exam room and sets a purring, fairly-content cat on the exam table.) "Fluffy isn't acting like herself." How so? "She's just acting different." Is she being aggressive? "No." Is she depressed? "No, she's just not right." Is she eating? "Yes, of course." How much does she eat every day? "I don't know, we just leave food out for her." So you don't know that she's even eating at all? "I guess not." Has she been using her litter box? "Of cours- wait, I guess I don't know that either." Has she been experiencing any pain? "I don't know." Well does she get mad when you pick her up? "Sometimes, but she's always like that." Ad nauseam.
Note that at this point, the vet knows no more than she did when the owner walked through the front-door and said "this is my cat, Fluffy."
Admin
Companies don't provide internships expecting immediate payback - productivity from the interns and the developers set to manage them. They are opportunities for young developers who mostly have no real-world experience but have taken some programming/computer science classes to gain real-world experience under the tutelage of experienced developers. The hope is that the interns learn quickly and after they get their degree they can be hired on as full-time developers. Unfortunately, that wasn't the case with this particular intern.
It looks like he was trying to practice TDD. He was given a test to satisfy and he satisfied it. When given a bug - a test case, he changed the code to satisfy it. Given another test case, he did similarly... I suppose the hope is that having enough test cases will eventually result in the truly correct implementation?
Admin
Would you rather abort that project and leave him free to work on... SOMETHING ELSE? [DUHN DUHN DUHNNNNNN]
Seriously, chewing over this code is the safest place to keep him, and it may have been cheaper and easier than dismissing him early.
Admin
I wonder why he didn't use a list of townes coming from a file and the compare Right(listitem, len(listitem)) with Right(weather, len(weather)).
He could then also say that he was programming databases.
Admin
Admin
Absolutely agree with you on this. It should not be up to Stephan's whether to get assistance or not. When shit gets completely broken (specially when it breaks like that right from the start), a person should be assign to assist or take over immediately.
Jim (the manager of the story) must have thought he was doing this punk a favor, but in reality, he did not. I remember when I started working in this field, I was making a serious coding mistake, and I just couldn't see it (lack of experience combined with overconfidence and lack of sleep.)
Thankfully (and despite the bruising that my ego took), my manager sat down next to me and explained to me what I was doing wrong, all the while reminding me that no matter how bad a deadline is, to keep a head cool and think/analyze before coding. That was one of the most important lessons that changed my professional life for the better.
The intern in this story didn't get that. He needed to get his ego bruised with a cold dose of reality. Then either he should have been reminded to use basic software engineering and analytic skills or be fired immediately (some people actually need the later to grow in their careers or to realize they are in the wrong one.)
You can't treat interns with latex gloves. Internship is their opportunity (probably the only one) to really learn what real life is like outside of a classroom. I don't mean that they need to be abused or exploited, but they need to be treated and measured according to their accomplishments and failings. Otherwise, the golden opportunity that internship is gets lost completely.
Admin
Better yet "Works as designed".
Admin
Come to think of it, I'd recommend latex gloves when you're dealing with someone whose head is this far up his ass...
Admin
Yeah, I would have tried West to East first.
This is a mistake I see often, especially when a database is involved. If you pick the wrong cardinal direction, how can you ever expect the database to have proper cardinality?
Admin
I'm no Coldfusion fan but the intern's approach resembles quite a lot of the CF code I have to maintain at work.
The old code inside template approach seen in Coldfusion just encourages messy programming. It isn't helped by the fact that so many of the CF programmers seemed to be dipping in and out with no overall plan.
That said I'm also having to work with a set of PHP libraries written fairly recently by a guy here and they are the worst example of spaghetti code I've ever seen. Nothing links logically to anywhere else as it purports to follow the Strategy Pattern.
We'll all have to cope with a degree of this kind of programming but the less the better.
Ian aka electricowl
Admin
The first letter is missing. It's a consistent issue.
The first thing is to investigate where the data domes from and then follow through and find where the letter gets lost.
Going West to East is just a joke... you were joking I hope...
Admin
Not just users. I had to deal with QA engineers who weren't much different.
QA: The program crashed. Me: What was the error? QA: I don't remember. I didn't write it down. Me: What were you doing when it happened? QA: I was using the program. Me: What did you do right before it crashed? QA: I clicked the submit button. Me: And what steps had you taken up until that point? QA: I had just been using the program for a while. Me: How long? QA: A while. I don't remember for sure. Me: So, after using the program for a while, doing nothing in particular, with no repeatable steps, the program reported an error that you didn't record. QA: Right. Can you fix that?
Admin
Admin
Admin
weather = right(weather,len(weather)-4)
I think this is the problem. I think he should have used "left" instead of right.
IANAWP (IAAEP) - Yes one of those (STB's are my thing). :)
Admin
Sorry did not quote.
He used left instead of right. So chopped the front of the string an not the end.
As before. IANAWP,
Admin
Admin
Maybe as a result of too many raves, and some concomitant enhancification by substance ingestion, his brain cells actually saw the letters which were off in a different universe (or a different plane of existence). So he didn't realize they were missing...
Admin
Lucky that "OSTON" came up before "ACKSONVILLE", otherwise I would hate to see the fallout when they see the next bug with new york.
Admin
Stefaaaaaannnnnnn!!!
Admin
Example: "cfloop" is your FOR loop and your WHILE loop.
ColdFusion:
C++
ColdFusion
C++
.It gets worse. The if-else statements wouldn't even be considered valid XML.
Cold Fusion:
C++
Note that this isn't even equivalent code as the line breaks and indentation on the ColdFusion code is also part of the output. Anyway, you can see that "foo eq bar" is not an attribute, but there is no attribute wrapper for conditional statements; it just hangs there inside the tag. In addition, the cfelseif and cfelse tags cannot be closed, neither by /cfelse nor by an empty tag designation.
These lovely structures can be replaced with a cfscript tag containing an ECMAScript variant, but why not just use that in the first place? Unfortunately, the answer is "then it would be ASP."
Admin
And politics.
And with politics, you only need a solution that keeps things band-aided together until the next election.
Admin
This sounds just like software problem resolution to me.
I can't count how many times I've gotten a "bug report" that says, "The computer isn't working."
I call or email and ask what's wrong, and the person says, "The report is wrong."
"Okay. What's wrong with it?"
"The numbers aren't right."
"Okay, let's go back to the beginning. Which report is the problem?"
"The one I get from the computer."
"Yes, but specifically, which report?"
"You know, the one with the numbers and stuff."
Etc.
Admin
Admin
(Read TDWTF for two days.)
"There, it's fixed! Try it again!"
Admin
Admin
If you can get a smoker to quit before they get cancer, they'll recover over time. Same with fatties - it just takes time and the understanding that this is a permanent thing.
Admin
Consider as a reverse analogy (relating back to IT) a user who lets a bug persist and destroy as many data as possible before bothering to report it.
Admin
The correct response would be "Do you want to labeled as programmer for the next five minutes?"
-Harrow.
Admin
Admin
Works as coded.
Admin
I dunno, you can still fix the root cause, but that won't reverse the damage.
Admin
Sure you can. In fact, its recommended. Okay, now cough!
Admin
How apt!
Admin
TRWTF is that some people STILL think that cigarettes are more harmful than marijuana.
Admin
Admin
Admin
Now you're just bowytzing them on purpose!!
[image]Admin
Depending on how "west" is defined, there's also SALT LAKE CITY, so you have to...oh, wait. Nice work, Stefan!
Admin
Perhaps instead of just leaving his work for the next intern, you could have taken him aside and advised him on this matter. He'll go to his next position without having learned what you could have taught him, and the cycle could potentially repeat itself and he could possibly not have a job in a society that demands humans have one in order to produce. Sleep well knowing you could have helped someone avoid potential disaster and decided to let him wander on without caution.
Admin
I think that's basically how "alternative" medicine works.
Admin
If the animal dies a week after you say "there, it's fixed" you could be in trouble, especially if you charged them for the "fix". This is what I meant by ethics coming into play.
Unfortunately for the vet, Fluffy's owner is a total dingbat, so about all the vet can do is keep testing for things until she finds something she can actually treat. And as several people have already pointed out, this can be very much like IT at times.
Admin
You know, sometimes the Universe/Market Forces/etc solves problems all on its own if only you have the time and the patience for it.
Jim: There exists a problem in Stefan's code...
UNIVERSE/MARKET FORCES: Ok. Stefan no longer works there. Now someone else can do it.
Problem solved.
I think Stefan's real "problem" was that he was trying to be a "problem solver", but he did not realize "problem solver" equates to troubleshooter, and if you're a troubleshooter in a computer environment then you're usually a programmer, and if you're a programmer, well... ya know...
Of course that's not to say that you can't be a programmer and also go to raves. But it is hard to put in a good day's work of any sort if you feel that having fun at the rave is a higher priority than your day job.
-- Furry cows moo and decompress.
Admin
I basically agree with you, Yazeran, but I'm pedantic and OCD, so I feel the need to write this: Other circumstances that necessitate treating the symptom are when the root cause cannot be conclusively determined--either because determining that cause would be impossible or because it would be prohibitively expensive and would not have a large impact on treatment.
This kind of thing happens a lot. It makes me sad because, as a troubleshooter, I'd like to always know the true root cause of something. But many times in medicine it's just not cost effective. That's why we don't see any real life doctor's like House.
-- Furry cows moo and decompress.
Admin
TRWTF is people keep pretending like marijuana is harmless. It may be less harmful than tobacco, but inhaling hot smoke is still not good for you.
Admin
Ok, I'll admit it, the TRWTF is Stefan but ColdFusion is a close second.
Admin
Larry was implying that marijuana is more harmful than tobacco, not less harmful. Or he made an epic fail of a typo.
Admin
Or does that only apply to GUI design?