Subscribe: The Daily WTF
Added By: Feedage Forager Feedage Grade B rated
Language: English
american engineers  apos  app  cat  data  deep fried  engineers  foot  management app  management  new  stephen  team  writes  years 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: The Daily WTF

The Daily WTF

Curious Perversions in Information Technology

Last Build Date: Fri, 28 Oct 2016 23:29:40 GMT


Error'd: Going Fast

Fri, 28 Oct 2016 10:00:00 GMT

"This building is sinking so fast that it lost 4 floors between the headline and the body," writes Hans.



"I was looking for a new fridge, for some reason this one didn't quite have the features I was looking for," writes Tim D.



Matt R. wrote, "Well, I guess the Microsoft Time Estimator has a new job!"



"Work is sponsoring a flu shot clinic and the clinic wants to make it really easy for Marylanders," writes Rick B., "Or really rejects all but one of the MD entries!"



"So, does an inverted dropdown turn into a riseup?" wrote Tomi A.



Jordan B. writes, "Wait, exactly how much storage does Database Engine Tuning Advisor need? I don't think they make hard drives INT64_MAX megabytes in size..."



"I didn't know you could 'oSettingsEvent.comest' your audio setup or '.mog' into a meeting," writes Peter, "It doesn't get any easier in French either."



(image) [Advertisement] Incrementally adopt DevOps best practices with BuildMaster, ProGet and Otter, creating a robust, secure, scalable, and reliable DevOps toolchain.

Deep Fried Offshore

Thu, 27 Oct 2016 10:30:00 GMT

Stephen worked for an Initech that sold specialized hardware: high-performance, high-throughput systems for complex data processing tasks in the enterprise world, sold at exorbitant enterprise prices. Once deployed, these systems were configured via a management app that exposed an HTTP interface, just like any consumer-grade router or Wi-Fi access point that is configurable through a website (e.g. Stephen worked with a diverse team of American engineers who were finishing up the management application for a new model. The product was basically done but needed a little bit of testing and polish before the official release. They expected several months of post-release work and then the project would go into maintenance mode. Then disaster struck. A pointy-haired boss somewhere up in a fuzzy area of the organization chart simply labeled “Here be VPs” discovered the large salary difference between American engineers and off-shore workers, and decided American engineers were far too expensive for software “maintenance”. The company decided to lay off 300 software engineers and hire 300 fresh-out-of-college replacements in a foreign country with much lower labor rates. The announcement was overshadowed by the fanfare of the product’s release and proudly billed as a major “win” for the company. Stephen was lucky enough to stay on and shift to other projects, the first of which was to assist with the transition by documenting everything he could for the new team. Which he did, in hundreds of pages of explicit detail, explaining how to use the source control repository for the project, execute and log unit tests, and who to contact when they had questions regarding the hardware itself. After that, he devoted himself to other projects. Months turned into years and Stephen assumed by the silence that the handover was successful and he’d never see the management app again. Of course that isn’t what happened. There’s an old joke on the Internet called “How to shoot yourself in the foot” ( that lampoons the complicated process of shooting yourself in the foot in various programming languages. Here is one such entry: 370 JCL: You send your foot down to MIS and include a 300-page document explaining exactly how you want it to be shot. Three years later, your foot returns deep-fried. Three years after the management app was passed off to the new offshore engineer team, a new panic was boiling through Initech. The management application was as slow as molasses, buggier than flies in soup, with a user interface that was battered and deep-fried in a nonsense language that vaguely resembled English. It also crashed a lot, each time requiring a power reset to bring the system back up. Initech had simmered along by only shipping the original version, but now they had this expensive, powerful product with three years worth of hardware and firmware updates that the management app could not configure and thus were not available to customers. Several important customers canceled their support contracts rather than pay for half-baked updates that rarely worked, and many prospective customers passed them right by when basic features printed in the product brochure were “unavailable for demo”. They were falling behind in the industry. It was bad enough that management finally decided to do something. That something was to toss the offshore team and see how many of their old laid-off engineers they could scoop up, which was, not surprisingly, few. As one of the few original engineers who still worked there, Stephen was whisked away from his current projects to assist. With a bite-sized portion of the old team re-assembled, they set to work to unscramble the situation. Stephen noticed that the last source control check-in was from three years ago. Upon further inspection, he realized that not one of the offshore engineers had ever committed. He ca[...]

CodeSOD: data-wheel="reinvented"

Wed, 26 Oct 2016 10:30:00 GMT

In HTML5, the data-* attributes were codified, and this is a really nice thing for building applications. They are an app-defined namespace to attach any sorts of custom data to your HTML attributes. For example, a div responsible for displaying a User object might have an attribute like

, which allows us to better bind our DOM to our application model. They can even be used in stylesheet selectors, so I could make a styling rule for div[data-user-id].

I’m not the only one who thinks they’re a nice feature. Eric W has a co-worker who’s come up with a very… unique way of using them. First, he has the following Django template:

{% for cat in categories %}
        {{ }}
{% endfor %}

Which generates links like: Housewares

Obviously, since the href points nowhere, there must be a JavaScript event handler. I wonder what it does…

$('.shop-nav a').unbind('click').click(function(e){
    var page = $(this).data('type');
    window.location.href = window.location.origin+'/shop/'+ page;
    return false;

This is one of my favorite classes of bad code

(image) [Advertisement] Universal Package Manager - ProGet easily integrates with your favorite Continuous Integration and Build Tools, acting as the central hub to all your essential components. Learn more today!