• (cs)

    At a company I used to work for we learned the hard way about Resume embellishments. When someone says, "Increased sales by $150 million" and they are a programmer, run.

     Example:

    We hired a guy that had an outstanding resume. He had at least 4 degrees and a Masters in Computer Science. He was more qualified than I on paper and I thought, "Great maybe he can take some of the load off of me."

    He had never used vbscript before, or seen an ounce of ASP code but we were willing to let him learn on the job. We handed him a few books on vbscript, and a few on ASP and told him to read up. In the mean time he was just used for general PC repair and printer maintenance.

    Finally after 2 months we asked him to help on a project. I asked him to change several web pages to "bulletproof" (my boss's term not mine) the validation. Within 15 minutes he came back to me and asked:

     "So I see the Response object. How do I instantiate it?"

    First I gave him the RCA dog look and asked him to clarify what he was asking.

    "Well all other objects you do a new or something so how do I create a Response object."

    It was at this point that I decided we were never going to trust a resume ever again.

  • Jason (unregistered) in reply to Trinian
    Anonymous:

    This guy has a wife and a girlfriend?  Man, utter brainlessness must be quite the aphrodisiac.

     

    Women can relate.
     

  • (cs) in reply to Jason

    "So [in an associative array,] how you you find a key by value?"

  • dasmb (unregistered) in reply to Mike
    Anonymous:

    BTW, as long as I have your attention - WTF is this AssemblyInfo.vb file good for?

    IANA.NETP (any longer), but if memory serves AssemblyInfo.vb/.cs were files that provided the compiler with metadata about the Assembly -- you know, the binary file, either the DLL or EXE, that contains your compiled code.  By default it doesn't do much, just has a version tag, some metadata about the assembly such as author's name and company and maybe some information about threading (again, if memory serves).  But you can add a lot more to it, such as a key for signed DLLs and I believe code that will execute when your assembly loads.

    Do yourself a favor, though: quit using VB.NET.  You can do everything you can do in VB.NET much easier in C# and with a syntax that isn't an OOP-WTF-Kludge.
     

    dasmb
  • Zlodo (unregistered)

    We had a "joe" back in a company I worked on.
     

    We were making some stupid winnie the pooh video game and "joe" was an obnoxious, incompetent and conceited guy.

    I only really remember two incidents about him, but he was generally annoying and I had to track down stupid problems back to some of his code several times. 

    We once had the game crashing often but randomly while loading a level. As the guy who was given the task of hammering the third party engine used into shape, I was in charge of fixing that kind of problems. Also as it was a playstation game, most of the crashes looked just like the game freezing on the devkit (we were using mainly textual traces to figure out what was wrong and most of the development was actually done with a rough but effective pc port of the engine)

    It didn't seem to happen to us in the development pc version and we had such a shitty debugger on the psx dev kit that I just peppered the code with trace outputs to do a binary search for the exact location where the crash was taking place.

    It rather quickly brought me into the mini-game initialization code, and then more specifically into some 'joe' code. That code was picking which bonuses to spawn in the upcoming mini game or something to that effect.

    Some code was calling a "getfreetype()" function. I thought it would probably be some accessor and not where the crash happened. Looking at it though, it turned out to be a byzantine maze of loops, switch-case and if. After giving it the "peppering with traces" treatment, it turned out this was going into an endless loop.

    So me and the lead code basically went to "joe" (who had been, by the way, earlier complaining about that crash and how things were never working and how it was impossible to work properly in those conditions), and told him with as much diplomacy as we could foster something along the lines of "it goes into an infinite loop in that... thing of yours. Fix this."

    On a whim, after he fixed it I checked the change he commited in sourcesafe. A do-while loop contained into a if had been changed into that same if contained in the do-while loop. I just felt like he had just shuffled his code around, even though what actually happened was that he basically managed to put an loop end condition outside of the loop.

     

    Another time, "joe" complained that after taking the last code update, his mini game crashed. "I didn't change anything, so it has to be something you guys changed", as always with the underlying tone of annoyance that we're preventing him from working.

    We could have one to four players. Early in the development, the players could only be human. Then we changed it so that any player without a pad connected would be an IA, so we could start developing the IA (the player selection interface and the menus weren't done yet at the time).

    So we just had some players characters that were flagged as "IA".

    So when "joe" started complaining about the crash he was getting, I just walked over and started looking (because I knew it would be faster to do that than convincing him that he could maybe just try to find out why it crashed instead of just complaining about it). As soon as I started looking, he walked out to smoke.

    15 seconds later (basically press f5, wait for it to load and crash, then look at the debugger screen to see where it crashed), I found out that some of his code was querying the gamepad object for some input. But it was an IA player, so the pointer to the gamepad object was null.
     

    When he came back 15 minutes later and asked me "so did you fix it?", I managed to just factually point out what the problem was. (but I didn't fix it. There is a limit on the amount of hand holding I'm willing to provide)

    Another team started on another project before the end of ours and they needed to get one of our guys. Our lead code of course gladly offered them "joe". The lead code for the other team wasn't exactly thrilled because he knew "joe" all too well.

    He was much less diplomatic than anyone in my team though, so you'd hear him getting upset about something and then angrily yelling "jooooooe" to call him over on a regular basis.

  • (cs)

    I worked for a company not so long ago that hired a consulting company to write a web-based application that handled peoples financial information. After about a month of working there, I was asked to attend a meeting with the rest of the in-house development team to discuss the issues that we had with their application. The main issue I had is that the app did not have any user authentication past the login page; if I pasted a URL a colleague gave me I would be looking at someone's financial information. When I brought this up, their response was, "We don't deal with security." I responded with "Don't you think you should?!".

    I was never asked to another meeting because, according to my manager, "they didn't like the feeling of animosity you hold towards them".

     

  • (cs) in reply to me

    Oh man that's awesome. I guess I haven't been working long enough to realize how someone that asks a question like, "How do I pass a string to a function?" could be employed / hired by anyone to do programming.

  • Anon (unregistered) in reply to It's Atomic!
    Anonymous:

    The full-timers said I was far too abrupt / brusqe with him - calling him on his BS and generally not backing down on my desire to "code it properly". He seemed adamant that we could just throw it together then we would have time later to "go back and do it properly, later". Our meetings were basically hammer fests of him saying XYZ and me saying "uh, no, you can't say that and we aren't going to do it like that".

    After one such meeting, we dispersed, and one of the non-developer types sitting a cubicle away stood up and fvcking applauded me, saying they agreed with my attitude of "do it right the first time". That was something I had not seen before.


    The full-timers were right. 'Calling people's bs' in a meeting is really bad form. Especially in the condescending way you did. For whatever reason they hired the walrus as the project manager, not you. You should have documented your critique of his project plan, presented it to him before development and got him to sign off that he had read it. Then, you do it his way and point to the document at the post-mortem.

    When developers push back, most people think it's because we are lazy and\or egotistical. Many times it's true. Doing it this way shows that it is not the case.

  • (cs) in reply to themagni
    themagni:

    One morning, at an old job, there was a note on my desk when I came in:

     [themagni], there's a fly buzzing around the office. Don't hurt it. Catch it, and let it outside.

    Hehe. That'd be the "other duties as assigned" in your contract...
  • Scottford (unregistered) in reply to me
    Anonymous:

    Ok. This one came from my high school programming class. We were asked (pre the days of the interweb) to write some code to display an information site about a local business. We were doing this in pascal. The code was then to be graded by a statewide education board. The problem was that the previous year the education board decided to merge the programming course with the 'Information Processing & Management' course (aka, Secretarial Studies). So, while the board was composed of 50% programmers, the other 50% were glorified typists, and knew just enough to be dangerous.

     

    At the time, I was regularly involved in the demo scene and was pretty adept at x86 ASM. So, for my graphics routines, I wrote everything in ASM. My pascal code was pretty clean, lots of comments and decent style - typical suck-up code written by someone trying to impress.

     
    My assignment came back with a B- (I was truly expecting an A+). The comments said that I had not used useful variable names - "Why is cx sometimes for loops and ax is for Y coordinates, when bx is for X coordinates - USE MEANINGFUL NAMES".

     

    I would have given you an F. You're writing a business app, not a graphical demo. Ease of maintenance is paramount. Assembly code is totally unnecessary and hard to maintain. For exactly the reasons that the graders pointed out (even if only by coincidence).

     

  • (cs) in reply to pat sajak
    Anonymous:
    Anonymous:

    "vanna white (the price is right model) has the PERFECT job for a woman"


    So who's the woman on Wheel of Fortune?
     

    <font size="+1">J</font>anice and Holly, natch.

     

  • YodaYid (unregistered) in reply to MarkT
    MarkT:

    My favorite all time Joeism is from a EE I worked with right out of college:

    What's the difference between a hard drive and memory?

    followed closely by (same guy):

    Is a C compiler hard to write?

     

    This doesn't strike me as particularly bad - if it was a CS major I would agree, but an EE right out of school doesn't necessarily learn about RAM, particularly if they focus on analog stuff or VLSI, for example. And "Is a C compiler hard to write?" is like saying "Is an amplifier circuit hard to build?" It's only obvious if you've been exposed to it. And I don't know what kind of masochistic EE would want to take compilers ;-)

  • Kimster (unregistered)

    At my last company, I had the unfortunate pleasure to work with a developer who we came to refer to as the Human Catapult for his ability to without fail throw bad code over the wall without proper understanding of its impact on the system, testing, you name it. In the course of his time working on "bug fixes", for every bug fixed at least 2 new ones would be created. I was one of the sorry souls who -- though being paid much less -- had to go and put the right fixes in place. And all of that would have been bearable if it wasn't for his know-it-all attitude and condescending, arrogant tone... So as you read these quotes keep that tone in mind... For the purposes of this post, I am going to refer to him as Ralph, because not only did he have a striking resemblance to the Simpsons character Ralph Wiggums, his comments were remarkably similar to Ralphie's. A good example is:

    After a rather long team meeting where the technical lead listed all of the things that needed to be done by the rest of the team to fix Ralph's shitty code, Ralph loudly exclaimed: "ball bearings are cool" 

    Obviously this led to a high-level of frustration within the team and myself. In response to this pent-up anger, I created my very own ralphisms.txt... mainly I tracked famous quotes and what my sarcastic remarks would be if I had responded (i've put these in italics). Here are some tidbits:

    "Well, I've seen that solution work. This is something I haven't seen before."  - that's surprising. NOT!

    "So, okay. I fetch a copy of it down and I save it in..." - Should we just do the work for you?

     After deploying code to our integration environment and breaking it: "and it works on chinatown [his dev environment], so i'm a little bit supicious here" - oh really? of yourself?

    "i haven't looked through the code too closely" - that's why i'm just catapulting this too you, because i don't want to have to actually look at the code!

    "i continue to be puzzled by this..." - intonation of oh soooo smarty pants

    "you're working on things much more critical than my rant" - isn't anything that someone works on more critical than you?

    human catapult (after being assigned, oh god no!, more than one task): Does anyone have a ball prioritization protocol that they'd like to apply
    me: I think you're capable of figuring that out

    me: ralphmonths (noun) = a conversion equation resulting in the amount of time it would take ralph to complete the work a normal programmer completes within a given time period. the equation varies based on phases of the moon, number of ball bearings scattered throughout room at any given moment, and inflated size of egg-shaped head.
    co-worker: classic
    co-worker: however, you got the part of speech wrong
    co-worker: it's not a noun
    co-worker: it's a travesty

    "if you have a particular desire for me to chase that problem, i'm not sure what to do to chase it"

    The Catapult had a penchant for referring to co-workers, especially non-technical people, that he thought were stupid as monkeys: "that's the closest thing I've heard to a monkey all day" -- obviously, you haven't been listening to yourself

    Oh yes, and did I mention that Ralph did personal hygiene like clipping his fingernails (!!!!!) at his desk? I don't know about you, but I usually reserve that for the privacy of my home/bathroom. We all resorted to permanent headphone status to avoid having Ralph speak to us or hear him clipping at his desk.

    I did get some satisfaction when the glorious day came -- after many probationary periods -- when the Catapult was finally fired. We all actually went out and celebrated.

  • jim (unregistered) in reply to Sean
    Anonymous:
    At my previous job, I was in a meeting where the guru guy was explaining how the data available on the screen could be downloaded as a CSV by the users so they could import to MS Excel.  My newly hired boss (who claimed to have been a programmer for 20 years) asked the question, "What's CSV?".  Guru guy looks at her in amazement, "It's a comma separated value file".  To which she replies, "OH, I have never heard of that before".... WTF?!?!

    That's not necessarily that weird. A lot of programmers don't deal with importing or exporting data, especially in csv format. Heck, I used to export into that format before I knew there was an actual name for it.

    If she worked in IT for 20 years, it's entirely possible that she worked on a mainframe in a specific category that didn't handle that at all. Very easy to never encounter csv that way.

    In my first job, I learned a lot of techniques and pitfalls without learning the names for them until my second IT job.

  • (cs)

    A few years ago, me and a friend were working in a huge company when one day this pompous guy walks in. He looks around to the ceiling, seemingly looking for something and then tells us:

     

    You’re such idiots for using TCP/IP over here. Any one who knows anything about communications knows that it’s a stupid protocol, which is too slow for doing anything.

     

    First, we looked at him, then we looked at each other and finally we looked back to our screens and resumed work. To this day I have no idea who the hell he was.

  • jim (unregistered) in reply to savar
    savar:
    dhoffman:

    Don't they interview contractors at least a little bit before hiring them?  You'd think it would be easy to weed out people this lame.

    God, anybody who puts "intense" or "acclaimed" on their resume and is not a professional actor/actress shouldn't even get a callback.

     Having said that, even though Joe clearly doesn't have the experience he says he did, the second section of non-technical WTFs made me start to like the guy. Asking a 3-week girlfriend to move into the house you share with your wife? Priceless.

    This guy must have been a PITA when there was actual work to do, but as dude to hang out with he's probably hilarious.

     Please tell me somebody took a photo of this whiteboard and can post it here. It would be my new wallpaper immediately.

    I bet it was just the salesman that got him hired that called him acclaimed. They often don't know squat about the skills required.

  • Nick (unregistered)

    While on the subject, check out www.overheardintheoffice.com for more of these.

  • Rob Banzai (unregistered) in reply to maber

    Short snippet of a phone call I overhead by the head of our Production Studio. She is an Alternative Lifstyle Practitioner:

     

    (in an annoyed and impatient tone:) "Honey, it's a dildo! It's a big, black dildo!" 

     

    captcha= hotdog 

  • (cs) in reply to Sean

    Anonymous:

    "What's CSV?".  Guru guy looks at her in amazement, "It's a comma separated value file".  To which she replies, "OH, I have never heard of that before".... WTF?!?!

    "CSV" is not necessarily something programmers run into.  It's just doesn't seem like an obvious sort of thing to me.  It's not something most people run into unless they use spreadsheets and/or databases a lot and have to import from or export to foreign applications.

    Without giving the background and context here (what was the boss's area of expertise and experience), I can't call that a WTF.  I've been a programmer and engineer over 20 years, and I only used them twice.  I did an unscientific survey, and both people questioned knew what CSV meant, but one of them did say "I only know this by accident."

  • Zlodo (unregistered)

    We have a "joe" in my current company, too.  

    His first task after being hired was to work on a subsystem that touches some server code, client code, rendering code, and level editor code (the project is a mmorpg). It's basically revamping the environment settings (fog, sunlight, ambient light, etc.) system to make it more flexible (among other things to simulate weather through it). Not the kind of code you'd throw to someone who just started and that involve that many pieces of the byzantine development process that a team of roughly a hundred people is working with.

    It implied putting the environment setting blocks into a tree of some sort that would basically be a hierarchy of rules of what setting to apply depending on time, location, and several other dynamic parameters (from scripts etc.), aswell as the stuff to edit it in the tool.

    All the team got weeks of fun in the aftermath of him commiting this stuff to get things working again.

    One of the things that was awesome was the storage format for his stuff. This system that supposedly hadn't been deployed yet and used by any of the designers yet already involved several obsolete versions of the file format, along with the code to load it. Since he hadn't put the necessary tag to distinguish his new format from the old one, or a version number, and since (through our awesome, admittedly pretty WTF-y process) a version of his code had already gone live in the level editor and environment settings in a number of levels had been stored in his butchered format on the assets server, so he had to include relying on a bunch of craptastic heuristics to figure out what format it was and managing to load the already broken data.

    So this guy basically managed to have the first iteration of some mostly brand new code look as battered as it had already waged several wars, milestones, upgrades, refitting and refactoring, and there were already casualties and scars (dead, commented out code, hacks to load screwed up versions of the file format from a broken version etc.) all over the place. Before anyone actually used any of the new stuff he added.

  • k0th (unregistered) in reply to Sean

    Ay my previous job, I was helping a QA to do the test, Our web appl can import CSV and XLS files. After we are done with the XLS import,

    QA: How do I test CSV import?

    me: It is the same, just generate the CSV file with the same XLS and run the import again.

    (10 min later)

    QA: I have open a ticket, the CSV import is not working.

    me: Ok, i will take a look at it.

    I test it on my box, everything looks good, no error. That is the time I talk to the QA again.

    me: The CSV import looks good. Can you show me how to reproduce the error?

    QA: Sure, first, I rename the ImportTest.xls into ImportTest.csv....

    WTF =) 

  • Pizza Hut (unregistered)

    Developer: Let's not hardcode the machine the server app is running on, we can create a DNS alias in case the server moves to a new machine

    Network Admin: What's DNS?

     

  • seebs (unregistered) in reply to Abigail
    Anonymous:
    Alex Papadimoulis:

    Oh crap, I really screwed up this time.
    Err, did you break the test database again?
    No, no. I asked this girl I've been seeing for three weeks to move in with me.
    Aren't you married?
    Yeah ...

    I didn't know it was possible for anyone to be that stupid.

     

    I dunno.  I mean, maybe he thought he had an open marriage.  Or something.
  • (cs) in reply to Bob
    Anonymous:

    I'm on the phone with a guy from another office trying my best to explain why his (brute force linear) search algorithm was causing major performance problems.

    Ran across a scientist ages ago who didn't seem to understand arithmetic.  He claimed something was wrong with our computer.  After investigation, his algorithm had an O(n^4) run time since it churned through an array of 4 dimensions (n by n by n by n).  His test program had n=100, it it took only about 5 minutes to run.  So he increased n to 1000 and the program hadn't finished yet after several hours.  So obviously our computer must be broken.

  • Jason Clinton (unregistered) in reply to Morbii

    Most Regex engines have roughly the same performance that a given string scanning algorithm has. (A given Regular Expression is compiled before it is run.) So, if the original search-replace function was poorly designed, using the Regex engine in the Stardard Library of your language would have probably been an improvement.

    Thanks for WTF-ing the best WTF ever.

  • (cs) in reply to Rev Matt Y
    Anonymous:

    Context:  a very very smart but pretty unstable developer has been increasingly absent and scattered.  Finally comes in but is constantly going out in the hall to take cell calls.  We figure he's interviewing.  I come out of the bathroom to hear:

     

    No! Look!  I am NOT going to jail over this again

    <font size="+1">I</font>t would be interesting to read his resume to see how he has disguised his time in the big house.

  • (cs) in reply to me
    Anonymous:

    Ok. This one came from my high school programming class. We were asked (pre the days of the interweb) to write some code to display an information site about a local business. We were doing this in pascal. The code was then to be graded by a statewide education board.

    I don't know what makes me feel older; the fact that they teach programming high school now, or that it's so well established a procedure that they have statewide education boards overseeing it, or that this was told as a "way back when" story.

  • GTT (unregistered) in reply to Jason Clinton

    Not only was his version very kludgy, the point is that he claimed RegEx's were faster.  They are not, plain and simple.  The search-replace was NOT poorly designed.

     We're talking about a person that calls random functions on a pointer around a try/catch block in case someone forgot to set it to NULL.

  • Anonymous (unregistered) in reply to Davr
    Anonymous:

    My favorite line of code generated by a coworker. It's almost zen-like:

    var xml_xml = new XML(xml); // parse xml

    ('xml' is a string var, and this creates a new instance of an XML object, which parses the 'xml' string, and is stored in the xml_xml variable)

    honestly, the real wtf is that he missed one more place to put XML in there: (the :XML indicates strong typing of the xml_xml variable)

    var xml_xml:XML = new XML(xml); // parse xml
     

    This indirectly reminds me of a great line from a project I worked on a couple of years ago. It's not a WTF at all, but it always gave me a giggle when I scrolled past it:

    gun->gun.gun.gun= *gunIn; 


     

  • GTT (unregistered) in reply to Jason Clinton

    Anonymous:
    Most Regex engines have roughly the same performance that a given string scanning algorithm has. (A given Regular Expression is compiled before it is run.) So, if the original search-replace function was poorly designed, using the Regex engine in the Stardard Library of your language would have probably been an improvement. Thanks for WTF-ing the best WTF ever.

     

    Not only was his version very kludgy, the point is that he claimed RegEx's were faster.  They are not, plain and simple.  The search-replace was NOT poorly designed.

     We're talking about a person that calls random functions on a pointer inside a try/catch block in case someone forgot to set it to NULL.

    <!-- End: CommunityServer.Discussions.Controls.PostDisplay.TextPost -->
  • (cs) in reply to GTT

    About two months ago I saw a webcomic that I wish I could find again, that went like this:

    A: Is there an easy way to get the numerical value of a character?

    B: No.

    B: This is one of the oldest and most difficult problems in computer science.

    B: Volumes 2 and 3 of Knuth are dedicated to this very problem.

    (I think the comic was done with Microsoft Comic Chat, any leads?)

  • jim (unregistered) in reply to Pizza Hut
    Anonymous:

    Developer: Let's not hardcode the machine the server app is running on, we can create a DNS alias in case the server moves to a new machine

    Network Admin: What's DNS?

     

    urg. I saw so much of that in one place I worked. The network admin usually had an outside firm handle everything technical related. The network admin themselves just took classes and played with neat-o network software. When the admin retired, just after finishing an extensive series of java courses, the CIO hired a new admin that did the same sort of thing.

  • (cs) in reply to Licky Lindsay
    Anonymous:
    Nothing against delimited files per se. The problems with CSV in particular are:
    1. Comma was a poor choice for the delimiter, since it is highly likely to occur in ordinary text. More likely than, for example, literal greater-than or less-than is in an HTML document.

    Oh, it gets even worse.  The French version of Excel uses a semicolon as the default delimiter, because commas are used as decimal points in French.

    Which, of course, means that Francophones and Anglophones can't share CSV files with the default settings.

    I wish I were joking.

  • jim (unregistered) in reply to John Hensley
    John Hensley:

    About two months ago I saw a webcomic that I wish I could find again, that went like this:

    A: Is there an easy way to get the numerical value of a character?

    B: No.

    B: This is one of the oldest and most difficult problems in computer science.

    B: Volumes 2 and 3 of Knuth are dedicated to this very problem.

    (I think the comic was done with Microsoft Comic Chat, any leads?)

    That almost sounds like something from xkcd.

  • (cs) in reply to el jaybird
    Anonymous:
    Three weeks into my new job after graduating with a Master's in computer engineering, I accidentally wrote a routine that, when distilled, was essentially:

     while (1)
       fork();

    ...

    10 minutes after the system rebooted I got a knock on my cubicle from an agry IT guy, and I got quite a few comments later in the lunch room...

    I'd say - something is wrong with your server -> it allowed me to be forked to death from a limited access account :)

    Seriously - if that was a normal developer's account, it should have process number limit set to about 50, because you'll hit that situation one day or another. Especially if new people come to company (but not only). It just happens. Admin was lame if he was angry about that.

  • Ron Gibson (unregistered) in reply to Jack Hardcastle
    Anonymous:

    We have a board like this in our office for dumb user comments. 

    It's this kind of attitude that gives programmers deservedly bad reputations for arrogance. By all means mock someone who claims to be a professional, but to mock honest mistakes by end users is pretty lame IMO.
     

  • Jon W (unregistered) in reply to me

    That's my new .sig!

     

    catcha: wtf! 

  • (cs) in reply to dcardani

    The Real WTF is how so many Joes manage to keep in business as contractors.

    And yeah, CSV is a perfectly sane file format as long as you use tabs ... yeah, so that makes it no strictly comma-separated any more, but you retain your double-click privileges. I do agree with the comments about genuinely comma-delimited files, that's not what I understand by CSV any more though. (Parsing Excel-generated CSVs, now there's a WTF to deal with.)

  • (cs) in reply to codeman38
    codeman38:

    Oh, it gets even worse.  The French version of Excel uses a semicolon as the default delimiter, because commas are used as decimal points in French.

    Which, of course, means that Francophones and Anglophones can't share CSV files with the default settings.

    I wish I were joking.

    I would not be surprised if this difference were motivated more by French hypernationalism than any technical concerns.

  • robc (unregistered) in reply to jub
    Anonymous:

    SO, your objections against delimited files are exactly what?

     

    Because the quoting/escaping rules for CSV are hairy compared with other delimited-text alternatives. See, for example,  http://catb.org/~esr/writings/taoup/html/ch05s02.html#id2901882 (yes, there's classic ESR point-scoring in there, but he's right).

  • S (unregistered)

    [In response to a statement that the buglogging process Joe followed was incorrect:]
    Here I inadevently engineered a work-item for QA with the [license agreement] as an input instead of a work item for myself. But I agree that is not the standard covnention.

  • ChiefCrazyTalk (unregistered) in reply to Tim
    Anonymous:
    CSV is a PC-ism. I would not be shocked if a programmer with 20 years in the Unix or mainframe worlds had never heard of it. Also, CSV sucks, so I wouldn't hold it against the guy.. 

    I disagree.  For example, I used to do work as a consultant at Chase Manhattan Bank, Unix (Solaris, actually) and C++, nothing Microsoft about it, and yet we were working with importing csv files for processing payroll data, etc. CSV is as close to a universal format as you come (pre-XML) for storing data in a flat file.  Heck, I think I  used CSV files on my Commodore 64 back in the day for a simple database.

  • (cs) in reply to John Hensley

    Maybe not... In a windows version 98SE if i remember correctly, the translators into portuguese, had the sorry ideia of translating the guest username of the FTP client into hospede. So you could not FTP into any other machine as guest, unless that particular version and language of the OS. Moral: localization is a bitch, and you can really fuck up. Unsurprisingly, this is all too common.

  • rob_squared (unregistered) in reply to Jay
    Anonymous:
    dhoffman:

    Don't they interview contractors at least a little bit before hiring them?  You'd think it would be easy to weed out people this lame.

     

    Contractors are - in many cases - hired by the boss. So whattya do then, huh? 

     

    I was a contractor recently, and my future boss didn't ask any technical questions, which I thought was odd.  But they got lucky, I learned the job quickly, provided some troubleshooting ideas and even trained 2 other new people within a couple months of being hired.  Too bad the whole operation went out of the country. :( 

  • Ferdinand (unregistered) in reply to codemoose
    codemoose:

    Boy, that reminds me of my very early days in VBS.  I re-invented Split().

    Sure, now I can laugh about it...

    Three months out of college, I was trying to re-invent ASP .NET... using ASP .NET.

    I still cry about it at night, when no-one is looking...

  • (cs)

    A fellow contractor fell in love with Int64's. Apparently he though there was a possibility in the near future that a screen would be more than 4 billion pixels wide.

     One day, after we discussed how it wasn't necessary to make EVERYTHING an Int64, he proudly turned to me. And said "I figured out how to over flow Int32."

    I'm thinking to myself, this has to be good. "How?"

    "Well what if you want a list of all possible colors."

    I responded with, "Well we only have 32 bits of color".

    "Well what if you want a list of all possible colors and their transparencies"

    Well that was a good one, but I followed this up with "Its 32 bits of color."

    This went back and forth for a few minutes, before he gave up.

     He still loved his 64bit integers. A few weeks later, our product was being designed to handle multiple users, average would be about 4 users. On the upper end a few dozen. Then there was talking about possibly sharing data via the web. At this point, Mr 64 turned to me and said "We'll have 10 million users, we'll definitely need Int64 then!"

     

  • Anon (unregistered)

    I had the pleasure of interviewing a contractor just yesterday.

    The contractor had completed her graduation only recently. She claimed to be 'familiar' with C and C++. I chose the former and asked her to write a function to add two numbers and return the sum. This is what she wrote:

    int add(int x, int y) { add = x + y; return; }

    When I asked her if she needs to return 'something', she changed it to

    return 1;

    I asked her why 1 and not 0, she said return 0 means return nothing. We need to return one value, so return 1;

    I asked her to change the function to return the sum and the difference of the two numbers. Guess what she wrote!

    int add(int x, int y) { add = x + y; diff = x - y; return 2; }

    I stopped after that.

    I walked out of the room feeling good about myself.

  • rob_squared (unregistered) in reply to Ron Gibson
    Anonymous:
    Anonymous:

    We have a board like this in our office for dumb user comments. 

    It's this kind of attitude that gives programmers deservedly bad reputations for arrogance. By all means mock someone who claims to be a professional, but to mock honest mistakes by end users is pretty lame IMO.
     

    It's better than clawing their eyes out. (from a legal perspective only)
     

  • Richard Head (unregistered) in reply to Licky Lindsay
    Anonymous:

    Anonymous:
    SO, your objections against delimited files are exactly what?

     
    Nothing against delimited files per se. The problems with CSV in particular are:

    1. Comma was a poor choice for the delimiter, since it is highly likely to occur in ordinary text. More likely than, for example, literal greater-than or less-than is in an HTML document.
    2. The solution for escaping commas, which is to surround the entire call with quotes, is harder to parse than if the comma was escaped with (for example) a backslash.
    3. Esacping of literal quotes is accomplished by doubling them. In other words, two different ways to escape things in one file format. This further complicates the parsing.

    It is obvious that the format was originally designed by someone who just didn't think about things like "what happens if somebody wants to use a literal comma?". Then later someone did, and they had to hack in the quoting. Etc. The CSV format is a WTF all to itself.

     

    Exactly - I will try to avoid getting or giving a file in comma separated for this reason.  I will either used fixed-width or tab-separated.  Comma is just too common to see in the field itself to be used as a delimiter. 

     

  • Simmo (unregistered) in reply to John Hensley
    John Hensley:
    codeman38:

    Oh, it gets even worse.  The French version of Excel uses a semicolon as the default delimiter, because commas are used as decimal points in French.

    Which, of course, means that Francophones and Anglophones can't share CSV files with the default settings.

    I wish I were joking.

    I would not be surprised if this difference were motivated more by French hypernationalism than any technical concerns.

    ... And that comment demonstrates anglocentricism (or perhaps North American stereotyping of French people?). The whole of Europe uses commas as decimal points. There is life outside your continent.

     

    captcha: perfection. Of course. Naturally.

Leave a comment on “The Joe Board”

Log In or post as a guest

Replying to comment #:

« Return to Article