My first WTF story...



  • Hey guys, this is my first little WTF, the first one that happened to me so far (not counting our internal politics). I hope you enjoy it more than I do. The story is real, aside from the names.





    "The Probing" or "How Tim became the general purpose person"





    The company at which Tim worked was a small sized hardware/software development company ( 30 or so people ) – they made specialized instruments, both the software and the hardware part. Tims role in this was a hardware developer and a firmware developer - an engineering position. He was happy – not only was developing devices from scratch an interesting job and developing firmware for them was part of the process, but also as long as he was doing his job well he got to stay a long way away from internal politics. The firmware was generally a smallish code running in a microcontroller, residing in its 32kB of program memory, enjoying the vast infinities of 2048 bytes of RAM and managing various functions of the device, coded in C or assembly - a layer at best above hardware. This was all well, but Tim also did something extra – to automate testing or just to simplify some tasks he'd occasionally slap together a PC utility – nothing too complex – in C# under .NET. This helped him and his coworkers to speed things up. They could ask the software division, but it would be far quicker to just do it, as they were busy. Always. But in the end, this extra skill was his undoing...





    The Probe

    The Probe was the company's next medium product – a fairly complicated device for measuring a complicated value. Data from the probe would be sent to a PC and analyzed there by some math. Tim did the firmware and helped with the hardware. And all was OK. To test the whole system he created a little app with a little graph (slow as snails, slapped together using GDI+), the basic controls, the math and stuff. It wasn't much, there were anti-patterns, nor was it the model of efficiency. Tim knew this, but, since it was for internal use only, no one complained as they did not do so before. With things set up the way they were, Tim and his colleagues probed the probe and soon finished its development. They reported this to the powers that be and left things run their course – the software guys should now take the probe and its specs and mess around with it, make some nice application with all the bells and whistles.



    So, the head of hardware went to the head of software developers – a rather disagreeable man.

    „Yeah, we're kind of busy right now.“ said the leading software fellow.

    „OK, when will you be not busy...“

    „I don't know, check back later.“

    "OK, but put it somewhere on the things to do."




    Tim didn't really know or care about this – he'd gone back to his normal routine. A year passed, the occasional reply from the software people was – we're busy, check back later. Due to bizarre internal politics the head of heads could not really do much against the situation – the software head being a co founder of the company. Projects had been requested and been done and all was right in Tims small corner of the world.



    All was well in the world, until the Powers above remembered that the Probe existed. This was thanks to a rumor of a bid they might win if they had a working Probe like device, complete with software.



    „Yeah, we're kind of busy right now.“ said the leading software fellow.

    „But you've been saying that for a year! And we need the software for the bid!“

    „And?“

    „Can't you, I don't know, assign someone to it? Or get more people?“

    The discussion went downhill from there.



    Remembering that Tim had SOME software the Powers above called Tim into their lair.

    „Tim. Remember the software you did for the Probe?“

    „Uh, yeah, think so...“ said Tim, trying to remember what the Probe actually did.

    „Great, can we use it for the bid?“

    Tim chuckled, expecting them to do the same. When they did not, his face turned to a „stunned by a perverted idea“ kind of expression and he replied:

    „What? No, no way! It's just for our internal uses!“. Trying to remember what the software actually did and why it should by no means reach anyone outside of the company he started:„It's not stable, no good proper GUI, it's slapped together from...“

    „I understand. So, could you make it into something that we could ship?“

    Not hoping that they were joking now, he said: „Well, no, I'm not a software guy. Why not just give this to the software department?“

    „They are busy. Anyway, we need some software.“ Tims face turned into a „Infinite pain two words away“ expression. “You have experience with it, you'll do it.“

    After a few minutes of protestation and arguing that it's not his job, it won't end well, it will be a catastrophe, should the customer use his software and various other completely true arguments, armed with reasoning that if he's a good embedded programmer, he'll do an OK job on a PC, management did its magic and Tim was appointed as a temporary software guy, with a deadline and other projects on hold.



    The state of things was such, that he wanted to keep his job – aside from this, all was OK enough. So, Tim had at it.




    The Coding

    The application required was simple enough – for someone who coded proper PC applications, with big, scary GUIs, knew the framework inside out and worked seriously with .NET. Tim facepalmed and began planning. His first diagrams of the app looked like some kind of occult diagram to invoke Codethulhu. Then he sat down, redrawn it and pondered some more. Then he began to code the application...

    The coding was painful. Not knowing anything about proper UI design he sat down with some of his engineer colleagues and asked how would he prefer if it looked and felt. He told him, they argued a bit and compromise to do it in a way that felt wrong.



    Not knowing about the wonders of serialization, and other niceties of the systems he did a lot of things manually. He used XML, but not in the proper way. CSVs were his preferred format for pretty much everything.



    Threading was a royal pain... until various Forms and Windows controls were involved. Then it became Hell... after studying on and (possibly) understanding invocations and the more complicated synchronization methods, things got better, which meant back to "royal pain".



    Never working on a project of this type he faced problems like „Who should control the visibility and enablement of some controls?“, „Should this be an event?“, „Give this class access to this?“ and thought up answers to them, which may or may not have been correct... He probably implemented a few anti-patterns, and he may have created some new ones in the process. Properties were also something new – he saw them at first as a necessary evil, or didn't use them at all. Later he found out that they weren't all that bad, and in the end he even liked them and used them almost properly.



    The difference between code done at the start of the project and at the beginning of it was very visible – learning through doing is a very good, quick method for learning. Unfortunately, it's not the best method for doing.



    During the development people asked him for status reports, he received numerous "recommendations" from his coleagues in his department (most of which were in conflict with each other) and experienced other soul grinding horrors of the world of PC coding. He yearned to route a PCB, he couldn't wait to solve the next little problem with a scope, a multimeter, his faithful JTAG debugger and a soldering pen. Or a hammer.





    The Application

    After a few months Tim finished the app. He wasn't proud of it. The good news was that it was stable. It also looked reasonably OK. And, apparently most importantly, it did the job. But it had rotten guts, lots of hacks and an evil stench about it. Some parts were quickly slapped together from various Internet tutorials. It had Tims very own graph plotting code, based on GDI+. It looked OK enough, but was rather inefficient. Riddled with spaghetti code, holding together by UI calls that would make a proper .NET coder shriek in horror, the app did its job.



    Tim had no illusions about the quality of his work – he knew that, should anyone see it, parts of it would end up on the TheDailyWTF. He even wrote a nice little article there about his pains, which was not published on the front page. But, it did the job well enough to satisfy the powers that be, and that's all that mattered. Knowing that he'd be stuck with its maintenance (which he knew would be Hell, thanks to the spaghetti form his code had) for years to come was a burden he already accepted and came to terms with.



    After writing some documentation, he handed the work over, hoping to never hear of it again. The bid wasn't won due to a lot of things. The head of the software people grinned:

    "See? If you'd leave coding to the professionals, things could have ended differently."

    At that moment Tim realized why people go postal. After these experiences he just wanted to go back to his desk, sit back and make lovely little balls of solder.



    A year passed, and Tim had regained much psychic health, when he was summoned to the Powers.

    „Tim. Remember the software you did for the Regulator?“




  • Well-written, except you're using Euro-quotes and I think you forgot to change "Regulator" to "Probe" in the last sentence. But, good story, entertaining.



  • @blakeyrat said:

    I think you forgot to change "Regulator" to "Probe" in the last sentence. But, good story, entertaining.
     

    That's what makes it front-page material!

    Edit: or the Regulator was the next embedded device that he had written an internal testing tool for?



  • Great job ...



    +1 frontpage material



  • Thanks. As for the Euro quotes, sorry about that :-)

    Unfortunately, the Regulator is another thingamajig I did an internal tool for... and it looks like I'll be some putting lipstick on it soon.




  • Very nice story! Care to share any code? Pleeeeeeeease?



  • Unfortunately it's a good read. Poor Tim...



  • @Nelle said:

    Great job ...



    +1 frontpage material

    Agree. It even has the few minor mistakes needed for frontpage material. Only things lacking are the bolded names and h3'ed subheadings.



  • @blakeyrat said:

    Well-written, except you're using Euro-quotes
    What's that? Google can only make me offers in a certain currency...
    and I think you forgot to change "Regulator" to "Probe" in the last sentence. But, good story, entertaining.
    I figured that was the punch-line -> They're asking him to do it all over again for a different device :)



  • @pnieuwkamp said:

    @blakeyrat said:
    Euro-quotes
    What's that?

    “Whart you might call normal quotes”



    „What blakey calls Euro-quotes“



    «Frog quotes»



    「Japanese quotes」



  • @derula said:

    @pnieuwkamp said:
    @blakeyrat said:
    Euro-quotes
    What's that?

    “Whart you might call normal quotes”



    „What blakey calls Euro-quotes“



    «Frog quotes»



    「Japanese quotes」

    My apologies if Euro-quotes are used in countries other than Europe. Either way, we want big strapping red-blooded American quotes.

    Frog quotes are useful when bad fanfic writers need a way to convey telepathic communication. Or professional comic book writers (only a tiny step above bad fanfic writers, and a tiny step below good fanfic writers) can use to indicate non-English languages. They then put a little box at the bottom of the page saying the frog quotes represent Mandarin (or whatever), and even if the ENTIRE BOOK is in Mandarin, they'll still put frog quotes in every single speech bubble and that retarded info box on every single page and the reader just sits there going, WHHHHYYYYY?



  • @blakeyrat said:

    we want big strappings

    You are alone in that sentiment, unless dhromed also agrees



  • My apologies for any mistakes, English is not my first language. As for the requested parts of code, I'll see what I can do.



  • @blakeyrat said:

    and even if the ENTIRE BOOK is in Mandarin, they'll still put frog quotes in every single speech bubble and that retarded info box on every single page and the reader just sits there going, WHHHHYYYYY?
     

    Once saw an English comic where they did that. Using euroquotes.

    It was stupid.



  • @serguey123 said:

    @blakeyrat said:

    we want big strappings

    You are alone in that sentiment, unless dhromed also agrees

     

     

    I agree.

     



  • @blakeyrat said:

    @derula said:
    @pnieuwkamp said:
    @blakeyrat said:
    Euro-quotes
    What's that?

    “What you might call normal quotes”



    „What blakey calls Euro-quotes“



    «Frog quotes»



    「Japanese quotes」

    My apologies if Euro-quotes are used in countries other than Europe

    I was more thinking that it's not all Europe. I thought it was rather more of a minority of Europe, but it seems quite a few countries do it. Others use „this abomination”, “this„ or even, »this». In the UK they use “the real ones” though (I think).

    Also, »quotes like this« look much more logical, in my eyes, than «ones like this».

    Still, Japanese ones are the best.



  • @derula said:

    I was more thinking that it's not all Europe. I thought it was rather more of a minority of Europe, but it seems quite a few countries do it. Others use „this abomination”, “this„ or even, »this». In the UK they use “the real ones” though (I think).

    Also, »quotes like this« look much more logical, in my eyes, than «ones like this».

    Still, Japanese ones are the best.

    You know, I think the new Perl 6 has different interpolation rules for each one of those quoting styles.



  • @dhromed said:

    @serguey123 said:

    @blakeyrat said:

    we want big strappings

    You are alone in that sentiment, unless dhromed also agrees

     

     

    I agree.

     

    I assume you made an ambiguous post on purpose?

    Anyway, here in Debtland Portugal we supposedly use what you call «frog quotes», but “comma quotes” are pretty common.



  • @Zecc said:

    @dhromed said:

    @serguey123 said:

    @blakeyrat said:

    we want big strappings

    You are alone in that sentiment, unless dhromed also agrees

     

     

    I agree.

     

    I assume you made an ambiguous post on purpose?

    Who did?



  • @serguey123 said:

    @Zecc said:

    @dhromed said:

    @serguey123 said:

    @blakeyrat said:

    we want big strappings

    You are alone in that sentiment, unless dhromed also agrees

     

     

    I agree.

     

    I assume you made an ambiguous post on purpose?

    Who did?

    Your mom!


  • @serguey123 said:

    Who did?
    dhromed. You said@serguey123 said:
    You are alone in that sentiment, unless dhromed also agrees
    and dhromed said@dhromed said:
    I agree
    , which could be understood as agreeing with blakeyrat or agreeing with you (when you say blakeyrat is alone in that sentiment).

    I assumed dhromed could have made an ambiguous post as a form of clever humor. But I may be wrong.



  • @derula said:

    @serguey123 said:

    @Zecc said:

    @dhromed said:

    @serguey123 said:

    @blakeyrat said:

    we want big strappings

    You are alone in that sentiment, unless dhromed also agrees

     

     

    I agree.

     

    I assume you made an ambiguous post on purpose?

    Who did?

    Your mom!

    And yours!



  • Great story!  It resonates with me.  I also used to work for an electronics manufacturer.  Unfortunately, I was the software department.  I once made a utility strictly for myself that "streamed" screenshots in the form of ~80kb uncompressed bitmaps at a rate of whatever the transmission media and my hardware could handle.  In case anyone was wondering, it was about 10 fps. The "player" for the screenshots was a .NET Winforms app that received the bitmaps and loaded them to a PictureBox using GDI+.  Inefficient would have been an understatement.

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>I had the misfortune of the head of marketing walk into my office and see this "wonderful" piece of software in action.  Of course, he had to have it to give to sales guys as presentation tool.  Although, I protested, I eventually made and installer so the sales guys could put the software on their laptops.  Within approximately -30 seconds of the release of the product this utility worked with, my utility became a freely available download on our company website.  Last time I checked, it’s still available.<o:p></o:p>


  • @frits said:

    Last time I checked, it’s still available.

    I have a very strong desire to hunt this down and run [code]strings[/code] on it...



  • @Tim said:

    Tim had no illusions about the quality of his work – he knew that, should anyone see it, parts of it would end up on the TheDailyWTF. He even wrote a nice little article there about his pains, which was not published on the front page.

    Damn. I'd love to read that.



  • @Spectre said:

    @Tim said:
    Tim had no illusions about the quality of his work – he knew that, should anyone see it, parts of it would end up on the TheDailyWTF. He even wrote a nice little article there about his pains, which was not published on the front page.

    Damn. I'd love to read that.

    Yah, you should post that here.



  • @derula said:

    In the UK they use “the real ones” though (I think).
     

    AFAIK the UK and US are opposite in ❛single❜ and ❝double❞ quotes (eg when nesting). (I hope the honking big unicode quotes come through!)



  • @derula said:

    I thought it was rather more of a minority of Europe, but it seems quite a few countries do it. Others use „this abomination”, “this„ or even, »this». In the UK they use “the real ones” though (I think).
    I've heard of «French quotes», while in Slovenia we usually use them »mirrored« (in print; in handwriting, „double“ and ‚single‘ are normally used, since they're easier to draw - but they're also allowed in print, as are "american" ”quotes“).



  • @ender said:

    @derula said:
    I thought it was rather more of a minority of Europe, but it seems quite a few countries do it. Others use „this abomination”, “this„ or even, »this». In the UK they use “the real ones” though (I think).
    I've heard of «French quotes», while in Slovenia we usually use them »mirrored« (in print; in handwriting, „double“ and ‚single‘ are normally used, since they're easier to draw - but they're also allowed in print, as are "american" ”quotes“).

    »These« are sometimes used here too, though I think I've only seen them in some books to look artsy. Actually, I think I've only really seen them in Peter Pan, which I read like a bazillion years ago when I was a kid. Also, I don't read much.



  • Well, it's official - I'll be writing the new support app for the Regulator! Yay for me!



  • @Tim said:

    Well, it's official - I'll be writing the new support app for the Regulator! Yay for me!
     

    Does this mean we will get more stories?  Yay for us!


Log in to reply