• Ron Fox (google)

    The frist time in a long time there no RWTF - business as usual for offshoring and smart programmer delivers.

  • Nicholas "LB" Braden (github)

    The hardest part for me would be the PDF. I've lived a sheltered life in that I've never had to write code involving PDFs...but I know, one day, it will happen...

  • G (unregistered)

    TRWTF is that Bobby didn't insert a wooden table in the process.

    Bobby, insert, table... yeah that's deliberate.

  • Drum D. (unregistered) in reply to Nicholas "LB" Braden

    Nope, I guess the PDF writing part is done by the reporting software. Just provide the data for the word cloud and you're done, done, done.

  • Benito van der Zander (google)

    I might have tried to do it in LaTeX

    The idea is simple, create a LaTeX file, using the tikz package with its automatical graph positioning library. Then compile the latex to pdf.

    But actually that is not much away from the original solution. Because the graph positioning only requires lualatex. Now the turing complete latex (with is just a simpler interface to tex) calling Lua to calculate the positions

  • bobby and tables (unregistered) in reply to G

    just had a though on this one here:

    https://xkcd.com/327/

  • (nodebb)

    Who needs "Fast" and "Good" as long as "Cheap" is readily available?

    And everyone knows the big advantages of monocultural farming, so everyhost should run a Windows with Internet Exploder and IIS.

  • Vietcongster (unregistered)

    I wonder if there's really no word cloud library these days, given they're so hipster and such. But the story might have taken place before they were as popular as they are today, so never mind.

  • Yazeran (unregistered)

    Ok. I have made some convoluted Goldbergish 'solutions' in my time (mostly involving hardware wit boor software support), but this... WOW!

    The only thing remotely similar to this was when I tried to create a label-printing system for our lab (for samples etc) and had to use OpenOffice to print the labels (as the Brother labelprinter only had support for printing from templates in either word or odf, but not simply from cmdline). I had to use my program to open and modify a special odf file, and then call openoffice with enough cmdline arguments to open the file, print it and exit again. Unfortunately it only worked if the process was started from within a gui session as although openoffice was started without graphics from an xterm window, somewhere in the bowels of it, it still needed graphical access...

    Yazeran

    Plan: To go to mars one day with a hammer.

  • Gargravarr (unregistered)

    The more terrifying part of this story is that if Bobby had decided to use a cross-platform browser with Selenium rather than IE, this probably would have snuck into production.

    Still, it would have made an even more entertaining read when it eventually got posted here. Glad Brent was able to nip it in the bud, but it should never have even gotten that far!

  • Really. (unregistered) in reply to bobby and tables

    You don't say.

  • Steven (unregistered)

    I'm pretty sure putting Selenium in the actual application's code base is grounds for immediate termination of contract. Unfortunately this company's management may not understand what a giant red flag that it really is...

  • SmokingMan (unregistered) in reply to PWolff

    Re: "And everyone knows the big advantages of monocultural farming, so everyhost should run a Windows with Internet Exploder and IIS." -- yes, it causes the bees to starve and die (since other than when that particular crop blossoms they have no flowers to collect pollen), which in turn kills the food chain, which in turn kills all life on earth eliminating those pesky animals and humans...

  • foxyshadis (unregistered) in reply to Yazeran

    Re ODF not working without xterm: A lot of Windows print drivers do the same thing without GDI/GDI+ available, even if they convert it to PCL/PS/XPS to communicate with the printer. Getting them to work on Server Core is a nasty chore.

  • Geoff (unregistered)

    I am actually please with how this story came out. I have never understood why but its always seemed to me that when LOB software meets report writing requirements, aggressive stupidity that would never be tolerated in any other system component becomes acceptable.

    I can't even count the time I have seen processes that include an OCR step where all the data is coming out DBMS. Its as if someone says hey you know what this product really needs is an incredibly cpu intensive error prone process, we can repeat 100s of times for each of our thousands of customers! Just like this one where all it would have taken is for a system software update to change the browser handles some CSS or and the output would probably break.

    I can sort of understand why someone would want to go about this by trying to produce and HTML representation as an interim step. HTML generation is a known quantity with lots of good tools available and lots and lots of developer experience available. I might have done the same, in fact. The part I can't understand is why this guy never though, "hmm I wonder if there is a way to render an HTML document and output a PDF without using web browser, writing interim disk files and the race conditions and environmental restrictions that implies?" I almost wonder if there is a library or two or 10,000 out there that do that....

  • guest (unregistered)

    What's a "story" ?

    "Brent's latest software project contained a story for adding a word-cloud to a PDF report". "Then he realized, this was probably just a testing ticket that'd somehow gotten linked to the story by accident." "The story really is blocked."

    Googling doesn't help as "story" is overwhelmingly reported as, well, the narrative process we all know. Is it some kind of IT tool ?

  • cst1992 (unregistered)

    Is this thing actually real? I hope not all overseas developers are this dumb. An implementation that someone codes in minutes should never take you a month to do, and even then you do a sloppy job.

  • Geoff (unregistered) in reply to guest

    A certain trendy development methodology, to stupid do name. Has "user stories" which is a feel good name for functional requirements. The average users is to dumb to describe their needs and the average BSA is to incompetent to help them, so instead they are asked to tell stories about what they think their workflow should be.

  • Grzegorz Borowiak (unregistered) in reply to Geoff

    This would require an HTML generator capable of JavaScript execution.

  • JNA (unregistered)

    Did Cheryl just pop out of nowhere in the story? Is this Cheryl in accounting (who just don't GAF)? You'd think the person that solved the problem would get slightly more introduction/cred.t

  • Derek Greer (unregistered)

    My first thought on how to do this would be to find a word cloud library that generated an image and then embed that image in the PDF. Given I was able to find such a library and was already familiar with the PDF generating library I was working with, I still don't think I'd be able to get a working solution in just a few minutes. The article doesn't explicitly say the developer in the meeting came up with the solution completely without incorporating some word cloud library, but it's implied. Of course, the main point of the article is to highlight how crazy of a solution the first implementation was, but I can't help but wonder what the solution done in a few minutes actually was.

  • Matt Westwood (unregistered)

    Is it my imogenation or ear them more spalloes than usule in pastings todie?

  • Carl Witthoft (google) in reply to bobby and tables

    Well, duh, what did you THINK he was referring to?

  • Carl Witthoft (google) in reply to JNA

    You may be thinking of Janice . https://www.reddit.com/r/OutOfTheLoop/comments/3tafmu/who_is_janice_in_accounting/ Cheryl's actually very nice.

  • _that_guy_ (unregistered)

    There's a CommitStrip relevant to this story but I can't seem to find it.

  • Where's the funny? (unregistered) in reply to Geoff

    The amount of bullshit work that simple user story statements eliminate makes it worth the name

  • Herby (unregistered)

    We must salute the real hero of the story: Cheryl. She is the go-to person. Way to go Cheryl.

    As for the "overseas contractor", what can I say. They only know windows and their yellow brick road from Redmond is paved with good intentions, but it leads straight to hell!

    It should be obvious to most readers that if you must rely on IE (in any form!) you have a real WTF that can be VERY difficult to repair.

  • Zylon (unregistered)

    This is the first time I've ever seen the word "story" used this way, and I very much hope it's the last.

  • Jerry Kindall (unregistered) in reply to Zylon

    It's hard to imagine that you're in IT and have never heard the word "story" used in this sense. I first heard it in 2005, and it had been around for a few years before that. I can assure you that you will hear it again unless you retire.

  • (nodebb)

    I found TRWTF: The meeting was actually productive!

  • Simon (unregistered) in reply to Jerry Kindall

    Likewise. It's a kind of silly term, but it's been in fairly widespread use for over a decade...

  • Matthijs (unregistered) in reply to Nicholas "LB" Braden

    I once had the fortune to work a bit with creating PDFs. In many ways, with the right library, it is not so bad. Unlike HTML for example, you can place any kind of text anywhere you want, and it will not (necessarily) move the rest of your document.

    For a word cloud, that means all you need to do is calculate positions. You can already pick font-sizes beforehand and assign them in order to your words, what's left is an exercise in positioning. I know at least one PDF library that could give you the width of a given string, line-heights are easy, so if you keep track of your cloud boundaries you can simply position words around the nearest edge. I mean, it's not exactly trivial, but I will believe that a proficient dev could whip up a working version in half an hour, an hour maybe. This really should not take a month.

    Mind you, I expect we have all been here: faced with what seems like a tricky problem, so we check if someone else solved it for us already, and once we go down that path, spend more time implementing the external solution than it would have taken to simply write something ourselves. This one just followed the rabbit hole a little deeper than most.

  • Andrew Pam (unregistered)

    I'm surprised nobody has yet suggested writing the word cloud code in postscript and just appending it to every PDF so they can generate their own interactive word clouds at display time.

  • (nodebb) in reply to Matthijs

    This one just followed the rabbit hole a little deeper than most.

    No, not just a little deeper.

  • (nodebb)

    The closest thing I did in the past in to implement "barcode with checksum" (so cannot just use "Free3of9" font directly) in PDF report without existing library. It takes me about one or two days to do it.

  • b11c (unregistered)

    TRWTF: "He'd been hoping [...] that a solution would only require a download and a few lines of code."

    If I had penny for every time a manager though this... :-(

  • (nodebb) in reply to Matthijs

    That's not so easy for developers whose skillset relies on Googling for libraries someone else has written for their specific need; if it involves any actual programming on their part they're lost. Something something kids something something my lawn.

  • Nooby, son of Dobby (unregistered)

    Let s/he who has not done something eerily similar in the past cast the first stone...

    C'mon, we've all over-engineered solutions in the past, only to find out that there's a 2-line way to do it. Ignorance isn't a crime. And FYI, it's not as though the US is some kind of Coding Utopia and "overseas" is a hell-hole of coding schmucks. I know a bunch of "overseas" developers that can code circles around most home-grown programmers.

    You want to see some real WTFs? Here they are:

    1. The company outsources to an overseas firm. The company doesn't bother to take a look at the firm's track record. The company deserves what they're about to get.

    2. Brent doesn't think the overseas team can do it. Brent then leaves the overseas team without any oversight for a whole month, apparently not bothering to ask them anything during that time. Good golly gosh, Brent, what did you think was going to happen? Brent then punts the problem back to his in-house team, because they should have to deal with his failure to manage a project. And while Brent is droning on, one of his team members (who has probably been through this cycle of pain with Brent before) hacks up a quick solution, and I'm guessing that she does this because it's the only effective way to shut Brent up. Brent should have nothing to do with project management, because Brent is The Real WTF.

  • WordCloud (unregistered)

    http://i.imgur.com/RD3auhl.png

  • Quite (unregistered)

    I am reminded of when we migrated from a legacy solution where we migrated our FORTRAN suite of report generation software, complete with its own language for defining the report structure, that we wanted to port our reports into an XL format (give us a break, XL didn't exist when this software was originally written). We had the choice: a) Convert the reports, in pdf format (generating that format was a task we had done some time back) into XL format using a bespoke 3rd party tool b) Write our own tool to convert our report structure definition files into XL templates in their internal XML format. The latter approach won out. It was a fun project to work on.

  • (nodebb) in reply to G

    Would have worked better if you worded it slightly differently - something around dropping a wooden table in the product.

  • Verisimilidude (unregistered) in reply to WordCloud

    Nice word cloud. How much (if any) code did you write and how long to implement?

  • WordCloud (unregistered) in reply to Verisimilidude

    Nice word cloud. How much (if any) code did you write and how long to implement?

    Quite a lot. It involve a browser, a vector image manipulation application, and a wooden table. A month. But it surely will go past the deadline.

  • Nate Scherer (google) in reply to Derek Greer

    "I can't help but wonder what the solution done in a few minutes actually was."

    My bet is that it was fictional.

  • Bitter Like Quinine (unregistered)

    Ah, the joys of outsourcing.

    I'd just started at one job when I was asked to do a code review of a script from an offshore dev. I though it was pretty unusual given that I was still completely green w/r/t their DB structure.

    That wasn't the problem.

    The "code" was full of lots of SQL structures that included "GROUP BY ROWID HAVING (some condition)". So I asked the c...omputer science graduate at the other end of the phone line what the fu...nctionality was meant by this. He was really proud, he'd been given some queries that used GROUP BY and HAVING, and upon needing to select a particular set of data had realised that instead of looping through looking for the appropriate results, if he could just group the data by something unique to each row, he could use HAVING to select just the needed data without needing to fetch and sort the entire table.

    He was a little less upbeat after I initiated him into the heady possibilities of "WHERE" clauses.

    Mind you, compared with the solution he was about to implement, his "reinvented wheel" was a triumph!

  • Verisimilidude (unregistered) in reply to Nooby, son of Dobby

    No, I don't think Brent is the WTF here. Most offshore projects I have been associated with the offshore group has their own Project Managers who are in charge of the programmers and they report to the onshore CTO. Onshore programming staff is, like in this story, just brought in at the start and end. I have worked with some good programmers from India who were totally crushed by the firms they were working for. The PMs at the firm demanded product (lines of code) over quality. When I requested in a review that the programmer gather all that repeated code up into a function and call it rather than doing cut-and-paste coding they were happy that they now had something to push back with (i.e. customer says to do it this way). Mostly the poor quality of work received from offshore is due to the consulting firms trying to put junior guys into senior roles. Since hey, if the customer will pay they get more money.

  • ZachR (unregistered) in reply to guest

    A "story" is a term for something larger than a task in agile development. So you have the following hiererchy: Epic > Feature > Story > Task. A story can typically be finished within a two-week sprint.

  • Anonymous Coward (unregistered) in reply to Nooby, son of Dobby

    I agree with half of what "Nooby Son of Dooby" said. Yes, I've over-engineered solutions. But I don't think I've ever considered firing up an instance of Internet Explorer from a server process.

    But I agree that Brent is the WTF. If Brent didn't trust the overseas developers, then why did he send just a requirement without a design, and expect an acceptable solution? He should have either designed it in-house, or required the overseas developers to send the first draft of the design for review before proceeding.

  • Paul Neumann (unregistered) in reply to G

    TRWTF is that Bobby didn't insert a wooden table in the process.

    Bobby, insert, table... yeah that's deliberate.

    I would rather Bobby; DROP TABLE Into_Process--

  • Googler (unregistered)

    A quick google found me Kumo (https://github.com/kennycason/kumo), which looks like a nice free Java library for word clouds.

Leave a comment on “Dumb's The Word”

Log In or post as a guest

Replying to comment #:

« Return to Article